zfsのsnapshotが以前から気になっていたもののなかなか手が出せなかったが、
ubuntu 19.04から/もzfsに出来るようになるみたいなので勉強。
参考リンク。
- 全般
https://qiita.com/juze9/items/563b67b9f2d67d1fa270
https://tech.nosuz.jp/2016/05/ubuntu-16-04-zfs/ - snapshot
https://docs.oracle.com/cd/E19253-01/819-6260/gbcya/index.html - create時のオプション
https://docs.oracle.com/cd/E19253-01/819-6260/gazss/index.html - zfsの圧縮形式ごとの圧縮率と速度 まあlz4を指定しておけばよいかな。
https://www.nabe-intl.co.jp/takeruboost/zfs%E3%81%AE%E5%9C%A7%E7%B8%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%81%95%E3%81%84%E3%81%AB%E3%82%88%E3%82%8B%E5%9C%A7%E7%B8%AE%E7%8E%87%E3%80%81%E8%A8%88%E7%AE%97%E9%80%9F/
以下手順。
使うディスクを探す。名前が変わってしまうと困るんので/dev/sdaなどではなく、以下から探す。
HDDならataから始まる名前みたい。XXXXXとする。
ls /dev/disk/by-id/
プール作る。よくわからないがzfs createしなくてもこれだけで/tankにマウントされるみたい。
zpool create -o ashift=12 tank XXXXX
zfs set snapdir=visible tank
zfs set compression=lz4 tank
zfs set atime=off tank
zfs set dedup=on tank #★重複排除。安定性が怪しいかもしれないので使うなら慎重に。
ファイルシステム作ってマウント。
zfs create tank/home
移行。
zfs set mountpoint=/home_temp tank/home
cp -a /home/* /home_temp/
mv /home /home_old
zfs set mountpoint=/home tank/home
いろいろ確認。
zpool list
zpool status
zpool get all
zfs list -t all
zfs get all
スナップショット。作ると/home/.zfs以下で確認出来る。
zfs snapshot tank/home@snap_$(date +%Y%m%d_%H%M%S)
zfs list -t all