Btrfs (произносится как «Butter F S») — это усовершенствованная файловая система для Linux, которая может работать на нескольких жестких дисках и поддерживает различные модели отказоустойчивости, такие как RAID 0, RAID 1 и RAID 10. Btrfs находится в разработке с 2008 года, и это так называемая файловая система «копирование при записи», что означает, что при изменении данных в блоке этот блок будет скопирован как новый блок, записанный на диск с включенными изменениями. Это означает, что блоки никогда не изменяются, а создаются новые блоки, а старые блоки позже используются повторно. Это дает преимущества в плане производительности, особенно при обеспечении согласованности и целостности (даже после отключения питания).
Предполагая, что у вас уже есть работающая система Linux (вероятно, использующая ext4), но вы хотите добавить несколько жестких дисков и использовать Btrfs, вам нужно будет сделать это. Сначала вам нужно установить инструменты Btrfs. В Ubuntu:
sudo apt-get install btrfs-tools
Предполагая, что /dev/sda
является основным диском с установленным на нем Linux, и вы хотите использовать два новых диска /dev/sdb
и /dev/sdc
, следующий Шаг — создать на этих дисках файловую систему btrfs.
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdb /dev/sdc
-d raid1
указывает btrfs использовать зеркалирование RAID 1 для данных. Это означает, что будет как минимум две копии каждого бита данных, каждая на другом устройстве. На самом деле в конфигурации зеркалирования RAID 1 можно использовать более двух жестких дисков. В таких случаях btrfs обеспечит наличие копии данных хотя бы на одном другом диске. Информация о данных, включая имя файла, права доступа к файлу и т. д., хранится в так называемых метаданных. Параметры -m raid1
указывают btrfs также использовать зеркалирование RAID 1 для метаданных. Подобно зеркалированию данных, использование зеркалирования метаданных гарантирует, что важная информация о файлах будет храниться как минимум на двух дисках. Если на каком-либо из дисков существуют таблицы разделов (и, возможно, данные), используйте параметр -f
, чтобы принудительно перезаписать mkfs.btrfs
.
Теперь, когда файловая система создана, ее можно смонтировать с помощью обычной команды mount
:
sudo mount /dev/sdb /mybtrfs
Где /mybtrfs
— это каталог, в который вы хотите смонтировать файловую систему.
На этом этапе новая файловая система будет указана командой df -h
. В моей тестовой системе /dev/sdb
и /dev/sdc
занимают по 100 ГБ каждый. В традиционной системе RAID 1 результирующая файловая система будет иметь размер всего 100 ГБ, поскольку один диск используется для дублирования данных. С btrfs дело обстоит иначе. Поскольку диски разных размеров можно использовать в любой комбинации, btrfs показывает общий размер. Однако есть команда, которая дает более подробную информацию:
sudo btrfs filesystem df /mybtrfs
Это покажет истинное использование диска для файловой системы btrfs, включая пространство, занимаемое фактическими данными в файловой системе и метаданными.
Значение «sudo btrfs filesystem show
» также полезно, поскольку оно отображает список отдельных устройств, используемых в файловой системе, а также их общий размер и используемое пространство.
Последний шаг — отредактировать файл /etc/fstab
для автоматического монтирования файловой системы btrfs при загрузке. Для этого отредактируйте файл и добавьте следующую строку:
/dev/sdb /mybtrfs btrfs defaults 0 0
Вы можете получить универсальный уникальный идентификатор файловой системы btrfs с помощью команды sudo btrfs filesystem show
. При монтировании с использованием uuid
, а не имени устройства, строка /etc/fstab
будет выглядеть примерно так:
UUID=7911f7a9-cd03-48ef-8dca-27550d6039f4 /mybtrfs btrfs defaults 0 0
Если у вас есть еще вопросы, задавайте их в комментариях ниже.