Работа с ZFS
Информация на этой странице находится в доработке. Информация может добавляться (и / или) изменяться.
Я всё чаще стал использовать файловую систему #ZFS и для себя составил шпаргалку по работе с ней. Может быть, кому то ещё пригодится.
Вводные данные
В работе с #ZFS я использую ОС #Debian и пути к дискам (by-path
). Если кто-то захочет использовать идентификаторы (by-id
) дисков, то просто замените в командах пути на идентификаторы.
В командах этой статьи я работаю в пулом под названием data
. Все вводные переменные я выношу за пределы команды и объявляю отдельно. Не знаю откуда у меня возникла такая привычка. 😄
Список дисков и их расположение
Вывести список дисков и их расположение (путь) в системе:
Список дисков и их идентификаторы
Вывести список дисков и их идентификаторы в системе:
Пулы
Рассмотрим различные варианты работы с пулами #ZFS.
Создание пула
Создание обычного пула data
из одного диска pci-0000:01:00.0-scsi-0:1:0:0
:
Расширение пула
Расширение пула происходит путём добавления дополнительного диска или увеличением размера виртуального диска.
Добавление диска в пул
Добавление диска pci-0000:01:00.0-scsi-0:1:1:0
в пул data
:
Расширение диска в пуле
Расширение существующего диска pci-0000:03:00.0-scsi-0:1:0:0
в пуле data
:
Включение автоматического расширения пула data
:
Подключение и отключение дисков
Подключение и отключение дисков осуществляются командами attach
и detach
, соответственно.
Подключение второго диска (для создания зеркала)
Подключение нового диска pci-0000:03:00.0-scsi-0:1:1:0
к существующему диску pci-0000:03:00.0-scsi-0:1:0:0
в пуле data
для создания зеркала:
Отключение второго диска
Отключение нового диска pci-0000:03:00.0-scsi-0:1:1:0
в пуле data
:
Импортирование пула
Импортировать пул data
, состоящий из дисков pci-0000:01:00.0-scsi-0:1:0:0
и pci-0000:01:00.0-scsi-0:1:1:0
:
Или можно разрешить #ZFS автоматически поискать диски пула data
:
Переименования пула
Для переименования пула, необходимо сначала его экспортировать:
И импортировать с новым именем:
Обновление пула
Проверим необходимость обновления пула:
Если появится надпись status: Some supported features are not enabled on the pool...
, то можно начать обновление пула data
:
Или обновить сразу все пулы:
Удаление пула
Если пул data
стал не нужен, его можно удалить:
Список пулов
Вывести список всех пулов в системе:
Статус пула
Проверить статус пула data
:
Работа с RAID
Рассмотрим команды создания пула #ZFS из нескольких дисков.
Stripe (RAID0)
Создать RAID-0 из дисков pci-0000:01:00.0-scsi-0:1:0:0
и pci-0000:01:00.0-scsi-0:1:1:0
:
Mirror (RAID1)
Создать зеркало (RAID-1) из дисков pci-0000:01:00.0-scsi-0:1:0:0
и pci-0000:01:00.0-scsi-0:1:1:0
:
RAID10
Создать RAID-10 из дисков pci-0000:01:00.0-scsi-0:1:0:0
, pci-0000:01:00.0-scsi-0:1:1:0
, pci-0000:01:00.0-scsi-0:1:2:0
и pci-0000:01:00.0-scsi-0:1:3:0
:
RAIDZ-1 (RAID5)
Создать RAID-5 из дисков pci-0000:01:00.0-scsi-0:1:0:0
, pci-0000:01:00.0-scsi-0:1:1:0
и pci-0000:01:00.0-scsi-0:1:2:0
:
RAIDZ-2 (RAID6)
Создать RAID-6 из дисков pci-0000:01:00.0-scsi-0:1:0:0
, pci-0000:01:00.0-scsi-0:1:1:0
, pci-0000:01:00.0-scsi-0:1:2:0
и pci-0000:01:00.0-scsi-0:1:3:0
RAIDZ-3
Создать RAIDZ-3 из дисков pci-0000:01:00.0-scsi-0:1:0:0
pci-0000:01:00.0-scsi-0:1:1:0
pci-0000:01:00.0-scsi-0:1:2:0
pci-0000:01:00.0-scsi-0:1:3:0
и pci-0000:01:00.0-scsi-0:1:4:0
:
Работа с ARC и ZIL
Добавляем отдельные устройства для работы с ARC и ZIL.
ARC
Добавить отдельный диск (L2ARC) pci-0000:01:00.0-scsi-0:1:4:0
для работы с ARC в пул data
:
ZIL
Добавить отдельный диск (SLOG) pci-0000:01:00.0-scsi-0:1:5:0
для работы с ZIL в пул data
:
Тома
Создание тома
Создать том cloud
в пуле data
:
Создать том cloud
в пуле data
и с точкой монтирования /opt/cloud
:
Создать том cloud
в пуле data
и с алгоритмом компрессии zstd
:
Создать том cloud
в пуле data
с алгоритмом компрессии zstd
и точкой монтирования /opt/cloud
:
Удаление тома
Удалить том cloud
в пуле data
:
Создание зашифрованного тома
Создать том secret
в пуле data
и зашифровать его парольной фразой:
Где:
encryption=on
- включение шифрования.keyformat=passphrase
- тип шифрования “парольная фраза”.
При создании тома secret
, #ZFS попросит ввести парольную фразу для шифрования данных.
Снимки
Список снимков
Показать список всех снимков:
Показать список снимков тома cloud
в пуле data
:
Создание снимков
Создать снимок 2024-08-21.19-32-02
тома cloud
в пуле data
:
Создать снимок 2024-08-21.19-32-02
тома cloud
и всех его дочерних томов в пуле data
:
Переименование снимков
Переименовать снимок name_OLD
тома cloud
в пуле data
:
Переименовать снимок name_OLD
тома cloud
и во всех его дочерних томов в пуле data
:
Откат данных к снимку
Выполнить откат данных к снимку 2024-08-21.19-32-02
тома cloud
в пуле data
:
Удаление снимков
Удалить снимок 2024-08-21.19-32-02
тома cloud
в пуле data
:
Оптимизации
Специализированные настройки #ZFS под конкретные задачи.
PostgreSQL
Создать основной том pgsql
с алгоритмом компрессии zstd
:
Создать специальный том pgsql/main
с алгоритмом компрессии zstd
и размером блока 32K
для баз данных:
Создать специальный том pgsql/wal
с алгоритмом компрессии zstd
и размером блока 32K
для WAL:
Откорректировать настройки PostgreSQL:
MySQL
Создать основной том mysql
с алгоритмом компрессии zstd
:
Создать специальный том mysql/main
с алгоритмом компрессии zstd
и размером блока 16K
для баз данных:
Создать специальный том mysql/log
с алгоритмом компрессии zstd
для логирования:
Откорректировать настройки MySQL: