Btrfs

Как да използвам баланса на Btrfs?

Как да използвам баланса на Btrfs?
Файловата система Btrfs има вградена поддръжка за множество устройства, така че можете да създавате различни нива на RAID, като я използвате.

След като създадете Btrfs RAID, можете да добавите още устройства за съхранение към RAID, за да разширите RAID. Но след като добавите повече устройства за съхранение към RAID, Btrfs няма да разпространява автоматично съществуващите данни / метаданни / системни данни към новите устройства за съхранение. Така че, може да не получите желаната пропускателна способност (скорост на четене / запис) от RAID и може да не е в състояние да попълни новите устройства за съхранение с необходимите излишни данни. Така че RAID масивът може да не успее да оцелее при желания брой неуспехи на устройството.

За да реши тези проблеми, файловата система Btrfs предоставя вграден инструмент за балансиране. Помощната програма за баланс Btrfs ще разпространи данните / метаданните / системните данни на съществуващите устройства за съхранение на RAID до новодобавените устройства за съхранение.

В тази статия ще ви покажа как да използвате помощната програма за балансиране Btrfs за разпространение на данните / метаданните / системните данни на съществуващите устройства за съхранение на RAID до новодобавените устройства за съхранение. И така, нека започнем!

Съкращения

RAID - Излишен масив от евтини / независими дискове
MB - Мегабайт
GB - Гигабайт

Предпоставки

За да следвате тази статия, трябва да имате работещ Btrfs RAID или настройка на няколко устройства.

Създадох Btrfs RAID в RAID-0 конфигуриране с помощта на 4 устройства за съхранение sdb, sdc, sdd, и sde.

Както можете да видите, файловата система Btrfs е разпределена 1 GB на дисково пространство за данни1 256 MB на дисково пространство за метаданни2, и 4 MB на дисково пространство за system-data3 от всяко от устройствата за съхранение в RAID.

относно 18.75 GB извън 20 GB все още е неразпределен4 от всяко от устройствата за съхранение на RAID.

$ sudo btrfs използване на файлова система / данни

Писане на скрипт за генериране на произволни файлове

За да ви покажем как работи помощната програма за балансиране на Btrfs, трябва да генерираме няколко произволни файла, за да запълним файловата система Btrfs. Нека създадем скрипт на черупка, който прави точно това.

Създайте нов genfiles на скрипта на черупката.sh в директорията / usr / local / bin /, както следва:

$ sudo nano / usr / local / bin / genfiles.ш

Въведете следните редове кодове в genfiles.ш скрипт на черупката.

#!/ bin / bash
докато е вярно
направете
ИМЕ НА ФАЙЛА = $ (uuidgen)
echo "[Създаване] $ FILENAME"
dd ако = / dev / random на = $ FILENAME bs = 1M брой = 256 статус = прогрес
echo "[Създаден] $ FILENAME"
Свършен

След като приключите, натиснете + х следван от Y и за да запазите genfiles.ш скрипт на черупката.

The genfiles.ш shell скрипт работи безкрайно докато цикъл.

докато е вярно
направете
# други кодове
Свършен

Следващият ред генерира UUID с помощта на uuidgen команда и съхранява UUID в ИМЕ НА ФАЙЛ променлива.

Следващият ред отпечатва съобщение на конзолата преди файла ИМЕ НА ФАЙЛ се генерира.

Следващият ред генерира нов произволен файл ИМЕ НА ФАЙЛ използвайки дд команда. Файлът ще бъде с размер 256 MB.

Следващият ред отпечатва съобщение на конзолата след файла ИМЕ НА ФАЙЛ се генерира.

Добавете разрешение за изпълнение към genfiles.ш скрипт на черупката, както следва:

$ sudo chmod + x / usr / local / bin / genfiles.ш

The genfiles.ш скриптът на черупката вече трябва да е достъпен като всички други команди.

$ които genfiles.ш

Генериране на произволни файлове във файловата система Btrfs

Искаме да генерираме произволни файлове в Btrfs RAID. Да кажем, че Btrfs RAID е монтиран на /данни директория.

Придвижете се до /данни директория, където е монтиран Btrfs RAID, както следва:

$ cd / данни

Както можете да видите, в момента няма налични файлове в моя Btrfs RAID.

$ ls -lh

За да генерирате някои произволни файлове в текущата работна директория (/данни в този случай), стартирайте genfiles.ш скрипт на черупката, както следва:

$ sudo genfiles.ш

The genfiles.ш shell скриптът трябва да започне да генерира произволни файлове в /данни директория.

The genfiles.ш скриптът генерира произволни файлове. Оставете скрипта да работи за няколко минути, така че да запълни около 2-3 GB дисково пространство на Btrfs RAID.

Когато искате да спрете genfiles.ш скрипт на черупката, натиснете + ° С.

Както можете да видите, някои произволни файлове се генерират в Btrfs RAID.

$ ls -lh


Както можете да видите, Btrfs RAID разпредели 2 GB от всяко устройство за съхранение, добавено към RAID. Преди Btrfs RAID разпределяше по 1 GB от всяко устройство за съхранение, добавено към RAID.

Неразпределеното дисково пространство е намалено от 18.75 GB да се 17.75 GB във всички устройства за съхранение на RAID.

$ sudo btrfs използване на файлова система / данни

Добавяне на друго устройство за съхранение към Btrfs RAID

За да ви покажем как да балансирате Btrfs RAID след добавяне на ново устройство за съхранение, трябва да добавите ново устройство за съхранение към него.

Добавих нов HDD sdf към моя компютър, който искам да добавя към Btrfs RAID, монтиран на /данни директория. Нека да видим как да го направим.

$ sudo lsblk -e7

Придвижете се до друга директория (i.д., У ДОМА директория) от /данни директория, както следва:

$ cd

За да добавите устройството за съхранение sdf към Btrfs RAID, монтиран на /данни директория, изпълнете следната команда:

$ sudo btrfs device add / dev / sdf / data

Както можете да видите, устройството за съхранение sdf се добавя към Btrfs RAID. Размерът на RAID се е увеличил от 80 GB да се 100 GB.

$ sudo btrfs използване на файлова система / данни

Балансиране на Btrfs RAID

Както можете да видите, новодобавеното устройство за съхранение (sdf) на RAID (монтиран на /данни директория) има 20 GB неразпределени, а останалите устройства за съхранение (sdb, sdc, sdd, sde, и т.н.) имат 17.75 GB неразпределен.

$ sudo btrfs използване на файлова система / данни

Информацията1, метаданни2, и системни данни3 са налични само на съществуващите устройства за съхранение на RAID, а не на новодобавеното устройство за съхранение.

За разпространение на данните, метаданните и системните данни на всички устройства за съхранение на RAID (включително новодобавеното устройство за съхранение), монтирани на /данни директория, изпълнете следната команда:

$ sudo btrfs balance start --full-balance / data

Може да отнеме известно време, за да се разпространят данните, метаданните и системните данни на всички устройства за съхранение на RAID, ако съдържа много данни.

След като устройствата за съхранение на RAID са правилно балансирани, трябва да видите следното съобщение.

Както можете да видите, след приключване на операцията по балансиране, новодобавеното устройство за съхранение има равно количество неразпределено дисково пространство като другите устройства за съхранение на RAID.

След операцията за балансиране, равно количество дисково пространство, както останалите устройства за съхранение на RAID, се разпределя за данните, метаданните и системните данни от новодобавеното устройство за съхранение (sdf) на RAID.

Заключение

В тази статия обсъдих целта на помощната програма за балансиране Btrfs, както и как да балансирам Btrfs RAID или файлова система с няколко устройства след добавяне на нови устройства за съхранение към RAID или файлова система с няколко устройства.

Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...