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

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


zfs

**Это старая версия документа!**

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

zfs.1486678380.txt.gz · Последнее изменение: 2017/02/09 22:13 — 127.0.0.1

DokuWiki Appliance - Powered by TurnKey Linux