valentin@computer:~/zfs-lab$ sudo zfs list flashbox1/data
NAME USED AVAIL REFER MOUNTPOINT
flashbox1/data 31.4M 518K 31.4M /mnt/flashbox1/data
valentin@computer:~/zfs-lab$ sudo zpool list flashbox1
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
flashbox1 64M 31.5M 32.5M - 27% 49% 1.00x ONLINE -
valentin@computer:~/zfs-lab$
Как така имам "достъпни" 518K, а имам "свободни" 32,5M?
Създадох ZFS контейнера така:
$ dd if=/dev/zero of=zbox1.1.img bs=80M count=1
$ dd if=/dev/zero of=zbox1.2.img bs=80M count=1
$ dd if=/dev/zero of=zbox1.3.img bs=80M count=1
$ sudo zpool create -m /mnt/flashbox1 flashbox1 mirror /home/valentin/zfs-lab/zbox1.1.img /home/valentin/zfs-lab/zbox1.2.img /home/valentin/zfs-lab/zbox1.3.img
sudo zfs create -o relatime=on -o compression=lz4 -o mountpoint=/mnt/flashbox1/data flashbox1/data
Проверих файловете - има много нули (не съм ги броил, вероятно са повече от половината байтове). И се компресират добре (при положение, че контейнерът е пълен с компресирани файлове!):
$ 7z a test.7z zbox1.1.img
$ ls test.7z zbox1.1.img -lah
-rw-rw-r-- 1 valentin valentin 33M Jul 19 01:15 test.7z
-rw-rw-r-- 1 valentin valentin 80M Jul 19 00:40 zbox1.1.img
Настройките са:
$ sudo zfs get all flashbox1
NAME PROPERTY VALUE SOURCE
flashbox1 type filesystem -
flashbox1 creation Wed Jul 19 0:22 2017 -
flashbox1 used 31.5M -
flashbox1 available 518K -
flashbox1 referenced 19K -
flashbox1 compressratio 1.00x -
flashbox1 mounted yes -
flashbox1 quota none default
flashbox1 reservation none default
flashbox1 recordsize 128K default
flashbox1 mountpoint /mnt/flashbox1 local
flashbox1 sharenfs off default
flashbox1 checksum on default
flashbox1 compression off default
flashbox1 atime on default
flashbox1 devices on default
flashbox1 exec on default
flashbox1 setuid on default
flashbox1 readonly off default
flashbox1 zoned off default
flashbox1 snapdir hidden default
flashbox1 aclinherit restricted default
flashbox1 canmount on default
flashbox1 xattr on default
flashbox1 copies 1 default
flashbox1 version 5 -
flashbox1 utf8only off -
flashbox1 normalization none -
flashbox1 casesensitivity sensitive -
flashbox1 vscan off default
flashbox1 nbmand off default
flashbox1 sharesmb off default
flashbox1 refquota none default
flashbox1 refreservation none default
flashbox1 primarycache all default
flashbox1 secondarycache all default
flashbox1 usedbysnapshots 0 -
flashbox1 usedbydataset 19K -
flashbox1 usedbychildren 31.5M -
flashbox1 usedbyrefreservation 0 -
flashbox1 logbias latency default
flashbox1 dedup off default
flashbox1 mlslabel none default
flashbox1 sync standard default
flashbox1 refcompressratio 1.00x -
flashbox1 written 19K -
flashbox1 logicalused 31.7M -
flashbox1 logicalreferenced 9.50K -
flashbox1 filesystem_limit none default
flashbox1 snapshot_limit none default
flashbox1 filesystem_count none default
flashbox1 snapshot_count none default
flashbox1 snapdev hidden default
flashbox1 acltype off default
flashbox1 context none default
flashbox1 fscontext none default
flashbox1 defcontext none default
flashbox1 rootcontext none default
flashbox1 relatime off default
flashbox1 redundant_metadata all default
flashbox1 overlay off default
Идеята ми е да ползвам флашки и компактдискове за архиви. Флашките са извести с това, че понякога губят информация (data rot), ако са оставени седмици или повече без захранване (имал съм такъв случай).
До сега си записвах архивните файлове по няколко пъти (това ми е навик от времето когато ползвах дискети) и им слагам контролни суми, които проверявам. Обаче сега искам по-модерно решение - ZFS е такова.
Само че не мога да разбера как да накарам ZFS контейнера да ми разреши да ползвам цялото свободно място.
Това с трите файла 80M е практично в случай, че се ползва флашка, форматирана под FAT32 и се ползва и за други неща (между другото слагам и тези архиви).
Идеята ми е да направя файлове с размера на оптичен диск и директно да ги записвам на диска - без ISO 9660 (файловата система, която се ползва за оптични дискове). Това с 80-те мегабайтовите файлове е за proof of concept и за архивиране на дребни неща на флашки. Би било обаче доста неефективно ако не успея да направя така, че да не се губи половината пространство.
Нямам snapshots:
$ sudo zfs list -o space -r flashbox1
NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD
flashbox1 502K 31.5M 0 19K 0 31.5M
flashbox1/data 502K 31.4M 0 31.4M 0 0
Това нещо "USEDDS" не съм сигурен какво е.