Адміністрування BTRFS RAID1: Повний посібник із виживання

Ця стаття є технічною шпаргалкою для системних адміністраторів, які працюють із файловою системою BTRFS. Тут зібрані перевірені команди для створення, моніторингу та відновлення RAID1-масивів після збоїв, а також алгоритми безпечної заміни дисків.


1. Створення RAID1 масиву

Використовуємо два диски (наприклад, sdb та sdc) для створення дзеркала, де дані та метадані дублюються.

# Встановлення необхідних утиліт
apt update && apt install btrfs-progs -y

Перед mkfs.btrfs обов’язково дивимось, які диски реально є і що на них зараз — щоб не форматнути не те
# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL

Якщо треба очистити диск перед RAID
(ОБЕРЕЖНО, знищує все):
wipefs -a /dev/sdb
wipefs -a /dev/sdc

# Створення масиву
/sbin/mkfs.btrfs -L data_raid -d raid1 -m raid1 /dev/sdb /dev/sdc
  • -L data_raid — мітка масиву.
  • -d raid1 — дані дублюються.
  • -m raid1 — метадані дублюються.

2. Монтування та автоматизація

Для економії ресурсу накопичувачів та місця рекомендується використовувати стиснення zstd.

# Створення точки монтування та перше підключення
mkdir -p /mnt/public
mount -o compress=zstd /dev/sdb /mnt/public

----------------------------------------------------------------------------------
mount -o compress=zstd LABEL=data_raid /mnt/public
Коротка помітка (чому так)
Монтуємо Btrfs RAID по LABEL файлової системи, а не по окремому диску (/dev/sdb),
тому що RAID — це один логічний том, а імена пристроїв можуть змінюватися після перезавантаження.
-----------------------------------------------------------------------------------

# Налаштування автомонтування в /etc/fstab
# Дізнаємось UUID масиву: blkid /dev/sdb
# Додаємо запис у файл:
echo 'UUID=ваш-uuid /mnt/public btrfs defaults,compress=zstd 0 2' >> /etc/fstab

3. Моніторинг стану (Health Check)

Регулярна перевірка дозволяє вчасно виявити пошкоджені сектори або розсинхронізацію.

# Детальна статистика використання місця
/usr/bin/btrfs filesystem usage /mnt/public

# Перевірка цілісності даних (Scrub)
/usr/bin/btrfs scrub start /mnt/public
/usr/bin/btrfs scrub status /mnt/public

4. Дії при відмові диска 🚨

Якщо один із дисків вийшов з ладу, масив потрібно змонтувати в аварійному режимі:

mount -o degraded /dev/sdb /mnt/public

Важливо: Завжди перевіряйте через blkid, який диск залишився живим, а який порожній, щоб не помилитися при заміні.

5. Заміна диска на новий (Recovery)

Алгоритм заміни пошкодженого накопичувача на новий порожній диск:

  1. Визначте ID диска, якого бракує (MISSING): btrfs filesystem show /mnt/public
  2. Переконайтеся, що новий диск чистий: wipefs /dev/sdX
  3. Запустіть заміну (наприклад, замість ID 1 ставимо sdb):
/usr/bin/btrfs replace start 1 /dev/sdb /mnt/public

/dev/sdb — це шлях до НОВОГО (порожнього) диска) !!!!!!
Перевірка "порожнечі"
/sbin/wipefs /dev/sdb
   Якщо у відповідь тиша (порожній рядок): Диск абсолютно чистий. Можна працювати.
   Якщо він видає таблицю з написом btrfs: Стоп! Це диск із даними. 

Контроль процесу здійснюється командою: btrfs replace status /mnt/public

6. Робота зі знімками (Snapshots)

Знімки дозволяють миттєво зберегти стан файлової системи перед важливими змінами.

mkdir /mnt/public/.snapshots
btrfs subvolume snapshot -r /mnt/public /mnt/public/.snapshots/snap_2024_01_01

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.