zfs посмотрим состояние дисков sysctl kern.disks kern.disks: ada4 ada3 ada2 ada1 ada0 cd0 по умолчанию создается пул c линейной записью zpool create -f Pool1 /dev/ada1 /dev/ada2 df -h | grep Pool Pool1 19G 19K 19G 0% /Pool1 Создание пула - зеркала сначала удалим Pool1 zpool destroy Pool1 Создадим pool с зеркалированием zpool create -f pool2 mirror /dev/ada1 /dev/ada2 df -h | grep pool pool2 9.6G 19K 9.6G 0% /pool2 Создадим пул c spare диском сначала удалим Pool2 zpool destroy pool2 zpool create -f pool3 mirror /dev/ada1 /dev/ada2 spare /dev/ada3 zdb -DD mypool Сброс ошибок пула zpool clear tank посмотрим статус пулов zpool status zpool list Статусы могут быть следующие DEGRADED — Один или несколько устройства верхнего уровня находятся в нерабочем состоянии, т.к. были отключены. Но дальнейшее функционирование возможно. FAULTED — Один или несколько устройства верхнего уровня находятся в состоянии FAULT. Дальнейшее функционирование не возможно. OFFLINE — Пул был отключен командой «zpool offline». ONLINE — Пул находится в состоянии ONLINE и нормально функционирует. REMOVED — Устройство (Пул) было физически удалено при работающей системе. UNAVAIL — Устройство (Пул) недоступно Снова создадим пул с линейной записью создадим raidz из наших дисков Разберем pool zpool destroy pool3 zpool create pool4 raidz ada1 ada2 ada3 добавление удуление дисков к пулу создадим зеркалируемый пул zpool create -f pool5 mirror /dev/ada1 /dev/ada2 Добавление и удаление элементов (дисков) из пула, c зеркалирование осуществляется с помощью команд: zpool attach pool5 /dev/ada1 /dev/ada3 zpool detach pool5 /dev/ada1 /dev/ada3 для линейного пула предварительно удалив зеркальный пул zpool create -f pool6 /dev/ada1 /dev/ada2 Добавление и удаление элементов (дисков) из пула, не использующего зеркалирование осуществляется с помощью команд: zpool add pool6 /dev/ada3 zpool replace pool6 /dev/ada1 /dev/ada4 zpool detach pool6 /dev/ada1 Добавление кеширующих устроиств zpool add poolx cache /dev/adaX Преобразование линейного пула в пул с избыточностью удалим все созданные пулы zpool destroy pool6 zpool create -f pool7 /dev/ada1 zpool attach -f pool7 /dev/ada1 /dev/ada2 Работа с файловой системой zfs create pool7/fs mount -t zfs pool7/fs mnt монтирование в другую также можно указать точку монтирования для файловой системы zfs get mountpoint pool7/fs zfs set mountpoint=/mnt pool7/fs zfs get mountpoint pool7/fs активируем сжатие zfs set compression=gzip pool7/fs создадим файл ls -lR / > /root/ls.txt du -h /root/ls.txt cp /root/ls.txt /mnt/ du -h /mnt/ls.txt отключим компрессию zfs set compression=off pool7/fs cp /root/ls.txt /mnt/ls2.txt du -h /mnt/ls2.txt удалим файловую систему zfs destroy pool7/fs Ограничим систему в размере zfs create pool7/fs2 zfs set reservation=1G pool7/fs2 создадим квоту zfs set quota=1G pool7/fs2 dd if=/dev/zero of=/pool7/fs2/data.raw bs=10M zfs set quota=1.5G pool7/fs2 dd if=/dev/zero of=/pool7/fs2/data.raw bs=10M посмотрим df сделаем снапшот zfs snapshot pool7/fs2@snapname просмотрим снапшот zfs list -t snapshot находятся они ls /pool7/fs2/.zfs/snapshot/test/ создание клона из снапшота zfs clone pool7/fs2@test pool7/fs5 дедеупликация zfs set dedup=on pool7/fs3 проверка dd восстановление удаленного пула zpool create pool8 /dev/ada1 /dev/ada2 поместим файл на пул и удалим пул zpool destroy pool8 Посмотрим отстатки пулов zpool import -D zpool import -D 10897174341869309846 После того как мы превратили снапшот в клон, он больне не зависит от своего источника. И его можно удалять: # zfs promote myzfs/colin3 # zfs list NAME USED AVAIL REFER MOUNTPOINT myzfs 20.1M 139M 21K /myzfs myzfs/colin 0 159M 18K /myzfs/colin myzfs/colin3 18K 139M 18K /myzfs/colin3 myzfs/colin3@test 0 - 18K - # zfs destroy myzfs/colin # zfs list NAME USED AVAIL REFER MOUNTPOINT myzfs 147K 159M 21K /myzfs myzfs/colin3 18K 159M 18K /myzfs/colin3 myzfs/colin3@test 0 - 18K - удаление snapshot и оставление клона невозможно zfs create pool8/fs zfs snapshot pool8/fs@sn1 zfs clone pool8/fs@sn1 pool8/fs3 пробуем удалить snapshot zfs list -t snapshot zfs destroy pool8/fs@sn1 zfs promote pool8/fs3 перенос https://trofimoff.net/zfs-pamyatka просмотр информации о файле по inode zdb -dddd pool/fs 19234 Передача и получение ZFS ZFS send отправляет снапшот файловой системы, который может быть переслан в файл или на другую машину в потоковом режиме. ZFS receive принимает такой поток и записывает копию снапшота обратно в файловую систему ZFS. Это отлично подходит для создания бэкапов или отправки копий по сети (к примеру, через ssh) для копирования файловой системы. Для примера, создадим снапшот и сохраним его в файл: sudo zfs snapshot -r mypool/projects@snap2 sudo zfs send mypool/projects@snap2 > ~/projects-snap.zfs И вернем его обратно: sudo zfs receive -F mypool/projects-copy < ~/projects-snap.zfs перердача по сети http://docs.oracle.com/cd/E19253-01/820-0836/6nci36qjq/index.html работа с кешем http://docs.oracle.com/cd/E19253-01/820-0836/6nci36qap/index.html указание размера блока zfs set recordsize=64k mypool/myfs Восстановление пула zpool import