После создания Btrfs RAID вы можете добавить к нему больше устройств хранения, чтобы расширить RAID. Но как только вы добавите больше устройств хранения в RAID, Btrfs не будет автоматически распространять существующие данные / метаданные / системные данные на новые устройства хранения. Таким образом, вы можете не получить желаемую пропускную способность (скорость чтения / записи) из RAID, и он не сможет заполнить новые устройства хранения необходимыми избыточными данными. Таким образом, RAID-массив может не выдержать желаемого количества отказов дисков.
Для решения этих проблем файловая система Btrfs предоставляет встроенный инструмент балансировки. Утилита баланса Btrfs будет распространять данные / метаданные / системные данные существующих устройств хранения RAID на новые добавленные устройства хранения.
В этой статье я покажу вам, как использовать утилиту Btrfs balance для распространения данных / метаданных / системных данных существующих устройств хранения RAID на вновь добавленные устройства хранения. Итак, приступим!
Сокращения
RAID - Резервный массив недорогих / независимых дисков
МБ - Мегабайт
ГБ - Гигабайт
Предпосылки
Чтобы следовать этой статье, вам потребуется работающий RAID-массив Btrfs или установка для нескольких устройств.
Я создал Btrfs RAID в RAID-0 конфигурация с использованием 4 запоминающих устройств SDB, SDC, SDD, а также sde.
Как видите, файловая система Btrfs выделила 1 ГБ дискового пространства для данных1 256 МБ дискового пространства для метаданные2, а также 4 МБ дискового пространства для system-data3 с каждого устройства хранения в RAID.
О 18.75 ГБ снаружи 20 ГБ все еще не выделен4 на каждом из запоминающих устройств RAID.
Использование / данные файловой системы $ sudo btrfs
Написание сценария для создания случайных файлов
Чтобы показать вам, как работает утилита Btrfs balance, нам нужно сгенерировать несколько случайных файлов, чтобы заполнить файловую систему Btrfs. Давайте создадим сценарий оболочки, который сделает это.
Создайте новый файл сценария оболочки.sh в каталоге / usr / local / bin / следующим образом:
$ sudo nano / usr / local / bin / genfiles.ш
Введите следующие строки кодов в поле Genfiles.ш сценарий оболочки.
#!/ bin / bashпока правда
делать
ИМЯ ФАЙЛА = $ (uuidgen)
echo "[Создание] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M count = 256 status = прогресс
echo "[Создано] $ FILENAME"
Выполнено
Когда вы закончите, нажмите
В Genfiles.ш сценарий оболочки запускает бесконечное пока петля.
пока правдаделать
# другой код
Выполнено
Следующая строка генерирует UUID с использованием uuidgen команда и сохраняет UUID в ИМЯ ФАЙЛА Переменная.
Следующая строка выводит сообщение на консоль перед файлом ИМЯ ФАЙЛА генерируется.
Следующая строка генерирует новый случайный файл ИМЯ ФАЙЛА с помощью дд команда. Размер файла будет 256 МБ.
Следующая строка выводит сообщение на консоль после файла ИМЯ ФАЙЛА генерируется.
Добавить разрешение на выполнение в Genfiles.ш сценарий оболочки следующим образом:
$ sudo chmod + x / usr / локальный / bin / genfiles.ш
В Genfiles.ш сценарий оболочки теперь должен быть доступен, как и любые другие команды.
$ which genfiles.ш
Генерация случайных файлов в файловой системе Btrfs
Мы хотим сгенерировать случайные файлы в Btrfs RAID. Допустим, Btrfs RAID установлен на /данные каталог.
Перейдите к /данные каталог, в котором монтируется Btrfs RAID, как показано ниже:
$ cd / data
Как видите, в настоящий момент в моем RAID-массиве Btrfs нет файлов.
$ ls -lh
Чтобы сгенерировать несколько случайных файлов в текущем рабочем каталоге (/данные каталог в этом случае), запустите Genfiles.ш сценарий оболочки следующим образом:
$ sudo genfiles.ш
В Genfiles.ш сценарий оболочки должен начать генерировать случайные файлы в /данные каталог.
В Genfiles.ш скрипт генерирует случайные файлы. Дайте скрипту поработать пару минут, чтобы он занял около 2-3 ГБ дискового пространства Btrfs RAID.
Когда вы хотите остановить Genfiles.ш сценарий оболочки, нажмите
Как видите, некоторые случайные файлы генерируются в RAID-массиве Btrfs.
$ ls -lh
Как видите, Btrfs RAID выделил 2 ГБ для каждого из устройств хранения, добавленных к RAID. Ранее Btrfs RAID выделял по 1 ГБ для каждого из устройств хранения, добавленных к RAID.
Нераспределенное дисковое пространство уменьшено с 18.75 ГБ к 17.75 ГБ во всех запоминающих устройствах RAID.
Использование / данные файловой системы $ sudo btrfs
Добавление другого устройства хранения в Btrfs RAID
Чтобы показать вам, как сбалансировать Btrfs RAID после добавления нового устройства хранения, вы должны добавить к нему новое устройство хранения.
Я добавил новый жесткий диск sdf на свой компьютер, который я хочу добавить к Btrfs RAID, установленному на /данные каталог. Посмотрим, как это сделать.
$ sudo lsblk -e7
Перейдите в другой каталог (i.е., ДОМ каталог) из /данные каталог следующим образом:
$ cd
Чтобы добавить запоминающее устройство sdf к Btrfs RAID, установленному на /данные каталог, выполните следующую команду:
$ sudo btrfs устройство добавить / dev / sdf / data
Как видите, запоминающее устройство sdf добавлен в Btrfs RAID. Размер RAID увеличился с 80 ГБ к 100 ГБ.
Использование / данные файловой системы $ sudo btrfs
Балансировка Btrfs RAID
Как видите, недавно добавленное запоминающее устройство (sdf) RAID (установленный на /данные каталог) имеет нераспределенные 20 ГБ, а другие устройства хранения (SDB, SDC, SDD, sde, так далее.) имеют 17.75 ГБ нераспределенный.
Использование / данные файловой системы $ sudo btrfs
Данные1, метаданные2, и системные данные3 доступны только на существующих запоминающих устройствах RAID, но не на вновь добавленном запоминающем устройстве.
Чтобы распределить данные, метаданные и системные данные на всех устройствах хранения RAID (включая недавно добавленное устройство хранения), установленных на /данные каталог, выполните следующую команду:
$ sudo btrfs balance start --full-balance / data
Распределение данных, метаданных и системных данных на всех устройствах хранения RAID может занять некоторое время, если он содержит много данных.
После того, как устройства хранения RAID будут правильно сбалансированы, вы должны увидеть следующее сообщение.
Как видите, после завершения операции балансировки вновь добавленное устройство хранения имеет такой же объем нераспределенного дискового пространства, что и другие устройства хранения RAID.
После операции балансировки для данных, метаданных и системных данных с вновь добавленного устройства хранения (sdf) RAID.
Заключение
В этой статье я обсудил назначение утилиты Btrfs balance, а также то, как сбалансировать Btrfs RAID или файловую систему с несколькими устройствами после добавления новых устройств хранения в файловую систему RAID или с несколькими устройствами.