yurybx
@yurybx
системный администратор

Доказательства опасности программного RAID?

Стоит задача установить Microsoft Hyper-V Core 2012 R2 на старенький сервер. Драйвера его RAID-контроллера не совместимы с этой ОС. Появилась идея настроить программный RAID средствами Windows (раньше такого не делал). В процессе изучения наткнулся на статью, где автор утверждает, что:
Может сложиться ситуация, при которой оба диска станут недоступными. Например, первый диск начинает активно сыпаться (появляются bad-сектора). Система зависает, т.к. не может произвести операцию чтения/записи. После перезагрузки сервера автоматически запускается ресинхронизация дисков, т.е. информация с первого диска перезаписывается на второй. Если ресинхронизацию прервать, то второй диск станет бесполезной грудой металла, т.к. он не содержит полный образ системы. А ресинхронизация обязательно прервется из-за bad-секторов на первом диске. В результате у нас на руках останутся два неисправных диска...

Меня это напугало, и я стал искать информацию, подтверждающую/опровергающую данное утверждение. И не смог найти. Может кто наталкивался на статьи по этой теме? Интересуют также риски использования "fake RAID" средствами Intel RST.
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 6
@rPman
Безопасность программного рейда не сильно отличается от аппаратного, но программный рейд позволяет создавать очень гибкие конфигурации, например рейд поверх iscsi дисков, размещенных на разных физических машинах (а это уже повышение надежности, так как выход из строя машины к примеру из-за пожара может чисто территориально не повлиять на другие диски).

У программного рейда наверное есть только одна проблема касаемо надежности - отсутствие энергонезависимого кеша на запись (но никто его и не включает на win), но и не все аппаратные такой имеют. Еще аппаратный может комплектоваться со своим кешем на чтение и своими алгоритмами оптимизации доступа, что повышает скорость результата - т.е. в итоге это вопрос производительности а не надежности.

Зато такие вещи как вендорлок у аппаратных рейдов - создают невероятно большую. головную боль и генерируют лишние траты денег (зачастую очень большие)
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Система зависает, т.к. не может произвести операцию чтения/записи. После перезагрузки сервера автоматически запускается ресинхронизация дисков,
1.Странно, что система зависает, если не может произвести любую операцию с диском.
2.Странно, что софт не проверяет целостность дисков перед ресинхронизацией.

Крайне сомнительные строки у автора статьи...

я стал искать информацию, подтверждающую/опровергающую данное утверждение. И не смог найти.
не удивительно...
Ответ написан
@nucleon
Вообще такое поведение было больше характерно для старых рейд контроллеров.
Лично сталкивался с тем, что первый диск в рейде 1-м считается главным. И соответственно все действительно рушилось, если первый диск рушился. Решалось выставлением второго диска в место первого при сбое и заменой диска, но да бага была.
А вообще сейчас это больше зависит от реализации рейда, точнее его логики. Софтовый рейд может действительно не загрузиться, так как рейд в системе включается только когда загружен драйвер, соответственно до его включения система как-то должна стартовать. Раньше решалось прописыванием загрузчика на второй диск и загрузкой с него.
И еще софтовый рейд не может быть загрузочным, если он не зеркало, т.е. вские raid 0,5,6 и далее - не могут стартовать систему.

Но у софтового рейда есть другая проблема. а именно резервирование производительности.
т.е. его нельзя ставить на системы с высокой нагрузкой...
Поясню: драйвер это по сути программа, с большим приоритетом но программа, т.е. предположим, что вы загрузили свой сервер задачами, которые сильно эксплуатируют диск, память и проц. и в итоге у вас драйвер окажется вытеснен из списка активных задач или памяти - в этот момент у вам все встанет.
Еще одной проблемой может встать восстановление... Помнится мой софтовый рейд 5 из 4-х дисков при восстановлении диска упал в производительности в 16 раз...
Ответ написан
anthtml
@anthtml
Системный администратор программист радиолюбитель
RAID выбырается с определенной целью и вариантов тут вагон и две тележки:
Во первых RAID необходим только на высоконагруженных системах 0, 0Х, Х0 или на системах требующих безостановочной работы 1, 1Х, Х1 и тд. В остальных случаях достаточно бэкапов и синхронизации.
Во вторых смотрится на аппарат/программа: аппаратный не ест ресурсы системы, т.к. все операции выполняются на отдельном контроллере имеющим полную логику, но в случае полета контроллера, нужно иметь в запасе совместимый аналог, без него массив не оживить. Программный обрабатывает все на ресурсах системы, соответственно собрать его можно на любой системе, также как и восстановить.
Так что все зависит от конкретной ситуации. На "старенький сервер" обычно критические сервисы не выводят, так что вполне возможно хватит и регулярного бэкапа +/- простого программного массива (если он там действительно нужен, а не то что "сервер должен быть априоре с raid")
Ответ написан
firedragon
@firedragon
Senior .NET developer
Основная проблема в том что на фэйк рэйде вы надеетесь что 10 это крайне надежно, и не замечаете или просто ждёте, в какой то момент все идёт нах. В остальном они надёжны, но как всегда люди.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Доказательства опасности программного RAID?
Программный опасен не более чем аппаратный.

Аппаратный работает быстро, без нагрузки на процессор хоста.
Программный работает не так быстро, и нагрузка на процессор хоста может быть очень большой.
Программный гибкий, аппаратный наоборот.
Есть еще куча нюансов.

Выбирать тип RAID следует исходя из задачи.
Не зная для чего вам вообще RAID понадобился сложно подсказать какой вариант будет лучше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы