Рекламное объявление

Если в вашей системе Linux есть несколько жестких дисков, вам не нужно рассматривать их как разные устройства хранения. С Btrfs вы можете очень легко создать пул хранения из этих жестких дисков.

При определенных условиях вы можете даже включить зеркалирование, чтобы не потерять свои данные из-за сбоя жесткого диска. Когда все настроено, вы можете просто выбросить в пул все, что захотите, и максимально эффективно использовать имеющееся у вас место для хранения.

Нет утилиты конфигурирования с графическим интерфейсом, которая могла бы сделать все это проще (пока), но это все же довольно легко сделать с помощью командной строки. Я проведу вас через простую настройку для использования нескольких жестких дисков вместе.

Что такое Btrfs?

Btrfs (называемая файловой системой B-tree, «Butter FS» или «Better FS») будущая файловая система Ext4 против Btrfs: почему мы делаем переход [Linux]Честно говоря, последнее, на что люди обращают внимание, - это какая файловая система используется. У пользователей Windows и Mac OS X даже меньше причин искать, потому что у них действительно есть только один ...

instagram viewer
Подробнее он включает в себя множество различных функций на уровне файловой системы, обычно доступных только в виде отдельных пакетов программного обеспечения. В то время как Btrfs имеет много примечательных функций (таких как снимки файловой системы), в этой статье мы рассмотрим два аспекта: пул хранения и зеркалирование.

Если вы не уверены, что такое файловая система, взгляните на это объяснение несколько файловых систем для Windows Что такое файловая система и как вы можете узнать, что работает на ваших дискахЧто такое файловая система и почему они имеют значение? Узнайте различия между FAT32, NTFS, HPS +, EXT и другими. Подробнее . Вы также можете проверить это приятно сравнение различных файловых систем От FAT к NTFS к ZFS: демистифицированы файловые системыРазличные жесткие диски и операционные системы могут использовать разные файловые системы. Вот что это значит и что вам нужно знать. Подробнее чтобы лучше понять различия между существующими файловыми системами.

Btrfs по-прежнему считается «нестабильным» для многих, но большинство функций уже достаточно стабильны для личного использования - это всего лишь несколько избранных функций, где вы можете столкнуться с непредвиденными результатами.

Хотя Btrfs и в будущем планирует стать файловой системой для Linux по умолчанию, все же лучше использовать ext4 для установок с одним жестким диском или для установок, которые не нуждаются в пуле хранения и зеркалировании.

Объединение ваших дисков

Для этого примера мы собираемся использовать четыре жестких диска. Имеется два жестких диска (/ dev / sdb и / dev / sdc) объемом 1 ТБ каждый и два других жестких диска (/ dev / sdd и / dev / sde) объемом 500 ГБ для четырех жестких дисков общим объемом 3 ТБ. хранения.

Вы также можете предположить, что у вас есть другой жесткий диск (/ dev / sda) произвольного размера, который содержит ваш загрузчик и операционную систему. Мы не заботимся о / dev / sda и исключительно объединяем остальные четыре жестких диска для дополнительного хранения.

Создание файловой системы

btrfs_gparted
Чтобы создать файловую систему Btrfs на одном из ваших жестких дисков, вы можете использовать команду:

sudo mkfs.btrfs / dev / sdb

Конечно, вы можете заменить / dev / sdb на тот жесткий диск, который вы хотите использовать. Отсюда вы можете добавить другие жесткие диски в систему Btrfs, чтобы сделать ее одним разделом, охватывающим все добавляемые жесткие диски. Сначала подключите первый жесткий диск Btrfs с помощью команды:

sudo mount / dev / sdb / mnt

Затем выполните команды:

sudo mkfs.btrfs / dev / sdc mkfs.btrfs / dev / sdd mkfs.btrfs / dev / sde

Теперь вы можете добавить их на первый жесткий диск, используя команды:

устройство sudo btrfs добавляет / dev / sdc / mnt устройство btrfs добавляет / dev / sdd / mnt устройство btrfs добавляет / dev / sde / mnt

Если у вас были данные, хранящиеся на первом жестком диске, вы хотите, чтобы файловая система сбалансировала их среди всех вновь добавленных жестких дисков. Вы можете сделать это с помощью команды:

Баланс файловой системы sudo btrfs / mnt

В качестве альтернативы, если вы знаете, что даже прежде чем начать, хотите, чтобы файловая система Btrfs распространялась на все жесткие диски, вы можете просто выполнить команду:

sudo mkfs.btrfs -d single / dev / sdb / dev / sdc / dev / sdd / dev / sde

Конечно, это намного проще, но вам придется использовать метод, упомянутый выше, если вы не добавите их все за один раз.

