Некоторые аспекты надежности хранения данных на RAID массивах.

В современном «цифровом» мире особую актуальность приобретают вопросы надежности хранения информации. О надежности разного типа носителей от жестких дисков до флэш-памяти написано огромное количество статей, но наиболее востребованным средством для надежного хранения важной информации являются RAID массивы.
Все знают, что RAID – это Redundant Array of Independent Disks — избыточный массив независимых жёстких дисков. Об уровнях RAID, их принципах построения, достоинствах и недостатках написано немало трудов и рефератов. В данной статье рассмотрим некоторые аспекты надежности хранения информации на RAID массивах, и рекомендации, какие действия следует предпринять, чтобы максимально повысить эту самую надежность.
1. Абсолютно надежных систем хранения не бывает. И не надо думать, что вложив немалое количество денежных знаков (иногда очень немалое) в приобретение системы хранения, можно спать спокойно, думая, что данные никуда не пропадут. Отсюда первая и самая главная рекомендация: вся ответственная и жизненно важная информация должна иметь свою копию (Backup) на других носителях, а еще лучше и в другом месте, чтобы исключить возможность выхода из строя RAID системы по причине наводнения, пожара и других, не зависящих от пользователя, катаклизмов. Но это в идеале. И не всегда реализуемо, но к этому надо стремиться.
2. Основой всех RAID систем хранения является RAID контроллер. И неважно, встроен ли он в материнскую плату компьютера, установлен ли в дополнительный разъем на ней, или вообще вынесен в отдельный внешний корпус, где размещаются и жесткие диски. Функция у всех одна – обеспечить распределение данных по всем жестким дискам при операциях записи и собрать эти распределенные данные вместе при операциях чтения. И как любое «железо» такой контроллер может выйти из строя, причем в самый неподходящий момент. К тому же контроллеры бюджетного уровня, имеют упрощенный алгоритм работы и восстановления после информации сбоев, что увеличивает вероятность потери информации. Конечно, изделия признанных мировых производителей стоимостью несколько сотен (а то и тысяч) значительно надежнее, их алгоритмы обработки ошибок более совершенны, но и они не безгрешны. Да и быстродействие бюджетных устройств оставляет желать лучшего. Это например относится к контроллерам, встроенным в десктопные материнские платы. На них не рекомендуется создавать RAID массивы с уровнями выше 1 и 10. И хотя при этом используется только половина дискового объема, этот вариант может оказаться предпочтительным при объемах до 4-6 терабайт. Ведь стоимость «правильного» RAID контроллера превышает стоимость двух, а то и трех дисков. Но когда требуемый объем получается из 8-12-16 и более дисков, то здесь надо выбирать продукцию признанных мировых производителей. Помимо совершенных алгоритмов работы и восстановления, они имеют огромное количество дополнительных сервисных функций, которые помогают проводить регламентные работы и вовремя обнаруживать неполадки, и, тем самым, позволяют предотвратить возможную потерю информации.
После выхода RAID контроллера из строя практически единственный способ спасти информацию – это подключить диски к такому же (или очень похожему) контроллеру. Ведь вся информация о структуре RAID записана на самих дисках. Но если с новыми контроллерами это удается сделать, то как быть с устройствами давно снятыми с производства? Остается еще и программный способ восстановления с помощью специализированного ПО, например, R-Studio от R-Tools Technology Inc. или RAID Reconstructor от Runtime Software. Но это требует дополнительных затрат, как на приобретение ПО, так и возможное приобретение специализированных оборудования и комплектующих. Может быть стоит сразу обратиться к специалистам.
3. Внутренний или внешний. Как правило, RAID контроллер, устанавливаемый в разъем материнской платы дешевле, чем такой же, размещенный во внешнем корпусе. Но при этом надо помнить, что в первом варианте дополнительные затраты потребуются на корпус системного блока (т.к. далеко не в каждый можно установить 8-12 дисков), специальных отсеков (корзин) для «горячей» замены дисков. Вероятнее всего придется заменить блок питания на более мощный, а также модернизировать систему охлаждения внутри системного блока. В случае использования внешних RAID массивов производитель уже все продумал и сделал. Как правило, в случае внешнего исполнения легче увеличивать дисковое пространство – можно просто к основной системе подключить еще одну «коробочку» (а то и две). При использовании внутреннего RAID контроллера есть еще один подводный камень. Это выход из строя блока питания системного блока. Тезис, что любая компьютерная техника должна ОБЯЗАТЕЛЬНО работать через источник бесперебойного питания (UPS) даже не обсуждается, а вот блоки питания иногда ломаются. Если это произошло в момент записи данных на RAID массив, то в кэш-памяти контроллера и дисков находились данные, физически еще не записанные на поверхность дисков, а для операционной системы они уже считаются записанными. В этом случае результатом может быть не только потеря последней информации, а в случае использования RAID5 (6) и разрушение структуры RAID, т. к. появляется несоответствие записанных данных и их контрольных сумм. Решением этой проблемы может быть:
а) использование системных блоков с резервированным питанием. Но такие системы стоят очень недешево.
б) использование дополнительного аккумулятора для RAID контролера (BBU), который позволяет на некоторое время сохранить данные в кэш-памяти контроллера. За это некоторое время нужно успеть заменить вышедший из строя блок питания и запустить систему. Следует помнить, что такой аккумулятор требует определенного температурного режима (не более 40 град С) и периодической замены, т. к. имеет ограниченный срок службы.
в) отключение использования кэш-памяти контроллера (режим Write Through) и кэш-памяти дисков. При этом заметно снижается быстродействие, но повышается надежность. И не все контроллеры поддерживают эти функции.
Всё вышесказанное относится и к внешним системам хранения с единственным блоком питания. Поэтому для хранения важной и ответственной информации рекомендуется использование внешних систем хранения с резервированными блоками питания и, естественно, с использованием UPS. В этом случае возможно подключение UPS только к одному блоку питания, т.к. вероятность выхода из строя именно этого блока питания в момент отключения электропитания крайне мала. Хотя и такая ситуация может иметь место.
В случае внезапных отключения питания или иных сбоев при использовании RAID3, 5 и 6 может появиться несоответствие записанных данных и их контрольных сумм (информации о четности). В последующем это может привести к проблемам при восстановлении информации. Поэтому всегда после внезапных сбоев в работе системы хранения настоятельно рекомендуется выполнить проверку соответствия данных и их контрольных сумм (да и просто выполнять ее периодически), запустив соответствующую функцию из ПО RAID контроллера. У разных производителей она может называться по-разному: Consistency check, Parity check и т.п.
4. Жесткие диски. Пожалуй, единственный механический компонент систем хранения. За последние годы заметно выросли их объемы и повысилась надежность. Для использования в системах ранения рекомендуются диски специальных серий, предназначение для работы именно в подобных системах. Исключение составляют только самые недорогие RAID контроллеры и сетевые накопители (NAS) бюджетного уровня. Последние выполнены, как правило, на базе платформ Unix с программной организацией RAID. На Интернет-сайте каждого, уважающего себя производителя систем хранения и RAID контроллеров, можно найти список совместимых моделей (Compatibility_List) жестких дисков, которого настоятельно рекомендуется придерживаться. Правда, эти списки обновляются не так быстро, как хотелось.
Самой неприятной ситуацией является выход из строя жесткого диска. И хотя практически все производители RAID контроллеров выполняют проверку состояния жестких дисков через функцию S.M.A.R.T. самих дисков, которая позволяет предугадать скорую "гибель" жесткого диска, но бывают случаи, когда диск выходит из строя внезапно. И если при использовании RAID0 данные будут потеряны окончательно и навсегда, то при использовании других уровней RAID все данные по-прежнему доступны и, произведя замену диска, можно восстановить ту информацию, которая была на нем. А RAID6 позволяет сохранить работоспособность при выходе их строя даже двух дисков одновременно. Но вряд ли кто будет дожидаться возникновения такой ситуации. Поэтому настоятельно рекомендуется выделить один жесткий для "горячего" резерва (Hot Spare), т.е. он не будет входить в состав тома, а при выходе из строя одного из дисков, составляющих том, на него немедленно начнется восстановлении информации. Если по каким-то причинам нет возможности выделить один диск для "горячей" замены, то следует купить еще один такой же диск и положить его рядом с системой хранения. Чтобы при возникновении подобной ситуации не бегать "сломя голову" в поисках нужной модели, а по-Жванецкому: "Этого уже нет ни в Москве, ни в Воронеже …".
Но необходимо отметить некоторые особенности.
а) при работе системы хранения с вышедшим из строя жестким диском заметно падает скорость передачи данных, особенно при записи. Исключение, пожалуй, составляют RAID1 и 10, а также RAID6, (в чем его первое преимущество перед RAID5).
б) при замене неисправного на новый начинается процесс восстановления на него данных. Как правило, это происходит автоматически, но иногда надо запустить соответствующее действие из ПО RAID контроллера. При этом значительно возрастает нагрузка, как на процессор системы хранения, так и на оставшиеся диски. Естественно, падает скорость передачи данных. Процесс восстановления информации может занимать довольно значительное время (зависит от объема диска и мощности процессора системы хранения) от нескольких часов, а в случае RAID5 и 6 и до нескольких суток. И, если при этом выйдет из строя еще один жесткий диск, то все данные можно считать безвозвратно потерянными. Исключение составляет RAID6 – данные по-прежнему доступны (второе его преимущество перед RAID5).
в) в процессе длительной работы на жестком диске могут появиться нечитаемые сектора ("битые блоки"). Об их существовании пользователь может никогда и не узнать, т.к. при обращении к такому сектору данные будут взяты или с другого диска (RAID0 и 10) или восстановлены с использованием контрольных сумм (RAID3, 5, 6). Может только появится запись в журнале событий, да и то не всегда и не у всех систем. Но при восстановлении информации на замененный жесткий диск разные системы могут повести себя по-разному. Некоторые при чтении просто пропустят этот сектор, заполнив его нулями на новом диске, а некоторые могут просто остановить процесс восстановления без каких-либо шансов на его продолжение, а это приведет к недоступности тома. Чтобы подобные ситуации не возникали в ПО RAID контроллеров предусмотрены соответствующие функции. Называться они могут по-разному: Verifying and Fixing, Scrabbing и т.п., но задача одна – проверить поверхность всех дисков, выявить нечитаемые сектора, и перезаписать данные в новое место с соответствующей корректировкой контрольных сумм. Поскольку появление нечитаемых секторов непредсказуемо, то такую проверку рекомендуется выполнять периодически. И тем чаще, чем дольше работают диски в системе хранения.
Учитывая эти особенности, бывает полезным при выходе из строя жесткого диска выполнить резервное копирование, если не всей, но хотя бы ответственной и жизненно важной информации (пока она доступна). И только потом устанавливать новый диск и запускать процесс восстановления.
5. Журнал событий. Большинство RAID контроллеров и внешних систем хранения предполагают ведение журнала событий, в который записываются данные о всех выполненных действиях, произошедших событиях и возникших ошибках. Не лишним будет хотя бы периодически в него заглядывать. Но настоятельно рекомендуется задать отправку на электронную почту или SNMP сообщений при записи события в журнал. Желательно задать не один электронный адрес, чтобы не получилось так, что система трое суток "пищала" в серверной по причине выхода из строя блока питания пока туда случайно не заглянула уборщица, а системный администратор был в отпуске.

Если соблюдать все вышеперечисленные рекомендации, то Ваша информация будет храниться долго и надежно даже на недорогих системах. Но есть старый анекдот: "Если командир не прав – смотри пункт первый".