Btrfs: установка и настройка RAID1 на Linux
TL;DR
Btrfs — копирующая при записи (COW) файловая система для Linux с поддержкой многодисковых пулов и RAID-моделей. В этой инструкции показано, как установить утилиты, создать Btrfs с RAID1 на двух дисках, примонтировать файловую систему и добавить запись в /etc/fstab для автоподключения.
Что такое Btrfs
Btrfs (читается «Баттер Эф Эс») — современная файловая система для Linux, разработка которой началась в 2008 году. Она использует принцип copy-on-write: при изменении блока создаётся новый блок с изменениями, а старые блоки остаются до повторного использования. Это повышает согласованность данных и упрощает восстановление после сбоёв питания.
Краткое определение терминов:
- COW: copy-on-write — не изменяет данные на месте, создаёт новые блоки.
- Метаданные: информация о файлах — имена, права, расположение блоков.
Основные возможности
- Поддержка RAID 0, RAID 1, RAID 10 и гибридных конфигураций.
- Проверка целостности (checksums) для данных и метаданных.
- Создание субтомов (subvolumes) и снимков (snapshots).
Требования и предпосылки
- Рабочая система Linux (например, Ubuntu) уже установлена.
- Два дополнительных диска, которые вы хотите объединить в пул (в примерах /dev/sdb и /dev/sdc).
- Резервное копирование важных данных перед изменением разделов или форматированием.
1. Установка необходимых инструментов
На Debian/Ubuntu установите пакет утилит btrfs:
sudo apt-get install btrfs-progsПримечание: в старых документах встречается имя пакета btrfs-tools, но в современных дистрибутивах используется btrfs-progs.
2. Создание файловой системы Btrfs с зеркалированием данных и метаданных
Команда ниже создаст файловую систему Btrfs с RAID1 для данных и метаданных на двух устройствах:
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdcПояснения:
- -d raid1 — зеркалирование данных (каждый кусочек данных хранится на двух устройствах).
- -m raid1 — зеркалирование метаданных.
- Если на дисках есть таблицы разделов или данные, добавьте опцию -f для принудительного перезаписи.
Важно: RAID1 в btrfs не ограничен только двумя дисками — можно добавлять больше устройств, и btrfs постарается хранить копии на разных дисках.
3. Монтирование файловой системы
Создайте точку монтирования и смонтируйте новое файловое хранилище:
sudo mkdir -p /mybtrfs
sudo mount /dev/sdb /mybtrfsГде /mybtrfs — директория для подключения. После монтирования команда df -h покажет точку монтирования.

Замечание: btrfs отображает общий объём пула, а не эквивалент «полезного» объёма зеркалирования в старом стиле RAID. Например, два диска по 100 ГБ будут показаны как 200 ГБ в сумме, но фактическая доступная ёмкость в RAID1 эквивалентна 100 ГБ зеркалируемого пространства.
4. Просмотр использования и состояния
Команда ниже показывает, сколько пространства занято данными и метаданными:
sudo btrfs filesystem df /mybtrfsДля просмотра списка устройств и их состояния:
sudo btrfs filesystem show /mybtrfs
5. Автомонтирование через /etc/fstab
Чтобы автоматически монтировать при загрузке, лучше использовать UUID вместо имени устройства. Получите UUID командой show и затем добавьте строку в /etc/fstab.
Пример с использованием имени устройства (работает, но менее устойчиво):
/dev/sdb /mybtrfs btrfs defaults 0 0Пример с UUID (рекомендуется):
UUID=7911f7a9-cd03-48ef-8dca-27550d6039f4 /mybtrfs btrfs defaults 0 0Использование UUID предотвращает проблемы, когда порядок устройств меняется при загрузке.
6. Проверка и поддержка целостности
- btrfs использует контрольные суммы для обнаружения повреждений.
- Регулярно запускайте scrub для проверки и исправления при наличии избыточности:
sudo btrfs scrub start /mybtrfs
sudo btrfs scrub status /mybtrfsScrub проверяет блоки и пытается восстановить повреждённые фрагменты, используя зеркальные копии.
7. Типичные ошибки и способы их избежать
- Форматирование не тех дисков — всегда проверяйте /dev/имя и сделайте резервную копию.
- Использование устаревших пакетов btrfs-tools вместо btrfs-progs.
- Полагаться на /dev/sdX в fstab — лучше использовать UUID или метки (LABEL=).
Когда Btrfs не подходит
- Для очень простых задач с одним диском и без требований к снапшотам может быть избыточной.
- Для enterprise-сценариев с жёсткими SLA и где нужна сертифицированная поддержка RAID-контроллеров некоторым администраторам предпочтительнее проверенные аппаратные RAID-решения или LVM + mdadm.
Альтернативы
- mdadm + ext4/xfs: традиционный программный RAID и стабильные ФС.
- ZFS: альтернативная СОВ/RAID-файловая система с богатым набором функций (ARC, компрессия, дедупликация).
Быстрый чек-лист перед началом (роль: системный администратор)
- Сделан бэкап важных данных.
- Проверены обозначения дисков (lsblk, fdisk -l).
- Установлены btrfs-progs.
- Создана и проверена точка монтирования.
- Добавлена запись в /etc/fstab с UUID.
- Запланирован регулярный scrub.
Команды-справочник (cheat sheet)
- Установка: sudo apt-get install btrfs-progs
- Форматирование: sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc
- Монтирование: sudo mount /dev/sdb /mybtrfs
- Использование: sudo btrfs filesystem df /mybtrfs
- Список: sudo btrfs filesystem show /mybtrfs
- Scrub: sudo btrfs scrub start /mybtrfs
Критерии приёмки
- Файловая система монтируется автоматически после перезагрузки по UUID.
- Команды btrfs filesystem show и btrfs filesystem df возвращают ожидаемые устройства и использование.
- Scrub проходит без необратимых ошибок (или ошибки восстановлены из зеркала).
Безопасность и бэкап
Btrfs повышает устойчивость к локальному повреждению блоков, но не заменяет регулярные резервные копии. Планируйте offsite-бэкапы и автоматические снимки для важных данных.
Короткий план действий (SOP)
- Сделать бэкап. 2. Установить btrfs-progs. 3. Подтвердить диски (lsblk). 4. mkfs.btrfs с нужными опциями. 5. Создать /mybtrfs и смонтировать. 6. Добавить UUID в /etc/fstab. 7. Запустить scrub и мониторинг.
1‑строчный глоссарий
- subvolume — логический подраздел в Btrfs, похожий на отдельный том.
- snapshot — моментальный снимок состояния subvolume.
Заключение
Btrfs обеспечивает мощные возможности для объединения дисков и зеркалирования с удобными инструментами управления. При правильной настройке и регулярном обслуживании (scrub, мониторинг) он даёт надёжную и гибкую платформу для хранения данных.
Если у вас есть конкретные вопросы по вашей конфигурации (модели дисков, существующие данные, план развертывания), опишите их в комментарии — помогу настроить по шагам.
Похожие материалы
Управление дубликатами в SQL — подсчёт и удаление
Объединение таблиц в MySQL — JOIN на практике
Импорт данных SQL Server в Excel через Power Query
Стрим игр на Steam Deck через Remote Play
Изменить фон загрузчика Grub на Linux