Очевидно, что если сдохнет весь диск, то RAID-Z на одном диске не поможет. А как насчет других типов ошибок?
По моему опыту, у меня иногда бывает файл, который я не могу прочитать. В Mac OS X система некоторое время зависает, а затем возвращается с ошибкой. Я перемещаю файл куда-нибудь в сторону и предполагаю, что в этом файле есть плохой сектор или плохой блок, или, возможно, даже вся плохая дорожка.
Я вернулся во времена гибких дисков, когда ручное управление сбоями дисков было обычным делом. Конечно, вы должны заменить плохую дискету как можно скорее, но иногда вы не могли сделать это сразу, поэтому практика заключалась в том, чтобы найти плохую область, выделить ее в файл и никогда не удалять этот файл.
Первый вопрос: как выходят из строя жесткие диски? Верны ли мои предположения выше? Верно ли, что плохой блок выходит из строя, но весь диск все еще в основном пригоден для использования? Если это так, то похоже, что RAID-Z может восстановить поврежденный блок или поврежденную область диска, используя четность других блоков (областей).
Вариант использования - резервное копирование. Если я отправляю данные на диск емкостью 8 ТБ один раз в неделю, имеет ли смысл рассматривать его как диск с данными на 7 ТБ плюс 1 ТБ с контролем четности в надежде, что дополнительная четность поможет мне восстановиться после битовой гнили, битых секторов или другие локализованные сбои дисков?
Если теория не ошибочна технически, можно ли настроить ZFS для этого?
Изменить: я видел другой вопрос, прежде чем опубликовать этот вопрос. Один из вариантов - разделение на отдельные разделы, где каждый раздел сгруппирован вместе. Но теоретически можно было бы иметь карту блоков для N разделов, переплетенных друг с другом, так что одна полоса, хотя логически будет проходить через N разделов, физически будет очень близко друг к другу. В этом была суть моего вопроса "можно ли настроить ZFS для этого?" т.е. просто ZFS ... не ZFS с обманом разделов.
Поскольку контроль четности RAID-Z работает за счет наличия блока четности на другом устройстве в пуле, вам необходимо разделить устройство на N + 1, N + 2 или N + 3 разделов одинакового размера, где N разделов содержат данные, а 1/2 содержат биты четности.
Поверх этих разделов вы должны создать zpool с выбранным RAID-Z, а затем создать файловую систему на zpool.
Итак, теоретически это работает. На практике это привело бы к ужасной производительности файловой системы, поскольку соответствующие блоки в файлах были бы расположены на разных устройствах ZPool, которые находятся в разных разделах. Таким образом, после чтения блока жесткий диск должен переместиться в другую область пластин жесткого диска, прочитать следующий блок и т. Д.
Ответ: да, это было бы глупо.