Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tips:zfs [2017/01/31 10:16] – [remote replication] scipio | tips:zfs [2023/01/18 11:22] (current) – sscipioni | ||
---|---|---|---|
Line 36: | Line 36: | ||
zpool create lxd /dev/sda4 | zpool create lxd /dev/sda4 | ||
</ | </ | ||
+ | |||
+ | ===== docker ===== | ||
+ | |||
+ | < | ||
+ | systemctl stop docker | ||
+ | rm -fR / | ||
+ | zfs create -o mountpoint=/ | ||
+ | zfs create -o mountpoint=/ | ||
+ | systemctl start docker | ||
+ | </ | ||
+ | |||
+ | / | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | [ | ||
+ | {" | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
===== libvirt ===== | ===== libvirt ===== | ||
Line 41: | Line 68: | ||
add ZFS pool to libvirt | add ZFS pool to libvirt | ||
< | < | ||
+ | # in bionic | ||
+ | apt install libvirt-daemon-driver-storage-zfs && systemctl restart libvirtd | ||
+ | |||
# create zfs filesystem | # create zfs filesystem | ||
zfs create rpool/ | zfs create rpool/ | ||
- | virsh pool-define-as --name zfspool --source-name rpool --type zfs | + | virsh pool-define-as --name zfspool --source-name rpool/ |
virsh pool-start zfspool | virsh pool-start zfspool | ||
virsh pool-autostart zfspool | virsh pool-autostart zfspool | ||
Line 59: | Line 89: | ||
</ | </ | ||
+ | add volume to instance | ||
+ | |||
+ | create file mydevice.xml | ||
+ | < | ||
+ | <disk type=' | ||
+ | <driver name=' | ||
+ | <source dev='/ | ||
+ | <target dev=' | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | add volume | ||
+ | < | ||
+ | virsh attach-device --config juju-controller mydevice.xml | ||
+ | </ | ||
+ | |||
+ | ===== virtualbox ===== | ||
+ | |||
+ | create volume | ||
+ | <code bash> | ||
+ | zfs create -V 50G rpool/win7 | ||
+ | </ | ||
+ | |||
+ | create vmdk file that point / | ||
+ | < | ||
+ | VBoxManage internalcommands createrawvmdk -filename / | ||
+ | </ | ||
+ | |||
+ | now use / | ||
===== tuning ===== | ===== tuning ===== | ||
Line 70: | Line 129: | ||
<code bash> | <code bash> | ||
zpool export rpool | zpool export rpool | ||
- | zfs import -R /mnt rpool | + | zpool import -R /mnt rpool |
+ | |||
+ | umount everything inside /mnt | ||
zfs mount rpool/ | zfs mount rpool/ | ||
Line 98: | Line 160: | ||
destination volume cannot be exists | destination volume cannot be exists | ||
<code bash> | <code bash> | ||
- | zfs snap storage/ | + | zfs send -R storage/ |
- | zfs send storage/ | + | |
# zfs destroy storage/ | # zfs destroy storage/ | ||
</ | </ | ||
Line 112: | Line 173: | ||
zfs get volsize, | zfs get volsize, | ||
</ | </ | ||
+ | |||
+ | ==== syncoid ==== | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | < | ||
+ | apt install pv lzop mbuffer | ||
+ | wget https:// | ||
+ | chmod +x / | ||
+ | </ | ||
+ | |||
+ | using from server zfs1 (to server zfs2) | ||
+ | < | ||
+ | syncoid rpool/ | ||
+ | </ | ||
+ | ===== incremental backup ===== | ||
+ | |||
+ | consider a FS rpool/test | ||
+ | |||
+ | <code bash> | ||
+ | FS=rpool/ | ||
+ | |||
+ | # make a first snapshot | ||
+ | zfs snapshot rpool/ | ||
+ | </ | ||
+ | |||
+ | if files are added to FS used space of FS grow | ||
+ | <code bash> | ||
+ | sync && zfs list -t all -r $FS | ||
+ | GROW ---> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | if files are changed in FS used space of SNAP grow | ||
+ | <code bash> | ||
+ | sync && zfs list -t all -r $FS | ||
+ | | ||
+ | GROW ---> | ||
+ | </ | ||
+ | |||
+ | |||
+ | ------> CRYPTOLOCKER grows SNAP | ||
+ | |||
+ | check crypto locker every day | ||
+ | <code bash> | ||
+ | LIMIT_MB=100 | ||
+ | FS=rpool/ | ||
+ | |||
+ | USED=$(zfs get -Hp used $FS@01 | cut -f3) | ||
+ | if [ $USED -gt $(($LIMIT_MB*1000*1000)) ]; then | ||
+ | echo " | ||
+ | |||
+ | fi | ||
+ | </ | ||
+ | |||
+ | ===== swap ===== | ||
+ | |||
+ | < | ||
+ | zfs create -V 4G -b $(getconf PAGESIZE) -o compression=zle \ | ||
+ | -o logbias=throughput -o sync=always \ | ||
+ | -o primarycache=metadata -o secondarycache=none \ | ||
+ | -o com.sun: | ||
+ | |||
+ | mkswap -f / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | echo / | ||
+ | swapon -av | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||