ZFS kasutamine operatsioonisüsteemiga Debian v. 11
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Sissejuhatus
TODO
Paigaldamine
2021 aasta talvel on root-on-zfs debian 11 tekitamiseks üks suhteliselt mugav võimalus
- kasutada skripti aadressilt https://github.com/hn/debian-buster-zfs-root (debian v. 10)
- uuendada süsteem v. 11 peale
- uuendada zfs pool
# zpool upgrade rpool
hn kasutaja skript töötab, aga tulemus erineb oluliselt https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Buster%20Root%20on%20ZFS.html juhendis kirjeldatud viisil saadud süsteemist
- fdisk layout
- dataset layout
- /tmp kataloog on no-exec
- ei ole eraldi bpool ja rpool, on kasutusel ainult rpool
- jne
Debian v. 11 zfs omadusel 2021 talvel
- sisaldab zfs v. 2.0 tarkvara
- os intalleris puudub zfs tugi
- zfs ja os vaheline integratsioon puudub (a la ubuntu zsys, zsysctl jms)
zfs põhine dual boot
zfs põhise sama pool datasettide abil tehtud dual boot kasutamiseks sobib
- lähtepunktiks on töötav süsteem
- moodustada juurfailisüsteemile vastavast datasetist snapshot ja kloon
# zfs snapshot rpool/ROOT/debian-buster@ss # zfs list -t snapshot # zfs clone rpool/ROOT/debian-buster@ss rpool/ROOT/debian-tmp
- grub bootloaderis muuta rpool/ROOT/debian-buster -> rpool/ROOT/debian-tmp (kahes kohas)
- bootida break=mount abil initramfs prompti
- eemaldada käesoleval juurikal mountpoint
zpool import rpool zfs set mountpoint=none rpool/ROOT/debian-buster
- lisada uuelda juurikale mountpoint
zfs set mountpoint=/ rpool/ROOT/debian-tmp zpool export rpool
- kuna /etc/fstab peale pole zfs ühenduskohta kirjeldatud, siis fstab failis muudatusi pole vaja teha
- bootida arvutit edasi, ctrl-d
- klooni jäädavalt kasutama jäädes tuleks teha promote ning eemaldada kloon ja snapshot
# zfs promote rpool/ROOT/debian-tmp
Tulemusena saab sisse logida, kasutada jne.
df -h vs zfs list
zpool list väljund
root@deb11-tookoht:~# zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT bpool 480M 153M 327M - - 13% 31% 1.00x ONLINE - rpool 62.5G 58.4G 4.07G - - 84% 93% 1.00x ONLINE -
zfs list väljund
root@deb11-tookoht:~# zfs list NAME USED AVAIL REFER MOUNTPOINT bpool 152M 200M 96K / bpool/BOOT 151M 200M 96K none bpool/BOOT/debian 151M 200M 112M legacy rpool 59.4G 1.11G 96K / rpool/ROOT 31.3G 1.11G 96K none rpool/ROOT/debian 31.3G 1.11G 30.7G / rpool/home 18.2G 1.11G 584M /home rpool/home/imre 17.5G 1.11G 17.5G /home/imre rpool/home/root 94.2M 1.11G 94.2M /root rpool/swap 4.25G 2.12G 3.24G - rpool/var 5.68G 1.11G 96K /var rpool/var/cache 5.58G 1.11G 5.58G /var/cache rpool/var/lib 96K 1.11G 96K /var/lib rpool/var/log 109M 1.11G 109M legacy rpool/var/spool 120K 1.11G 120K legacy
kus
- rpool kõigi non-volume tüüpi datasettide jaoks on sama palju vaba ruumi kuna zfs nö olemus mõttes asuvad nad ühe nö juur-dataset all
- rpool/swap on volume tüüpi dataset ja seetõttu eristub
- dataset USED tulba väärtus sisaldab kõigi alla jäävate datasettide väärtuste summat
Esitada ainult volume tüüpi datasetid
root@deb11-tookoht:~# zfs list -t volume NAME USED AVAIL REFER MOUNTPOINT rpool/swap 4.25G 2.12G 3.24G -
zfs list -o space väljund
root@deb11-tookoht:~# zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD bpool 200M 152M 0B 96K 0B 152M bpool/BOOT 200M 151M 0B 96K 0B 151M bpool/BOOT/debian 200M 151M 38.9M 112M 0B 0B rpool 1.11G 59.4G 0B 96K 0B 59.4G rpool/ROOT 1.11G 31.3G 0B 96K 0B 31.3G rpool/ROOT/debian 1.11G 31.3G 596M 30.7G 0B 0B rpool/home 1.11G 18.2G 0B 584M 0B 17.6G rpool/home/imre 1.11G 17.5G 0B 17.5G 0B 0B rpool/home/root 1.11G 94.2M 0B 94.2M 0B 0B rpool/swap 2.12G 4.25G 0B 3.24G 1.01G 0B rpool/var 1.11G 5.68G 0B 96K 0B 5.68G rpool/var/cache 1.11G 5.58G 0B 5.58G 0B 0B rpool/var/lib 1.11G 96K 0B 96K 0B 0B rpool/var/log 1.11G 109M 0B 109M 0B 0B rpool/var/spool 1.11G 120K 0B 120K 0B 0B
kus
- lisaks eelmisele 'zfs list' väljundile esitatakse '-o space' suvandi kasutamisel põhjalikum info
df -h väljund
root@deb11-tookoht:~# df -h Filesystem Size Used Avail Use% Mounted on udev 5.9G 0 5.9G 0% /dev tmpfs 1.2G 1.3M 1.2G 1% /run rpool/ROOT/debian 32G 31G 1.2G 97% / tmpfs 5.9G 572M 5.3G 10% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup rpool/var/spool 1.2G 128K 1.2G 1% /var/spool rpool/var/log 1.3G 109M 1.2G 9% /var/log bpool/BOOT/debian 312M 113M 200M 37% /boot /dev/vda2 505M 5.3M 499M 2% /boot/efi tmpfs 5.9G 715M 5.2G 12% /tmp rpool/home 1.7G 585M 1.2G 34% /home rpool/home/root 1.3G 95M 1.2G 8% /root rpool/var/cache 6.7G 5.6G 1.2G 84% /var/cache rpool/home/imre 19G 18G 1.2G 95% /home/imre tmpfs 1.2G 68K 1.2G 1% /run/user/1000
kus
- klassikalise df utiliidi väljund ei sobi hästi kõigi zfs detailide esitamiseks, aga ülevaate saab
- Size tulba väärtuseks esitatakse Used + Avail summa (mis on vastavalt zfs list -o space väljundi USEDDS + AVAIL)
2022 kevadel zfs kasutamine
Kasutada olevad plokkseadmed
# lsscsi -s [0:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sda 1.00TB [1:0:0:0] disk ATA Samsung SSD 860 2B6Q /dev/sdb 1.00TB [2:0:0:0] disk ATA Samsung SSD 870 1B6Q /dev/sdc 4.00TB [3:0:0:0] disk ATA Samsung SSD 870 1B6Q /dev/sdd 4.00TB [N:0:4:1] disk Samsung SSD 970 EVO Plus 2TB__1 /dev/nvme0n1 2.00TB [N:1:4:1] disk Samsung SSD 970 EVO Plus 2TB__1 /dev/nvme1n1 2.00TB
kus
# ls -l /dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6BCNS0RB016* lrwxrwxrwx 1 root root 9 May 14 10:22 /dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6BCNS0RB01688K -> ../../sdd lrwxrwxrwx 1 root root 9 May 14 10:22 /dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6BCNS0RB01694L -> ../../sdc
Moodustatakse ssd 870 seadmetest 2-way mirror
# zpool create -o ashift=13 zp_evo_870 mirror /dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6BCNS0RB01688K /dev/disk/by-id/ata-Samsung_SSD_870_EVO_4TB_S6BCNS0RB01694L # zpool set autoexpand=on zp_evo_870 # zfs set compression=zstd zp_evo_870 # zfs set mountpoint=none zp_evo_870
kus
- tark on kasutada füüsiliste seadmetele viitamiseks unikaalseid nimesid (alternatiiv oleks /dev/sdc ja /dev/sdd aga need väärtused sõltuvad ketaste sata portidesse kinnitamise järjekorrast jms)
- väidetavalt on samsung ssd ketaste puhul tark kasutada ashift=13 (ehk 8K plokk) väärtust - https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/
Misc
suuruste arvutamine
# a=0; poolname="sn_zfs_ssd"; for i in `zfs list -H -r $poolname -o name,used -p | grep "^$poolname/" | awk {'print $2'}`; do a=`echo $a + $i | bc`; done; sumg=`echo $a/1024^3 | bc`; echo $sumg 1645 # a=0; poolname="zp_evo_870"; for i in `zfs list -H -r $poolname -o name,used -p | grep "^$poolname/" | awk {'print $2'}`; do a=`echo $a + $i | bc`; done; sumg=`echo $a/1024^3 | bc`; echo $sumg 783
kopeerimine, variant 1
# for i in `zfs list -t volume -r sn_zfs_ssd | grep ^sn | awk {'print $1'} | cut -d "/" -f 2`; do echo $i; zfs send sn_zfs_ssd/$i | zfs receive zp_evo_870/$i; echo $?; done
kopeerimine, variant 2
Kasulikud lisamaterjalid
- TODO