====== ZFS ====== На сегодняшний день это лучшее решение для хранения данных. Среди удобств "прозрачная" поддержка сжатия, зеркалирование, простота администрирования и надежность (по сравнению с btrfs). ===== Зависание ZFS ===== В некоторых случаях ZFS может зависнуть. При этом команды zpool и zfs подвисают по вводу-выводу и не реагируют на Ctrl-C. В некоторых случаях помогает удаление кеша ZFS-пулов с последующей перезагрузкой и повторным импортом пула. mv /etc/zfs/zpool.cache ~/ reboot # A fEW MoMEntS lATeR ... zpool import tank ===== Export pool ==== Отмонтировать все диски: zpool export tank Если отмонтировать не удается, проверьте, какие процессы имеют открытые файлы на дисках из пула и завершите эти процессы. Например: > zpool export tank cannot unmount '/data': unmount failed > lsof /data/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 1350 root 6w REG 0,45 61420859 7766004 /data/easydaq.log > service xinetd stop > zpool export tank :!: Некоторые пользовательские сервисы тоже могут мешать отмонтировать /data (например, процесс [[docs:daq:usync|usync]]). Перед отмонтированием их тоже нужно остановить. ===== Import pool ==== :!: Если массив вставить в другой компьютер, у которого был массив с таким же именем, zfs зависнет. Чтобы этого избежать, удалите файл zpool.cache и перезагрузитесь: mv /etc/zfs/zpool.cache ~/ Примонтировать после того, как диски вставлены в другой компьютер: zpool import zpool list [[https://openzfs.github.io/openzfs-docs/Project%20and%20Community/FAQ.html#the-etc-zfs-zpool-cache-file|/etc/zfs/zpool.cache]] ===== Install ===== apt install -t buster-backports zfs-dkms zfsutils-linux modprobe zfs ===== Create ===== Пул data будет автоматом смонтирован в папку /data. При использовании диска целиком он будет отформатирован автоматически (с запасом в 8МБ на неразмеченное пространство). for a in x y; do wipefs /dev/sd${a}1 -a ; done zpool create -o ashift=13 -O compression=lz4 tank mirror /dev/sd{x,y}1 # добавляем еще два диска, получится аналог raid10 zpool add tank mirror /dev/sd{v,w}1 Расшариваем по сети. zfs create -o mountpoint=/data tank/data zfs set sharenfs="rw=172.22.0.0/16,root_squash,ro=*.ihep.su" tank/data zfs set xattr=sa tank/data zfs set acltype=posixacl tank/data zfs set atime=off tank/data zfs set relatime=off tank/data zfs share tank/data exportfs -v zfs set compression=lz4 tank/data zpool set autoexpand=on tank ===== No pools after reboot ===== [[https://superuser.com/questions/1248622/zfs-pool-disappears-after-reboot-on-debian-8 |solution]] options zfs zfs_autoimport_disable=0 ===== Performance ===== zpool iostat -lv zpool iostat -vq 1