5

Я использую файловый сервер с программным обеспечением Linux raid, настроенным как raid6. В качестве файловой системы я выбрал btrfs. Однако я не использую собственную реализацию raid6 от btrfs, так как она пока не очень стабильна. В общем, я использую рейд на уровне блоков вещей. Кроме того, я делаю резервные копии в другом месте действительно важных данных. Наконец, я подключил ИБП к серверу для защиты от потери питания и скачков напряжения.

Мои вопросы:

  1. Я знаю, что raid6 дает довольно хорошую защиту от сбоя жесткого диска, но действительно ли btrfs обнаружит гниль бит и исправит ее? Если да, то как это возможно без файловой системы raid1?

  2. Пройдет ли время от времени md блок raid6, чтобы найти и исправить ошибки? Нужно ли планировать это?

  3. Если я сделал что-то не так, что вы посоветуете сделать вместо этого, если я хочу иметь хорошую защиту от сбоя данных и гниения?

3 ответа3

4

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

Как и ZFS, BTRFS выполняет контрольное суммирование, что означает, что вы всегда можете (и вам следует периодически) запускать скраб для проверки ваших данных. Если данные (данные или метаданные) на диске повреждены, BTRFS сможет обнаруживать ошибки, а при наличии избыточности (с помощью BTRFS RAID-6) он может исправить поврежденные файлы. После этого он будет знать, правильны ли восстановленные файлы, потому что у него есть контрольные суммы.

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

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

Если вы используете BTRFS так, как это предполагается, создав файловую систему BTRFS RAID-6 (без MD RAID) с прямым доступом к вашим дискам, она сможет надежно исправлять ошибки и будет знать, действительно ли ошибки исчезли. потому что у него есть контрольные суммы. Он сообщит вам, на каких дисках произошли эти ошибки, чтобы вы знали, какой диск неисправен (вы можете заменить его с помощью команд btrfs). Дело в том, что независимо от того, поврежден ли диск или нет его, и нужно ли его заменить или если диск частично поврежден (потому что он скоро умрет), BTRFS будет надежно обнаруживать ошибки. Конечно, периодические операции очистки так же важны, как и в других системах RAID, для обнаружения тихого повреждения (подсказка: cronjob).

Итак, опять же, BTRFS RAID-6 все еще считается экспериментальной, но благодаря наличию контрольных сумм он уже предлагает надежный способ обнаружения (а затем исправления) ошибок. Он экспериментальный, поэтому в некоторых случаях может привести к сбою, тогда вам следует попробовать более новую версию ядра, которая исправляет многие проблемы с BTRFS. Будьте в курсе вашего ядра (4.3 на момент написания, не используйте ничего более старого, чем это для RAID-6). Но типичные сценарии использования RAID (просто хранение большого количества данных и в какой-то момент замена диска - сбой на нескольких дисках может отличаться) уже работают с BTRFS.


Вы отметили свой вопрос с помощью . ZFS не входит в ядро Linux, поэтому его придется устанавливать вручную - порт ZFSonLinux работает очень хорошо. Может потребоваться переустановить его или сделать другое исправление после установки новой версии ядра, но это сейчас не важно. Конечно, есть некоторые вещи, которые работают по-другому в ZFS. Кроме того, в отличие от файловой системы BTRFS, размер zpool ZFS RAIDZ2 (например, RAID-6) нельзя изменить (существуют "хитрости", но суть в том, что raidz2 vdev не может быть увеличен путем добавления диска), поэтому существующая система не может легко расширить с помощью большего количества дисков. Однако, что касается стабильности, ZFS, вероятно, лучший выбор из всех. С помощью контрольных сумм он обеспечивает надежную защиту данных, как описано, и достаточно зрелый, чтобы справиться практически со всем (множественные отказы дисков, ненадежный контроллер, ZFS выживает практически во всем и может защитить / исправить ваши данные, если у вас достаточно хороших дисков). Учитывая, что (как и BTRFS) ZFS необходим индивидуальный доступ к вашим дискам (чтобы иметь возможность исправлять ошибки), вам определенно не следует использовать его поверх тома MD RAID, если у вас нет веских причин для этого.

4

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

2: RAID6 не обнаруживает и не надежно защищает от битового повреждения. Он защищает только от сбоя диска и в некоторых случаях может обнаруживать неиспользованные все еще поврежденные блоки.

3: Если btrfs RAID6 не готов, вы можете рассмотреть возможность зеркалирования btrfs или ZFS RAIDZ2.

2

В вашей настройке это не так.

Я бы порекомендовал использовать встроенный в ZFS RAID-z2, который затем может выполнять восстановление с минимальной скоростью. Включение сжатия lz4 также обеспечит лучшую производительность и экономию пространства.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .