mod
parent
17a5106e39
commit
9127c054e3
446
zfs_commands.md
446
zfs_commands.md
|
@ -1,9 +1,9 @@
|
||||||
# ZFS --- Справочник команд
|
# ZFS --- Справочник команд
|
||||||
|
|
||||||
- [ZFS --- Справочник команд](#zfs-----справочник-команд)
|
- [ZFS --- Справочник команд](#zfs-----справочник-команд)
|
||||||
- [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor)
|
- [Работа с пулом ZFS](#работа-с-пулом-zfs)
|
||||||
- [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor)
|
- [Работа с файловой и другими системами ZFS](#работа-с-файловой-и-другими-системами-zfs)
|
||||||
- [Файловая система #{.anchor}](#файловая-система-anchor)
|
- [Файловая система](#файловая-система)
|
||||||
- [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
|
- [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
|
||||||
- [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)
|
- [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)
|
||||||
|
|
||||||
|
@ -11,181 +11,157 @@
|
||||||
|
|
||||||
Не забывайте про страницы справки по командам работы с ZFS.
|
Не забывайте про страницы справки по командам работы с ZFS.
|
||||||
|
|
||||||
``` {tabindex="0"}
|
|
||||||
man zpool
|
|
||||||
man zfs
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
man zpool
|
man zpool
|
||||||
man zfs
|
man zfs
|
||||||
```
|
```
|
||||||
|
|
||||||
Так как включить в пул (zpool) можно любые сущности файловой системы,
|
Так как включить в пул (zpool) можно любые сущности файловой системы, автор приводит примеры построения пулов и работы с ними с использованием простых файлов. Итак, создадим несколько файлов, с которыми будем работать подобно дискам.
|
||||||
автор приводит примеры построения пулов и работы с ними с использованием
|
|
||||||
простых файлов. Итак, создадим несколько файлов, с которыми будем
|
|
||||||
работать подобно дискам.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
cd /
|
[root@zfs]# cd /
|
||||||
mkfile 100m disk1 disk2 disk3 disk5
|
[root@zfs /]# for i in {1..3}; do dd if=/dev/zero of=disk$i bs=1M count=1000; done
|
||||||
mkfile 50m disk4
|
[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 Мб, а один
|
Мы создали 5 «виртуальных дисков». Четыре имеют размер по 100 Мб, а один - 50 Мб. Это пригодится для демонстрации работы с устройствами (разделами) разной ёмкости.
|
||||||
--- 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"}
|
```bash
|
||||||
zpool create myzfs /disk1 /disk2
|
[root@zfs /]# zpool create myzfs /disk1 /disk2
|
||||||
zpool list
|
[root@zfs /]#
|
||||||
|
|
||||||
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
|
|
||||||
myzfs 191M 94K 191M 0% ONLINE -
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Созданы пул автоматически монтируется в каталог `/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"}
|
Созданы пул автоматически монтируется в каталог `/myzfs`. Посмотрим более детальную информацию о нашем хранилище.
|
||||||
zpool status -v
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@zfs /]# zpool status
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
state: ONLINE
|
||||||
scrub: none requested
|
|
||||||
config:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
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
|
no pools available
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Попробуем снова создать пул типа *MIRROR* (зеркало), но на этот раз
|
Попробуем снова создать пул типа `MIRROR` (зеркало), но на этот раз попытаемся включить в него диски разного размера. Zpool не даст нам этого сделать. Чтобы безоговорочно создать такой пул, используйте опцию `-f`, но в этом случае помните --- размер зеркала будет равен объему наименьшего диска.
|
||||||
попытаемся включить в него диски разного размера. Zpool не даст нам
|
|
||||||
этого сделать. Чтобы безоговорочно создать такой пул, используйте опцию
|
|
||||||
`-f`, но в этом случае помните --- размер зеркала будет равен объему
|
|
||||||
наименьшего диска.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
|
||||||
zpool create myzfs mirror /disk1 /disk4
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@zfs /]# zpool create myzfs mirror /disk1 /disk4
|
||||||
invalid vdev specification
|
invalid vdev specification
|
||||||
use '-f' to override the following errors:
|
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"}
|
```bash
|
||||||
zpool create myzfs mirror /disk1 /disk2 /disk3
|
[root@zfs /]# zpool create -f myzfs mirror /disk1 /disk2 /disk3
|
||||||
zpool list
|
[root@zfs /]# zpool list
|
||||||
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
|
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||||
myzfs 95.5M 112K 95.4M 0% ONLINE -
|
myzfs 960M 129K 960M - - 0% 0% 1.00x ONLINE -
|
||||||
|
[root@zfs /]#
|
||||||
zpool status -v
|
[root@zfs /]# zpool status
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
state: ONLINE
|
||||||
scrub: none requested
|
|
||||||
config:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
/disk3 ONLINE 0 0 0
|
/disk3 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Вместо зеркалирования можно использовать массивы *RAID*. Для этого
|
Вместо зеркалирования можно использовать массивы `RAID`. Для этого необходимо создавать пул типа `raidz` вместо `mirror`. Подробнее <https://docs.freebsd.org/en/books/handbook/zfs/>.
|
||||||
необходимо создавать пул типа `raidz` вместо `mirror`. Подробнее в
|
|
||||||
[хендбуке](https://docs.freebsd.org/en/books/handbook/zfs/).
|
|
||||||
|
|
||||||
Давайте теперь исключим один из дисков из пула. Так как этот диск
|
Давайте теперь исключим один из дисков из пула. Так как этот диск относится к зеркалу `MIRROR`, то при его исключении никаких проблем не возникает.
|
||||||
относится к зеркалу (*MIRROR*), то при его исключении никаких проблем не
|
|
||||||
возникает.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
|
||||||
zpool detach myzfs /disk3
|
|
||||||
zpool status -v
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@zfs /]# zpool detach myzfs /disk3
|
||||||
|
[root@zfs /]# zpool status
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
state: ONLINE
|
||||||
scrub: none requested
|
|
||||||
config:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
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
|
pool: myzfs
|
||||||
state: ONLINE
|
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:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
/disk3 ONLINE 0 0 0
|
/disk3 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
А что будет, если попытаемся *удалить*, а не исключить устройство из
|
А что будет, если попытаемся *удалить*, а не исключить устройство из пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для начала его нужно отключить.
|
||||||
пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для
|
|
||||||
начала его нужно отключить.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool remove myzfs /disk3
|
[root@zfs /]# zpool remove myzfs /disk3
|
||||||
|
cannot remove /disk3: operation not supported on this type of pool
|
||||||
cannot remove /disk3: only inactive hot spares can be removed
|
[root@zfs /]# zpool detach myzfs /disk3
|
||||||
|
[root@zfs /]#
|
||||||
zpool detach myzfs /disk3
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Теперь давайте попробуем добавить диск горячей замены (*hot spare*) к
|
Теперь давайте попробуем добавить диск горячей замены `hot spare` к нашему пулу.
|
||||||
нашему пулу.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool add myzfs spare /disk3
|
zpool add myzfs spare /disk3
|
||||||
zpool status -v
|
zpool status
|
||||||
|
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
state: ONLINE
|
||||||
|
@ -205,152 +181,208 @@ errors: No known data errors
|
||||||
|
|
||||||
А теперь удалим его из пула.
|
А теперь удалим его из пула.
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool remove myzfs /disk3
|
[root@zfs /]# zpool remove myzfs /disk3
|
||||||
zpool status -v
|
[root@zfs /]# zpool status
|
||||||
|
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
state: ONLINE
|
||||||
scrub: none requested
|
|
||||||
config:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Теперь попробуем отключить один из дисков. Пока диск отключен, на него
|
Теперь попробуем отключить один из дисков. Пока диск отключен, на него не будет производиться запись и с него не будет производиться чтение. Если использовать параметр `-t`, то при перезагрузке сервера диск вернется в состояние онлайн автоматически.
|
||||||
не будет производиться запись и с него не будет производиться чтение.
|
|
||||||
Если использовать параметр `-t`, то при перезагрузке сервера диск
|
|
||||||
вернется в состояние онлайн автоматически.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
|
||||||
zpool offline myzfs /disk1
|
|
||||||
zpool status -v
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@zfs /]# zpool offline myzfs /disk1
|
||||||
|
[root@zfs /]# zpool status
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: DEGRADED
|
state: DEGRADED
|
||||||
status: One or more devices has been taken offline by the administrator.
|
status: One or more devices has been taken offline by the administrator.
|
||||||
Sufficient replicas exist for the pool to continue functioning
|
Sufficient replicas exist for the pool to continue functioning in a
|
||||||
in a degraded state.
|
degraded state.
|
||||||
action: Online the device using 'zpool online' or replace the device
|
action: Online the device using 'zpool online' or replace the device with
|
||||||
with 'zpool replace'.
|
'zpool replace'.
|
||||||
scrub: resilver completed with 0 errors on Tue Sep 11 13:39:25 2007
|
|
||||||
config:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs DEGRADED 0 0 0
|
myzfs DEGRADED 0 0 0
|
||||||
mirror DEGRADED 0 0 0
|
mirror-0 DEGRADED 0 0 0
|
||||||
/disk1 OFFLINE 0 0 0
|
/disk1 OFFLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Обратите внимание на состояние пула: **DEGRADED**
|
Обратите внимание на состояние пула: **DEGRADED**
|
||||||
|
|
||||||
Теперь включим этот диск.
|
Теперь включим этот диск.
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool online myzfs /disk1
|
[root@zfs /]# zpool online myzfs /disk1
|
||||||
zpool status -v
|
[root@zfs /]# zpool status
|
||||||
|
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
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:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk1 ONLINE 0 0 0
|
/disk1 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Состояние пула снова **ONLINE**.
|
Состояние пула снова **ONLINE**.
|
||||||
|
|
||||||
В данный момент в нашем пуле два диска: disc1 и disc2. Также в системе
|
В данный момент в нашем пуле два диска: disk1 и disk2. Также в системе имеется диск disk3, но он не подключен к пулу. Предположим, что disk1 вышел из строя и его нужно заменить на disk3.
|
||||||
имеется диск disc3, но он не подключен к пулу. Предположим, что disc1
|
|
||||||
вышел из строя и его нужно заменить на disc3.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
|
||||||
zpool replace myzfs /disk1 /disk3
|
|
||||||
zpool status -v
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[root@zfs /]# zpool replace myzfs /disk1 /disk3
|
||||||
|
[root@zfs /]# zpool status
|
||||||
pool: myzfs
|
pool: myzfs
|
||||||
state: ONLINE
|
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:
|
config:
|
||||||
|
|
||||||
NAME STATE READ WRITE CKSUM
|
NAME STATE READ WRITE CKSUM
|
||||||
myzfs ONLINE 0 0 0
|
myzfs ONLINE 0 0 0
|
||||||
mirror ONLINE 0 0 0
|
mirror-0 ONLINE 0 0 0
|
||||||
/disk3 ONLINE 0 0 0
|
/disk3 ONLINE 0 0 0
|
||||||
/disk2 ONLINE 0 0 0
|
/disk2 ONLINE 0 0 0
|
||||||
|
|
||||||
errors: No known data errors
|
errors: No known data errors
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Периодически для исправления ошибок необходимо выполнять процедуру
|
Периодически для исправления ошибок необходимо выполнять процедуру чистки (scrubbing) для пулов типа *MIRROR* или *RAID-Z*. Данная процедура находит ошибки в контрольных суммах и исправляет их. Также восстанавливаются сбойные блоки.
|
||||||
чистки (scrubbing) для пулов типа *MIRROR* или *RAID-Z*. Данная
|
|
||||||
процедура находит ошибки в контрольных суммах и исправляет их. Также
|
|
||||||
восстанавливаются сбойные блоки.
|
|
||||||
|
|
||||||
**Данная операция слишком ресурсоемка! Следует выполнять ее только во
|
**Данная операция слишком ресурсоемка! Следует выполнять ее только во время наименьшей нагрузки на пул.**
|
||||||
время наименьшей нагрузки на пул.**
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool scrub myzfs
|
[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
|
no pools available
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
А затем импортировать в новой системе.
|
А затем импортировать в новой системе.
|
||||||
|
|
||||||
Если ключ `-d` не указать, то команда ищет `/dev/dsk`. Так как в данном
|
Если ключ `-d` не указать, то команда ищет `/dev/dsk`. Так как в данном примере мы используем файлы, необходимо указать директорию с файлами используемыми хранилищем.
|
||||||
примере мы используем файлы, необходимо указать директорию с файлами
|
|
||||||
используемыми хранилищем.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool import -d / myzfs
|
[root@zfs /]# zpool import -d / myzfs
|
||||||
zpool list
|
[root@zfs /]# zpool list
|
||||||
|
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||||
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
|
myzfs 960M 166K 960M - - 0% 0% 1.00x ONLINE -
|
||||||
myzfs 95.5M 114K 95.4M 0% ONLINE -
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
Обновление версии пула. Показать версию используемого пула. Флаг `-v`
|
Обновление версии пула. Показать версию используемого пула. Флаг `-v` показывает возможности, поддерживаемые данным пулом. Используйте флаг `-a`, чтобы обновить все доступные пулы до новейшей из них версии. Обновленные пулы больше не будут доступны из систем, на которых работают более старые версии.
|
||||||
показывает возможности, поддерживаемые данным пулом. Используйте флаг
|
|
||||||
`-a`, чтобы обновить все доступные пулы до новейшей из них версии.
|
|
||||||
Обновленные пулы больше не будут доступны из систем, на которых работают
|
|
||||||
более старые версии.
|
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zpool upgrade
|
[root@zfs /]# zpool upgrade
|
||||||
This system is currently running ZFS pool version 8.
|
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#<bookmark> 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
|
VER DESCRIPTION
|
||||||
--- --------------------------------------------------------
|
--- --------------------------------------------------------
|
||||||
|
@ -359,54 +391,76 @@ VER DESCRIPTION
|
||||||
3 Hot spares and double parity RAID-Z
|
3 Hot spares and double parity RAID-Z
|
||||||
4 zpool history
|
4 zpool history
|
||||||
5 Compression using the gzip algorithm
|
5 Compression using the gzip algorithm
|
||||||
6 pool properties
|
6 bootfs pool property
|
||||||
7 Separate intent log devices
|
7 Separate intent log devices
|
||||||
8 Delegated administration
|
8 Delegated administration
|
||||||
For more information on a particular version, including supported
|
9 refquota and refreservation properties
|
||||||
releases, see:
|
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"}
|
```bash
|
||||||
zpool iostat 5
|
[root@zfs /]# zpool iostat 5
|
||||||
capacity operations bandwidth
|
capacity operations bandwidth
|
||||||
pool used avail read write read write
|
pool alloc free read write read write
|
||||||
---------- ----- ----- ----- ----- ----- -----
|
---------- ----- ----- ----- ----- ----- -----
|
||||||
myzfs 112K 95.4M 0 4 26 11.4K
|
myzfs 135K 960M 0 1 4.17K 8.67K
|
||||||
myzfs 112K 95.4M 0 0 0 0
|
myzfs 135K 960M 0 0 0 0
|
||||||
myzfs 112K 95.4M 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"}
|
```bash
|
||||||
zfs create myzfs/colin
|
[root@zfs /]# zfs create myzfs/colin
|
||||||
df -h
|
[root@zfs /]# df -Th
|
||||||
|
Файловая система Тип Размер Использовано Дост Использовано% Cмонтировано в
|
||||||
Filesystem kbytes used avail capacity Mounted on
|
|
||||||
...
|
...
|
||||||
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 можно следующей командой.
|
Получить список файловых систем ZFS можно следующей командой.
|
||||||
|
|
||||||
``` {tabindex="0"}
|
```bash
|
||||||
zfs list
|
[root@zfs /]# zfs list
|
||||||
|
|
||||||
NAME USED AVAIL REFER MOUNTPOINT
|
NAME USED AVAIL REFER MOUNTPOINT
|
||||||
myzfs 139K 63.4M 19K /myzfs
|
myzfs 171K 832M 24K /myzfs
|
||||||
myzfs/colin 18K 63.4M 18K /myzfs/colin
|
myzfs/colin 24K 832M 24K /myzfs/colin
|
||||||
|
[root@zfs /]#
|
||||||
```
|
```
|
||||||
|
|
||||||
В данный момент в нашем пуле имеется одно зеркало, в которое входят два
|
В данный момент в нашем пуле имеется одно зеркало, в которое входят два
|
||||||
|
@ -804,8 +858,8 @@ Disqus.](https://disqus.com/?ref_noscript)
|
||||||
|
|
||||||
::: book-toc-content
|
::: book-toc-content
|
||||||
- [ZFS --- Справочник команд](#zfs-----справочник-команд)
|
- [ZFS --- Справочник команд](#zfs-----справочник-команд)
|
||||||
- [Работа с пулом ZFS #{.anchor}](#работа-с-пулом-zfs-anchor)
|
- [Работа с пулом ZFS](#работа-с-пулом-zfs)
|
||||||
- [Работа с файловой и другими системами ZFS #{.anchor}](#работа-с-файловой-и-другими-системами-zfs-anchor)
|
- [Работа с файловой и другими системами ZFS](#работа-с-файловой-и-другими-системами-zfs)
|
||||||
- [Файловая система #{.anchor}](#файловая-система-anchor)
|
- [Файловая система](#файловая-система)
|
||||||
- [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
|
- [Snapshots (снепшоты или снимки состояния) #{.anchor}](#snapshots-снепшоты-или-снимки-состояния-anchor)
|
||||||
- [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)
|
- [Снова вернемся к пулам #{.anchor}](#снова-вернемся-к-пулам-anchor)
|
||||||
|
|
Loading…
Reference in New Issue