






















之前機器因為ZFS空間滿了,因為平常有再作snapshot的緣故,導致東西都刪除不了 因為刪除的時候都會有一些metadata的寫入,導致整個zfs動彈不得,這時候就花了很多時間再研就怎麼處理 這邊稍微記錄一下ZFS相關得操作。 ZPOOL的來源可以是device也可以是files,這邊就用兩個檔案當作來源。
sudo dd if=/dev/zero of=/zfs1 bs=1M count=256sudo dd if=/dev/zero of=/zfs2 bs=1M count=256zpool create ftphome mirror /zfs1 /zfs2zpool destroy ftphomezpool status <pool>zpool export ftphomezpool import -d / ftphome (用-d指定你檔案的位置,預設會去吃/dev/)//zfs1, //zfs2,多了一個/,原因不明中。zpool attach ftphome /xxxzpool detach ftphome /zfs1還有offline,online,remove...,剩下的就要用的時候去man zpool,還滿詳細說明的。
zfs set key=value <filesystem|volume|snapshot> zfs get compression ftphomezfs set mountpoint=/home/ftp ftphomezfs get key <filesystem|volume|snapshot> zfs get compression ftphomezfs snapshot ftphome@today zfs list -t snapshotsnatshot 該zfs
zfs snapshot ftphome@todayzfs list -t snapshot 看一下是否有成功塞爆該空間
zfs list 看一下還剩下多少空間dd if=/dev/random of=/home/ftp/file bs=1M count=256cd /home/ftprm file => 應該會得到 No space left on device空間不足的訊息。ZFS 變大容易(多塞個硬碟即可),變小困難(幾乎無法),因此當ZFS的硬碟滿的時候,有兩種做法
先幫本來的pool加入一個檔案,增加本來的空間,如此一來才可以做更多操作
dd if=/dev/zero of=/zfs5 bs=1M count=128dd if=/dev/zero of=/zfs6 bs=1M count=128zpool add ftphome mirror /zfs5 /zfs6zfs list
(此時可以看到本來的空間變大了)創造一個更大的zpool來取代
dd if=/dev/zero of=/zfs3 bs=1M count=512dd if=/dev/zero of=/zfs4 bs=1M count=512zpool create ftphome3 mirror /zfs3 /zfs4zfs set compression=gzip-9 ftphome2把資料複製過去
zfs snapshot ftphome@sendzfs send ftphome@send | zfs receive -F ftphome2zfs list 看一下大小是否相同mount新的,舊的砍掉
zfs umount ftphomezfs set mountpoint=/home/ftp/ ftphome2zpool destroy ftphome做到這邊,就算完成了,成功的把本來的資料複製過去。
如果想要改變zpool的名稱,可以用export跟import來改名稱。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。