# ZFS --- Справочник команд

- [ZFS --- Справочник команд](#zfs-----справочник-команд)
  - [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor)
  - [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor)
    - [Файловая система #{.anchor}](#файловая-система-anchor)
    - [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
    - [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)

Данный справочник является переводом [данной статьи](http://lildude.co.uk/zfs-cheatsheet). Авторы перевода: [Евгений Ратников](http://citkit.ru/articles/504/) и [Сгибнев Михаил](http://dreamcatcher.ru/). Огромное им спасибо за проделанную работу!

Не забывайте про страницы справки по командам работы с ZFS.

``` {tabindex="0"}
man zpool
man zfs
```

```bashss
man zpool
man zfs
```

Так как включить в пул (zpool) можно любые сущности файловой системы,
автор приводит примеры построения пулов и работы с ними с использованием
простых файлов. Итак, создадим несколько файлов, с которыми будем
работать подобно дискам.

``` {tabindex="0"}
cd /
mkfile 100m disk1 disk2 disk3 disk5
mkfile 50m disk4
```

Мы создали 5 «виртуальных дисков». Четыре имею размер по 100 Мб, а один
--- 50 Мб. Это пригодится для демонстрации работы с устройствами
(разделами) разной ёмкости.

## Работа с пулом ZFS [\#](#%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%bf%d1%83%d0%bb%d0%be%d0%bc-zfs){.anchor}

Теперь создадим простой пул без избыточности, затем проверим его размер
и использование.

``` {tabindex="0"}
zpool create myzfs /disk1 /disk2
zpool list

NAME          SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
myzfs         191M     94K    191M     0%  ONLINE     -
```

Созданы пул автоматически монтируется в каталог `/myzfs`. Посмотрим
более детальную информацию о нашем хранилище.

``` {tabindex="0"}
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: none requested
config:
        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          /disk1    ONLINE       0     0     0
          /disk2    ONLINE       0     0     0

errors: No known data errors
```

Из вывода видно, что в пул включены два диска. Пул без избыточности (не
mirror и не RAIDZ).

Теперь попробуем удалить только что созданный пул. Должны же мы это
уметь.

``` {tabindex="0"}
zpool destroy myzfs
zpool list

no pools available
```

Попробуем снова создать пул типа *MIRROR* (зеркало), но на этот раз
попытаемся включить в него диски разного размера. Zpool не даст нам
этого сделать. Чтобы безоговорочно создать такой пул, используйте опцию
`-f`, но в этом случае помните --- размер зеркала будет равен объему
наименьшего диска.

``` {tabindex="0"}
zpool create myzfs mirror /disk1 /disk4

invalid vdev specification
use '-f' to override the following errors:
mirror contains devices of different sizes
```

Создать зеркалируемое (*MIRROR*) хранилище можно на двух и более
устройствах. Сколько устройств в пуле типа `MIRROR` --- столько у нас
есть одинаковых копий данных.

``` {tabindex="0"}
zpool create myzfs mirror /disk1 /disk2 /disk3
zpool list
NAME          SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
myzfs        95.5M    112K   95.4M     0%  ONLINE     -

zpool status -v
  pool: myzfs
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0
            /disk3  ONLINE       0     0     0

errors: No known data errors
```

Вместо зеркалирования можно использовать массивы *RAID*. Для этого
необходимо создавать пул типа `raidz` вместо `mirror`. Подробнее в
[хендбуке](https://docs.freebsd.org/en/books/handbook/zfs/).

Давайте теперь исключим один из дисков из пула. Так как этот диск
относится к зеркалу (*MIRROR*), то при его исключении никаких проблем не
возникает.

``` {tabindex="0"}
zpool detach myzfs /disk3
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0

errors: No known data errors
```

Теперь давайте добавим к пулу новый диск. Если пул не был зеркальным, то
он им станет после добавления нового диска.

``` {tabindex="0"}
zpool attach myzfs /disk1 /disk3
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: resilver completed with 0 errors on Tue Sep 11 13:31:49 2007
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0
            /disk3  ONLINE       0     0     0

errors: No known data errors
```

А что будет, если попытаемся *удалить*, а не исключить устройство из
пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для
начала его нужно отключить.

``` {tabindex="0"}
zpool remove myzfs /disk3

cannot remove /disk3: only inactive hot spares can be removed

zpool detach myzfs /disk3
```

Теперь давайте попробуем добавить диск горячей замены (*hot spare*) к
нашему пулу.

``` {tabindex="0"}
zpool add myzfs spare /disk3
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0
        spares
          /disk3    AVAIL   

errors: No known data errors
```

А теперь удалим его из пула.

``` {tabindex="0"}
zpool remove myzfs /disk3
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0

errors: No known data errors
```

Теперь попробуем отключить один из дисков. Пока диск отключен, на него
не будет производиться запись и с него не будет производиться чтение.
Если использовать параметр `-t`, то при перезагрузке сервера диск
вернется в состояние онлайн автоматически.

``` {tabindex="0"}
zpool offline myzfs /disk1
zpool status -v

  pool: myzfs
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning 
        in a degraded state.
action: Online the device using 'zpool online' or replace the device 
        with 'zpool replace'.
 scrub: resilver completed with 0 errors on Tue Sep 11 13:39:25 2007
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       DEGRADED     0     0     0
          mirror    DEGRADED     0     0     0
            /disk1  OFFLINE      0     0     0
            /disk2  ONLINE       0     0     0

errors: No known data errors
```

Обратите внимание на состояние пула: **DEGRADED**

Теперь включим этот диск.

``` {tabindex="0"}
zpool online myzfs /disk1
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: resilver completed with 0 errors on Tue Sep 11 13:47:14 2007
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk1  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0

errors: No known data errors
```

Состояние пула снова **ONLINE**.

В данный момент в нашем пуле два диска: disc1 и disc2. Также в системе
имеется диск disc3, но он не подключен к пулу. Предположим, что disc1
вышел из строя и его нужно заменить на disc3.

``` {tabindex="0"}
zpool replace myzfs /disk1 /disk3
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: resilver completed with 0 errors on Tue Sep 11 13:25:48 2007
config:

        NAME        STATE     READ WRITE CKSUM
        myzfs       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            /disk3  ONLINE       0     0     0
            /disk2  ONLINE       0     0     0

errors: No known data errors
```

Периодически для исправления ошибок необходимо выполнять процедуру
чистки (scrubbing) для пулов типа *MIRROR* или *RAID-Z*. Данная
процедура находит ошибки в контрольных суммах и исправляет их. Также
восстанавливаются сбойные блоки.

**Данная операция слишком ресурсоемка! Следует выполнять ее только во
время наименьшей нагрузки на пул.**

``` {tabindex="0"}
zpool scrub myzfs
```

Если необходимо перенести пул в другую систему, то его необходимо
сначала экспортировать.

``` {tabindex="0"}
zpool export myzfs
pool list

no pools available
```

А затем импортировать в новой системе.

Если ключ `-d` не указать, то команда ищет `/dev/dsk`. Так как в данном
примере мы используем файлы, необходимо указать директорию с файлами
используемыми хранилищем.

``` {tabindex="0"}
zpool import -d / myzfs
zpool list

NAME          SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
myzfs        95.5M    114K   95.4M     0%  ONLINE     -
```

Обновление версии пула. Показать версию используемого пула. Флаг `-v`
показывает возможности, поддерживаемые данным пулом. Используйте флаг
`-a`, чтобы обновить все доступные пулы до новейшей из них версии.
Обновленные пулы больше не будут доступны из систем, на которых работают
более старые версии.

``` {tabindex="0"}
zpool upgrade
This system is currently running ZFS pool version 8.

All pools are formatted using this version.


zpool upgrade -v

This system is currently running ZFS pool version 8.

The following versions are supported:

VER  DESCRIPTION
---  --------------------------------------------------------
 1   Initial ZFS version
 2   Ditto blocks (replicated metadata)
 3   Hot spares and double parity RAID-Z
 4   zpool history
 5   Compression using the gzip algorithm
 6   pool properties
 7   Separate intent log devices
 8   Delegated administration
For more information on a particular version, including supported 
releases, see:

http://www.opensolaris.org/os/community/zfs/version/N

Where 'N' is the version number.
```

Если нужно получить статистику по операциям ввода/вывода пулов,
выполняем команду.

``` {tabindex="0"}
zpool iostat 5
               capacity     operations    bandwidth 
pool         used  avail   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
myzfs        112K  95.4M      0      4     26  11.4K
myzfs        112K  95.4M      0      0      0      0
myzfs        112K  95.4M      0      0      0      0
```

## Работа с файловой и другими системами ZFS [\#](#%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%be%d0%b9-%d0%b8-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d0%bc%d0%b8-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b0%d0%bc%d0%b8-zfs){.anchor}

### Файловая система [\#](#%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b0%d1%8f-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b0){.anchor}

Создадим файловую систему в нашем пуле. Затем проверим автомонтирование
новой файловой системы.

``` {tabindex="0"}
zfs create myzfs/colin
df -h

Filesystem   kbytes    used   avail capacity  Mounted on
...
myzfs/colin  64M        18K     63M       1%  /myzfs/colin
```

Получить список файловых систем ZFS можно следующей командой.

``` {tabindex="0"}
zfs list

NAME          USED  AVAIL  REFER  MOUNTPOINT
myzfs         139K  63.4M    19K  /myzfs
myzfs/colin    18K  63.4M    18K  /myzfs/colin
```

В данный момент в нашем пуле имеется одно зеркало, в которое входят два
диска: disc2 и disc3.

Давайте попробуем расширить наш пул. Попытаемся добавить к нему disc1

``` {tabindex="0"}
zpool add myzfs /disk1

invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: pool uses mirror and new vdev is file
```

Попытка добавления не удалась, т.к. она неоднозначно и при добавлении
диска к существующему зеркалу необходимо указать дополнительно один из
существующих в этом зеркале дисков, либо добавить минимум два диска для
формирования нового зеркала, которое будет входить в данный пул.

Добавим к пулу новое зеркало, состоящее из дисков: disc1 и disc5

``` {tabindex="0"}
zpool add myzfs mirror /disk1 /disk5
zpool status -v

  pool: myzfs
 state: ONLINE
 scrub: none requested
config:

        NAME         STATE     READ WRITE CKSUM
        myzfs        ONLINE       0     0     0
          mirror     ONLINE       0     0     0
            /disk3   ONLINE       0     0     0
            /disk2   ONLINE       0     0     0
          mirror     ONLINE       0     0     0
            /disk1   ONLINE       0     0     0
            /disk5   ONLINE       0     0     0

errors: No known data errors
```

Добавим теперь к пулу еще одну файловую систему и посмотрим, как это
отразится на размере файловых систем, входящих в пул.

``` {tabindex="0"}
zfs create myzfs/colin2
zfs list

NAME           USED  AVAIL  REFER  MOUNTPOINT
myzfs          172K   159M    21K  /myzfs
myzfs/colin     18K   159M    18K  /myzfs/colin
myzfs/colin2    18K   159M    18K  /myzfs/colin2
```

Обе файловые системы, входящие в пул, по объему равны всему пулу. В этом
заключается одно из преимуществ системы ZFS --- по умолчанию нет
никакого ограничения на файловые системы.

Чтобы явно управлять объемом файловых систем, можно прибегнуть к
резервированию --- выделению гарантированного объема для файловой
системы, либо квотированию --- ограничению файловой системы по
максимальному объему.

Давайте зарезервируем для файловой системы `/myzfs/colin` место в пуле,
равное 20 Мб. Остальные файловые системы, заполняя пул, в любом случае
оставят для этой файловой системы 20 Мб места.

``` {tabindex="0"}
zfs set reservation=20m myzfs/colin
zfs list -o reservation

RESERV
  none
   20M
  none
```

Теперь для файловой системы `/myzfs/colin2` установим квоту в 20 Мб. Это
означает, что данная файловая система не сможет занять в пуле более 20
Мб, даже если пул будет полностью свободным.

``` {tabindex="0"}
zfs set quota=20m myzfs/colin2
zfs list -o quota myzfs/colin myzfs/colin2

QUOTA
 none
  20M
```

Также для файловой системы `/myzfs/colin2` включим сжатие. Сжатие
достаточно эффективно работает на уровне ZFS практически без потерь
производительности (конечно же, при условии, что производительности
сервера достаточно). Вместо `compression=on` можно использовать
`compression=gzip`.

``` {tabindex="0"}
zfs set compression=on myzfs/colin2
zfs list -o compression

COMPRESS
     off
     off
      on
```

Чтобы сделать файловую систему доступной по протоколу NFS, достаточно
выполнить одну команду. Причем после перезагрузки сервера доступ к
файловой системе утерян не будет. Никаких дополнительных настроек
операционной системы производить не нужно.

``` {tabindex="0"}
zfs set sharenfs=on myzfs/colin2
zfs get sharenfs myzfs/colin2 

NAME           PROPERTY  VALUE     SOURCE
myzfs/colin2   sharenfs  on        local
```

Точно так же в одну команду ресурс можно сделать доступным по протоколу
SMB. Что пользователям ОС Windows наверняка пригодится.

``` {tabindex="0"}
zfs set sharesmb=on myzfs/colin2
zfs get sharesmb myzfs/colin2

NAME           PROPERTY  VALUE     SOURCE
myzfs/colin2   sharesmb  on        local
```

Для повышения надежности (если у вас обычный пул, без избыточности),
можно использовать следующую опцию файловой системы.

``` {tabindex="0"}
zfs set copies=2 myzfs/colin2
```

Теперь в файловой системе будет храниться по две копии каждого блока.
Это имеет смысл, если пул без избыточности (*mirror* / *raidz*).

### Snapshots (снепшоты или снимки состояния) [\#](#snapshots-%d1%81%d0%bd%d0%b5%d0%bf%d1%88%d0%be%d1%82%d1%8b-%d0%b8%d0%bb%d0%b8-%d1%81%d0%bd%d0%b8%d0%bc%d0%ba%d0%b8-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f){.anchor}

Создать снепшот файловой системы очень просто. Давайте создадим снепшот
для файловой системы `myzfs/colin` и назовем его *test*.

``` {tabindex="0"}
zfs snapshot myzfs/colin@test
zfs list

NAME               USED  AVAIL  REFER  MOUNTPOINT
myzfs             20.2M   139M    21K  /myzfs
myzfs/colin         18K   159M    18K  /myzfs/colin
myzfs/colin@test      0      -    18K  -
myzfs/colin2        18K  20.0M    18K  /myzfs/colin2
```

Если появится необходимость отката к снепшоту, достаточно выполнить одну
команду.

``` {tabindex="0"}
zfs rollback myzfs/colin@test
```

Снэпшот можно подмониторовать, как обычно. Например так.

``` {tabindex="0"}
mount -t zfs myzfs/colin@test /mnt
```

Даже можно клонировать файловую системы из снепшота в новую файловую
систему.

``` {tabindex="0"}
zfs clone myzfs/colin@test myzfs/colin3
zfs list

NAME               USED  AVAIL  REFER  MOUNTPOINT
myzfs             20.2M   139M    21K  /myzfs
myzfs/colin         18K   159M    18K  /myzfs/colin
myzfs/colin@test      0      -    18K  -
myzfs/colin2        18K  20.0M    18K  /myzfs/colin2
myzfs/colin3          0   139M    18K  /myzfs/colin3
```

Теперь давайте удалим наши файловые системы `/myzfs/colin` и
`/myzfs/colin2`

Сперва удалим пустую файловую систему `/myzfs/colin2`

``` {tabindex="0"}
zfs destroy myzfs/colin2
zfs list

NAME               USED  AVAIL  REFER  MOUNTPOINT
myzfs             20.1M   139M    22K  /myzfs
myzfs/colin         18K   159M    18K  /myzfs/colin
myzfs/colin@test      0      -    18K  -
myzfs/colin3          0   139M    18K  /myzfs/colin3
```

Файловая система удалилась без проблем. Теперь удалим файловую систему,
для которой существует снепшот.

``` {tabindex="0"}
zfs destroy myzfs/colin 

cannot destroy 'myzfs/colin': filesystem has children
use '-r' to destroy the following datasets:
myzfs/colin@test
```

Удаление невозможно, т.к. у файловой системы имеется дочерний объект.
Можно воспользоваться параметром `-r` чтобы удалить файловую систему
вместе со всеми дочерними объектами рекурсивно.

Мы можем отключить снепшот от `/myzfs/colin` и оставить его дочерним
только для `/myzfs/colin3`

``` {tabindex="0"}
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  -
```

Теперь сделанный ранее снепшот для `/myzfs/colin` стал дочерним
объектом `/myzfs/colin3`. Таким образом у файловой
системы `/myzfs/colin` больше нет дочерних объектов и ее можно без труда
разобрать (удалить).

Если вдруг понадобиться переименовать ранее созданную файловую систему
или снепшот, то можно воспользоваться следующими командами.

``` {tabindex="0"}
zfs rename myzfs/colin3 myzfs/bob
zfs list

NAME             USED  AVAIL  REFER  MOUNTPOINT
myzfs            153K   159M    21K  /myzfs
myzfs/bob         18K   159M    18K  /myzfs/bob
myzfs/bob@test      0      -    18K  -

zfs rename myzfs/bob@test myzfs/bob@newtest
zfs list

NAME                USED  AVAIL  REFER  MOUNTPOINT
myzfs               146K   159M    20K  /myzfs
myzfs/bob            18K   159M    18K  /myzfs/bob
myzfs/bob@newtest      0      -    18K  -
```

### Снова вернемся к пулам [\#](#%d1%81%d0%bd%d0%be%d0%b2%d0%b0-%d0%b2%d0%b5%d1%80%d0%bd%d0%b5%d0%bc%d1%81%d1%8f-%d0%ba-%d0%bf%d1%83%d0%bb%d0%b0%d0%bc){.anchor}

Получить полную информацию о пулах можно следующим образом.

``` {tabindex="0"}
zfs get all

NAME               PROPERTY       VALUE                  SOURCE
myzfs              type           filesystem             -
myzfs              creation       Tue Sep 11 14:21 2007  -
myzfs              used           146K                   -
myzfs              available      159M                   -
myzfs              referenced     20K                    -
[...]
```

Если пул нам более не нужен, можем его удалить. Однако, нельзя удалить
пул, в котором имеются активные файловые системы.

``` {tabindex="0"}
zpool destroy myzfs

cannot destroy 'myzfs': pool is not empty
use '-f' to force destruction anyway
```

Чтобы принудительно удалить пул, используйте параметр `-f` (не
выполняйте это сейчас. Пул нам еще понадобится далее)

``` {tabindex="0"}
zpool destroy -f myzfs
zpool status -v

no pools available
```

Отключить файловую систему от пула можно следующим образом.

``` {tabindex="0"}
zfs unmount myzfs/bob
df -h

myzfs                  159M    20K   159M     1%    /myzfs
```

Подключить файловую систему к пулу вот так.

``` {tabindex="0"}
zfs mount myzfs/bob
df -h

myzfs                  159M    20K   159M     1%    /myzfs
myzfs/bob              159M    18K   159M     1%    /myzfs/bob
```

Снепшот можно сделать и на удаленный ресурс (или другое место в
локальной системе).

``` {tabindex="0"}
zfs send myzfs/bob@newtest | ssh localhost zfs receive myzfs/backup
zfs list

NAME                   USED  AVAIL  REFER  MOUNTPOINT
myzfs                  172K   159M    20K  /myzfs
myzfs/backup            18K   159M    18K  /myzfs/backup
myzfs/backup@newtest      0      -    18K  -
myzfs/bob               18K   159M    18K  /myzfs/bob
myzfs/bob@newtest         0      -    18K  -
```

В данном случае снепшот передан `zfs receive` на локальном узле (в
демонстрационных целях). В реальной ситуации таким образом можно сделать
снепшот на другой узел сети.

Zpool ведет собственную историю всех команд. Посмотреть историю можно
следующим образом.

``` {tabindex="0"}
zpool history

History for 'myzfs':
2007-09-11.15:35:50 zpool create myzfs mirror /disk1 /disk2 /disk3
2007-09-11.15:36:00 zpool detach myzfs /disk3
2007-09-11.15:36:10 zpool attach myzfs /disk1 /disk3
2007-09-11.15:36:53 zpool detach myzfs /disk3
2007-09-11.15:36:59 zpool add myzfs spare /disk3
2007-09-11.15:37:09 zpool remove myzfs /disk3
2007-09-11.15:37:18 zpool offline myzfs /disk1
2007-09-11.15:37:27 zpool online myzfs /disk1
2007-09-11.15:37:37 zpool replace myzfs /disk1 /disk3
2007-09-11.15:37:47 zpool scrub myzfs
2007-09-11.15:37:57 zpool export myzfs
2007-09-11.15:38:05 zpool import -d / myzfs
2007-09-11.15:38:52 zfs create myzfs/colin
2007-09-11.15:39:27 zpool add myzfs mirror /disk1 /disk5
2007-09-11.15:39:38 zfs create myzfs/colin2
2007-09-11.15:39:50 zfs set reservation=20m myzfs/colin
2007-09-11.15:40:18 zfs set quota=20m myzfs/colin2
2007-09-11.15:40:35 zfs set compression=on myzfs/colin2
2007-09-11.15:40:48 zfs snapshot myzfs/colin@test
2007-09-11.15:40:59 zfs rollback myzfs/colin@test
2007-09-11.15:41:11 zfs clone myzfs/colin@test myzfs/colin3
2007-09-11.15:41:25 zfs destroy myzfs/colin2
2007-09-11.15:42:12 zfs promote myzfs/colin3
2007-09-11.15:42:26 zfs rename myzfs/colin3 myzfs/bob
2007-09-11.15:42:57 zfs destroy myzfs/colin
2007-09-11.15:43:23 zfs rename myzfs/bob@test myzfs/bob@newtest
2007-09-11.15:44:30 zfs receive myzfs/backup
```

Ну вот. Основные команды для работы с пулами ZFS усвоены.

Теперь можно удалить сам пул и файлы. Они нам больше не пригодятся.

::: {.flex .flex-wrap .justify-between}
:::

::: book-comments
::: {#disqus_thread}
:::

Please enable JavaScript to view the [comments powered by
Disqus.](https://disqus.com/?ref_noscript)

[comments powered by
[Disqus]{.logo-disqus}](https://disqus.com){.dsq-brlink}
:::
:::

::: book-toc-content
- [ZFS --- Справочник команд](#zfs-----справочник-команд)
  - [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor)
  - [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor)
    - [Файловая система #{.anchor}](#файловая-система-anchor)
    - [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
    - [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)
