Как правило, всех пользователей интересует один вопрос: "быстрый" ли диск? Ответ на него неоднозначен и требует рассказа о следующих характеристиках:
Скорость вращения диска
Количество секторов на дорожке
Время поиска/время переключения головок/время переключения между цилиндрами
Задержка позиционирования
Время доступа к данным
Кэш-память на жестком диске
Размещение данных на диске
Скорость обмена между процессором и диском
Интерфейс (IDE или SCSI)
Опишем, для начала, как физически устроен жесткий диск.
На жестком диске данные хранятся на магнитной поверхности диска. Информация записывается и снимается с помощью магнитных головок (все почти как в магнитофоне). Внутри жесткого диска может быть установлено несколько пластин (дисков), в просторечье именуемые "блинами". Двигатель, вращающий диск, включается при подаче питания на диск и остается включенным до снятия питания.ПРИМЕЧАНИЕ: Если в разделе Power Management программы Setup из BIOS установлен параметр выключения жесткого диска при отсутствии обращения к нему, то двигатель может быть выключен программой BIOS.
Двигатель вращается с постоянной скоростью, измеряемой в оборотах в минуту (rpm). Данные организованы на диске в цилиндрах, дорожках и секторах. Цилиндры - концентрическе дорожки на дисках, расположенные одна над другой. Дорожка затем разделяется на сектора. Диск имеет магнитный слой на каждой своей стороне. Каждая пара головок одета как бы на "вилку", обхватывающую каждый диск. Эта "вилка" перемещается над поверхностью диска с помощью отдельного серводвигателя (а не шагового, как часто ошибочно думают - шаговый двигатель не позволяет быстро перемещаться над поверхностью). Все жесткие диски имеют резервные сектора, которые используются его схемой управления, если на диске обнаружены дефектные сектора.
Скорость вращения диска
Обычно современные жесткие диски имеют скорость вращения от 5400 до 7200 об/м. Чем выше скорость вращения, тем выше скорость обмена данными. Следует только учесть, что при возрастании скорости вращения увеличивается температура корпуса жесткого диска и диски со скоростью 7200 об/мин требуют либо применения корпуса с продуманной для целей отвода тепла конструкцией, либо дополнительного охлаждения внешним вентилятором собственно диска. Вентилятора блока питания для этого недостаточно. Еще более высокооборотные диски со скоростью вращения 10000 об/мин, которые сейчас выпускают все без исключения фирмы-производители, требуют как хорошей вентиляции внутри корпуса, так и "правильного" корпуса, хорошо отводящего тепло. Жесткие диски на 15000 об/мин без принудительного обдува просто не рекомендуется использовать.
Количество секторов на дорожке
Современные жесткие диски имеют различное количество секторов на дорожке в зависимости от того, внешняя ли это дорожка или внутренняя. Внешняя дорожка длиннее и на ней можно разместить больше секторов, чем на более короткой внутренней дорожке. Данные на чистый диск начинают записываться также с внешней дорожки.
Время поиска/время переключения головок/время переключения между цилиндрами
Время поиска (seek time) минимально только в случае необходимости операции с дорожкой, которая является соседней с той, над которой в данный момент находится головка. Наибольшее время поиска соответственно при переходе с первой дорожки на последнюю. Как правило, в паспортных данных на жесткий диск указывается среднее время поиска (average seek time).
Все магнитные головки диска находятся в каждый момент времени над одним и тем же цилиндром, и время переключения определяется тем, насколько быстро выполняется переключение между головками при чтении или записи.
Время переключения между цилиндрами - это время, требуемое для перемещения головок на один цилиндр вперед или назад.
Все времена указываются в документации на жесткие диски в миллисекундах (ms).
Задержка позиционирования
После того, как головка оказывается над желаемой дорожкой, она ждет появления требуемого сектора на этой дорожке. Это время называется задержкой позиционирования и также измеряется в миллисекундах (ms). Среднее время задержки позиционирования считается как время поворота диска на 180 градусов и, поэтому зависит только от скорости вращения шпинделя диска. Конкретные данные по величине задержки сведены в таблицу.
Скорость вращения,об/мин
Задержка,миллисекунды
3600
8.3
4500
6.7
5400
5.7
7200
4.2
10000
3.3
Время доступа к данным
Время доступа к данным по сути - это комбинация из времени поиска, времени переключения головок и задержки позиционирования, измеряется также в миллисекундах (ms). Время поиска, как вам уже известно, это только показатель того, как быстро головка оказывается над нужным цилиндром. До тех пор, пока данные не записаны или считаны, следует добавить время на переключение головок и на ожидание необходимого сектора.
Кэш-память на жестком диске
Как правило, на всех современных жестких дисках есть собственная оперативная память, называемая кэш-памятью (cache memory) или просто кэшем. Производители жестких дисков часто называют эту память буферной. Размер и структура кэша у фирм-производителей и для различных моделей жестких дисков существенно отличаются. Обычно кэш память используется как для записи данных так и для чтения, но на SCSI дисках иногда требуется принудительное разрешение кэширования записи, так обычно по умолчанию кэширование записи на диск для SCSI запрещено. Есть программы, позволяющие, определить, как установлены параметры кэш-памяти, например ASPIID от фирмы Seagate. Как это многим не покажется странным, размер кэша не является определяющим для оценки эффективности его работы. Организация обмена данными с кэшем более важна для повышения быстродействия диска в целом.
Некоторые производители жестких дисков, такие как Quantum, используют часть кэша под свое программное обеспечение (для модели Quantum Fireball 1.3 Gb, например, под firmware занято 48 Kb из 128). Как нам кажется, более предпочтителен способ, используемый фирмой Western Digital. Для хранения firmware используются специально отведенные сектора на диске, невидимые для любых операционных систем. По включению питания эта программа загружается в обычную дешевую DRAM на диске и при этом отпадают затраты на микросхему флэш-памяти для хранения firmware. Такой способ позволяет легко исправлять встроенное программное обеспечение жесткого диска, что часто фирма Western Digital и делает.
Размещение данных на диске
О том, что конфигурация диска задается через количество цилиндров, головок и секторов на дорожке, все знают с начала эпохи PC. Хотя еще несколько лет тому назад точное указание в программе SETUP всех этих параметров диска было обязательным, сейчас это не так. Строго говоря, те параметры диска, которые вы видите в разделе SETUP Standard CMOS Setup, как правило, ничего общего не имеют с реальными параметрами диска, причем вы можете заметить, что эти параметры меняются в зависимости от вида трансляции геометрии диска - Normal, LBA и Large. Normal - геометрия в соответствии с данной производителем в документации на диск и не позволяет DOS увидеть более чем 504 Mb (1 Mb - 1048576 байт). LBA - Logical Block Address - эта установка позволяет видеть DOS диски объемом до 4 Gb. Large используется такой операционной системой, как Unix. Параметры, установленные в SETUP, преобразуются в реальные логикой управления жестким диском. Многие современные операционные системы работают с диском через LBA, минуя BIOS.
В последнее время IDE и в большей степени SATA жесткие диски все чаще и чаще используются для построение отказоустойчивых дисковых подсистем на базе RAID контроллеров и/или внешних дисковых массивов. Большая емкость на один диск, низкая стоимость и вполне приличная надежность делает эти диски в ближайшей перспективе серьезными конкурентами для SCSI в серверных системах, а во внешних дисковых системах для работы с оцифрованным кино и видео SCSI диски уже практически не применяются. Но при использовании обычных IDE/SATA жестких дисков в RAID массивах может возникнуть одна довольно неприятная проблема, о решении которой мы и расскажем в этой заметке.
Суть проблемы
Чаще всего в RAID-массивы устанавливают стандартные жесткие диски, изначально предназначенные для обычных desktop компьютеров, по той простой причине, что иных SATA/IDE дисков просто нет. Они обладают большой емкостью, высокой надежностью и сравнительно низкой стоимостью. Казалось бы, чего же боле? Однако, здесь и существует проблема! Дело в том, что во все современные IDE/SATA жесткие диски для повышения надежности хранения данных встроена автоматическая функция коррекции ошибок. При ее разработке исходили из здравого посыла, что жесткий диск не должен отправлять куда-либо сообщение о каждой обнаруженной ошибке чтения, загружая тем самым другие устройства (в том числе процессор компьютера) ненужной дополнительной работой. Напротив, он должен предпринять все возможное для самостоятельной коррекции обнаруженной ошибки, для начала многократно пытаясь прочитать сбойный блок, а потом исключив его из использования, сделав переназначение (remap) плохого сектора на хороший. Погрузившись в данную "внутреннюю" операцию, диск начинает отвечать на внешние запросы с большой задержкой, тем большей, чем интенсивней поступают на него команды записи/чтения.
И это правильно до тех пор, пока этот диск функционирует сам по себе, являясь самостоятельным, не входящим ни в какие RAID массивы, устройством хранения данных. Однако, когда он является частью сложной системы из многих дисков в RAID массиве, некоторые диски в которых выделены для хранения резервных данных на случай любой ошибки, т.е. системы, управляемой специализированным интеллектуальным RAID контроллером, подобная "самостоятельность" установленного в систему диска может приводить к проблемам. Одной из важнейших задач контроллера RAID является постоянный анализ распределяемых между дисками данных на предмет возможного появления и немедленной коррекции ошибок. Поэтому RAID контроллер, отвечая за работоспособность всей системы, ожидает ответа от каждого диска строго определенное время (обычно 8 секунд), по истечении которого считает, что вовремя не ответивший диск неисправен, и принимает решение об его исключении из системы с последующим перераспределением данных между оставшимися дисками. При этом нагрузка на них возрастает, и в этих условиях и второй диск может вовремя не ответить, что уже приведет к крушению всей системы с потерей данных (напомним, что в наиболее популярных RAID уровнях 3 и 5 резервные данные хранятся только на одном диске и выход сразу двух фатален - все данные теряются). Но в результате последующего анализа может оказаться, что отключенные диски были вполне работоспособны и могли далее использоваться, но уже будет слишком поздно.
Здесь не поможет и наличие диска в "горячем" резерве - пока 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 массивах, особенно рассчитанных на работу под серьезной нагрузкой или имеющих хотя бы пики с с ней. Надеемся, что и другие компании-производители жестких дисков начнут выпуск аналогичных дисков.