Инструменты пользователя

Инструменты сайта


howto:sysadmin:zfs

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
howto:sysadmin:zfs [2019/11/08 17:19]
sergey создано
howto:sysadmin:zfs [2024/11/03 10:50] (текущий)
Строка 1: Строка 1:
 ====== ZFS ====== ====== 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
 +  ​
 +
 +Если отмонтировать не удается,​ проверьте,​ какие процессы имеют открытые файлы на дисках из пула и завершите эти процессы.
 +
 +Например: ​
 +<code bash>
 +   > 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
 +</​code>​
 +
 +:!: Некоторые пользовательские сервисы тоже могут мешать отмонтировать /data (например,​ процесс [[docs:​daq:​usync|usync]]). Перед отмонтированием их тоже нужно остановить.
 +===== Import pool ====
 +:!: Если массив вставить в другой компьютер,​ у которого был массив с таким же именем,​ zfs зависнет.
 +
 +Чтобы этого избежать,​ удалите файл zpool.cache и перезагрузитесь:​
 +  mv /​etc/​zfs/​zpool.cache ~/
 +
 +
 +Примонтировать после того, как диски вставлены в другой компьютер:​
 +  zpool import <id>
 +  zpool list
 +
 +
 +[[https://​openzfs.github.io/​openzfs-docs/​Project%20and%20Community/​FAQ.html#​the-etc-zfs-zpool-cache-file|/​etc/​zfs/​zpool.cache]]
 +===== Install =====
 <​code>​ <​code>​
   apt install -t buster-backports zfs-dkms zfsutils-linux   apt install -t buster-backports zfs-dkms zfsutils-linux
   modprobe zfs   modprobe zfs
 +</​code>​
  
-  ​for a in c d; do wipefs /​dev/​sd${a}1 -a ; done +===== Create ===== 
-  zpool create tank mirror /dev/sdc1 /dev/sdd1+Пул data будет автоматом смонтирован в папку /data. 
 +При использовании диска целиком он будет отформатирован автоматически (с запасом в 8МБ на неразмеченное пространство). 
 + 
 +<​code>​ 
 +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 
 +</​code>​ 
 + 
 +Расшариваем по сети. 
 +<​code>​
   zfs create -o mountpoint=/​data tank/data   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 sharenfs="​rw=172.22.0.0/​16,​root_squash,​ro=*.ihep.su"​ tank/data
   zfs set xattr=sa 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   zfs share tank/data
Строка 15: Строка 72:
   ​   ​
   zfs set compression=lz4 tank/data   zfs set compression=lz4 tank/data
-  ​zfs set atime=off tank/data+  ​ 
 +  zpool set autoexpand=on tank
 </​code>​ </​code>​
 +
 +===== No pools after reboot =====
 +[[https://​superuser.com/​questions/​1248622/​zfs-pool-disappears-after-reboot-on-debian-8
 +|solution]]
 +
 +<file conf /​etc/​modprobe.d/​zfs.conf>​
 +options zfs zfs_autoimport_disable=0
 +</​file>​
 +
 +===== Performance =====
 +  zpool iostat -lv
 +  zpool iostat -vq 1
 +
 +
howto/sysadmin/zfs.1573222777.txt.gz · Последние изменения: 2019/11/08 17:19 — sergey