Является ли RAID-Z на одном жестком диске глупым?

18

Очевидно, что если весь диск умирает, то RAID-Z на одном диске не поможет. Но как насчет других типов ошибок?

Из моего опыта у меня иногда есть файл, который я не могу прочитать. В Mac OS X система зависнет на некоторое время, а затем вернется с ошибкой. Я перемещаю файл куда-то в сторону, и я предполагаю, что в этом файле есть плохой сектор или плохой блок, или, возможно, даже вся плохая дорожка.

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

Первый вопрос: как выходят из строя жесткие диски? Верны ли мои предположения выше? Правда ли, что плохой блок становится плохим, но весь диск по-прежнему в основном пригоден для использования? Если это так, то кажется, что RAID-Z может восстановить поврежденный блок или поврежденную область диска, используя четность других блоков (областей).

Вариант использования для резервного копирования. Если я отправляю данные на диск 8 ТБ один раз в неделю, имеет ли смысл считать его диском данных 7 ТБ плюс 1 ТБ четности в надежде на то, что дополнительная четность поможет мне восстановиться после бит-гнили, поврежденных секторов или другие локализованные сбои дисков?

Если теория технически не ошибочна, то можно ли настроить ZFS для этого?

Изменить: я видел другой вопрос, прежде чем опубликовать этот вопрос. Разделение на отдельные разделы, где каждый раздел сгруппирован, является одним из вариантов. Но в принципе, было бы возможно, чтобы карта блоков для N разделов была переплетена друг с другом так, чтобы одна полоса, в то время как логически была бы между N разделами, физически была бы очень близко друг к другу. Это был суть моего вопроса "можно ли настроить ZFS для этого?" т.е. просто ZFS ... не ZFS с обманом разделов.

pedz
источник
7
Если вы хотите избыточность одного диска, подумайте о создании архивов par2 . С ZFS вы могли бы установить copies=2, но при этом вы понесете 50% штраф хранилища. Кроме того, я не эксперт по ZFS, но моя интуиция (которая может ошибаться) говорит мне, что ZFS не будет довольна предложенным вами решением. PAR2 - это зрелая, гибкая технология. Его использование не только удовлетворит ваше требование четности, но и позволит вам при желании установить уровень четности для каждого архива.
EEAA
7
Возможный дубликат недостатков одного диска, разделенного на разделы и разделы, объединенные в raidz1 ZFS, в отличие от одного диска ZFS с дублированием данных? - По крайней мере, ответ включает в себя все, что вы должны знать.
Эса Йокинен
Дорожки на жестких дисках называются цилиндрами (поскольку их может быть несколько).
LawrenceC
1
Когда приводы выходят из строя, это, как правило, ускоряет процесс - количество испорченных секторов увеличивается до тех пор, пока весь диск не будет использоваться. Если диск начинает выходить из строя и RAID-Z молча компенсирует вас, у вас может быть успешно записанная резервная копия, но когда вы собираетесь восстанавливать ее, она уже не пригодна для использования. Я предпочел бы, чтобы мое устройство резервного копирования громко выходило из строя, когда я выполняю резервное копирование на него, как только оно начинает выходить из строя, поэтому я могу заменить его и продолжать верить, что то, что успешно написано, уверенно читаемо.
Энтони Икс,
@EEAA - звучит как то, что я буду использовать. Спасибо. И спасибо всем, кто прокомментировал.
pedz

Ответы:

23

Поскольку контроль четности RAID-Z работает благодаря наличию блока контроля четности на другом устройстве в пуле, вам необходимо разделить ваше устройство на N + 1, N + 2 или N + 3 равных по размеру разделов, где N разделов содержат данные и 1/2 содержат биты четности.

Поверх этих разделов вы должны создать zpool с выбранным вами RAID-Z, а затем создать файловую систему в zpool.

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

Ответ: да, это было бы глупо.

Теро Килканен
источник
2
Как насчет этого на SSD?
JFL
7
@JFL: флэш-память NAND, которая используется в твердотельных накопителях, имеет именно ту проблему, которую пытается решить это решение, а именно умирание отдельных блоков. Фактически, с NAND это такая большая проблема, что все контроллеры SSD явно управляют ею за вас. В результате наиболее распространенной видимой неисправностью SSD является полная потеря всего устройства, за которым, вероятно, последует сбой устройства, доступного только для чтения. Ни одна из проблем не выигрывает от решения, предотвращенного здесь.
MSalters
6
Кроме того, твердотельные накопители переупорядочивают блоки. Одной из примененных оптимизаций выравнивания износа является группировка записей вместе. Последовательная запись в разные разделы может оказаться в одном и том же блоке стирания, поэтому в случае сбоя блока стирания вы теряете преимущество сохранения одних и тех же данных несколько раз.
Лиори