В последнее время IDE и в большей степени SATA жесткие диски все чаще и чаще используются для построение отказоустойчивых дисковых подсистем на базе RAID контроллеров и/или внешних дисковых массивов. Большая емкость на один диск, низкая стоимость и вполне приличная надежность делает эти диски в ближайшей перспективе серьезными конкурентами для SCSI в серверных системах, а во внешних дисковых системах для работы с оцифрованным кино и видео SCSI диски уже практически не применяются. Но при использовании обычных IDE/SATA жестких дисков в RAID массивах может возникнуть одна довольно неприятная проблема, о решении которой мы и расскажем в этой заметке.
Суть проблемыЧаще всего в RAID-массивы устанавливают стандартные жесткие диски, изначально предназначенные для обычных desktop компьютеров, по той простой причине, что иных SATA/IDE дисков просто нет. Они обладают большой емкостью, высокой надежностью и сравнительно низкой стоимостью. Казалось бы, чего же боле? Однако, здесь и существует проблема! Дело в том, что во все современные IDE/SATA жесткие диски для повышения надежности хранения данных встроена автоматическая функция коррекции ошибок. При ее разработке исходили из здравого посыла, что жесткий диск не должен отправлять куда-либо сообщение о каждой обнаруженной ошибке чтения, загружая тем самым другие устройства (в том числе процессор компьютера) ненужной дополнительной работой. Напротив, он должен предпринять все возможное для самостоятельной коррекции обнаруженной ошибки, для начала многократно пытаясь прочитать сбойный блок, а потом исключив его из использования, сделав переназначение (remap) плохого сектора на хороший. Погрузившись в данную "внутреннюю" операцию, диск начинает отвечать на внешние запросы с большой задержкой, тем большей, чем интенсивней поступают на него команды записи/чтения.
И это правильно до тех пор, пока этот диск функционирует сам по
себе, являясь самостоятельным, не входящим ни в какие RAID массивы, устройством
хранения данных.
Здесь не поможет и наличие диска в "горячем" резерве - пока RAID контроллер будет вводить его в массив (этот процесс может занять часы и дни, в зависимости от нагрузки на RAID), вполне может "отвалиться" следующий диск в массиве и данные также будут безвозвратно потеряны. Эта ситуация иллюстрируется на рисунке ниже.
Безусловно, такая проблема возникает только при интенсивной
работе дисков в RAID массиве на запись/чтение данных. Но, достаточно совпадения
буквально минутной "тяжелой" нагрузки на RAID массив и начала автоматической
процедуры восстановления ошибки на каком-то жестком диске, как ложный выход из
строя жесткого диска станет вполне реальным. Трудность решения этой проблемы в
том, что диск и на самом деле, реально, может выйти из строя, поэтому удлинение
допустимого времени отклика от жесткого диска, что иногда, к сожалению, делают
некоторые производители RAID контроллеров не решает проблему, а наоборот,
загоняет ее вглубь. Ведь в том случае, если диск на самом деле сломался,
промедление в реакции RAID контроллера на это событие чревато полной потерей
данных.
Наличие данной проблемы (задержка отклика из-за встроенной
функции коррекции ошибок) не зависит от того, диски какого производителя вы
планируете использовать. Ее возможное решение в другом – ввести ограничение на
максимально допустимую длительность обработки ошибок жестким диском с
обязательным информированием RAID контроллера о наличии конкретной ошибки. В
этом случае RAID контроллер поймет, что диск исправен, но у него есть конкретная
ошибка в конкретном месте, которую контроллер легко скорректирует.
К сожалению, единственной компанией, которая предложила такое понятное и очевидное любому грамотному специалисту решение, стала Western Digital Corporation. Она разработала специальную серию дисков RAID Edition c функцией TLER(TimeLimitedErrorCorrection - Ограниченное время на коррекцию ошибки). TLER-диски при возникновении ошибки начинают нормальный процесс ее коррекции, но, не уложившись в 7 секунд, сообщают RAID-контроллеру о возникшей ошибке, откладывая дальнейшую обработку ошибки на "лучшее" время (например, на момент простоя системы). При этом контроллер легко справится с возникшей ошибкой чтения данных с данного диска – ведь для этого в его распоряжении всегда есть резервная информация. Такой алгоритм иллюстрируется на рисунке ниже.
Отметим, что RAID Edition диски от Western Digital кроме функции TLER отличает и увеличенное вдвое время наработки на отказ. Несмотря на то, что случаев возникновения этой ошибки довольно мало в массивах с SATA дисками, но довольно много случаев в массивах с IDE дисками, мы настоятельно рекомендуем применение дисков с TLER в любых RAID массивах, особенно рассчитанных на работу под серьезной нагрузкой или имеющих хотя бы пики с с ней. Надеемся, что и другие компании-производители жестких дисков начнут выпуск аналогичных дисков.
Наш собственный опыт показывает, что применение жестких дисков с TLER в разы уменьшает вероятность как выхода из строя жесткого диска, так и, что крайне важно, риск потери данных.
При подготовке заметки использовались материалы компании Western Digital Corporation.