Я використовую ZFS в Linux як менеджер томів і засіб для забезпечення додаткових захистів та функціональності для традиційних файлових систем. Це включає в себе знімки на рівні блоку, реплікацію, дедупликацію, стиснення та розширене кешування до файлових систем XFS або ext4.
Дивіться: https://pthree.org/2012/12/21/zfs-administration-part-xiv-zvols/ для іншого пояснення.
У моєму найпоширенішому випадку використання я використовую функцію ZFS zvol, щоб створити рідкий об'єм на існуючому zpool. Властивості цього zvol можна встановити так само, як і звичайну файлову систему ZFS. На цьому етапі можна встановити такі властивості, як тип стиснення, розмір гучності, метод кешування тощо.
Створення цього zvol представляє блоковий пристрій для Linux, який можна відформатувати за допомогою обраної вами файлової системи. Використовуйте fdisk
або parted
для створення вашого розділу та mkfs
готового тома.
Встановіть це, і ви, по суті, маєте файлову систему, підкріплену zvol і з усіма її властивостями.
Ось мій робочий процес ...
Створіть zpool, що складається з чотирьох дисків:
Вам потрібна ashift=12
директива щодо типу використовуваних дисків. Назва zpool - "vol0" в цьому випадку.
zpool create -o ashift = 12 -f vol0 дзеркало scsi-AccOW140403AS1322043 scsi-AccOW140403AS1322042 дзеркало scsi-AccOW140403AS1322013 scsi-AccOW140403AS1322044
Встановіть початкові налаштування zpool:
я встановлюю autoexpand=on
на рівні zpool у випадку, якщо я коли-небудь замінюю диски більшими дисками або розширюю пул у налаштуваннях дзеркал ZFS . Зазвичай я не використовую ZFS raidz1 / 2/3 через низьку продуктивність та неможливість розширення zpool.
zpool set autoexpand=on vol0
Встановлення початкових властивостей файлової системи zfs:
Будь ласка, використовуйте lz4
алгоритм стиснення для нових установок ZFS. Добре залишати це на весь час.
zfs set compression=lz4 vol0
zfs set atime=off vol0
Створіть ZFS zvol:
Для ZFS в Linux дуже важливо використовувати великий розмір блоку. -o volblocksize=128k
тут абсолютно важливо. Цей -s
параметр створює рідкий zvol і не споживає місця в басейні, поки це не потрібно. Тут ви можете перевиконати, якщо ви добре знаєте свої дані. У цьому випадку в басейні є близько 444 ГБ корисного дискового простору, але я представляю XFS об'ємом 800 Гб.
zfs create -o volblocksize=128K -s -V 800G vol0/pprovol
Пристрій zvol розділу:
( повинен бути / dev / zd0 для першого zvol; / dev / zd16, / dev / zd32 тощо для наступних звуків )
fdisk /dev/zd0 # (create new aligned partition with the "c" and "u" parameters)
Створіть та змонтуйте файлову систему:
mkfs.xfs або ext4 на новоствореному розділі / dev / zd0p1.
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/zd0p1
Захопіть UUID blkid
та змініть його /etc/fstab
.
UUID=455cae52-89e0-4fb3-a896-8f597a1ea402 /ppro xfs noatime,logbufs=8,logbsize=256k 1 2
Змонтуйте нову файлову систему.
mount /ppro/
Результати ...
[root@Testa ~]# 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
Список файлової системи ZFS
[root@Testa ~]# 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
ZFS список zpool.
[root@Testa ~]# 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 - - - -
Властивості ZFS zvol ( прийняти до відома referenced
, compressratio
іvolsize
).
[root@Testa ~]# 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