Программная диагностика
a) Инициализация
Если старт винчестера прошел чисто, без посторонних звуков и возгораний, то только теперь мы можем приступить к программной диагностике, т. е. вполне безбоязненно подключить винчестер к нашему диагностическому компьютеру. Тестирование будем вести под DOS. Рекомендую использовать свободно распространяемый под лицензией GNU FreeDOS. Из диагностического ПО нам понадобится MHDD, а также Vivard для проверки записи.
Тестируемый винчестер, подключенный к отдельному блоку питания, подсоединяем к тестовому компьютеру. Компьютер и блок питания винчестера должны, как минимум, быть подключены в один и тот же, желательно заземленный, фильтр-удлинитель. Первым включаем винчестер, вторым компьютер. Наблюдаем прохождение POST. Если винчестер корректно определятся - хорошо. Бывает, определяется так называемыми «псевдонимами» или «технологическими именами», что характерно для Maxtor (Athena, ARES64K, N40P), WD (Mammoth, Sabre, Starling). Причины в поврежденной микропрограмме на дисках либо в нечитающих головах. Если же винт висит и завешивает машину, то выключаем его (вот для чего нужен отдельный блок питания) и продолжаем загрузку, или перезагружаемся, если все зависло наглухо.
Следует обратить внимание на то, что по умолчанию DOS пытается читать имеющийся МБР и монтировать разделы с FAT. Причем при проблемах, связанных с логикой, в том числе из-за имеющихся дефектов на винчестере, возможны довольно длительные зависания ОС на старте. Поэтому, в некоторых случаях, даже корректно определяющийся BIOS'ом винчестер есть смысл прогрузить в DOS выключенным.
Даём загрузиться операционке, запускаем MHDD (рекомендуется заранее настроить её на исследуемый порт, а не топтать Shift+F3 на ходу), включаем винчестер и наблюдаем за регистрами состояния и ошибок. Долговременный BUSY без раскрутки двигателя говорит о проблемах на плате контроллера. Если двигатель раскрутился, но BUSY не сбрасывается, то есть смысл подозревать головы в проблемном чтении, либо же предположить разрушение микропрограммы на диске. Автоматизировать процесс наблюдения сброса BUSY можно командой wait. Если нормально выходит на готовность и подымает DRSC и DRDY, то тут же софт-ресетим его через F3. Seagate с глючными головами любят в этом месте подвиснуть. Если ресетится чисто, тут же получаем паспорт по F2. Обращаем внимание на наличие установленных HPA и пароля.
b) S.M.A.R.T.
S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
Следует заметить, что технология SMART позволяет предсказывать выход устройства из строя в результате механических неисправностей, что составляет около 60 % причин, по которым винчестеры выходят из строя. Предсказать последствия скачка напряжения или повреждения накопителя в результате удара SMART не способна.
Следует отметить, что накопители не могут сами сообщать о своём состоянии посредством технологии SMART, для этого существуют специальные программы. Таким образом, использование технологии SMART невозможно без наличия следующих двух составляющих:
1. ПО, встроенного в контроллер накопителя.
2. Внешнего ПО, встроенного в хост.
Программы, отображающие состояние SMART-атрибутов, работают по следующему алгоритму:
Проверяют наличие поддержки технологии SMART накопителем.
Подают в накопитель команду запроса SMART-таблиц.
Получают таблицы в буфер приложения.
Разбирают табличные структуры, извлекая из них номера атрибутов и их числовые значения.
Сопоставляют стандартизированные номера атрибутов их названиям (иногда — в зависимости от типа, модели или фирмы-изготовителя HDD, как, например, в программе Victoria).
Выводят числовые значения в удобном для восприятия виде (тут каждый программист может делать по-своему, например, конвертировать HEX-значения в десятичные).
Извлекают из таблиц флаги атрибутов (признаки, характеризующие назначение атрибута в рамках конкретной firmware накопителя, например, «жизненно важный» или «счётчик»).
На основании всех таблиц, значений и флагов выводят общее состояние устройства.
№ |
HEX |
Имя атрибута |
Лучше если… |
Описание |
01 |
01 |
Raw Read Error Rate |
Меньшее |
Частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. |
02 |
02 |
Throughput Performance |
Бо́льшее |
Общая производительность диска. Если значение атрибута уменьшается, то велика вероятность, что с диском есть проблемы. |
03 |
03 |
Spin-Up Time |
Меньшее |
Время раскрутки пакета дисков из состояния покоя до рабочей скорости. |
04 |
04 |
Start/Stop Count |
--------- |
Полное число запусков/остановок шпинделя. У дисков некоторых производителей (например, Seagate) — счётчик включения режима энергосбережения. В поле raw value хранится общее количество запусков/остановок диска. |
05 |
05 |
Reallocated Sectors Count |
Меньшее |
Число операций переназначения секторов. Когда диск обнаруживает ошибку чтения/записи, он помечает сектор «переназначенным» и переносит данные в специально отведённую область. Вот почему на современных жёстких дисках нельзя увидеть bad-блоки — все они спрятаны в переназначенных секторах. Этот процесс называют remapping, а переназначенный сектор — remap. Чем больше значение, тем хуже состояние поверхности дисков. Поле raw value содержит общее количество переназначенных секторов. |
06 |
06 |
Read Channel Margin |
---------- |
Запас канала чтения. Назначение этого атрибута не документировано. В современных накопителях не используется.
|
07 |
07 |
Seek Error Rate |
Меньшее |
Частота ошибок при позиционировании блока головок. Чем их больше, тем хуже состояние механики и/или поверхности жёсткого диска. |
08 |
08 |
Seek Time Performance |
Бо́льшее |
Средняя производительность операции позиционирования магнитными головками. Если значение атрибута уменьшается, то велика вероятность проблем с механической частью. |
09 |
09 |
Power-On Hours (POH) |
Меньшее |
Число часов (минут, секунд — в зависимости от производителя), проведённых во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF — mean time between failure). |
10 |
0A |
Spin-Up Retry Count |
Меньшее |
Число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность неполадок с механической частью. |
11 |
0B |
Recalibration Retries |
Меньшее |
Количество повторов запросов рекалибровки в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность проблем с механической частью. |
12 |
0C |
Device Power Cycle Count |
--------- |
Количество полных циклов включения-выключения диска. |
13 |
0D |
Soft Read Error Rate |
Меньшее |
Число ошибок при чтении, по вине программного обеспечения, которые не поддались исправлению. |
184 |
B8 |
End-to-End error |
Меньшее |
Данный атрибут — часть технологии HP SMART IV, это означает, что после передачи через кэш памяти буфера данных паритет данных между хостом и жестким диском не совпадают. |
187 |
BB |
Reported UNC Errors |
Меньшее |
Ошибки, которые не могли быть восстановлены, используя методы устранения ошибки аппаратными средствами. |
190 |
BE |
Airflow Temperature (WDC) |
Меньшее |
Температура воздуха внутри корпуса жёсткого диска для дисков Western Digital. Для дисков Seagate рассчитывается по формуле (100 — HDA temperature). |
191 |
BF |
G-sense error rate |
Меньшее |
Количество ошибок, возникающих в результате ударных нагрузок. |
192 |
C0 |
Power-off retract count |
Меньшее |
Число циклов выключений или аварийных отказов. |
193 |
C1 |
Load/Unload Cycle |
Меньшее |
Количество циклов перемещения блока магнитных головок в парковочную зону / в рабочее положение. |
194 |
C2 |
HDA temperature |
Меньшее |
Здесь хранятся показания встроенного термодатчика. |
195 |
C3 |
Hardware ECC Recovered |
Меньшее |
Число коррекции ошибок аппаратной частью диска (ошибок чтения, ошибок позиционирования, ошибок передачи по внешнему интерфейсу). |
196 |
C4 |
Reallocation Event Count |
Меньшее |
Число операций переназначения. В поле «raw value» атрибута хранится общее число попыток переноса информации с переназначенных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки. |
197 |
C5 |
Current Pending Sector Count |
Меньшее |
В поле хранится число секторов, являющихся кандидатами на замену. Они не были ещё определены как плохие, но считывание с них отличается от чтения стабильного сектора, это так называемые подозрительные или нестабильные сектора. В случае успешного последующего прочтения сектора он исключается из числа кандидатов. В случае повторных ошибочных чтений накопитель пытается восстановить его и выполняет операцию переназначения.
|
198 |
C6 |
Uncorrectable Sector Count |
Меньшее |
Число неисправимых ошибок при обращении к сектору. {Возможно, имелось в виду «число некорректируемых секторов», но никак не число самих ошибок!} В случае увеличения числа ошибок велика вероятность критических дефектов поверхности и/или механики накопителя. |
199 |
C7 |
UltraDMA CRC Error Count |
Меньшее |
Число ошибок, возникающих при передаче данных по внешнему интерфейсу. |
200 |
C8 |
Write Error Rate / Multi-Zone Error Rate |
Меньшее |
Показывает общее количество ошибок, происходящих при записи сектора. Может служить показателем качества поверхности и механики накопителя. |
201 |
C9 |
Soft read error rate |
Меньшее |
Частота появления «программных» ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине программного обеспечения, а не аппаратной части накопителя. |
202 |
CA |
Data Address Mark errors |
Меньшее |
Количество Марк адресных данных (DAM) ошибки (или) конкретного производителя. |
203 |
CB |
Run out cancel |
Меньшее |
Количество ошибок ECC. |
204 |
CC |
Soft ECC correction |
Меньшее |
Количество ошибок ECC, скорректированных программным способом. |
205 |
CD |
Thermal asperity rate (TAR) |
Меньшее |
Количество тепловых ошибок неровность. |
206 |
CE |
Flying height |
---------- |
Высота между головкой и поверхностью диска. |
207 |
CF |
Spin high current |
Меньшее |
Количество большого тока используется для раскрутки диска. |
208 |
D0 |
Spin buzz |
--------- |
Количество процедур гудения раскручиваюшегося диска. |
209 |
D1 |
Offline seek performance |
--------- |
Диск искать производительность во время операций в автономном режиме. |
220 |
DC |
Disk Shift |
Меньшее |
Дистанция смещения блока дисков относительно шпинделя. В основном возникает из-за удара или падения. Единица измерения неизвестна. |
221 |
DD |
G-Sense Error Rate |
Меньшее |
Число ошибок, возникших из-за внешних нагрузок и ударов. Атрибут хранит показания встроенного датчика удара. |
222 |
DE |
Loaded Hours |
--------- |
Время, проведённое блоком магнитных головок между выгрузкой из парковочной области в рабочую область диска и загрузкой блока обратно в парковочную область. |
223 |
DF |
Load/Unload Retry Count |
--------- |
Количество новых попыток выгрузок/загрузок блока магнитных головок в/из парковочной области после неудачной попытки. |
224 |
E0 |
Load Friction |
Меньшее |
Величина силы трения блока магнитных головок при его выгрузке из парковочной области. |
225 |
E1 |
Load Cycle Count |
Меньшее |
|
226 |
E2 |
Load 'In'-time |
--------- |
Время, за которое привод выгружает магнитные головки из парковочной области на рабочую поверхность диска. |
227 |
E3 |
Torque Amplification Count |
Меньшее |
Количество попыток скомпенсировать вращающий момент. |
228 |
E4 |
Power-Off Retract Cycle |
Меньшее |
Количество повторов автоматической парковки блока магнитных головок в результате выключения питания. |
230 |
E6 |
GMR Head Amplitude |
--------- |
Амплитуда «дрожания» (расстояние повторяющегося перемещения блока магнитных головок). |
231 |
E7 |
Temperature |
Меньшее |
Температура жёсткого диска. |
240 |
F0 |
Head flying hours |
--------- |
Время позиционирования головки. |
250 |
FA |
Read error retry rate |
Меньшее |
Число ошибок во время чтения жёсткого диска. |
c) Работа с поверхностью HDD
В Victorya встроен сканер поверхности HDD, который позволяет продиагностировать HDD на наличие сбойных участков, плавающих дефектов и ошибок интерфейса. Программа способна протестировать большинство винчестеров на предельной скорости, независимо от типа ATA контроллера и интерфейсного кабеля.
Поддерживаются режимы LBA 28 и 48 бит, которые распознаются автоматически. Все что можно было автоматизировать - успешно реализовано, и не требует никаких настроек со стороны пользователя.
Для того, чтобы протестировать поверхность винчестера, нажмите клавишу F4 "Scan". При этом на экране появится менюшка, назначение пунктов которой понятно из выводимого в ней текста. При желании можно нажать F1 для получения справки. Рассмотрим третий сверху пункт - он имеет 6 состояний, которые можно переключать клавишей "пробел" или клавишами стрелок "вправо" и "влево".
Линейное чтение
Тестирование поверхности в LBA адресации. Предназначено для максимально быстрой и точной диагностики состояния поверхности. Во время тестирования все адресное пространство винчестера разбивается на условные участки одинаковой длины блоки. Размер одного блока равен 256-ти секторам. Программа измеряет время доступа к каждому блоку по команде верификации, и по нему на экране рисуется прямоугольник соответствующего цвета. При этом данные физически читаются с диска, но не передаются по интерфейсу, поэтому это самый быстрый способ проверки поверхности, с ним может сравниться только работа в предельных UDMA режимах (исключение Seagate Barracuda IV, V и 7200.7 с версиями микрокода 3.xx. Для этих HDD скорость верификации ~28-32 мб/сек является нормальной).
Если винчестер зависнет из-за неисправности во время сканирования, программа ждет около 16 секунд, после чего перейдет к следующему блоку, выводя значок T (Timeout) в поле скана. Непрерывные задержки свидетельствуют о том, что HDD не отвечает на команды - можно попробовать подать команду сброса в его контроллер, нажав F3 (Reset) непосредственно во время скана, иногда это помогает.
Случайное чтение:
Тестирование поверхности, когда адреса блоков выдает генератор случайных чисел. Диапазон можно задать в виде границ LBA в меню скана. При этом также измеряется время доступа к каждому блоку, но в отличие от линейного чтения, оно будет больше т.к. складывается из времени позиционирования головки на нужный цилиндр и собственно, чтения (возможно, что и из эффективности алгоритма кэширования [предположение автора]). Полученный результат достаточно точно отражает общее быстродействие диска в реальных задачах, когда винчестеру приходится совершать много циклов чтения данных из разных мест (во время работы ОС читаются не только фрагменты файла, но и части служебных таблиц файловой системы, расположенных в отдалении от тела файла). И действительно, средняя скорость чтения около 8 мб/сек совпадает с показаниями других программ (например FAR) при копировании файлов. Также эта скорость зависит от настроек, влияющих на скорость позиционирования (Акустик менеджмента).
BUTTERFLY- чтение:
Тестирование поверхности по алгоритму "бабочка", когда попеременно читаются начало и конец дискового пространства, каждый раз со сдвигом на 1 блок (256 секторов), в результате чего к концу теста головки оказываются в середине рабочей зоны HDD. Этот алгоритм совмещает в себе позиционирование на разные дистанции, а также прямое и реверсивное чтение, и применяется в профессиональных утилитах, в том числе при заводском тестировании винчестеров средствами селфскана. Отличие от случайного чтения в том, что butterfly - это тест всей поверхности с позиционированием, сканирующий все секторы HDD по определенному закону и имеющий окончание. Случайное чтение - это агрессивный тест, не имеющий окончания и закономерности, и он почти не предсказывается алгоритмами предвыборки. Оба теста создают большую нагрузку на блок головок и электронику, поэтому позаботьтесь о хорошем охлаждении HDD во избежании его порчи. Также следует отметить, что Butterfly выполняет проверку медленней, чем линейное чтение, и на винчестере в 10 Гб может длиться около 30 минут. Причина - потери времени на перемещение головок, и постоянные ожидания поворота дискового пакета на нужный угол. Как и в предыдущих тестах, диапазон можно задать в виде границ LBA в меню. Допустимо использовать сброс и вызывать справку во время проверки. Все 3 вида тестов могут работать совместно с дефектоскопом и ремапами - их выбирают в 4 пункте меню.
PIO-чтение
В отличие от верификации, используется настоящее чтение секторов из винчестера. Отличается более низкой скоростью - около 2-8 мб/сек (1 Гб читается 2-7 минут), поэтому целесообразно лишь для небольших участков. Применяется не для измерений, а в основном для отлова "глюков" винта, проверки работоспособности канала чтения и интерфейса. В реальных условиях компьютер работает с винчестером в режиме DMA, где скорость намного больше (и производители оптимизируют HDD именно под DMA режим).
С помощью PIO-чтения можно выбрать наиболее быструю модель HDD для установки в систему, не поддерживающую режим DMA. Такие системы до сих пор встречаются, например учетно-кассовые машины, медицинское диагностическое и музыкальное оборудование, различные роботы (например, автоматические узлы FTN сетей). Примечание: Для повышения скорости работы в PIO нужно принудительно включить максимальный режим в BIOS. Обычно там стоит "Auto" по умолчанию, замена его на PIO-4 позволит поднять скорость более чем в 2 раза. Также она зависит от общего быстродействия ПК и примененного чипсета (наибольшая скорость у автора была на I430 TX/VX - около 13 Мб/с).
Запись (стирание):
Производит посекторное стирание информации с диска, блоками по 256 секторов. Может использоваться для устранения некоторых видов дефектов (аналогично низкоуровневому форматированию программами от производителей HDD). По скорости сравнимо с PIO-чтением. Следует отметить, что существует более быстрый способ очистки диска от информации - стирание через подсистему безопасности. Читайте об этом в разделе "Безопасность".
Проверка интерфейса:
Производит циклическую запись шаблона данных в буферную память винчестера, затем чтение оттуда и сравнение прочитанного с записанным. При этом измеряется время чтения из буфера в диапазоне от 64 до 500 мкс. На этом тесте хорошо видно, что такое многозадачность встроенной в винт микропрограммы - время чтения разных циклов получается разное и зависит от модели HDD и от его режима работы. При несовпадении записанного с прочитанным выводится сообщение с указанием времени по часам. Наличие таких ошибок говорит о неисправности интерфейса или буферной памяти винта, и такой накопитель считается потенциально опасным, так как может исказить хранящуюся на нем информацию. Для получения высокой достоверности нужно выполнять этот тест достаточно долго, аналогично тестам оперативной памяти компьютера. Во время тестирования рекомендуется пошевелить IDE шлейф для диагностики плохих контактов, которые тут же будут обнаружены программой. Перед проверкой интерфейса можно остановить вал HDD, нажав клавишу S (при этом у HDD фирмы Seagate Вы увидите бо0ольшой прикол :-). Индикация и управление во время проверки поверхности
Через некоторое время после начала тестов (а конкретно после прочтения 500 блоков), точки в правой нижней части экрана заменятся на цифры - они будут показывать скорость обмена/верификации в реальном времени, а строкой ниже появится индикатор оставшегося времени до конца тестирования. Время динамически меняется, т.к. зависит от отображаемой скорости (пока показывается неверная скорость - будет неправильное время). В верхней части окна отображаются пройденные мегабайты, и пройденные проценты от указанного в меню максимального значения LBA (в режиме BUTTERFLY показываются удвоенные процеты, ибо тест симметричен относительно середины). При проведении тестов, не имеющих конца (случайное чтение, проверка интерфейса) время окончания не выводится. В этом случае их отменяет пользователь по своему желанию.
|