Вы заметите, что я использовал флаг: «-d single». Это необходимо, потому что я хотел конфигурацию RAID 0 (где данные распределяются между всеми диски, но зеркальное отображение не происходит), но «жесткий» профиль необходим, когда жесткие диски отличаются размеры. Если бы все жесткие диски были одинакового размера, я мог бы вместо этого использовать флаг «-d raid0». Между прочим, флаг «-d» обозначает данные и позволяет указать желаемую конфигурацию данных. Также есть флаг «-m», который делает то же самое для метаданных.

Помимо этого, вы также можете включить RAID 1 с помощью «-d raid1», который будет дублировать данные на всех устройствах, поэтому используйте этот флаг при создании Файловая система Btrfs, которая охватывает все жесткие диски, будет означать, что вы получите только 500 ГБ доступного пространства, так как три других жестких диска используются для зеркалирования.

Наконец, вы можете включить RAID 10, используя «-d raid10». Это будет сочетать как RAID 0, так и RAID 1, поэтому вам будет доступно 1,5 ТБ свободного пространства, поскольку два жестких диска по 1 ТБ спарены в зеркалировании, а два жестких диска по 500 ГБ спарены в зеркалировании.

Преобразование файловой системы

btrfs_harddiskstack
Если у вас есть файловая система Btrfs, которую вы хотите преобразовать в другую конфигурацию RAID, это легко сделать. Сначала смонтируйте файловую систему (если это еще не сделано) с помощью команды:

Судо mount / dev / sdb1 / mnt

Затем выполните команду:

Судо btrfs balance start -dconvert = raid1 -mconvert = raid1 / mnt

Это изменит конфигурацию на RAID 1, но вы можете заменить ее любой конфигурацией, которую хотите (так Пока это действительно разрешено - например, вы не можете переключиться на RAID 10, если у вас нет как минимум четырех жестких диски). Кроме того, флаг -mconvert является необязательным, если вас интересуют только данные, а не метаданные.

Если происходит сбой жесткого диска

Если произойдет сбой жесткого диска, вам необходимо удалить его из файловой системы, чтобы остальные накопители работали правильно. Смонтируйте файловую систему с помощью команды:

sudo mount -o ухудшено / dev / sdb / mnt

Затем исправьте файловую систему с помощью:

устройство sudo btrfs удалить отсутствует / mnt

Если у вас не был включен RAID 1 или RAID 10, все данные, которые были на неисправном жестком диске, теперь теряются.

Извлечение жесткого диска из файловой системы

Наконец, если вы хотите удалить устройство из файловой системы Btrfs, а файловая система смонтирована в / mnt, вы можете сделать это с помощью команды:

Удаление устройства sudo btrfs / dev / sdc / mnt

Конечно, замените / dev / sdc на жесткий диск, который вы хотите удалить. Эта команда займет некоторое время, потому что она должна удалить все данные с удаляемого жесткого диска, и также потерпит неудачу, если на других оставшихся жестких дисках недостаточно места.

Автоматический монтаж

btrfs_fstab
Если вы хотите, чтобы файловая система Btrfs была смонтирована автоматически, вы можете поместить ее в файл / etc / fstab:

sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde 0 0

Варианты монтирования

Еще один бонусный совет! Вы можете оптимизировать производительность Btrfs в файле / etc / fstab в разделе параметров монтирования для файловой системы Btrfs. Для больших массивов хранения эти параметры лучше всего подходят: сжатие-сила = zlib, autodefrag, nospace_cache. В частности, compress = zlib сжимает все данные, чтобы вы могли максимально использовать пространство, которое у вас есть. Для записи пользователи SSD могут использовать эти параметры: noatime, compress = lzo, ssd, discard, space_cache, autodefrag, inode_cache. Эти параметры соответствуют спецификациям устройства, поэтому полная строка в / etc / fstab для пользователей SSD будет выглядеть так:

sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde,
noatime, compress = lzo, ssd, discard, space_cache, autodefrag, inode_cache 0 0

Насколько большой ваш пул хранения?

Btrfs - это фантастический вариант для создания пулов и зеркалирования, который обязательно станет более популярным, когда он будет считаться полностью стабильным. Также не помешало бы наличие графического интерфейса для облегчения настройки (кроме некоторых установщиков дистрибутива), но команды, которые вы должны использовать в терминале, легко понять и применить.

Какой самый большой пул памяти вы можете сделать? Как вы думаете, пулы хранения стоят? Дайте нам знать об этом в комментариях!

Кредит изображения: Уильям Хук

Дэнни - старший в Университете Северного Техаса, который пользуется всеми аспектами программного обеспечения с открытым исходным кодом и Linux.