18.11.2025 09:34:55

1. Установка ZFS в Ubuntu 24.04

Ubuntu 24.04 поставляется с ZFS из коробки, но иногда пакет не установлен:

 
sudo apt update sudo apt install zfsutils-linux

Проверка:

 
zfs --version

2. Определение дисков

Покажет все диски:

 
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL

Например, вы получили:

  • /dev/sda

  • /dev/sdb

  • /dev/sdc

  • /dev/sdd

⚠️ Убедитесь, что на дисках нет нужных данных — ZFS pool удалит ВСЁ.

Для чистоты можно стереть GPT:

 
sudo wipefs -a /dev/sdX sudo sgdisk --zap-all /dev/sdX

(повторить для всех 4 дисков)


3. Создание ZFS RAIDZ1 пула

Создаём пул с именем tank:

 
sudo zpool create -f \ -o ashift=12 \ tank raidz1 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Пояснение:

  • ashift=12 — оптимально для современных 4K секторов.

  • tank — имя пула.

  • raidz1 — аналог RAID5.

Проверка:

 
zpool status

4. Настройка параметров пула (рекомендуется)

Хорошие дефолты:

 
sudo zfs set compression=zstd tank
sudo zfs set atime=off tank
sudo zfs set xattr=sa tank
sudo zfs set acltype=posixacl tank

5. Создание файловой системы

Например, под данные:

 
sudo zfs create tank/data

Пул сам смонтируется в /tank (или /tank/data).

Проверка:

 
df -h | grep tank

6. Автоподключение после перезагрузки

В ZFS всё автоматически:

  • не нужен fstab

  • автозагрузка затем пул → файловые системы

Проверка:

 
sudo zpool export tank sudo zpool import tank

7. Включение автопочинки (scrubbing)

Раз в месяц:

 
sudo systemctl enable --now zfs-scrub-monthly@tank.timer

8. Тестирование пула

Имитируем падение диска:

 
sudo zpool offline tank /dev/sdb sudo zpool status

Вернуть:

 
sudo zpool online tank /dev/sdb

🔥 Дополнительно: Пул по ID (лучше, чем /dev/sdX)

Если система меняет порядок дисков, то лучше создать пул через ID:

Смотрим ID:

 
ls -l /dev/disk/by-id/

Пример команды:

 
sudo zpool create -f \ -o ashift=12 \ tank raidz1 \ /dev/disk/by-id/ata-DISK1 \ /dev/disk/by-id/ata-DISK2 \ /dev/disk/by-id/ata-DISK3 \ /dev/disk/by-id/ata-DISK4