Работа с ZFS
Информация на этой странице находится в доработке. Информация может добавляться и изменяться.
Я всё чаще стал использовать файловую систему #ZFS и для себя составил шпаргалку по работе с ней. Может быть, кому то ещё пригодится.
Исходные данные
В работе с #ZFS я использую ОС #Debian и пути к дискам (by-path). Если кто-то захочет использовать идентификаторы (by-id) дисков, то просто замените в командах пути на идентификаторы. В командах этой статьи я работаю в пулом под названием data.
Названия переменных
В командах я использую следующие переменные:
p- название пула.v- название тома.d- устройство (диск).b- устройство (блочное устройство).o- свойство пула.O- свойство тома.s- название снимка.r*- работа с устройствами RAID-массива.rz*- работа с устройствами RAIDZ-массива.
Список дисков и их расположение
Вывести список дисков и их расположение (путь) в системе:
Список дисков и их идентификаторы
Вывести список дисков и их идентификаторы в системе:
Пулы
Рассмотрим различные варианты работы с пулами #ZFS.
Создание пула
- Создать обычный пул
dataиз одного дискаpci-0000:01:00.0-scsi-0:1:0:0:
Расширение пула
Расширение пула происходит путём добавления дополнительного диска или увеличением размера виртуального диска.
Добавление диска в пул
- Добавить диск
pci-0000:01:00.0-scsi-0:1:1:0в пулdata:
Расширение диска в пуле
- Обновить информацию об устройстве
sdb, на котором располагается пул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:
Импортирование пула
- Посмотреть список пулов для импорта:
- Импортировать пул
data:
- Импортировать пул
dataс новым именемdata_NEW:
- Импортировать пул
data, состоящий из дисковpci-0000:01:00.0-scsi-0:1:0:0иpci-0000:01:00.0-scsi-0:1:1:0:
- …или можно разрешить #ZFS автоматически поискать диски пула
data:
Переименования пула
- Экспортировать пул
data:
- Импортировать пул
dataс новым именемdata_NEW:
Обновление пула
- Проверить необходимость обновления пула
data:
- При появлении надписи
status: Some supported features are not enabled on the pool...запустить обновление пулаdata:
- …или обновить сразу все пулы:
Удаление пула
- Удалить пул
data:
Восстановление пула
- Показать список уничтоженных пулов:
- Восстановить уничтоженный пул
data:
Список пулов
Вывести список всех пулов в системе:
Статус пула
- Проверить статус пула
data:
Свойства пула
- Показать все свойства всех пулов:
- Показать все свойства пула
data:
- Показать свойства
autoexpand,ashiftиfragmentationвсех пулов:
- Показать свойства
autoexpand,ashiftиfragmentationпулаdata:
- Установить свойство
autoexpandвonпула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с точкой монтирования/opt/cloudв пулеdata:
- Создать том
cloudс алгоритмом компрессииzstdв пулеdata:
- Создать том
cloudс алгоритмом компрессииzstdи точкой монтирования/opt/cloudв пулеdata:
Удаление тома
- Удалить том
cloudв пулеdata:
Создание зашифрованного тома
- Создать том
secretи зашифровать его парольной фразой в пулеdata:
Где:
encryption=on- включение шифрования.keyformat=passphrase- тип шифрования “парольная фраза”.
При создании тома secret ZFS попросит ввести парольную фразу для шифрования данных.
Свойства тома
- Показать все свойства всех томов:
- Показать все свойства тома
cloudв пулеdata:
- Показать свойства
compressratio,compression,mountpointиatimeтомаcloudв пулеdata:
- Показать свойства
compressratio,compression,mountpointиatimeтомаcloudи во всех его под-томах в пулеdata:
- Установить свойство
compressionвzstdтомаcloudв пулеdata:
- Вернуть свойство
compressionк стандартному наследуемому значению томаcloudв пулеdata:
- Вернуть свойство
compressionк стандартному наследуемому значению томаcloudи во всех его под-томах в пулеdata:
Снимки
Список снимков
- Показать список всех снимков:
- Показать список снимков тома
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: