RAID. Часть 1 - диски для RAID
Навеяно по "горячим следам" моих поисков, что бы такое поставить как домашний NAS.
Пишу то, что я сам раньше думал и как оно оказалось на самом деле.
[u]Миф 1. Не нужны дорогие RAID-версии дисков.[/u]
Факты - справедливо только для определенных конфигураций, размеров, итп. Есть две вещи, которые стоит учитывать -
1. Ошибки чтения. Вы не можете их обойти. При чтении данных ВСЕГДА есть вероятность 1/10^14 [b] НА БИТ[/b], что сектор не прочитается. На рейд-дисках обычно она 1/10^15 - на порядок меньше. Вероятность ошибки при ребилде растет по экспоненте с размером массива.
2. Внутренний таймаут диска при ошибке чтения. На рейд-дисках он поставлен в несколько секунд, на обычных - очень большой (до пары минут). В моменты когда десктопный диск не может прочитать сектор - он уходит в себя и пытается долго его перечитать. Десктоп в эти моменты повисает - контроллер ждет ответа диска.
[b]Если у вас хороший физический рейд-контроллер[/b], то он наверняка обрубит такой диск и пометит как плохой. Результат в этом случае - ребилд RAID5, RAID1, и потеря RAID0 (впрочем, потом с некоторой долей вер-ти его можно смонтировать заново без инициализации, если такое позволяет контроллер). Причем вполне возможно, что ещё какой-нить диск в массиве точно так же отвалится при чтении, и получим жопу при ребилде.
[b]В случае софт-рейда[/b] - зависит от таймаута, заложенного/настроенного в программе. Достаточно трудно найти данные по конкретным вещам, поэтому остается только экспериментировать - к примеру, вживую отключить питание на винте и посчитать, через какое время софтрейд переведет диск в оффлайн статус.
От пункта два есть лечение - но не гарантированное. В общем случае для последних моделей дисков можно выставить этот таймаут через смарт (smartmontools, svn вариант). После перезагрузки настройка сохраняется, после выключения - сбрасывается. У WD - рулетка, часть винтов можно прописать через первый метод, часть перманентно прописывается утилитой wdtler, часть ни через что не работает (отключено в прошивке походу).
От пункта один лечения нет. С физикой не поспоришь. На 2TB винте вероятность, что как минимум один сектор не прочитается при полной проверке - 0.02. 2% за то, что какой-то один файл будет потерян. Дай бог, чтобы это была авишка, где покорраптенные 512 байт ни на что не повлияют...
В следующем номере - Миф 2. Надежность RAID5 и альтернативы. Исходя из вышеописанных пунктов.
п.с. Не бейте автора за неосведомленность в части софт-рейда. Когда собирался прошлый NAS, то линуксовый рейд не подходил по объективным причинам, в итоге был куплен Adaptec 5805 и сигейтовские энтерпрайз диски (чисто из ослиного упрямства, тогда я не знал всей этой кухни)
Пишу то, что я сам раньше думал и как оно оказалось на самом деле.
[u]Миф 1. Не нужны дорогие RAID-версии дисков.[/u]
Факты - справедливо только для определенных конфигураций, размеров, итп. Есть две вещи, которые стоит учитывать -
1. Ошибки чтения. Вы не можете их обойти. При чтении данных ВСЕГДА есть вероятность 1/10^14 [b] НА БИТ[/b], что сектор не прочитается. На рейд-дисках обычно она 1/10^15 - на порядок меньше. Вероятность ошибки при ребилде растет по экспоненте с размером массива.
2. Внутренний таймаут диска при ошибке чтения. На рейд-дисках он поставлен в несколько секунд, на обычных - очень большой (до пары минут). В моменты когда десктопный диск не может прочитать сектор - он уходит в себя и пытается долго его перечитать. Десктоп в эти моменты повисает - контроллер ждет ответа диска.
[b]Если у вас хороший физический рейд-контроллер[/b], то он наверняка обрубит такой диск и пометит как плохой. Результат в этом случае - ребилд RAID5, RAID1, и потеря RAID0 (впрочем, потом с некоторой долей вер-ти его можно смонтировать заново без инициализации, если такое позволяет контроллер). Причем вполне возможно, что ещё какой-нить диск в массиве точно так же отвалится при чтении, и получим жопу при ребилде.
[b]В случае софт-рейда[/b] - зависит от таймаута, заложенного/настроенного в программе. Достаточно трудно найти данные по конкретным вещам, поэтому остается только экспериментировать - к примеру, вживую отключить питание на винте и посчитать, через какое время софтрейд переведет диск в оффлайн статус.
От пункта два есть лечение - но не гарантированное. В общем случае для последних моделей дисков можно выставить этот таймаут через смарт (smartmontools, svn вариант). После перезагрузки настройка сохраняется, после выключения - сбрасывается. У WD - рулетка, часть винтов можно прописать через первый метод, часть перманентно прописывается утилитой wdtler, часть ни через что не работает (отключено в прошивке походу).
От пункта один лечения нет. С физикой не поспоришь. На 2TB винте вероятность, что как минимум один сектор не прочитается при полной проверке - 0.02. 2% за то, что какой-то один файл будет потерян. Дай бог, чтобы это была авишка, где покорраптенные 512 байт ни на что не повлияют...
В следующем номере - Миф 2. Надежность RAID5 и альтернативы. Исходя из вышеописанных пунктов.
п.с. Не бейте автора за неосведомленность в части софт-рейда. Когда собирался прошлый NAS, то линуксовый рейд не подходил по объективным причинам, в итоге был куплен Adaptec 5805 и сигейтовские энтерпрайз диски (чисто из ослиного упрямства, тогда я не знал всей этой кухни)
0 Комментариев
Рекомендуемые комментарии
Комментариев нет