From 9127c054e392a6e514baf020763802451092c798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BE=D0=BB=D0=B3=D0=B8=D0=B9=20=D0=90=D1=80=D1=82?= =?UTF-8?q?=D1=91=D0=BC?= Date: Wed, 3 Apr 2024 16:38:22 +0300 Subject: [PATCH] mod --- zfs_commands.md | 450 +++++++++++++++++++++++++++--------------------- 1 file changed, 252 insertions(+), 198 deletions(-) diff --git a/zfs_commands.md b/zfs_commands.md index 0bbdebd..88488d7 100644 --- a/zfs_commands.md +++ b/zfs_commands.md @@ -1,9 +1,9 @@ # ZFS --- Справочник команд - [ZFS --- Справочник команд](#zfs-----справочник-команд) - - [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor) - - [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor) - - [Файловая система #{.anchor}](#файловая-система-anchor) + - [Работа с пулом ZFS](#работа-с-пулом-zfs) + - [Работа с файловой и другими системами ZFS](#работа-с-файловой-и-другими-системами-zfs) + - [Файловая система](#файловая-система) - [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor) - [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor) @@ -11,181 +11,157 @@ Не забывайте про страницы справки по командам работы с ZFS. -``` {tabindex="0"} -man zpool -man zfs -``` - ```bash man zpool man zfs ``` -Так как включить в пул (zpool) можно любые сущности файловой системы, -автор приводит примеры построения пулов и работы с ними с использованием -простых файлов. Итак, создадим несколько файлов, с которыми будем -работать подобно дискам. +Так как включить в пул (zpool) можно любые сущности файловой системы, автор приводит примеры построения пулов и работы с ними с использованием простых файлов. Итак, создадим несколько файлов, с которыми будем работать подобно дискам. -``` {tabindex="0"} -cd / -mkfile 100m disk1 disk2 disk3 disk5 -mkfile 50m disk4 +```bash +[root@zfs]# cd / +[root@zfs /]# for i in {1..3}; do dd if=/dev/zero of=disk$i bs=1M count=1000; done +[root@zfs /]# dd if=/dev/zero of=disk4 bs=1M count=500 +[root@zfs /]# dd if=/dev/zero of=disk5 bs=1M count=1000 +[root@zfs /]# ``` -Мы создали 5 «виртуальных дисков». Четыре имею размер по 100 Мб, а один ---- 50 Мб. Это пригодится для демонстрации работы с устройствами -(разделами) разной ёмкости. +Мы создали 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} +## Работа с пулом ZFS -Теперь создадим простой пул без избыточности, затем проверим его размер -и использование. +Теперь создадим простой пул без избыточности, затем проверим его размер и использование. -``` {tabindex="0"} -zpool create myzfs /disk1 /disk2 -zpool list - -NAME SIZE USED AVAIL CAP HEALTH ALTROOT -myzfs 191M 94K 191M 0% ONLINE - +```bash +[root@zfs /]# zpool create myzfs /disk1 /disk2 +[root@zfs /]# ``` -Созданы пул автоматически монтируется в каталог `/myzfs`. Посмотрим -более детальную информацию о нашем хранилище. +```bash +[root@zfs /]# zpool list +NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT +myzfs 1.88G 110K 1.87G - - 0% 0% 1.00x ONLINE - +[root@zfs /]# +``` -``` {tabindex="0"} -zpool status -v +Созданы пул автоматически монтируется в каталог `/myzfs`. Посмотрим более детальную информацию о нашем хранилище. +```bash +[root@zfs /]# zpool status 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 +[root@zfs /]# ``` -Из вывода видно, что в пул включены два диска. Пул без избыточности (не -mirror и не RAIDZ). +Из вывода видно, что в пул включены два диска. Пул без избыточности (не mirror и не RAIDZ). -Теперь попробуем удалить только что созданный пул. Должны же мы это -уметь. - -``` {tabindex="0"} -zpool destroy myzfs -zpool list +Теперь попробуем удалить только что созданный пул. Должны же мы это уметь. +```bash +[root@zfs /]# zpool destroy myzfs +[root@zfs /]# zpool list no pools available +[root@zfs /]# ``` -Попробуем снова создать пул типа *MIRROR* (зеркало), но на этот раз -попытаемся включить в него диски разного размера. Zpool не даст нам -этого сделать. Чтобы безоговорочно создать такой пул, используйте опцию -`-f`, но в этом случае помните --- размер зеркала будет равен объему -наименьшего диска. - -``` {tabindex="0"} -zpool create myzfs mirror /disk1 /disk4 +Попробуем снова создать пул типа `MIRROR` (зеркало), но на этот раз попытаемся включить в него диски разного размера. Zpool не даст нам этого сделать. Чтобы безоговорочно создать такой пул, используйте опцию `-f`, но в этом случае помните --- размер зеркала будет равен объему наименьшего диска. +```bash +[root@zfs /]# zpool create myzfs mirror /disk1 /disk4 invalid vdev specification use '-f' to override the following errors: -mirror contains devices of different sizes +/disk1 is part of active pool 'myzfs' +[root@zfs /]# ``` -Создать зеркалируемое (*MIRROR*) хранилище можно на двух и более -устройствах. Сколько устройств в пуле типа `MIRROR` --- столько у нас -есть одинаковых копий данных. +Создать зеркалируемое (*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 +```bash +[root@zfs /]# zpool create -f myzfs mirror /disk1 /disk2 /disk3 +[root@zfs /]# zpool list +NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT +myzfs 960M 129K 960M - - 0% 0% 1.00x ONLINE - +[root@zfs /]# +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: none requested config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk1 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 /disk3 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` -Вместо зеркалирования можно использовать массивы *RAID*. Для этого -необходимо создавать пул типа `raidz` вместо `mirror`. Подробнее в -[хендбуке](https://docs.freebsd.org/en/books/handbook/zfs/). +Вместо зеркалирования можно использовать массивы `RAID`. Для этого необходимо создавать пул типа `raidz` вместо `mirror`. Подробнее . -Давайте теперь исключим один из дисков из пула. Так как этот диск -относится к зеркалу (*MIRROR*), то при его исключении никаких проблем не -возникает. - -``` {tabindex="0"} -zpool detach myzfs /disk3 -zpool status -v +Давайте теперь исключим один из дисков из пула. Так как этот диск относится к зеркалу `MIRROR`, то при его исключении никаких проблем не возникает. +```bash +[root@zfs /]# zpool detach myzfs /disk3 +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: none requested config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk1 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` -Теперь давайте добавим к пулу новый диск. Если пул не был зеркальным, то -он им станет после добавления нового диска. - -``` {tabindex="0"} -zpool attach myzfs /disk1 /disk3 -zpool status -v +Теперь давайте добавим к пулу новый диск. Если пул не был зеркальным, то он им станет после добавления нового диска. +```bash +[root@zfs /]# zpool attach myzfs /disk1 /disk3 +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: resilver completed with 0 errors on Tue Sep 11 13:31:49 2007 + scan: resilvered 152K in 00:00:00 with 0 errors on Wed Apr 3 16:10:22 2024 config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk1 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 /disk3 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` -А что будет, если попытаемся *удалить*, а не исключить устройство из -пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для -начала его нужно отключить. +А что будет, если попытаемся *удалить*, а не исключить устройство из пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для начала его нужно отключить. -``` {tabindex="0"} -zpool remove myzfs /disk3 - -cannot remove /disk3: only inactive hot spares can be removed - -zpool detach myzfs /disk3 +```bash +[root@zfs /]# zpool remove myzfs /disk3 +cannot remove /disk3: operation not supported on this type of pool +[root@zfs /]# zpool detach myzfs /disk3 +[root@zfs /]# ``` -Теперь давайте попробуем добавить диск горячей замены (*hot spare*) к -нашему пулу. +Теперь давайте попробуем добавить диск горячей замены `hot spare` к нашему пулу. -``` {tabindex="0"} +```bash zpool add myzfs spare /disk3 -zpool status -v +zpool status pool: myzfs state: ONLINE @@ -205,152 +181,208 @@ errors: No known data errors А теперь удалим его из пула. -``` {tabindex="0"} -zpool remove myzfs /disk3 -zpool status -v - +```bash +[root@zfs /]# zpool remove myzfs /disk3 +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: none requested config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk1 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` -Теперь попробуем отключить один из дисков. Пока диск отключен, на него -не будет производиться запись и с него не будет производиться чтение. -Если использовать параметр `-t`, то при перезагрузке сервера диск -вернется в состояние онлайн автоматически. - -``` {tabindex="0"} -zpool offline myzfs /disk1 -zpool status -v +Теперь попробуем отключить один из дисков. Пока диск отключен, на него не будет производиться запись и с него не будет производиться чтение. Если использовать параметр `-t`, то при перезагрузке сервера диск вернется в состояние онлайн автоматически. +```bash +[root@zfs /]# zpool offline myzfs /disk1 +[root@zfs /]# zpool status 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 + 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'. config: NAME STATE READ WRITE CKSUM myzfs DEGRADED 0 0 0 - mirror DEGRADED 0 0 0 + mirror-0 DEGRADED 0 0 0 /disk1 OFFLINE 0 0 0 /disk2 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` Обратите внимание на состояние пула: **DEGRADED** Теперь включим этот диск. -``` {tabindex="0"} -zpool online myzfs /disk1 -zpool status -v - +```bash +[root@zfs /]# zpool online myzfs /disk1 +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: resilver completed with 0 errors on Tue Sep 11 13:47:14 2007 + scan: resilvered 36K in 00:00:00 with 0 errors on Wed Apr 3 16:24:12 2024 config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk1 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` Состояние пула снова **ONLINE**. -В данный момент в нашем пуле два диска: disc1 и disc2. Также в системе -имеется диск disc3, но он не подключен к пулу. Предположим, что disc1 -вышел из строя и его нужно заменить на disc3. - -``` {tabindex="0"} -zpool replace myzfs /disk1 /disk3 -zpool status -v +В данный момент в нашем пуле два диска: disk1 и disk2. Также в системе имеется диск disk3, но он не подключен к пулу. Предположим, что disk1 вышел из строя и его нужно заменить на disk3. +```bash +[root@zfs /]# zpool replace myzfs /disk1 /disk3 +[root@zfs /]# zpool status pool: myzfs state: ONLINE - scrub: resilver completed with 0 errors on Tue Sep 11 13:25:48 2007 + scan: resilvered 264K in 00:00:00 with 0 errors on Wed Apr 3 16:26:44 2024 config: NAME STATE READ WRITE CKSUM myzfs ONLINE 0 0 0 - mirror ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 /disk3 ONLINE 0 0 0 /disk2 ONLINE 0 0 0 errors: No known data errors +[root@zfs /]# ``` -Периодически для исправления ошибок необходимо выполнять процедуру -чистки (scrubbing) для пулов типа *MIRROR* или *RAID-Z*. Данная -процедура находит ошибки в контрольных суммах и исправляет их. Также -восстанавливаются сбойные блоки. +Периодически для исправления ошибок необходимо выполнять процедуру чистки (scrubbing) для пулов типа *MIRROR* или *RAID-Z*. Данная процедура находит ошибки в контрольных суммах и исправляет их. Также восстанавливаются сбойные блоки. -**Данная операция слишком ресурсоемка! Следует выполнять ее только во -время наименьшей нагрузки на пул.** +**Данная операция слишком ресурсоемка! Следует выполнять ее только во время наименьшей нагрузки на пул.** -``` {tabindex="0"} -zpool scrub myzfs +```bash +[root@zfs /]# zpool scrub myzfs +[root@zfs /]# ``` -Если необходимо перенести пул в другую систему, то его необходимо -сначала экспортировать. - -``` {tabindex="0"} -zpool export myzfs -pool list +Если необходимо перенести пул в другую систему, то его необходимо сначала экспортировать. +```bash +[root@zfs /]# zpool export myzfs +[root@zfs /]# zpool list no pools available +[root@zfs /]# ``` А затем импортировать в новой системе. -Если ключ `-d` не указать, то команда ищет `/dev/dsk`. Так как в данном -примере мы используем файлы, необходимо указать директорию с файлами -используемыми хранилищем. +Если ключ `-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 - +```bash +[root@zfs /]# zpool import -d / myzfs +[root@zfs /]# zpool list +NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT +myzfs 960M 166K 960M - - 0% 0% 1.00x ONLINE - +[root@zfs /]# ``` -Обновление версии пула. Показать версию используемого пула. Флаг `-v` -показывает возможности, поддерживаемые данным пулом. Используйте флаг -`-a`, чтобы обновить все доступные пулы до новейшей из них версии. -Обновленные пулы больше не будут доступны из систем, на которых работают -более старые версии. +Обновление версии пула. Показать версию используемого пула. Флаг `-v` показывает возможности, поддерживаемые данным пулом. Используйте флаг `-a`, чтобы обновить все доступные пулы до новейшей из них версии. Обновленные пулы больше не будут доступны из систем, на которых работают более старые версии. -``` {tabindex="0"} -zpool upgrade -This system is currently running ZFS pool version 8. +```bash +[root@zfs /]# zpool upgrade +This system supports ZFS pool feature flags. -All pools are formatted using this version. +All pools are formatted using feature flags. +Every feature flags pool has all supported and requested features enabled. +[root@zfs /]# +[root@zfs /]# zpool upgrade -v +This system supports ZFS pool feature flags. -zpool upgrade -v +The following features are supported: -This system is currently running ZFS pool version 8. +FEAT DESCRIPTION +------------------------------------------------------------- +async_destroy (read-only compatible) + Destroy filesystems asynchronously. +empty_bpobj (read-only compatible) + Snapshots use less space. +lz4_compress + LZ4 compression algorithm support. +multi_vdev_crash_dump + Crash dumps to multiple vdev pools. +spacemap_histogram (read-only compatible) + Spacemaps maintain space histograms. +enabled_txg (read-only compatible) + Record txg at which a feature is enabled +hole_birth + Retain hole birth txg for more precise zfs send +extensible_dataset + Enhanced dataset functionality, used by other features. +embedded_data + Blocks which compress very well use even less space. +bookmarks (read-only compatible) + "zfs bookmark" command +filesystem_limits (read-only compatible) + Filesystem and snapshot limits. +large_blocks + Support for blocks larger than 128KB. +large_dnode + Variable on-disk size of dnodes. +sha512 + SHA-512/256 hash algorithm. +skein + Skein hash algorithm. +edonr + Edon-R hash algorithm. +userobj_accounting (read-only compatible) + User/Group object accounting. +encryption + Support for dataset level encryption +project_quota (read-only compatible) + space/object accounting based on project ID. +device_removal + Top-level vdevs can be removed, reducing logical pool size. +obsolete_counts (read-only compatible) + Reduce memory used by removed devices when their blocks are freed or remapped. +zpool_checkpoint (read-only compatible) + Pool state can be checkpointed, allowing rewind later. +spacemap_v2 (read-only compatible) + Space maps representing large segments are more efficient. +allocation_classes (read-only compatible) + Support for separate allocation classes. +resilver_defer (read-only compatible) + Support for deferring new resilvers when one is already running. +bookmark_v2 + Support for larger bookmarks +redaction_bookmarks + Support for bookmarks which store redaction lists for zfs redacted send/recv. +redacted_datasets + Support for redacted datasets, produced by receiving a redacted zfs send stream. +bookmark_written + Additional accounting, enabling the written# property(space written since a bookmark), and estimates of send stream sizes for incrementals from bookmarks. +log_spacemap (read-only compatible) + Log metaslab changes on a single spacemap and flush them periodically. +livelist (read-only compatible) + Improved clone deletion performance. +device_rebuild (read-only compatible) + Support for sequential mirror/dRAID device rebuilds +zstd_compress + zstd compression algorithm support. +draid + Support for distributed spare RAID -The following versions are supported: +The following legacy versions are also supported: VER DESCRIPTION --- -------------------------------------------------------- @@ -359,54 +391,76 @@ VER DESCRIPTION 3 Hot spares and double parity RAID-Z 4 zpool history 5 Compression using the gzip algorithm - 6 pool properties + 6 bootfs pool property 7 Separate intent log devices 8 Delegated administration -For more information on a particular version, including supported -releases, see: + 9 refquota and refreservation properties + 10 Cache devices + 11 Improved scrub performance + 12 Snapshot properties + 13 snapused property + 14 passthrough-x aclinherit + 15 user/group space accounting + 16 stmf property support + 17 Triple-parity RAID-Z + 18 Snapshot user holds + 19 Log device removal + 20 Compression using zle (zero-length encoding) + 21 Deduplication + 22 Received properties + 23 Slim ZIL + 24 System attributes + 25 Improved scrub stats + 26 Improved snapshot deletion performance + 27 Improved snapshot creation performance + 28 Multiple vdev replacements -http://www.opensolaris.org/os/community/zfs/version/N +For more information on a particular version, including supported releases, +see the ZFS Administration Guide. -Where 'N' is the version number. +[root@zfs /]# ``` -Если нужно получить статистику по операциям ввода/вывода пулов, -выполняем команду. +Если нужно получить статистику по операциям ввода/вывода пулов, выполняем команду. -``` {tabindex="0"} -zpool iostat 5 - capacity operations bandwidth -pool used avail read write read write +```bash +[root@zfs /]# zpool iostat 5 + capacity operations bandwidth +pool alloc free 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 +myzfs 135K 960M 0 1 4.17K 8.67K +myzfs 135K 960M 0 0 0 0 +myzfs 135K 960M 0 0 0 0 +myzfs 135K 960M 0 0 0 0 +myzfs 135K 960M 0 0 0 0 +^C +[root@zfs /]# ``` -## Работа с файловой и другими системами 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} +## Работа с файловой и другими системами ZFS -### Файловая система [\#](#%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 +```bash +[root@zfs /]# zfs create myzfs/colin +[root@zfs /]# df -Th +Файловая система Тип Размер Использовано Дост Использовано% Cмонтировано в ... -myzfs/colin 64M 18K 63M 1% /myzfs/colin +myzfs zfs 832M 128K 832M 1% /myzfs +myzfs/colin zfs 832M 128K 832M 1% /myzfs/colin +[root@zfs /]# ``` Получить список файловых систем ZFS можно следующей командой. -``` {tabindex="0"} -zfs list - -NAME USED AVAIL REFER MOUNTPOINT -myzfs 139K 63.4M 19K /myzfs -myzfs/colin 18K 63.4M 18K /myzfs/colin +```bash +[root@zfs /]# zfs list +NAME USED AVAIL REFER MOUNTPOINT +myzfs 171K 832M 24K /myzfs +myzfs/colin 24K 832M 24K /myzfs/colin +[root@zfs /]# ``` В данный момент в нашем пуле имеется одно зеркало, в которое входят два @@ -804,8 +858,8 @@ Disqus.](https://disqus.com/?ref_noscript) ::: book-toc-content - [ZFS --- Справочник команд](#zfs-----справочник-команд) - - [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor) - - [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor) - - [Файловая система #{.anchor}](#файловая-система-anchor) + - [Работа с пулом ZFS](#работа-с-пулом-zfs) + - [Работа с файловой и другими системами ZFS](#работа-с-файловой-и-другими-системами-zfs) + - [Файловая система](#файловая-система) - [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor) - [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)