Btrfs: RAID 1 на устройствах 3+


10

В настоящее время у меня есть раздел Btrfs с четырьмя устройствами: три диска по 3 ТБ и диск по 4 ТБ. Данные и метаданные - это RAID 10, поэтому у меня есть 6 ТБ полезного пространства, которое почти заполнено. Я ожидал, что поддержка RAID 5 в Btrfs станет зрелой ко времени заполнения моего хранилища, но, видимо, это не приоритет.

Мой вопрос: есть ли причина предпочитать RAID 10, а не RAID 1 ? Я знаю, что настоящий RAID 1 на моем текущем оборудовании должен дать мне 3 ТБ полезного пространства с 4 копиями каждого блока, но Btrfs, по-видимому, так себя не ведет. Из Btrfs FAQ :

btrfs сначала объединяет все устройства в пул хранения, а затем дублирует фрагменты при создании файловых данных. RAID-1 в настоящее время определяется как «2 копии всех данных на разных устройствах». Это отличается от MD-RAID и dmraid тем, что они делают ровно n копий для n устройств. В btrfs RAID-1 на трех устройствах по 1 ТБ мы получаем 1,5 ТБ полезных данных. Поскольку каждый блок копируется только на 2 устройства, запись данного блока требует записи только на 2 устройства; чтение может быть сделано только с одного.

И от Йенса Эрата о переполнении стека :

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

В случае сбоя более одного диска вы всегда рискуете потерять данные: RAID 1 не может справиться с потерей двух дисков одновременно. В приведенном выше примере, если умирают не те два диска, вы всегда теряете данные.

Означает ли это, что изменение баланса с RAID 10 на RAID 1 даст мне дополнительные 500 ГБ данных (6,5 ТБ, а не 6 ТБ) из-за диска 4 ТБ? И есть ли причина для меня придерживаться RAID 10?


1
BTRFS RAID-5 является (хотя и экспериментальным) на самом деле довольно стабильным, и даже многие типичные сценарии восстановления данных работают в текущей версии (без сбоев). Вам, вероятно, следует время от времени чистить, чтобы убедиться, что ваши данные все еще верны, но, возможно, это стоит попробовать. Можно конвертировать из RAID-1 (0) в RAID-5.
basic6

@ basic6 Полезно знать, спасибо. Я исследовал , что не так давно , и увидел , что scrubи replaceподдержка была добавлена по состоянию на 3.19, но люди по - прежнему жалуются на отсутствие предупреждения о сбоях устройств. У меня есть кроны для еженедельных скрабов и еженедельных / ежемесячных самотестирований SMART, поэтому я должен быть в состоянии уловить эти проблемы. Я попробую.
Миккель

Периодические (еженедельные или ежемесячные) операции очистки важны, если программа очистки находит и выдает ошибку, потому что она не может прочитать с диска, это увеличит количество ошибок. Проверьте количество ошибок с помощью dev stats, который может быть еще один cronjob .
basic6

Ответы:


5

Да, вы получаете дополнительные 500 ГБ. Обратите внимание, что определение доступного пространства в btrfs остается труднодостижимым. Также: взгляните на калькулятор использования диска btrfs .

На ваш второй вопрос: вы можете потерять производительность вашего массива. Естественно, ваши данные одинаково безопасны в обеих конфигурациях RAID. При рассмотрении производительности вы можете взглянуть на эти тесты: kernel.org , phoronix.com .

Возможно, вы уже пробовали конвертировать в RAID 1? Если так: каковы ваши выводы?


1
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его постом - вы всегда можете комментировать свои собственные посты, и, когда у вас будет достаточно репутации, вы сможете комментировать любой пост .
ДэвидПостилл

Однако, чтобы ответить на ваш вопрос, я все-таки перешел, и результат, похоже, соответствует моим ожиданиям. Btrfs делает плохую работу с указанием фактического свободного места на диске, но вы можете видеть в выходе из btrfs fi shчто дополнительное пространство на диске с 4 ТБ принимаются преимущество, и (2,83 + 1,93 + 1,93 + 1,95 ) /2~=4.30 как и ожидалось. Недавно я перенес сбой диска и успешно восстановлен без потери данных, так что я могу воочию убедиться, что избыточность не повреждена.
Миккель

Мне жаль, что мой ответ был неясным @david. Я попытался ответить на два вопроса в последних двух строках оригинального сообщения. Кроме того, я указал диапазон неопределенности (который кажется присущим btrfs) и предоставил свои источники для справки. На самом деле я также задал вопрос автору, чтобы другие могли, возможно, извлечь уроки из его результатов. Я сделал это в ответе по причинам, которые вы уже объяснили. Я рассмотрю ваши комментарии в следующий раз, когда отвечу на вопрос об обмене стека.
Лора

Возможно, это не самый верный ответ, но мои результаты показывают, что ваши предположения верны, поэтому я принимаю это. Я не уверен насчет вашего комментария о различиях в производительности. Это, безусловно, верно для аппаратного RAID 1 против 10, но я не уверен, что Btrfs увидит повышение производительности от RAID 10. Кроме того, то, что он называет RAID 1, все еще распространяется здесь на несколько устройств, так что он все же больше похож на RAID 10, чем настоящий RAID 1. Если бы я прочитал ваш ответ до преобразования, я бы сделал до и после тестов, но я не трачу еще неделю на преобразование массива в RAID 10 и обратно.
Миккель

Ну, есть эта страница , которая показывает незначительные преимущества для RAID 10 по сравнению с RAID 1, неся предупреждение о том, что бенчмаркам уже 7 лет.
Миккель

0

Не используйте btrfs raid 5 или 6, реализация полна ошибок, запустите zfs, если хотите.

С raid10 вы наберете скорость.

Оптимальным является создание раздела объемом 3 ТБ на диске 4 ТБ (убедитесь, что все 3 имеют одинаковый размер), объедините их в RAID10, который будет иметь 6 ТБ свободного места. Используйте дополнительный 1 ТБ на диске 4 ТБ для / boot (в любом случае это должен быть vfat, если вы хотите использовать efistub и избегать grub или любого другого загрузчика, который сделает вашу загрузку немного быстрее), поменяйте местами (вы можете использовать довольно большой, оптимальным будет маленький zram swap (4 ГБ отлично работает с 32 ГБ оперативной памяти, 2 ГБ должно быть хорошо с 16 ГБ, если у вас меньше 16 ИДК, если оно того стоит, и вам, вероятно, следует обновить в любом случае), это используется первым (установите приоритет наивысший), используя zstd и столько потоков сжатия, сколько у вас ядер / потоков ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.