3.8.6.12 Скоро здесь появится новая инструкция
Основные возможности ZFS
Установка
Управление ZFS
Примеры работы с ZFS
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная
- Версия ПО: zfs-kmod-2.3.1-6, zfs-2.3.1-1
ZFS (Zettabyte File System) — это система хранения и управления данными, сочетающая в себе функции файловой системы и менеджера томов. ZFS не создает разделы на физических дисках, а организует виртуальное дисковое пространство, объединяя все доступные диски в единый логический пул хранения данных — zpool.
Архитектура ZFS выглядит следующим образом:
Из набора физических дисков образуется виртуальное устройство Vdev. Возможны разные реализации Vdev:
- физическое устройство — диск или раздел (не рекомендуется из-за отсутствия отказоустойчивости);
- зеркало (mirror) — аналог RAID 1 — данные дублируются на двух и более дисках;
- RAID-Z — аналог RAID 5, 6 или 7 — обеспечивается высокая защита от сбоев.
Из набора виртуальных устройств Vdevs создается общий пул хранения данных ZFS Pool.
ZFS — это копирующая при записи (copy-on-write) файловая система, она никогда не перезаписывает данные, все данные записываются в новое место. Старые данные не меняются, не повреждаются и легко восстанавливаются.
Основные возможности ZFS
Основными возможностями ZFS являются:
- целостность и консистентность — проверка целостности данных с помощью контрольных сумм и автоматическое восстановление поврежденных блоков с помощью зеркальных и RAID-Z-копий;
- дедупликация — поиск и удаление дублирующих блоков данных;
- возможность хранения файлов на нескольких устройствах;
- сжатие «на лету» — сжатие данных перед записью на диск для экономии места и повышения производительности;
- масштабируемость — добавление новых дисков в пул для увеличения объема и производительности;
- мгновенные снимки и клоны — создание снимков состояния файловой системы и клонов для возможности быстрого отката системы при некорректной работе или удалении файлов.
Установка
Для организации работы с ZFS каждой версии ядра в репозитории РЕД ОС соответствует специальный модуль zfs-kmod.
|
Версия ядра |
Модуль ядра |
|
6.12.37-1.red80.x86_64 |
zfs-kmod-2.3.1-4.red80 |
|
6.12.55-1.red80.x86_6 |
zfs-kmod-2.3.1-5.red8 |
|
6.12.56-1.red80.x86_64 (используется в примере) |
zfs-kmod-2.3.1-6.red80 (используется в примере) |
|
6.12.69-1.red80.x86_64 |
zfs-kmod-2.3.1-7.red80 |
Определите версию ядра с помощью команды:
uname -r 6.12.56-1.red80.x86_64
Согласно приведенной выше таблице версии ядра 6.12.56-1.red80.x86_64 соответствует модуль ядра zfs-kmod-2.3.1-6.red80.
Установите модуль ядра zfs-kmod и утилиту zfs (потребуются права администратора):
sudo dnf install zfs-kmod-2.3.1-6.red80 zfs
Выполните перезагрузку системы:
reboot
Для загрузки модуля ZFS в ядро выполните команду:
sudo modprobe zfs
Проверьте, что модуль ядра zfs-kmod успешно загружен:
lsmod | grep zfs zfs 3969024 7 zunicode 335872 1 zfs zzstd 593920 1 zfs zlua 184320 1 zfs zavl 16384 1 zfs icp 323584 1 zfs zcommon 106496 2 zfs,icp znvpair 110592 2 zfs,zcommon spl 122880 6 zfs,icp,zzstd,znvpair,zcommon,zavl
Вывод команды подтверждает, что установка прошла корректно, и система готова к работе с ZFS:
- zfs (основной модуль) — загружен и используется (3969024 байт);
- zunicode — поддержка Unicode в именах файлов;
- zzstd — поддержка сжатия Zstandard;
- zlua — встроенный Lua для скриптов ZFS;
- zavl — реализация AVL-деревьев;
- icp — криптографические функции (для шифрования);
- zcommon, znvpair, spl — вспомогательные модули.
Управление ZFS
Для создания нового пула необходим как минимум один пустой диск.
Основные команды для управления ZFS:
- создание нового пула RAID 0 (минимум 1 диск):
zpool create -f <имя_пула> <имя_устройства_1> <имя_устройства_2>где:- zpool create — команда для создания пула;
- -f — параметр для принудительного исполнения команды (force);
- <имя_пула> — имя, присваиваемое пулу;
- <имя_устройства_1> <имя_устройства_2> — два физических устройства (диска или раздела), которые образуют vdev;
- создание нового пула RAID 1 (минимум 2 диска):
zpool create -f <имя_пула> mirror <имя_устройства_1> <имя_устройства_2>
где:- zpool create — команда для создания пула;
- -f — параметр для принудительного исполнения команды (force);
- <имя_пула> — имя, присваиваемое пулу;
- mirror <имя_устройства_1> <имя_устройства_2> — два физических устройства (диска или раздела), которые образуют vdev типа «зеркало»;
- создание нового пула RAID 10 (минимум 4 диска):
zpool create -f <имя_пула> mirror <имя_устройства_1> <имя_устройства_2> mirror <имя_устройства_3> <имя_устройства_4>
где:- zpool create — команда для создания пула;
- -f — параметр для принудительного исполнения команды (force);
- <имя_пула> — имя, присваиваемое пулу;
- mirror <имя_устройства_1> <имя_устройства_2> — два физических устройства (диска или раздела), которые образуют первый vdev типа «зеркало»;
- mirror <имя_устройства_3> <имя_устройства_4> — два физических устройства (диска или раздела), которые образуют второй vdev типа «зеркало»;
- создание нового пула RAID-Z (минимум 3 диска):
zpool create -f <имя_пула> raidz <имя_устройства_1> <имя_устройства_2> <имя_устройства_3>
где:- zpool create — команда для создания пула;
- -f — параметр для принудительного исполнения команды (force);
- <имя_пула> — имя, присваиваемое пулу;
- raidz <имя_устройства_1> <имя_устройства_2> <имя_устройства_3> — виртуальное устройство vdev типа RAID-Z, состоящее из трех физических устройств;
- смена неисправного устройства:
zpool replace -f <имя_пула> <имя_старого_устройства> <имя_нового_устройства>
- включение сжатия:
zfs set compression=on <имя_пула> - получение списка доступных файловый систем ZFS:
zfs list -t filesystem
- получение списка созданных в системе пулов:
zpool list
- просмотр статуса пула :
zpool status
Подробную информацию обо всех доступных командах управления ZFS см. в справочной странице:
man zfs
Примеры работы с ZFS
ZFS позволяет создавать пулы с различными уровнями отказоустойчивости.
Для создания простого пула (аналог RAID 0) выполните команду:
sudo zpool create -f mypool /dev/sda5
где:
- mypool — имя пула;
- /dev/sdа5 — устройство, которое будет использоваться (в примере это свободный раздел на диске /dev/sdа5).
При необходимости создания пулов с более высокой степенью отказоустойчивости и защиты используйте RAID-Z:
sudo zpool create mypool raidz <имя_устройства_1> <имя_устройства_2> <имя_устройства_3>
Для проверки создания пула mypool выполните команду:
zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT mypool 17.5G 286K 17.5G - - 0% 0% 1.00x ONLINE -
Для применения сжатия данных пула (например, с помощью gzip) выполните команду:
sudo zfs set compression=gzip mypool
Для пулов с важными данными рекомендуется регулярно выполнять сканирование (scrub) и автоматическое исправление ошибок.
Для запуска сканирования пула выполните команду:
sudo zpool scrub mypool
Для проверки состояния пула и обнаружения возможных ошибок выполните команду:
zpool status pool: mypool state: ONLINE scan: scrub repaired 0B in 00:00:00 with 0 errors on Tue Mar 3 13:43:01 2026 config: NAME STATE READ WRITE CKSUM mypool ONLINE 0 0 0 sda4 ONLINE 0 0 0 errors: No known data errors
Дата последнего изменения: 13.03.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.