Řešení 1:
Používám ZFS na Linuxu jako správce svazků a prostředek k poskytování dodatečné ochrany a funkčnosti tradičním souborovým systémům. To zahrnuje přenos snímků na úrovni bloků, replikaci, deduplikaci, kompresi a pokročilé ukládání do mezipaměti do souborových systémů XFS nebo ext4.
Viz:https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ pro další vysvětlení.
V mém nejčastějším případě použití využívám funkci ZFS zvol k vytvoření řídkého svazku na existujícím zpoolu. Vlastnosti tohoto zvol lze nastavit stejně jako normální souborový systém ZFS. V tomto okamžiku můžete nastavit vlastnosti, jako je typ komprese, velikost svazku, metoda ukládání do mezipaměti atd.
Vytvoření tohoto zvol představuje blokové zařízení pro Linux, které lze naformátovat souborovým systémem podle vašeho výběru. Použijte fdisk
nebo parted
k vytvoření oddílu a mkfs
hotový svazek.
Připojte toto a v podstatě máte souborový systém podporovaný zvol a se všemi jeho vlastnostmi.
Zde je můj pracovní postup...
Vytvořte zpool složený ze čtyř disků:
Budete chtít ashift=12
direktiva pro typ disků, které používáte. Název zpoolu je v tomto případě "vol0".
zpool create -o ashift=12 -f vol0 mirrorscsi-AccOW140403AS1322043scsi-AccOW140403AS1322042 mirrorscsi-AccOW140403AS1322013scsi-AccOW140403AS140403AS1320403
Nastavit počáteční nastavení zpoolu:
Nastavil jsem autoexpand=on
na úrovni zpool pro případ, že někdy vyměním disky za větší jednotky nebo rozšířím fond v zrcadlech ZFS založit. Obvykle nepoužívám ZFS raidz1/2/3 kvůli slabému výkonu a nemožnosti rozšířit zpool.
zpool set autoexpand=on vol0
Nastavit počáteční vlastnosti souborového systému zfs:
Použijte prosím lz4
kompresní algoritmus pro nové instalace ZFS. Je v pořádku nechat ji zapnutou po celou dobu.
zfs set compression=lz4 vol0
zfs set atime=off vol0
Vytvořit ZFS zvol:
Pro ZFS na Linuxu je velmi důležité, abyste používali velkou velikost bloku. -o volblocksize=128k
je zde naprosto zásadní. -s
volba vytváří řídký zvol a nespotřebovává místo ve fondu, dokud to není potřeba. Pokud dobře znáte svá data, můžete se zde převážit. V tomto případě mám ve fondu asi 444 GB použitelného místa na disku, ale XFS předkládám svazek 800 GB.
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
Oddíl zvol zařízení:
(mělo by být /dev/zd0 pro první zvol; /dev/zd16, /dev/zd32 atd. pro následující zvols )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
Vytvořte a připojte systém souborů:
mkfs.xfs nebo ext4 na nově vytvořeném oddílu /dev/zd0p1.
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
Získejte UUID s blkid
a upravte /etc/fstab
.
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
Připojte nový souborový systém.
mount /ppro/
Výsledky...
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sde2 20G 8.9G 9.9G 48% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sde1 485M 63M 397M 14% /boot
/dev/sde7 2.0G 68M 1.9G 4% /tmp
/dev/sde3 12G 2.6G 8.7G 24% /usr
/dev/sde6 6.0G 907M 4.8G 16% /var
/dev/zd0p1 800G 398G 403G 50% /ppro <-- Compressed ZFS-backed XFS filesystem.
vol0 110G 256K 110G 1% /vol0
Výpis souborového systému ZFS.
[[email protected] ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
vol0 328G 109G 272K /vol0
vol0/pprovol 326G 109G 186G - <-- The actual zvol providing the backing for XFS.
vol1 183G 817G 136K /vol1
vol1/images 183G 817G 183G /images
seznam ZFS zpool.
[[email protected] ~]# zpool list -v
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
vol0 444G 328G 116G 73% 1.00x ONLINE -
mirror 222G 164G 58.1G -
scsi-AccOW140403AS1322043 - - - -
scsi-AccOW140403AS1322042 - - - -
mirror 222G 164G 58.1G -
scsi-AccOW140403AS1322013 - - - -
scsi-AccOW140403AS1322044 - - - -
Vlastnosti ZFS zvol (vezměte na vědomí referenced
, compressratio
a volsize
).
[[email protected] ~]# zfs get all vol0/pprovol
NAME PROPERTY VALUE SOURCE
vol0/pprovol type volume -
vol0/pprovol creation Sun May 11 15:27 2014 -
vol0/pprovol used 326G -
vol0/pprovol available 109G -
vol0/pprovol referenced 186G -
vol0/pprovol compressratio 2.99x -
vol0/pprovol reservation none default
vol0/pprovol volsize 800G local
vol0/pprovol volblocksize 128K -
vol0/pprovol checksum on default
vol0/pprovol compression lz4 inherited from vol0
vol0/pprovol readonly off default
vol0/pprovol copies 1 default
vol0/pprovol refreservation none default
vol0/pprovol primarycache all default
vol0/pprovol secondarycache all default
vol0/pprovol usedbysnapshots 140G -
vol0/pprovol usedbydataset 186G -
vol0/pprovol usedbychildren 0 -
vol0/pprovol usedbyrefreservation 0 -
vol0/pprovol logbias latency default
vol0/pprovol dedup off default
vol0/pprovol mlslabel none default
vol0/pprovol sync standard default
vol0/pprovol refcompressratio 3.32x -
vol0/pprovol written 210M -
vol0/pprovol snapdev hidden default
Řešení 2:
Musíte také povolit discard na souborovém systému ext4. Bez vyřazení zfs nezíská zpět místo při odstranění souborů. To může vést k velkým prostorovým nesrovnalostem mezi tím, co hlásí souborový systém ext4 a hlášením objemu zfs.