Современные ФС #6: ZFS — RAIDZ

Зеркало (mirror) — 50% полезного места на N дисков. raidz экономнее: чётность распределена по всем дискам, как в RAID5; raidz2 — двойная чётность, переживает потерю двух дисков разом (аналог RAID6). zpool create tank raidz sda sdb sdc zpool create tank raidz2 sda sdb sdc sdd Целостность проверяется не fsck, а scrub — ZFS перечитывает блоки, сверяет контрольные суммы и чинит найденное за счёт избыточности: zpool scrub tank zpool status tank # прогресс и найденные ошибки Замена упавшего диска — без остановки пула: ...

22 июля 2026 г. · llexa

Современные ФС #5: ZFS — снапшоты и клоны

Снапшот в ZFS — не копия, а заморозка блоков через copy-on-write: старые блоки не перезаписываются, пока на них ссылается снапшот. Создаётся за миллисекунды, места почти не занимает. zfs snapshot tank/data@before-upgrade zfs list -t snapshot zfs rollback tank/data@before-upgrade Если полный откат не нужен — сделать из снапшота записываемый клон, который делит блоки с оригиналом, пока не разойдётся с ним: zfs clone tank/data@before-upgrade tank/data-test Перенести снапшот на другой пул/хост — целиком или только дельту с прошлой передачи (-i): ...

15 июля 2026 г. · llexa

Современные ФС #4: ZFS — основы

ZFS сочетает менеджер томов и файловую систему в одном слое — вместо связки mdadm + LVM + ФС работаешь с одним zpool. Каждый блок данных хранится с чексуммой, поэтому битые копии на диске обнаруживаются сами, без ручных сверок. Создать пул из зеркала двух дисков и датасет со сжатием: zpool create tank mirror /dev/sdb /dev/sdc zfs create -o compression=lz4 tank/data zfs list Проверить состояние пула и целостность данных: zpool status tank zpool scrub tank scrub читает все блоки и сверяет чексуммы — если на зеркале найдена ошибка, ZFS чинит блок автоматически со второй копии. На Debian/RED OS ставится пакетом zfsutils-linux (DKMS-модуль, не в mainline ядре из-за лицензии CDDL). ...

8 июля 2026 г. · llexa

Современные ФС #3: btrfs — RAID и scrub

btrfs реализует RAID на уровне файловой системы — без mdadm. Создать том из двух дисков с зеркалированием: mkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc mount /dev/sdb /mnt/data Флаг -d — профиль данных, -m — профиль метаданных. Для трёх+ дисков доступны raid5, raid6, raid10. Добавить диск к существующей ФС и перераспределить под новый профиль: btrfs device add /dev/sdd /mnt/data btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/data Проверка целостности — scrub читает все блоки и сверяет чексуммы: ...

1 июля 2026 г. · llexa

Современные ФС #2: btrfs — сабволюмы и снапшоты

Сабволюм — независимое дерево внутри одной btrfs-файловой системы, со своими снапшотами и квотами: btrfs subvolume create /mnt/data/@home btrfs subvolume list /mnt/data Монтировать конкретный сабволюм, а не весь раздел, через /etc/fstab: # /etc/fstab UUID=... /home btrfs subvol=@home,compress=zstd 0 0 Снапшот сабволюма создаётся мгновенно — это CoW-ссылка, а не копия данных: btrfs subvolume snapshot /mnt/data/@home /mnt/data/@home_snap_$(date +%F) Откат — переименовать текущий сабволюм и подставить снапшот на его место: mv /mnt/data/@home /mnt/data/@home_broken btrfs subvolume snapshot /mnt/data/@home_snap /mnt/data/@home Удалить сабволюм, когда снапшот больше не нужен: ...

24 июня 2026 г. · llexa

Современные ФС #1: btrfs — основы

btrfs — файловая система с CoW (Copy-on-Write), встроена в ядро с 2.6.29: mkfs.btrfs /dev/sdb # создать ФС mount /dev/sdb /mnt/data # смонтировать btrfs filesystem show /mnt/data # UUID, размер, устройства btrfs filesystem df /mnt/data # занятое/свободное по типу данных Прозрачное сжатие — включается при монтировании: # /etc/fstab UUID=... /mnt/data btrfs compress=zstd:3,noatime 0 0 # или на лету (только новые записи) mount -o remount,compress=zstd /mnt/data Уровни zstd от 1 (быстро) до 15 (максимум). :3 — хороший баланс скорость/степень. ...

17 июня 2026 г. · llexa