Время появления ошибки результирующее время между обнаруженными ошибками

Последствия и признаки появления ошибок в программе

Следствием
появления ошибки в программе является
ее отказ, заключающийся в отклонении
от выполнения программой заданных
функций. В зависимости от степени
серьезности последствий ошибок (отказов)
в программе эти отклонения можно
разделить следующим образом:

– полное прекращение
выполнения функций на длительное или
неопределенное время;

– кратковременное
нарушение хода вычислительного процесса.

Степень серьезности
последствий ошибок в программе может
быть оценена соотношением между
длительностью восстановительных работ,
которые необходимо произвести после
отказа в программе, и динамическими
характеристиками объектов, использующих
результаты работы программных средств.
К таким характеристикам объектов
относятся, например, инерционность
объектов, выступающих в качестве
источников и потребителей информации;
заданная частота решения задач обработки
информации; заданное время реакции
вычислительной системы на запросы
пользователей и др.

Наиболее типичными
симптомами появления ошибок в программе
являются:

  • преждевременное
    (аварийное) окончание выполнения
    программы;

  • недопустимое
    увеличение времени выполнения программы;

  • зацикливание ЭВМ
    на выполнении некоторой последовательности
    команд одной из программ;

  • полная потеря или
    значительное искажение накопленных
    данных, необходимых для успешного
    выполнения решаемых задач;

  • нарушение
    последовательности вызова отдельных
    программ, в результате чего происходит
    пропуск необходимых программ либо
    непредусмотренное обращение к программам;

  • искажение отдельных
    элементов данных (входных, выходных,
    промежуточных) в результате обработки
    искаженной исходной информации.

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

При появлении
подобных ошибок после анализа аварийного
кода имеется принципиальная возможность
немедленного повторения запуска
прикладной программы. Для увеличения
эффективности восстановительных
процедур необходимо:

  • предусмотреть в
    программах специальные средства
    диагностики кодов аварийных завершений,
    в том числе кодов, формируемых самими
    пользователями;

  • ввести в программы
    контрольные точки;

  • обеспечить
    возможности рестарта программ с
    контрольных точек.

Аналитические модели надежности программ

Аналитические
модели надежности дают возможность
исследовать закономерности проявления
ошибок в программах, а также прогнозировать
надежность при разработке и эксплуатации.
Модели надежности программ строятся
на предположении, что проявление ошибки
является случайным событием и поэтому
имеет вероятностный характер. Такие
модели предназначены для оценки
показателей надежности программ и
программных комплексов в процессе
тестирования: числа ошибок, оставшихся
не выявленными; времени, необходимого
для выявления очередной ошибки в процессе
эксплуатации программы; времени,
необходимого для выявления всех ошибок
с заданной вероятностью и т. д. Модели
дают возможность принять обоснованное
решение о времени прекращения отладочных
работ.

При построении
моделей используются следующие
характеристики надежности программы.

Функция
надежности
,
определяемая как вероятность того, что
ошибки программы не проявятся на
интервале времени от0
до
,
т. е. время ее безотказной работы будет
больше.

Функция ненадежности
– вероятность того, что в течение временипроизойдет отказ программы как результат
проявления действия ошибки в программе.
Таким образом,

.

Интенсивность
отказов
– условная плотность вероятности
времени до возникновения отказа программы
при условии, что до моментаотказа не было. Когда мы рассматривали
потоки отказов и сбоев, мы показали

Средняя наработка
на отказ
– математическое ожидание временного
интервала между последовательными
отказами.

В настоящее время
основными типами применяемых моделей
надежности программ являются модели,
основанные на предположении о дискретном
изменении характеристик надежности
программ в моменты устранения ошибок,
и модели, основанные на экспоненциальном
характере изменения числа ошибок в
зависимости от времени тестирования и
функционирования программы.

Модель надежности
программ с дискретно-понижающейся
частотой (интенсивностью) проявления
ошибок
.

В
этой модели предполагается, что
интенсивность обнаружения ошибок
описывается кусочно-постоянной функцией,
пропорциональной числу не устраненных
ошибок. Другими словами, предполагается,
что интенсивность отказов
постоянна до обнаружения и исправления
ошибки, после чего она опять становится
константой, но с другим, меньшим значением.
При этом предполагается, что междуи числом оставшихся в программе ошибок
существует прямая зависимость:

,

где
– неизвестное первоначальное число
ошибок;– число обнаруженных ошибок, зависящее
от времени,– некоторая константа (рис.2).

Рис.2 Зависимость
интенсивности отказов программы от
времени работы (модель с дискретно
понижающейся интенсивностью проявления
ошибок в программе)

Плотность
распределения времени обнаружения

ошибкизадается соотношением

.

Значение неизвестных
параметров К
и М
может быть оценено на основании
последовательности наблюдений интервалов
между моментами обнаружения ошибок по
методу максимального правдоподобия.
При этом для нахождения оценок параметров
К
и М
необходимо решить следующие уравнения:

;

,

где
;;;и
оценки
соответственно К
и М,
т
– число устраненных ошибок в момент
оценки надежности программ.

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

Модель надежности
программ с дискретным увеличением
времени наработки на отказ.

Данная модель
надежности программ построена на
предположении, что устранение ошибки
в программе приводит к увеличению
времени наработки на отказ на одну и ту
же случайную величину.

Предполагается,
что время между двумя последовательными
отказами
является случайной величиной, которую
можно представить в виде суммы двух
случайных величин:

,

где случайные
величины
независимы и имеют одинаковые
математические ожиданияи средние квадратические отклонения.

Из выше приведенной
формулы следует, что т
отказ программы произойдет через время

.

Предполагается
также, что
.
Основанием для такого предположения
является то, что отказы программы в
начальном периоде эксплуатации возникают
часто. В этом случае можно считать, что

.

При этих предположениях
средняя наработка между (—1)-м
итм
отказами программы равна

,

а средняя наработка
до возникновения
-го
отказа определяется выражением

.

Оценки величин
,могут быть получены по данным об отказах
программы в течение периода наблюденияследующим образом:

;

,

где
– число отказов программы за период;– момент возникновения-го
отказа программы.

Функция надежности
определяется в зависимости от числа
возникших отказов

,

где Ф(х)
функция
Лапласа.

Экспоненциальная
модель надежности программ
.

Эта модель основана
на предположении об экспоненциальном
характере изменения во времени числа
ошибок в программе.

В этой модели
прогнозируется надежность программы
на основе данных, полученных во время
тестирования. В модели вводится суммарное
время функционирования
,
которое отсчитывается от момента начала
тестирования программы (с устранением
обнаруженных ошибок) до контрольного
момента, когда производится оценка
надежности.

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

Следует отметить,
что характер закономерностей в этой
модели остается таким же, как и в
рассмотренных ранее, а именно интенсивность
отказов предполагается пропорциональной
числу оставшихся ошибок. Основное
отличие данной модели от предыдущих
состоит в том, что интенсивность отказов
предполагается непрерывной функцией.
Это упрощает математическое описание
модели, а модель приобретает дополнительную
гибкость.

Пусть М
число
ошибок, имеющихся в программе перед
фазой тестирования (М
рассматривается как некоторая константа);
– конечное число исправленных ошибок;– число оставшихся ошибок. Тогда

.

При принятых
предположениях интенсивность отказов
пропорциональна
,
т.е.

,

где С

коэффициент
пропорциональности, учитывающий реальное
быстродействие ЭВМ и число команд в
программе.

Введем дополнительное
предположение, что в процессе корректировки
новые ошибки не порождаются, т. е. что
интенсивность исправления ошибок
будет равна интенсивности их обнаружения,
т. е.

.

Решая совместно
два последних уравнения, получаем

.

Перед началом
работы ЭВМ
ни одна ошибка исправлена не была,
поэтому решением этого уравнения
является

.

Будем характеризовать
надежность программы после тестирования
в течение времени
средним временем наработки на отказ:

.

Следовательно,

.

Введем
– исходное значение среднего времени
наработки на отказ перед тестированием.
Тогда

.

В результате имеем

Очевидно, что
среднее время наработки на отказ
увеличивается по мере выявления и
исправления ошибок.

Рассмотрим более
общий случай, когда в процессе корректировки
могут появляться новые ошибки. Пусть В
коэффициент
уменьшения ошибок, определяемый как
отношение интенсивности уменьшения
ошибок к интенсивности их проявления,
т. е. к интенсивности отказов.

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

.

В этом случае
среднее время наработки на отказ
и число обнаруженных отказовп
определяются следующими соотношениями:

;

.

Тогда для значения
среднего времени наработки на отказ
перед тестированием справедливо

.

В результате
получаем

;

.

Для практического
использования представляет интерес
число ошибок
,
которое должно быть обнаружено и
исправлено для того, чтобы добиться
увеличения среднего времени наработки
на отказ отдо.
Этот показатель может быть получен из
следующих соотношений:

.

Следовательно,

.

Дополнительное
время работы, необходимое для обеспечения
увеличения среднего времени наработки
на отказ с
до,
определяется как

.

Рассмотрим, каким
образом можно оценить основные параметры
модели. Коэффициент В
может быть определен исходя из
статистических данных по числу ошибок,
порожденных во время обнаружения других
ошибок. Можно считать, что для систем
программного обеспечения общего
назначения В
изменяется в диапазоне 0,91—0,95.

Для оценки
иможно
рассчитать среднюю интенсивность ошибок
(число ошибок на одну команду) в начале
различных фаз тестирования. По различным
оценкам в начале процесса тестирования
для программ, написанных на языке
ассемблера, число ошибок на 1000 команд
варьируется от 4 до 8. Рассмотренная
модель может применяться для определения
времени испытаний программ с целью
достижения заданного уровня надежности,
а также для оценки числа оставшихся в
программе ошибок.

Вторым существенным
составляющим стохастического
функционального тестирования является
проверка
правильности результатов вычислений

по генерированным случайным исходным
данным.

Проверка правильности
может осуществляться путем проверки
соответствия эталону; принадлежности
области; по времени выполнения; сравнения
с другими (соседними) значениями; через
достижения цели (в замкнутом контуре
управления).

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

Информационные
методы повышения

надежности
СВТ

Широко распространенным
методом повышения надежности СВТ
является обеспечение избыточности в
составе СВТ, в частности информационной
избыточности.

Применение
корректирующих кодов является одним
из наиболее удобных и гибких методов
введения избыточности в ЭВМ. В некоторых
условиях, например, при кратковременных
сеансах работы, когда ресурсы надежности
почти не расходуются, коррекция сбоев,
вызываемых различного рода помехами,
может иметь решающее значение для
обеспечения нормального функционирования.
Положительные качества корректирующих
кодов следующие:

1. корректирующие
коды обеспечивают исправление ошибок
без перерывов в работе ЭВМ;

2. способ кодирования
и применяемый код выбираются в зависимости
от алгоритма функционирования данного
вычислительного устройства, что дает
возможность согласования корректирующей
способности кода со статистическими
характеристиками потока ошибок устройства
и уменьшения избыточности, требуемой
для коррекции ошибок;

3. использование
корректирующих кодов позволяет учесть
необходимость устранения влияния ошибок
в устройстве последовательно на всех
этапах проектирования, начиная с
алгоритма функционирования.

Избыточность может
быть временной и пространственной.
Временная избыточность связана с
увеличением времени решения задачи (в
частном случае процесс решения задачи
может быть осуществлен дважды) и вводится
программным путем, являясь основой
программного способа обнаружения и
исправления ошибок.

Пространственная
избыточность заключается в удлинении
кодов чисел, в которые вводятся
дополнительные (контрольные) разряда.
Идея обнаружения и исправления ошибок
с использованием избыточности состоит
в следующем. Все множество
выходных слов устройства разбивают на
подмножество разрешенных кодовых слов,
т.е. таких слов, которые могут появиться
в результате правильного выполнения
логических и арифметических операций,
и подмножество запрещенных кодовых
слов,
т.е. таких слов, которые могут появиться
только в результате ошибки.

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

Для исправления
обнаруженных ошибок запрещенные кодовые
слова разбиваются на группы. При этом
каждому разрешенному кодовому слову
соответствует одна такая группа. При
декодировании обнаруженное на выходе
устройства запрещенное кодовое слово
заменяется разрешенным словом, в группу
которого оно входит. Тем самым ошибка
исправляется. Однако работа декодирующего
устройства усложняется. Процесс
построения корректирующего кода состоит
из следующих этапов:

1 этап – выявление
наиболее вероятных ошибок для заданного
способа функционирования устройства
или наиболее опасных ошибок в условиях
использования этого устройства;

2 этап – формирование
избыточного множества выходных слов,
разделение этого множества на подмножества
разрешенных и запрещенных кодовых слов
и образование декодировочных групп;

3 этап – разработка
рационального способа декодирования
выходных слов, позволяющего реализовать
относительно несложными техническими
средствами обнаружение и исправление
ошибок;

4 этап – организация
множества входных так, чтобы заданное
преобразование, выполненное над любым
словом этого множества, дало на выходе
слово, принадлежащее к подмножеству
разрешенных кодовых слов.

При построении
ЭВМ, предназначенной для решения
определенного класса задач, важным
вопросом является рациональный выбор
уровня, на котором следует применять
корректирующий код.

Известно, что ЭВМ
слагается из отдельных устройств, в
каждом из которых информация претерпевает
определенные изменения. В то же время
составляющие части ЭВМ состоят из
отдельных блоков (сумматоров, регистров
и т.п.), которые в свою очередь набраны
из простейших логических элементов
(триггеров, схем И, ИЛИ, НЕ и т.п).

Корректирующие
коды применяют на любом из этих уровней
структуры ЭВМ. Однако результаты получают
различные. В ряде случаев корректировать
ошибки в работе логических схем
значительно труднее, чем например, в
работе сумматора в целом. Далее, если
контроль правильности и исправления
ошибок в работе отдельных блоков и
устройств осуществить сложно, то в
некоторых случаях прохождение всей
задачи легко контролируется применением
простейших принципов, например, путем
повторения счета.

Введение структурной
и информационной избыточности для
повышения надежности ЭВМ не дает желаемых
результатов, если при ее конструировании
будут нерационально решены компоновка
и конструктивное исполнение отдельных
узлов и блоков.

Для обеспечения
высокой надежности ЭВМ необходимо
стремиться максимально упростить
конструкцию, применять стандартные
элементы, обеспечивать возможность
проведения профилактики и контроля.

Последствия и признаки появления ошибок в программе

Следствием
появления ошибки в программе является
ее отказ, заключающийся в отклонении
от выполнения программой заданных
функций. В зависимости от степени
серьезности последствий ошибок (отказов)
в программе эти отклонения можно
разделить следующим образом:

– полное прекращение
выполнения функций на длительное или
неопределенное время;

– кратковременное
нарушение хода вычислительного процесса.

Степень серьезности
последствий ошибок в программе может
быть оценена соотношением между
длительностью восстановительных работ,
которые необходимо произвести после
отказа в программе, и динамическими
характеристиками объектов, использующих
результаты работы программных средств.
К таким характеристикам объектов
относятся, например, инерционность
объектов, выступающих в качестве
источников и потребителей информации;
заданная частота решения задач обработки
информации; заданное время реакции
вычислительной системы на запросы
пользователей и др.

Наиболее типичными
симптомами появления ошибок в программе
являются:

  • преждевременное
    (аварийное) окончание выполнения
    программы;

  • недопустимое
    увеличение времени выполнения программы;

  • зацикливание ЭВМ
    на выполнении некоторой последовательности
    команд одной из программ;

  • полная потеря или
    значительное искажение накопленных
    данных, необходимых для успешного
    выполнения решаемых задач;

  • нарушение
    последовательности вызова отдельных
    программ, в результате чего происходит
    пропуск необходимых программ либо
    непредусмотренное обращение к программам;

  • искажение отдельных
    элементов данных (входных, выходных,
    промежуточных) в результате обработки
    искаженной исходной информации.

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

При появлении
подобных ошибок после анализа аварийного
кода имеется принципиальная возможность
немедленного повторения запуска
прикладной программы. Для увеличения
эффективности восстановительных
процедур необходимо:

  • предусмотреть в
    программах специальные средства
    диагностики кодов аварийных завершений,
    в том числе кодов, формируемых самими
    пользователями;

  • ввести в программы
    контрольные точки;

  • обеспечить
    возможности рестарта программ с
    контрольных точек.

Аналитические модели надежности программ

Аналитические
модели надежности дают возможность
исследовать закономерности проявления
ошибок в программах, а также прогнозировать
надежность при разработке и эксплуатации.
Модели надежности программ строятся
на предположении, что проявление ошибки
является случайным событием и поэтому
имеет вероятностный характер. Такие
модели предназначены для оценки
показателей надежности программ и
программных комплексов в процессе
тестирования: числа ошибок, оставшихся
не выявленными; времени, необходимого
для выявления очередной ошибки в процессе
эксплуатации программы; времени,
необходимого для выявления всех ошибок
с заданной вероятностью и т. д. Модели
дают возможность принять обоснованное
решение о времени прекращения отладочных
работ.

При построении
моделей используются следующие
характеристики надежности программы.

Функция
надежности
,
определяемая как вероятность того, что
ошибки программы не проявятся на
интервале времени от0
до
,
т. е. время ее безотказной работы будет
больше.

Функция ненадежности
– вероятность того, что в течение временипроизойдет отказ программы как результат
проявления действия ошибки в программе.
Таким образом,

.

Интенсивность
отказов
– условная плотность вероятности
времени до возникновения отказа программы
при условии, что до моментаотказа не было. Когда мы рассматривали
потоки отказов и сбоев, мы показали

Средняя наработка
на отказ
– математическое ожидание временного
интервала между последовательными
отказами.

В настоящее время
основными типами применяемых моделей
надежности программ являются модели,
основанные на предположении о дискретном
изменении характеристик надежности
программ в моменты устранения ошибок,
и модели, основанные на экспоненциальном
характере изменения числа ошибок в
зависимости от времени тестирования и
функционирования программы.

Модель надежности
программ с дискретно-понижающейся
частотой (интенсивностью) проявления
ошибок
.

В
этой модели предполагается, что
интенсивность обнаружения ошибок
описывается кусочно-постоянной функцией,
пропорциональной числу не устраненных
ошибок. Другими словами, предполагается,
что интенсивность отказов
постоянна до обнаружения и исправления
ошибки, после чего она опять становится
константой, но с другим, меньшим значением.
При этом предполагается, что междуи числом оставшихся в программе ошибок
существует прямая зависимость:

,

где
– неизвестное первоначальное число
ошибок;– число обнаруженных ошибок, зависящее
от времени,– некоторая константа (рис.2).

Рис.2 Зависимость
интенсивности отказов программы от
времени работы (модель с дискретно
понижающейся интенсивностью проявления
ошибок в программе)

Плотность
распределения времени обнаружения

ошибкизадается соотношением

.

Значение неизвестных
параметров К
и М
может быть оценено на основании
последовательности наблюдений интервалов
между моментами обнаружения ошибок по
методу максимального правдоподобия.
При этом для нахождения оценок параметров
К
и М
необходимо решить следующие уравнения:

;

,

где
;;;и
оценки
соответственно К
и М,
т
– число устраненных ошибок в момент
оценки надежности программ.

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

Модель надежности
программ с дискретным увеличением
времени наработки на отказ.

Данная модель
надежности программ построена на
предположении, что устранение ошибки
в программе приводит к увеличению
времени наработки на отказ на одну и ту
же случайную величину.

Предполагается,
что время между двумя последовательными
отказами
является случайной величиной, которую
можно представить в виде суммы двух
случайных величин:

,

где случайные
величины
независимы и имеют одинаковые
математические ожиданияи средние квадратические отклонения.

Из выше приведенной
формулы следует, что т
отказ программы произойдет через время

.

Предполагается
также, что
.
Основанием для такого предположения
является то, что отказы программы в
начальном периоде эксплуатации возникают
часто. В этом случае можно считать, что

.

При этих предположениях
средняя наработка между (—1)-м
итм
отказами программы равна

,

а средняя наработка
до возникновения
-го
отказа определяется выражением

.

Оценки величин
,могут быть получены по данным об отказах
программы в течение периода наблюденияследующим образом:

;

,

где
– число отказов программы за период;– момент возникновения-го
отказа программы.

Функция надежности
определяется в зависимости от числа
возникших отказов

,

где Ф(х)
функция
Лапласа.

Экспоненциальная
модель надежности программ
.

Эта модель основана
на предположении об экспоненциальном
характере изменения во времени числа
ошибок в программе.

В этой модели
прогнозируется надежность программы
на основе данных, полученных во время
тестирования. В модели вводится суммарное
время функционирования
,
которое отсчитывается от момента начала
тестирования программы (с устранением
обнаруженных ошибок) до контрольного
момента, когда производится оценка
надежности.

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

Следует отметить,
что характер закономерностей в этой
модели остается таким же, как и в
рассмотренных ранее, а именно интенсивность
отказов предполагается пропорциональной
числу оставшихся ошибок. Основное
отличие данной модели от предыдущих
состоит в том, что интенсивность отказов
предполагается непрерывной функцией.
Это упрощает математическое описание
модели, а модель приобретает дополнительную
гибкость.

Пусть М
число
ошибок, имеющихся в программе перед
фазой тестирования (М
рассматривается как некоторая константа);
– конечное число исправленных ошибок;– число оставшихся ошибок. Тогда

.

При принятых
предположениях интенсивность отказов
пропорциональна
,
т.е.

,

где С

коэффициент
пропорциональности, учитывающий реальное
быстродействие ЭВМ и число команд в
программе.

Введем дополнительное
предположение, что в процессе корректировки
новые ошибки не порождаются, т. е. что
интенсивность исправления ошибок
будет равна интенсивности их обнаружения,
т. е.

.

Решая совместно
два последних уравнения, получаем

.

Перед началом
работы ЭВМ
ни одна ошибка исправлена не была,
поэтому решением этого уравнения
является

.

Будем характеризовать
надежность программы после тестирования
в течение времени
средним временем наработки на отказ:

.

Следовательно,

.

Введем
– исходное значение среднего времени
наработки на отказ перед тестированием.
Тогда

.

В результате имеем

Очевидно, что
среднее время наработки на отказ
увеличивается по мере выявления и
исправления ошибок.

Рассмотрим более
общий случай, когда в процессе корректировки
могут появляться новые ошибки. Пусть В
коэффициент
уменьшения ошибок, определяемый как
отношение интенсивности уменьшения
ошибок к интенсивности их проявления,
т. е. к интенсивности отказов.

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

.

В этом случае
среднее время наработки на отказ
и число обнаруженных отказовп
определяются следующими соотношениями:

;

.

Тогда для значения
среднего времени наработки на отказ
перед тестированием справедливо

.

В результате
получаем

;

.

Для практического
использования представляет интерес
число ошибок
,
которое должно быть обнаружено и
исправлено для того, чтобы добиться
увеличения среднего времени наработки
на отказ отдо.
Этот показатель может быть получен из
следующих соотношений:

.

Следовательно,

.

Дополнительное
время работы, необходимое для обеспечения
увеличения среднего времени наработки
на отказ с
до,
определяется как

.

Рассмотрим, каким
образом можно оценить основные параметры
модели. Коэффициент В
может быть определен исходя из
статистических данных по числу ошибок,
порожденных во время обнаружения других
ошибок. Можно считать, что для систем
программного обеспечения общего
назначения В
изменяется в диапазоне 0,91—0,95.

Для оценки
иможно
рассчитать среднюю интенсивность ошибок
(число ошибок на одну команду) в начале
различных фаз тестирования. По различным
оценкам в начале процесса тестирования
для программ, написанных на языке
ассемблера, число ошибок на 1000 команд
варьируется от 4 до 8. Рассмотренная
модель может применяться для определения
времени испытаний программ с целью
достижения заданного уровня надежности,
а также для оценки числа оставшихся в
программе ошибок.

Вторым существенным
составляющим стохастического
функционального тестирования является
проверка
правильности результатов вычислений

по генерированным случайным исходным
данным.

Проверка правильности
может осуществляться путем проверки
соответствия эталону; принадлежности
области; по времени выполнения; сравнения
с другими (соседними) значениями; через
достижения цели (в замкнутом контуре
управления).

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

Информационные
методы повышения

надежности
СВТ

Широко распространенным
методом повышения надежности СВТ
является обеспечение избыточности в
составе СВТ, в частности информационной
избыточности.

Применение
корректирующих кодов является одним
из наиболее удобных и гибких методов
введения избыточности в ЭВМ. В некоторых
условиях, например, при кратковременных
сеансах работы, когда ресурсы надежности
почти не расходуются, коррекция сбоев,
вызываемых различного рода помехами,
может иметь решающее значение для
обеспечения нормального функционирования.
Положительные качества корректирующих
кодов следующие:

1. корректирующие
коды обеспечивают исправление ошибок
без перерывов в работе ЭВМ;

2. способ кодирования
и применяемый код выбираются в зависимости
от алгоритма функционирования данного
вычислительного устройства, что дает
возможность согласования корректирующей
способности кода со статистическими
характеристиками потока ошибок устройства
и уменьшения избыточности, требуемой
для коррекции ошибок;

3. использование
корректирующих кодов позволяет учесть
необходимость устранения влияния ошибок
в устройстве последовательно на всех
этапах проектирования, начиная с
алгоритма функционирования.

Избыточность может
быть временной и пространственной.
Временная избыточность связана с
увеличением времени решения задачи (в
частном случае процесс решения задачи
может быть осуществлен дважды) и вводится
программным путем, являясь основой
программного способа обнаружения и
исправления ошибок.

Пространственная
избыточность заключается в удлинении
кодов чисел, в которые вводятся
дополнительные (контрольные) разряда.
Идея обнаружения и исправления ошибок
с использованием избыточности состоит
в следующем. Все множество
выходных слов устройства разбивают на
подмножество разрешенных кодовых слов,
т.е. таких слов, которые могут появиться
в результате правильного выполнения
логических и арифметических операций,
и подмножество запрещенных кодовых
слов,
т.е. таких слов, которые могут появиться
только в результате ошибки.

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

Для исправления
обнаруженных ошибок запрещенные кодовые
слова разбиваются на группы. При этом
каждому разрешенному кодовому слову
соответствует одна такая группа. При
декодировании обнаруженное на выходе
устройства запрещенное кодовое слово
заменяется разрешенным словом, в группу
которого оно входит. Тем самым ошибка
исправляется. Однако работа декодирующего
устройства усложняется. Процесс
построения корректирующего кода состоит
из следующих этапов:

1 этап – выявление
наиболее вероятных ошибок для заданного
способа функционирования устройства
или наиболее опасных ошибок в условиях
использования этого устройства;

2 этап – формирование
избыточного множества выходных слов,
разделение этого множества на подмножества
разрешенных и запрещенных кодовых слов
и образование декодировочных групп;

3 этап – разработка
рационального способа декодирования
выходных слов, позволяющего реализовать
относительно несложными техническими
средствами обнаружение и исправление
ошибок;

4 этап – организация
множества входных так, чтобы заданное
преобразование, выполненное над любым
словом этого множества, дало на выходе
слово, принадлежащее к подмножеству
разрешенных кодовых слов.

При построении
ЭВМ, предназначенной для решения
определенного класса задач, важным
вопросом является рациональный выбор
уровня, на котором следует применять
корректирующий код.

Известно, что ЭВМ
слагается из отдельных устройств, в
каждом из которых информация претерпевает
определенные изменения. В то же время
составляющие части ЭВМ состоят из
отдельных блоков (сумматоров, регистров
и т.п.), которые в свою очередь набраны
из простейших логических элементов
(триггеров, схем И, ИЛИ, НЕ и т.п).

Корректирующие
коды применяют на любом из этих уровней
структуры ЭВМ. Однако результаты получают
различные. В ряде случаев корректировать
ошибки в работе логических схем
значительно труднее, чем например, в
работе сумматора в целом. Далее, если
контроль правильности и исправления
ошибок в работе отдельных блоков и
устройств осуществить сложно, то в
некоторых случаях прохождение всей
задачи легко контролируется применением
простейших принципов, например, путем
повторения счета.

Введение структурной
и информационной избыточности для
повышения надежности ЭВМ не дает желаемых
результатов, если при ее конструировании
будут нерационально решены компоновка
и конструктивное исполнение отдельных
узлов и блоков.

Для обеспечения
высокой надежности ЭВМ необходимо
стремиться максимально упростить
конструкцию, применять стандартные
элементы, обеспечивать возможность
проведения профилактики и контроля.

Петров Б.М., Уткина О.Н. АНАЛИЗ ОСОБЕННОСТЕЙ ОЦЕНКИ ЖИВУЧЕСТИ СЕРВЕРНЫХ ПРОГРАММНЫХ СРЕДСТВ НАНОПРОЦЕССОРНЫХ СИСТЕМ

При разработке серверных («облачных») систем, использующих новейшие достижения наноэлектроники, необходимо рассмотреть основные особенности программных средств (ПС) серверных нанопроцессор-ных систем (СНПС), которые влияют на оценку живучести СНПС. В статье рассмотрены отличие серверных технологий от клиентских.

Разработка современных серверных («облачных») систем, базирующихся на новых методах обработки информации и использующих новейшие достижения наноэлектроники, потребовала разработки новых моделей расчета живучести программных средств СНПС для основных типов серверов: -print, -mail, -web,

-ftp, -vpn, -DHCP, -DNS, -proxy, сервер БД.

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

Использование новых сложных методов обработки информации, значительно усложняет современные СНПС, а возрастающая ответственность выполняемых ими функций выдвигает на одно из первых мест проблему расчета живучести СНПС. В статье рассмотрены методы расчета и обеспечения живучести программных средств СНПС.

Проблема живучести программного обеспечения (ПО) возникла при создании больших вычислительных комплексов, когда трудоемкость и стоимость технических средств (логических элементов и приборов памяти) стала непрерывно снижаться, а стоимость и трудоемкость разработки ПО стала повышаться.

В настоящее время в Интернете находятся десятки миллиардов к пакетов (1010), которые имеют емкость десятки миллиардов байт информации (1010), которые обрабатываются на серверах с производительностью сотни миллиардов (1011), производительность серверных систем равна произведению тактовой частоты на разрядность системной шины данных, в итоге мы имеем информационную сложность Интернета 1031, которая должна обеспечиваться новыми моделями расчета и обеспечения живучести.

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

Особенностями СНПС, которые обеспечивают высокую защищенность за счет живучести и безопасности, являются:

— конфигурирование массива с избыточностью данных;

— конфигурирование CRON;

— конфигурирование LVM;

— MD5-sum для контроля целостности;

— проверка на spy, и на back door;

— наличие firewall и clam;

— наличие межсетевых экранов и сканеров безопасности;

— наличие политики безопасности сетевого оборудования;

— наличие системы аутентификации и авторизации;

— наличие системы обнаружения атак;

— наличие системы антивирусной защиты;

— ограничения на ввод ID и шифрование каналов.

Особенностями СНПС, которые обеспечивают высокую функциональность за счет быстродействия и доступа в Интернет, являются:

— оптимальная настройка маршрутизации;

— оптимизация пропускной способности сети;

— планирование приоритетов вторичных процессов;

— балансировка нагрузки и многоканальность;

— наличие системы от несанкционированного доступа;

— дефрагментация и физическая чистка HDD;

— автоматизация уведомлений;

— делегирование доступа и чистка баз данных.

Особенностями СНПС, которые обеспечивают высокую работоспособность за счет системы обслуживания и стабильности, являются:

— поиск и удаление временных файлов;

— поиск и удаление .bac файлов;

— поиск и удаление битых ссылок;

— регулярное и своевременное обновление всей системы;

— RAID с избыточностью;

— наличие вторичных серверов и нескольких внешних IP;

— наличие ИБП и сетевых фильтров.

Вероятность достижения требуемого уровня функциональности СНПС сильно зависит от:

— допустимого коэффициента нагрузки (0,1 — 0,8) и от балансировки ее;

— возможности перераспределения обязанностей, коэффициента

делегирования задач (0,3 — 0,9) вторичным серверам;

— коэффициента конфигурации и полноты, глубины и достоверности

проверок (число точек контроля в серверах);

— сложности выполняемых задач, коэффициента ресурсоемкости задач (0,1

— 1,0) при построении очередей задач.

При этом сервер должен выдерживать не менее 98% атак, а система резервного копирования должна каждый день делать инкрементальное резервное копирование и раз в неделю полное резервное копирование, а источник бесперебойного питания должен обеспечивать работу сервера не менее 8 часов, а

СНПС должна уметь обрабатывать не менее 1000 обращений к базе данных. При конфигурировании необходимо обращать особое внимание на самые важные для данной ситуации характеристики и необходимо проводить постоянный мониторинг для своевременного обнаружения и исправления возникающих проблем при обслуживании сервера.

Для получения максимальной вероятности достижения требуемого уровня функциональности СНПС необходимо в первую очередь обеспечивать:

— оптимальное построение очередей задач;

— разработку адаптивной системы резервного копирования под текущие задачи;

— высокий уровень безопасности за счет анализа всех направлений, по которым можно ожидать атаки;

— постоянное поддержание баз данных в компонентном состоянии;

— мониторинг, дефрагментацию и регулярную чистку сервера.

Внедрение микропроцессоров (МП), сверхбольших интегральных схем (СБИС) памяти, цифровых сигнальных процессоров (ЦСП), программи-руемых логических интегральных схем (ПЛИС), микроконтроллеров (МК) и нанопроцессоров (НП) и привело к значительному увеличению сложности ПО. Существует прогноз, что к 2012 году, когда будут внедрены разрабатываемые сейчас системы, вклад ПО составит более 95 % стоимости технических вычислительных средств.

В настоящее время существует несколько моделей оценки живучести ПС микропроцессоров, модели оценки живучести ПС нанопроцессоров с учетом их особенностей, пока в литературе не рассматривались. Все известные модели оценки живучести ПС МП можно разделить на две группы.

В первой группе моделей на этапе разработки ПО определяется показатель сложности ПО. Оцениваются количественные и качественные характеристики: общее время выполнения алгоритма с учетом

сложности арифметических и логических команд и их длительности (длина программы Тго), ее объем, уровень и интеллектуальное содержание программы. Следует отметить, что рассматриваемые модели имеют два серьезных недостатка, которые на порядок и более ухудшают оценку сложности. Во-первых, они не учитывают структуру алгоритма, а во-вторых, объем и время программирования изменяется нелинейно при усложнении алгоритма, поэтому приходится корректировать наработку на ошибку в ПС ТПО .

Во второй группе моделей для прогнозирования одной из важнейших характеристик живучести ПО -интенсивности ошибок используют модели, базирующиеся на теории надежности технических систем. Эти модели чаще всего используются на практике, т.к. они позволяют определить следующие показатели живучести ПО: времена появления ошибок; результирующее время между ошибками; количество ошибок за

заданный период времени.

Как в технических средствах, в качестве показателей живучести используются: функция надежности (вероятность безошибочной работы) — , среднее время между появлениями ошибок в ПО — Тср, интенсивность ошибок ^по(Ъ), которую обозначают через функцию риска Z(t) (количество, скорость, темп

выявления ошибок) условную вероятность того, что ошибка произойдет в интервале времени ( ^ t + А ^ при условии, что программа не отказывала в течение времени ^

Модели второй группы отличаются между собой теми ограничениями и предположениями, которым они соответствуют. Поэтому необходимо очень строго сравнивать предположения, принятые в конкретной модели.

При исследовании живучести ПО предполагаем, что в процессе функционирования в СНПС возникают различные виды отказов (сбои, перемежающиеся отказы, ошибки, внезапные отказы), включающие отказы технических и программных средств (ТС, ПС).

Живучесть СНПС определяется совместной вероятностью Рснпс = Ртс(А) х Рпо(В/А) , где Ртс(А) — безусловная вероятность безотказной работы технических средств; Рпо(В/А) — условная вероятность безотказной работы программного обеспечения при условии, что в технических средствах отказ не произошел. Как отмечено в [1], целесообразно принять допущение о независимости отказов в ТС и ПС,

Т.е. РБНПС = Ртс (А) х Рпо (в) .

Изменение системной функции СНПС при возникновении различных видов отказов происходит случайным образом и описывается различными моделями, применение которых позволяет при расчете живучести СНПС вычислять вероятностные характеристики, адекватно отражающие реальные процессы взаимодействия различных видов отказов. При выборе показателей живучести СНПС для проведения расчетов целесообразно использовать два подхода, которые в настоящее время применяются для создания надежных технических и программных средств и приведены в табл. 1.

В первом подходе, который для программных средств называется подходом «безотказности» ( инто-лерантным ) «правильностью» программ, задается показатель ТО (Топо). Этот показатель характеризует уровень создания правильного программного обеспечения. Показатель То зависит от сложности программного обеспечения, от количества функциональных и логических команд, от использованной технологии программирования, от времени отладки ПО.

Таблица 1Выбор номенклатуры показателей безотказности технических и программных средств серверных нанопроцессорных систем вида II (СНПС)

Надежность и живучесть НПС Надежность элементной базы (нанопроцессоры и команды) Интолерантный подход Живучесть структуры Толерантный подход Живучесть архитектуры (структуры и протоколы обмена данных и управления) Толерантный подход

Свойство Показатель Свойство Показатель Свойство Показатель

Технические средства НПС Безотказность То.тс — средняя наработка на отказ в технических средствах Отказо- устойчи- вость Р (^ — вероятность, что не произойдет срыва выполнения задания, из-за отказов в технических средствах Безотказ- ность, отказо- устойчи- вость ТО.ТС — средняя наработка на отказ в технических средствах; Р (^ — вероятность, что не произойдет срыва

выполнения задания, из-за отказов в технических средствах

Программные средства НПС Правильность То.пс — средняя наработка на ошибку в программных средствах Устойчи- вость Р (^ — вероятность, что не произойдет срыва решения задачи, из-за появления ошибки в программных средствах Правиль- ность (коррект- ность), устойчи- вость ТО.ПС — средняя наработка на ошибку в программных средствах; Р (^ — вероятность, что не произойдет срыва решения задачи, из-за появления ошибки в программных средствах

Изделия вида II (СНПС), которые в процессе эксплуатации могут находиться, кроме двух состояниях — работоспособном или неработоспособном, в некотором числе частично неработоспособных состояний, в которые они переходят в результате частичного отказа, что соответствует свойству живучести. Живучесть архитектуры это совместный учет отказов элементной базы, устойчивость структуры и протоколов обмена данных и управления для обеспечения эффективной работы за счет корректного отключения т количества ядер, различных уровней КЭШ — памяти, различных ступеней конвейеров и различных микротехнологий.

Повышение значения показателя Топо может быть за счет уменьшения количества и сложности команд, совершенствования программирования и методов тестирования, за счет внедрения методов автоматического доказательства правильности программ.

Второй подход называется проектированием СНПС «с допуском на сбой» (толерантным), «устойчивостью» программ и задается показателем Р(^ — вероятностью успешного выполнения задания или ТС средней наработкой на ошибку, приводящей к срыву выполнения задания. Этот показатель характеризует устойчивость ПО к различного рода ошибкам, искажениям, отказам и зависит от различных видов избыточности (информационной, временной, алгоритмической), введенных в СНПС и согласованных с механизмами типовых ошибок.

По мере увеличения сложности программных средств СНПС второй подход становится более перспективным и более экономичным, чем первый. Универсальность СНПС позволяет осуществлять последовательный переход от проектирования специализированных СНПС частного применения к СНПС универсального применения, которые имеют большую естественную алгоритмическую и архитектурную избыточность. Кроме того, все мероприятия по повышению надежности, применяемые в первом подходе автоматически приводят к повышению показателей надежности второго подхода.

Программное обеспечение в СНПС представляет одну из областей возникновения ошибок и значительно влияет на работоспособность устройства. Для оценки безотказности программного обеспечения построена укрупненная модель, позволяющая учесть основные особенности ПО в СНПС. Для адекватного отражения в модели реальных процессов отказов ПО предварительно проведен анализ видов и механизмов ошибок. На основе анализа приняты следующее определения и допущения, которые позволяют построить инженерную модель расчета безотказности ПО СНПС:

— программа называется правильной, если она выдает правильные результаты при правильных исходных данных и при отсутствии ошибок в командах и константах;

— программа называется устойчивой, если она выдает правильные результаты при наличии ошибок в исходных данных или в командах, т.е. возникающие ошибки в процессе функционирования нейтрализуются;

— отказ ПО определяется как недопустимое отклонение результатов выполнения задания от заданных в ТУ, по точности, по времени;

— безотказность ПО характеризуется вероятностью безотказной (безошибочной) работы ПО в течение заданного времени, в заданных условиях (т.е. с требуемой точностью и быстродействием), для данного СНПС в комплект которого включено ПО;

— для проведения расчетов в качестве основной характеристики безотказности ПО используется интенсивность отказов ^цо ;

— в начале отладки ПО содержит N0 ошибок, которые возникают на этапе разработки из-за неправильного кодирования, ошибок в последовательности передачи управления, несоответствия условий обработки заданным требованиям по точности, быстродействию, области допустимых значений, из-за неправильного описания или неполного учета возникающих ситуаций. N0 не зависит от времени отладки, а зависит от сложности ПО, типа НП и используемой технологии программирования;

— устранение ошибок, в небольших по объему программных модулях СНПС, происходит без внесения новых ошибок, т.е. считаем, что интенсивность ошибок ПО является не возрастающей функцией;

— проведение полного и тщательного анализа типа ошибок и его влияния на ПО не реально из-за множества логических путей, поэтому проверка ПО в СНПС проводится выборочно. Адекватное отражение реальных условий работы можно получить при тестировании наиболее вероятного множества входных данных, которое охватывает наиболее вероятные ветви алгоритма и наиболее сложные и вероятные сочетания условных переходов.

Точное определение вида закона распределения времени безотказной работы ПО СНПС на практике получить очень трудно. Попытки описать время безотказной работы ПО двух- или трехпараметрическим законом распределения успехов не имели, так как точность увеличивалась незначительно, а сложность вычислений из-за сложности определения дополнительных параметров увеличилась в несколько раз.

Обработка множества гистограмм, приведенных в литературе, показывает хорошее совпадение экспериментальных данных с теоретическими кривыми экспоненциального закона. Отклонения, которые наблюдаются в некоторых гистограммах на начальном участке, объясняются растягиванием сроков ввода и начала обработки информации по отказам у различных пользователей. Некоторые разработчики из-за большого потока ошибок на начальном этапе не успевают их анализировать и поэтому снижают интенсивность отработки ПО.

Время функционирования ПО не влияет на остаточное время жизни ПО (так как в ПО не происходят процессы, вызывающие износ и старение, а этим свойством обладает только экспоненциальное распределение), то логично принять этот закон для описания безотказности, при котором мы получаем оценку снизу.

Различают последствия при возникновении ошибок:

а) средние (45%) и незначительные (ЗО%) последствия при ошибках в данных, которые искажают данные, точность вычислений (т.е. ухудшают характеристики СНПС) , эти ошибки обнаруживаются и исправляются при циклической обработке;

б) катастрофические (5%) и серьезные (20%) последствия при ошибках в командах, в последовательности передачи управления, которые приводят к искажению программы и срыву решения задачи.

В таблицах 2, 3, 4, 5 приведена классификация ошибок ПО по типам, этапам возникновения и обнаружения ошибок [1].

Таблица 2

Тип ошибки Вес ошибки, %

Неполная или ошибочная спецификация 25

Отклонение от спецификации 15

Нарушение стандартов программирования 14

Ошибочная выборка данных 10

Логическая ошибка в последовательности операций 9

Ошибка в арифметической операции 8

Ошибки в документации и в исходных данных 8

Ошибка в обработке прерываний 8

Ошибка в константах 3

Таблица 3

Причины ошибок Вес ошибки, %

Ошибки в числовых значениях 20

Недостаточные требования к быстродействию 18

Недостаточные требования к точности 15

Ошибочные символы и знаки 14

Ошибки оформления 12

Ошибочные модели описания аппаратуры 11

Ошибочные и неопределенные исходные данные 10

Таблица 4

Этап, на котором допущена ошибка Вес ошибки, %

Выбор цели 10

Алгоритмизация и спецификация 40

Кодирование 43

Отладка 3

Опытная эксплуатация 2

Тиражирование и поддержание 2

Таблица 5

Этап, на котором обнаружена ошибка Вес ошибки, %

Разработка контрольных примеров и тестов 20

Отладка 24

Натурные испытания и моделирование 22

Стыковка с другими программами при комплексных испытаниях 16

Сдача заказчику и эксплуатация 18

Литература

1. Петров Б.М., Уткина О.Н. Применение компьютерных технологий для разработки меЬ-портала экспертной системы анализа живучести информационных систем. Сб. трудов межд. научно-практич. конф. «Информационные технологии в образовании, науке и производстве» г. Серпухов 2008 г., с.128-132.

Основные показатели надежности программного обеспечения (ПО). Математические модели оценки надежности ПО.

13.1. Основные показатели надежности программного обеспечения (ПО).

Надежность программного обеспечения отличается от надежности  технических средств следующим:

  • элементы ПО не стареют от износа;
  • число способов контроля ПО значительно больше числа способов контроля аппаратуры;
  • в ПО значительно больше объектов для контроля, чем в аппаратуре;
  • вПО гораздо проще вносить исправления и дополнения, чем в аппаратуру, но это  трудно делать корректно и безошибочно.

Основные понятия, связанные с надежностью программного обеспечения:

  • ошибки в программах и признаки их наличия;
  • количество оставшихся в программе ошибок (ошибок, дошедших до пользователя); вероятность безотказной работы программы;
  • интенсивность обнаружения ошибок (или функция риска);
  • прогон программы;
  • отказ программы.

Дать строгое определение программной ошибки непросто, поскольку это определение,  является функцией от самой программы, то есть зависит от того, какого функционирования ожидает от программы пользователь. По этой причине вместо строгого определения будут перечислены только признаки, указывающие на наличие ошибки в программе:

  • при выполнении программы появилась ошибочная операция;
  • использование некорректного операнда в программе;
  • несоответствие функций, выполняемых программой, ее спецификации;
  • ошибки в самой спецификации, которые вызывают необходимость корректирования программы;
  • ошибки в вычислениях (например, переполнение и т.п.);
  • ошибки интерфейса программы с пользователем.

Этот список можно считать открытым, поскольку он может быть продолжен разработчиками по мере накопления ими опыта в повышении надежности программного обеспечения.

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

Количество оставшихся в программе ошибок – это количество ошибок, которые потенциально могут быть обнаружены на последующих стадиях жизненного цикла программы, после исправлений, внесенных в программу на текущей стадии ее жизненного цикла. Это количество оставшихся в программе ошибок (обозначаемое далее как B) – один из важнейших показателей надежности ПО.

Пусть P(t)  — вероятность того, что ни одной ошибки не будет обнаружено на временном интервале [0,t]. Тогда вероятность хотя бы одного отказа за этот период будет Q(t) = 1 – P(t), и плотность вероятности можно записать как

Рассмотрим функцию риска R(t), как условную плотность вероятности отказа программы в момент времени t, при условии, что до этого момента отказов не было

(13.1)

Функция риска имеет размерность [1/время] и она очень полезна при классификации основных распределений отказов. Распределения с возрастающей функцией риска соответствуют тем ситуациям, когда статистические характеристики надежности ухудшаются со временем. И наоборот, распределения с убывающей функцией риска соответствуют обратной ситуации, когда надежность улучшается со временем в результате процесса обнаружения и коррекции ошибок.

Из выражения  (13.1),  ясно, что , и, следовательно,

или

(13.2)

Равенство (13.2)  является одним из самых важных в теории надежности. В дальнейшем будет показано, что различные виды поведения функции риска во времени порождают различные возможности для построения моделей надежности ПО. Интенсивность обнаружения ошибок (функция риска), вместе с вероятностью безотказной работы программы и количеством оставшихся в программе ошибок, являются важнейшими показателями надежности программ.

Прогон программы – это набор действий, включающий в себя: ввод в программу одной из возможных комбинаций Ei пространства входных данных E (); выполнение программы, которое заканчивается либо получением результата F(Ei), либо отказом.

Для некоторых наборов входных данных Ei, отклонение полученного на выходе результата (F’(Ei)) от требуемого результата F(Ei) находится в пределах допустимого отклонения , то есть выполняется следующее неравенство

()

а для всех остальных Ei  из подмножества , выполнение программы не дает приемлемого результата, то есть

()

Случаи, описанные неравенством (13.4), называются отказами программы.

Рассмотрим дихотомическую переменную :

Тогда статистическая оценка вероятности отказа программы в течении m прогонов будет равна:

()

Обозначим через  приемлемую ошибку оценки  вероятности отказа . Тогда требуемое количество прогонов программы m должно быть пропорционально значению , где    Q – заданная вероятность отказа программы. Это означает, что если, например, требуемая относительная ошибка оценки (13.5) , и требуемое (желаемое) значение , тогда количество независимых прогонов программы m одлжно быть не меньше, чем , что, конечно,  нелегко реализовать на практике. Решением этой проблемы может быть использование процедуры последовательного анализа Вальда.

И наконец, еще один показатель надежности ПО, который тоже будет использоваться в этой работе – среднее время наработки программы до отказа:

Опыт разработки ПО показывает, что выявление ошибок и их исправление связано с определенными затратами, которые составляют цену ошибки. По мере перехода к более поздним стадиям разработки цена ошибки возрастает:

  1. Этап разработки спецификаций                                                  140$;
  2. Программирование                                                                       1100$;
  3. Комплексная отладка                                                                    7000$;
  4. Этап сопровождения                                                                     от 14000$ до 140 000$;

13.2. Математические модели оценки надежности ПО.

Модели надежности ПО служат для предсказания значений метрик, позволяющих оценить надежность на различных этапах тестирования программного продукта. Например, в том случае, если к некоторому моменту тестирования количество обнаруженных и исправленных ошибок уже достаточно велико, это может создать впечатление, что тестирование продукта близится к завершению, то есть ошибок в программе осталось немного. Однако, это может совершенно не соответствовать действительности, и как раз использование моделей надежности программ может помочь прояснить подобную ситуацию.

Математические модели надежности программ можно разбить на группы по следующим признакам:

  • Вид «функции риска», определяющей временную структуру появления ошибок в программе;
  • Сложность разработки программы;
  • Способы «посева» ошибок и оценки числа исходных ошибок по соотношению исходных и внесенных;
  • Сравнение числа успешных прогонов программы и общего числа прогонов для различных структур пространства входных данных.

Модели, основанные на использовании функции риска

Модель Джелинского-Моранды.

Это одна из первых и простейших моделей классического типа, послужившая основой для дальнейших разработок в этом направлении. Модель была использована при разработке таких значительных программных проектов, как программа Аполло (некоторых ее модулей).  Модель Джелинского-Моранды основана на следующих предположениях:

  1. Интенсивность обнаружения ошибок R(t) пропорциональна текущему количеству ошибок в программе, то есть изначальному количеству ошибок за вычетом количества ошибок, уже обнаруженных на данный момент.
  2. Все ошибки в программе равновероятны и не зависят друг от друга.
  3. Все ошибки имеют одинаковую степень важности.
  4. Время до следующего отказа программы распределено экспоненциально.
  5. Исправление ошибок происходит без внесения в программу новых ошибок.
  6. R(t) = const в промежутке между любыми двумя соседними моментами обнаружения ошибок.

Согласно этим предположениям, функция риска будет представлена как:

В этой формуле t – это произвольный момент времени между обнаружением (i-1)-й и i-й ошибок; K – неизвестный коэффициент масштабирования; B – начальное количество оставшихся в программе ошибок (также неизвестное). Таким образом, если в течении времени t было обнаружено  (i-1) ошибок, это означает, что в программе еще остается B-(i-1) необнаруженных ошибок. Полагая, что

и используя предпосылку 6, а также равенство (13.2),  можно заключить, что все Xi имеют экспоненциальное распределение

и плотность вероятности отказа, соответственно, равна

Тогда функцию правдоподобия (согласно предпосылке 2) можно записать как

или, переходя к логарифму функции правдоподобия, имеем

(13.2)

Максимум функции правдоподобия можно найти, используя следующие условия

(13.3)

(13.4)

Из формулы (13.3) получается оценка максимального правдоподобия для K

(13.5)

Подставляя выражение (13.5) в (13.4), находим нелинейное уравнение для вычисления –оценки максимального правдоподобия для B

(13.6)

Это уравнение можно упростить перед тем, как искать его решение, если записать его с использованием следующих обозначений

(13.7)

где

Поскольку имеют смысл лишь целочисленные значения , функции из выражения (13.7) можно рассматривать только для целочисленных аргументов. Более того, , поскольку n ошибок с программе уже обнаружено. Таким образом, оценка максимального правдоподобия для B может быть получена с помощью вычисления начальных значений функций fn(m) и gn(m) для m=n+1, n+2…, и  анализа  разницы  |fn(m)-gn(m)|.

Поскольку правая и левая части выражения (13.7) одинаково монотонны, это порождает проблему единственности решения, а также проблему его существования. Конечное решение  в области существует тогда и только тогда, когда выполняется неравенство

(13.8)

В противном случае оценка максимального правдоподобия будет Условие (13.8) можно переписать в более удобном виде

(13.9)

где  A – то же самое выражение, что и в формуле (13.7). Необходимо отметить, что,  A является интегральной характеристикой n встретившихся в программе за время тестирования ошибок, и представляет (в статистическом смысле) набор интервалов Xi между ошибками.

Рассмотрим пример использования модели Джелинского-Моранды, в котором она применяется к следующим экспериментальным данным: в течение 250 дней было обнаружено 26 ошибок, интервалы между обнаружением которых представлены в таблице 13.1.  Для этих данных мы имеем n=26 и . Условие (13.9) выполняется, и, таким образом, оценка максимального правдоподобия имеет единственное решение. В таблице 13.2 представлены начальные значения функций, входящих в уравнение (13.7), для множества аргументов

Наилучшим решением для уравнения (13.7) является m=32 (соответствующая строка в таблице дает минимальное значение разницы функций по модулю, то есть максимально приближает ее к нулю, что нам и требуется), то есть = m-1=31. Из выражения  (13.5) находим  = 0.007.

Среднее время  (время, оставшееся до обнаружения (n+1)-й ошибки) есть инвертированная оценка интенсивности для предыдущей ошибки:

В этом примере, , и время до полного завершения тестирования

Таблица 10. Интервалы между обнаружением ошибок.

I Xi I Xi i Xi i Xi
1 9 8 8 15 4 21 11
2 12 9 5 16 1 22 33
3 11 10 7 17 3 23 7
4 4 11 1 18 3 24 91
5 7 12 6 19 6 25 2
6 2 13 1 20 1 26 1
7 5 14 9        

Таблица 11. Значения функций.

m
27 3.854 2.608 1.246
28 2.891 2.371 0.520
29 2.427 2.172 0.255
30 2.128 2.005 0.123
31 1.912 1.861 0.051
32 1.744 1.737 0.007
33 1.608 1.628 -0.020
34 1.496 1.532 -0.036

Простая экспоненциальная модель.

Основное различие между этой моделью и моделью Джелинского-Моранды, рассмотренной в предыдущем разделе, в том, что эта модель не использует предположение 6, и, таким образом,  допускает, что функция риска может меняться между моментами обнаружения ошибок, то есть она больше не является константой на этих интервалах. Пусть N(t) – число ошибок, обнаруженных к моменту времени, и пусть функция риска пропорциональна количеству ошибок, оставшихся в программе после момента t.

Продифференцируем обе части этого уравнения по времени:

Учитывая, что   — это R(t) (количество ошибок, обнаруживаемых в единицу времени), получаем дифференциальное уравнение для R(t)

(13.10)

Если рассмотреть начальные значения N(0)=0, R(0)=KB, то решением уравнения (3.10) будет

(13.11)

Оценки параметров К и В можно получить аналогично модели Джелинского-Моранды и затем  с помощью  оценки функции риска можно спрогнозировать ситуацию на следующие этапы отладки.

Модель Шика-Уолвертона.

Эта модель основана на предположении, что функция риска пропорциональна не только количеству ошибок в программе, но и продолжительности процесса тестирования. Кроме того, предполагается, что чем дольше ПО тестируется, тем больше появляется шансов на обнаружение последующих ошибок, поскольку в процессе отладки некоторые участки программы «подчищаются»,  что облегчает ее дальнейшее тестирование.

Модель основана на следующих предположениях:

  1. Все ошибки в программе равновероятны и независимы друг от друга.
  2. Все ошибки считаются одинаково серьезными.
  3. Исправление ошибок происходит без внесения в программу новых ошибок.

Функция риска для данной модели:

В этой формуле Xi  — время между моментом  обнаружения (i-1)-й ошибки до текущего момента .

Вероятность безотказного функционирования программы на интервале Xi равна:

,

что дает плотность вероятности отказа

Модели Липова

Эти модели  являются обобщением моделей Джелинского-Моранды и Шика-Уолвертона. В отличие от этих моделей, модели Липова допускают более одной ошибки в интервале тестирования, и кроме того, допускают, что не все из  ошибок, обнаруженных а этом интервале,  могут быть исправлены. Первая модель Липова (обобщение модели Джелинского-Моранды) основана на следующих предположениях:

  1. Все ошибки равновероятны и независимы друг от друга.
  2. Все ошибки считаются одинаково серьезными.
  3. Интенсивность обнаружения ошибок постоянна на всем интервале тестирования.
  4. На i-том интервале тестирования обнаруживается  ошибок, но только  из них исправляется.

Последнее предположение значительно отличает данную модель от всех моделей, рассмотренных ранее. Таким образом, функция риска определяется следующим выражением: где  — общее количество ошибок, исправленных к моменту времени   ,  а   — это время окончания i-го интервала тестирования (измеренное обычным способом или таймером процессора). Еще одно отличие данной модели от модели Джелинского-Моранды в том, что интервалы  фиксированные, а не произвольные.

Вторая модель Липова (обобщение модели Шика-Уолвертона) основана на следующих предположениях. Интенсивность обнаружения ошибок пропорциональна текущему количеству ошибок вПО и общему времени, затраченному на его тестирование, включая также «среднее» время поиска ошибки, обнаруженной на интервале тестирования. С учетом этих предположений, функция риска задается следующим выражением:

(13.12)

где   — общее количество ошибок, исправленных к моменту времени . Формула (13.12) отличается от первой модели Липова вторым множителем — ,  отражающем изменение интервала тестирования.

Геометрические модели

В этом разделе  рассмотрен пример геометрической модели, предложенной П. Б. Морандой и  являющейся модификацией модели Джелинского-Моранды.

Модель основана на предположении, что начальное количество ошибок в программе B не является фиксированным значением (не ограничено), более того, не все ошибки встречаются с одинаковой вероятностью. Также предполагается, что чем дольше длится процесс отладки ПО, тем труднее становится обнаруживать в нем ошибки, и , таким образом, ПО никогда полностью не освобождается от ошибок. Основные предположения в этой модели следующие:

  1. Общее количество ошибок в программе неограниченно;
  2. Ошибки встречаются с разной вероятностью;
  3. Процесс обнаружения ошибок не зависит от самих ошибок;
  4. Интенсивность обнаружения ошибок изменяется по закону геометрической прогрессии, но между моментами обнаружения ошибок интенсивность постоянна.

Исходя из этих предположений, функцию риска можно записать следующим выражением:

где t – временной интервал между обнаружением (i-1)-ой и i-той ошибок. Начальное значение этой функции R(0) = D, и функция риска убывает со скоростью геометрической прогрессии (0<K<1) по ходу процесса обнаружения ошибок. Скорость изменения R(t) пропорциональна инвертированному значению константы K:

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

Эта модель не позволяет определить, сколько ошибок осталось в ПО, но с ее помощью можно найти его «уровень чистоты». “Уровень чистоты”  — это отношение

(13.13)

Оценка максимального правдоподобия для этого значения будет

Модель Шнейдевинда

Эта модель основана на подходе, что чем позже встречаются ошибки, тем большее значение они имеют для процесса предсказания ошибок в программе.  Предположим, что есть m интервалов тестирования, и пускай на i-том интервале обнаружено  ошибок. Тогда возможно три различных подхода:

  1. Использовать данные об ошибках на всех интервалах;
  2. Не рассматривать данные об ошибках, обнаруженных на первых (s-1) интервалах, и использовать только данные с s-того по  m-тый;
  3. Использовать суммарное количество ошибок, обнаруженных с первого по  (s-1)-ый интервал, т.е. , и отдельные ошибки с s-того по m-тый интервалы.

Подход 1 предлагается использовать в тех случаях, когда для предсказания будущего состояния ПО необходимы данные со всех интервалов тестирования. Подход 2 – когда есть причины полагать, что произошел некий перелом в процессе обнаружения ошибок, и только данные последних m – (s-1) интервалов имеет смысл учитывать в прогнозах на будущее. И наконец, подход 3 является компромиссом между первыми двумя подходами.

Модель основана на следующих предположениях:

  1. Количество ошибок на интервале тестирования не зависит от количества ошибок на остальных интервалах;
  2. Количество обнаруженных ошибок убывает от одного интервала к другому;
  3. Все интервалы тестирования имеют одинаковую длину;
  4. Интенсивность обнаружения ошибок пропорциональна количеству ошибок, содержащихся в программе в текущий момент времени.

Лекция 14. Модели, основанные на методе «посева» и разметки ошибок, и модели на основе учета структуры входных данных

Методы оценки надежности программ, основанные на моделях «посева» и разметки ошибок,  рассмотрены на примере трех моделей: Милза, Бейзина и простой эвристической модели. Согласно методике, предложенной Милзом, программа изначально “засевается” известным количеством некоторых ошибок — M. Главное предположение  модели в том, что «засеянные» ошибки распределены таким же образом, как и естественные ошибки программы, и, следовательно, вероятность обнаружения для «засеянной» ошибки такая же, как и для естественной. После этого начинается процесс тестирования ПО. Пусть  во время тестирования было обнаружено (m+v) ошибок, из которых m ошибок было искусственно «засеяно», а v ошибок содержалось в ПО изначально. Тогда, согласно методу максимального правдоподобия, начальное количество ошибок в программе можно оценить следующим образом: .

Серьезным недостатком этой модели является предположение об одинаковости распределения сгенерированных и естественных ошибок, которое невозможно проверить, особенно на более поздних стадиях разработки ПО, когда многие простые ошибки (такие, как синтаксические ошибки, например) уже исправлены, и только наиболее сложные для обнаружения ошибки еще остаются в ПО.

Теперь рассмотрим модель Бейзина. Пусть программный продукт содержит Nk команд. Из этих Nk команд произвольно выбираются n команд, и в каждую из этих n команд заносится ошибка. После этого для тестирования случайным образом выбирается r команд. Если в процессе тестирования было случайным образом обнаружено  m “засеянных” и v естественных ошибок, это означает, что, согласно методу максимального правдоподобия, начальное количество ошибок в программе можно оценить следующим образом:

где скобками ][ обозначена целая часть числа.

При использовании такой процедуры уровень пометки (т.е. среднее количество помеченных команд) должен превышать 20, чтобы полученную оценку можно было считать достаточно объективной.  Эти процедуры могут применяться на любой стадии после того, как написание кода программы закончено.

Теперь рассмотрим простую эвристическую модель. Эта модель была предложена Б. Руднером. Она позволяет избавиться от главного недостатка модели Милза. Здесь тестирование производится параллельно, двумя независимыми группами разработчиков ПО.

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

Модели, основанные на использовании структуры входных данных

В основе методов, использующих структуру входных данных, лежит модель, предложенная Нельсоном, которая начала применяться на практике только после ее доработки, связанной с применением последовательного анализа Вальда. Также к этой группе относится модель, разработанная фирмой IBM.

Модель Нельсона. Применение последовательного анализа Вальда для снижения количества прогонов программы.

Модель, предложенная Е. Нельсоном, основана на использовании структуры входных данных программы.  В простейшем случае набор входных данных Ei, произвольно выбранный из пространства входных данных E, имеет равную априорную вероятность с другими наборами, входящими в E, и это дает оценку вероятности отказа по  формуле (13.5).

Если рассмотреть также и случай различных вероятностей для каждого набора данных, то оценка (13.5) изменится следующим образом.

что позволяет записать следующее выражение для вероятности успешного прогона:

(14.1)

Тогда вероятность успешного выполнения m прогонов, при условии, что  набор входных данных для каждого прогона выбирается независимо и в соответствии с распределением, заданным формулой (14.1), будет равна:

(14.2)

Модель (14.2) позволяет дать следующее определение надежности ПО: надежность ПО – это вероятность его m безотказных прогонов.

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

Принимая во внимание эти обстоятельства, необходимо переопределить распределение (14.1) в терминах вероятностей pij выбора набора данных Ei для j-того прогона программы из некоторой последовательности прогонов. Тогда вероятность отказа на j-том прогоне будет

Соответственно, вероятность безотказного выполнения m прогонов можно оценить следующим выражением:

Это выражение можно записать в виде

и если Qi<<1, тогда

Обозначим  — время выполнения j-того прогона программы, и — суммарное время, потраченное на выполнение j прогонов, и будем использовать следующее выражение для функции риска

тогда мы имеем

Если , то сумма превращается в интеграл, и формула (14.3) превращается в фундаментальное отношение (13.2):

основного правила надежности.

При использовании модели Нельсона на практике встречаются две категории трудностей. Первая связана с нахождением  — параметров распределения входных данных. Вторая связана с необходимостью выполнения значительного количества прогонов программы (десятки и сотни тысяч) для получения приемлемой точности для соответствующих  оценок вероятности (отказа или безотказной работы). Последняя проблема решается применением хорошо известного в статистике метода последовательного анализа, предложенного Вальдом.

Модель, разработанная специалистами компании IBM.

Во время эксплуатации пользователем текущей версии ПОразработчики, как правило, занимаются активным сопровождением этого программного продукта, то есть вносят некоторые улучшения или исправления в данную версию, не дожидаясь, пока пользователь этого потребует. И это сопровождение может включать в себя также добавление новых функций в ПО. С некоторого момента, когда разработчик считает свою задачу выполненной, начинается, так называемое, пассивное сопровождение, когда исправления вносятся уже только по запросу пользователя.

В течение сопровождения вПО вносится значительное количество новых ошибок в каждой новой версии, вместе с доработками, изменениями и исправлениями, что требует исправлений также и в следующей версии. Разработчики известной компании IBM попытались предсказать количество подобных исправлений от версии к версии, основываясь на большом количестве экспериментальных данных, собранных в ходе сопровождения операционной системы OS/360. Модель, предложенная специалистами  IBM, основана на наблюдении за ходом разработки этого программного продукта, и на гипотезе о статистической стабильности зависимости между параметрами, характеризующими различные версии системы. В качестве основной единицы измерения сложности ПО был выбран программный модуль. Были стандартизованы правила создания модулей.

Объем i-той версии выражается количеством модулей Mi, входящих в данную версию. При выпуске i –той версии системы изменялся параметра  СИМi (количества старых исправляемых модулей), и добавление некоторого числа новых модулей НМi , так что  .

При доработке i-й версии (в период подготовки (i+1)-й) происходит дальнейшая коррекция модулей. Эти исправленный модули делятся на две группы: первая группа характеризуется параметром MИMi – многократно изменяемые модули (10 или более исправлений на модуль), и вторая группа – ИMi, модули с числом исправлений меньше 10.Эта классификация необходима для упрощения вычислений, а также из-за того факта, что небольшое число исправлений характерно для большинства модулей.

Также необходимо отметить, что группа ИM не требуют особых средств отладки, в то время как группа MИM может потребовать некоторых дополнительных усилий при отладке.

В ходе анализа истории сопровождения  OS/360  фирмы IBM было установлено, что существует значительная зависимость между параметрами, характеризующими масштабы изменений и (соответственно) уровень содержания ошибок (в группах ИM и MCM), и параметрами, характеризующими сложность и объем следующей версии (СИМ, НМ).  В применении к  OS/VS1 это соотношение выглядело следующим образом.

(14.7)

(14.8)

Если предположить, что термины “исправление” и “ошибка” идентичны, то тогда модель для оценивания общего количества ошибок в программе, предложенная специалистами из IBM и основанная на приведенных выше объяснениях, записывается следующим образом:

(14.9)

где ИЗМi  — общее количество исправлений, внесенное в модули (или, другими словами, общее количество ожидаемых ошибок), а коэффициенты 23 и 2 – среднее количество исправлений на модуль для групп MИM и ИM, соответственно.

Прогноз основывается на запланированном количестве исправлений в старых модулях и на количестве добавляемых модулей (СИМi, НМi) для реализации новых требуемых функций ПО. Если количество действительно внесенных исправлений меньше, чем предсказанное количество исправлений, то можно сделать вывод, что в ПО существует еще некое количество необнаруженных ошибок. Модель фирмы IBM позволяет сделать следующие выводы:

  • на этапе пассивного сопровождения ПО (ИMi = 0, СИМi невелико) количество исправляемых модулей и количество исправлений внутри модулей быстро убывает от версии к версии;
  • количество ожидаемых ошибок в следующей версии может увеличится по сравнению с прошлой версией, если достаточно много старых модулей было изменено (СИМ), и/или было добавлено много новых модулей (НМ).
  • Добавление новых модулей оказывает более сильное влияние на рост числа новых ошибок, чем исправления, вносимые в старые модули; в то же время, если есть возможность создать новый модуль вместо изменения старых модулей (5 или более), то это снижает ожидаемое количество ошибок.  Другими словами, на некотором этапе сопровождения ПО изменение уже существующих модулей теряет свою эффективность, и требуется добавление вместо этого нового модуля.

Лекция 15. Методы повышения надежности программ и оценка эффективности   их  применения.

15.1. Влияние избыточности  на повышение  надежности  программ

Так как в программах нет необходимости  “ремонта” компонент с участием человека,  то можно добиваться  высокой автоматизации  программного восстановления. Главной  задачей становится восстановление за время, не превышающее порогового значения между сбоем и отказом. Автоматизируя процесс и сокращая время восстановления, можно преобразовать отказы в сбои и тем  самым улучшить показатели  надежности функционирования системы.

Комплексы программ в процессе функционирования находятся под воздействием шумов-возмущений различных  типов. Для снижения их  влияния на результаты следует применять фильтры,  позволяющие обнаруживать искажения,  устранять или уменьшать их  вредные последствия. Разнообразие видов искажений приводит  к необходимости построения систем фильтров, каждый из которых  способен  селектировать некоторые виды искажений.

Для  реализации  фильтров, обеспечивающих повышение  надежности функционирования программ и защиту вычислительного процесса и информации  программно-алгоритмическими методами, используется программная, информационная и временнаяизбыточность.Основная задача ввода избыточности  состоит в исключении  возможности аварийных  последствий от возмущений, соответствующих отказу системы. Любые   аномалии при  исполнении программ необходимо сводить до уровня  сбоя  путем быстрого восстановления.

Временная избыточность состоит в  использовании некоторой части  производительности  ЭВМ для контроля исполнения программ и восстановления вычислительного процесса. Величина временной избыточности  зависит от требований к надежности функционирования системы   и находится  в пределах  от 5-10% производительности однопроцессорной ЭВМ до трех-четырех кратного дублирования производительности  машины. Временная избыточность  используется на  обнаружение искажений,  их диагностику и   на реализацию операций восстановления.  На  это требуется в общем случае небольшой интервал времени,  который выделяется  либо за счет резерва, либо за счет сокращения времени  решения функциональных задач.

Информационная избыточность  состоит в дублировании  накопленных   исходных и промежуточных данных, обрабатываемых комплексом  программ. Избыточность используется для  сохранения достоверности  данных, которые в наибольшей степени влияют на нормальное функционирование программ или  требуют значительного времени восстановления.Для менее важных данных информационная избыточность используется в виде помехозащитных кодов,   позволяющих только обнаружить искажение.

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

Эффективность применения избыточности для повышения  надежности комплексов программ.

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

Для реализации стратегий резервирования программ необходима временная избыточность. При этом временная избыточность используется в основном для оперативного контроля состояния данных и вычислительного процесса а также для автоматического восстановления при возникновении отказовых ситуаций  Резерв времени для выполнения этих операций можно считать  достаточным независимо от числа предыдущих отказов времени на их устранение и наработки на отказ Кроме того суммарное время восстановления работоспособности обычно не ограничено

Эффективность оперативного использования временной избыточности для повышения надежности функционирования программ определяется затратами на контрольно-восстановительные операции изменением показателей надежности в зависимости от затрат и связью этих изменений с отлаженностью программ В результате для оценки эффективности введения временной избыточности в программе необходимо

*                    определить совокупные затраты на контроль на работу при необнаруженном искажении и на восстановление обеспечивающие заданную вероятность обнаружения отказовой ситуации при исполнении программ 

*                    определить основные показатели надежности функционирования программ в зависимости от совокупных затрат на оперативный контроль и восстановление

*                    оптимизировать суммарные затраты на отладку программ и оперативную защиту от искажений для обеспечения заданной надежности функционирования комплекса программ

При решении последней задачи источниками искажений предполагаются только невыявленные ошибки в программах

Влияние оперативного контроля и восстановления на  производительность ЭВМ

Использование времени функционирования ЭВМ для контроля работоспособности исправления искажений и восстановления при отказовых ситуациях приводит к снижению затрат производительности ЭВМ на исполнение комплекса программ в процессе эксплуатации В результате сокращаются ресурсы ЭВМ доступные для выполнения основных функций системы Это сокращение ресурсов можно отразить коэффициентом простоя ЭВМ  Кп = 1 — Кг   характеризующим относительные затраты времени на задачи повышения помехозащищенности программ По мере совершенствования и углубления средств помехозащиты программ возрастают затраты времени ЭВМ на их исполнение что отражается на снижении реальной эффективности функционирования комплекса программ

Целесообразно исследовать влияние использования временной избыточности на сокращение полезной производительности ЭВМ для решения функциональных задач а также на снижение потерь вследствие отказов После определения этих составляющих можно провести их совместный анализ для оптимизации глубины помехозащиты программ с учетом затрат на ее реализацию

Методы  обеспечения надежности программ.

Основные факторы,  определяющие надежность программ.

Надежность функционирования комплексов программ  зависит от многих факторов, которые можно объединить в три группы (табл.. 12).

n факторы,непосредственно определяющие возникновение отказов, и характеристики надежности программ;

n методы, способствующие проектированию корректных программ, снижающие вероятность программных ошибок и отказовых ситуаций при исполнении программ;

n метод, активно влияющие на повышение надежности функционирования программ позволяющие контролировать  и поддерживать заданные показатели надежности.

Таблица 12.

Факторы, непосредственно определяющие  надежность  программ

Методы проектирования корректных программ

Методы контроля и обеспечения надежности  программ

Особенности внешних абонентов и пользователей результатов программ

Структурное проектирование программ и данных

Методы использования избыточности

Требования к показателям надежности

Структурное проектирование программных  модулей

Временной

Информационной

Программной

Инерционность внешних абонентов

Структурное проектирование взаимодействия модулей

Методы контроля программ, данных и вычислительного процесса

Необходимое время отклика на входные данные

Структурирование данных

Предпусковой контроль

Оперативный контроль

Искажения исходных данных

Тестирование программ

Методы программного восстановления

Искажения данных  поступающих от человека

Детерминированное тестирование

Восстановление текстов программ

Исправление данных

Искажения  данных поступающих по  телекодовым каналам  связи

Статистическое тестирование

Корректировка вычислительного процесса

Искажения данных в процессе накопления  и хранения в ЭВМ

Динамическое тестирование и контроль пропускной способности в реальном времени

Методы испытаний на надежность

Форсированные испытания

Ошибки в программах и их  проявление

Испытания в нормальных условиях эксплуатации

Статистические  характеристики ошибок  и искажений:

Расчетно-экспериментальные методы определения надежности
Программ

Методы обеспечения  надежности при сопровождении

массивов данных Обеспечение сохранности программ эталонных версий
Вычислительного процесса Обеспечение корректности внесения изменений и развития версий

Отказы при функционировании программ возникают вследствие  взаимодействия данных и ошибок в программе. Характеристики ошибок в значительной степени определяются методами проектирования  программ.Активные методы обнаружения  и локализации программных ошибок  базируются на тестировании различных видов: детерминированном, статистическом и динамическом. Однако все виды тестирования не гарантируют  отсутствие  ошибок в комплексах программ и высокую надежность. Для этого применяются методы контроля и обеспечения  надежности  программ путем использования программной,  временной и  информационной избыточности.

Ситуации проявления ошибок при исполнении  программ можно разделить  на три группы:

n Отказ — искажения вычислительного процесса, данных или программ, вызывающие полное прекращение выполнения функций системой;

n Искажения, кратковременно  прерывающие функционирование системы — отказовые  ситуации или сбои,   характеризующиеся быстрым восстановлением без длительной  потери  работоспособности;

n Искажения, мало отражающиеся на вычислительном процессе — сбои и  искажения,  не создающие отказовые ситуации.

Основным показателем при классификации конкретных видов искажений является возможное  время восстановления и степень проявления последствий произошедшего  сбоя или отказовой ситуации:

n зацикливание, т.е. последовательная повторяющаяся реализация некоторой группы команд, не прекращающаяся без внешнего  (для данного цикла) вмешательства;

n останов исполнения  программ и прекращение решения функциональных задач;

n полная самоблокировка вычислительного  процесса  (клинч) из-за последовательного  прекрестного обращения разных программ к одним и тем же ресурсам  ЭВМ  без освобождения ранее занятых ресурсов;

n прекращение  или значительное  снижение темпа решения некоторых  задач вследствие перегрузки  ЭВМ по  пропускной способности;

n значительное искажение или полная потеря накопленной информации о текущем состоянии управляемого процесса или внешних абонентов;

n искажение процессов взаимного прерывания программ, приводящее к блокировке возможности некоторых типов прерываний.

Методы программного восстановления.

Выбор метода оперативного  восстановления происходит в условиях   неопределенности сведений о характере отказовой ситуации и степени  ее влияния на работоспособность программ.

Каждый метод восстановления  характеризуется следующими статическими  параметрами:

n вероятность  полного  восстановления нормального функционирования комплекса программ при данном методе  (p3);

n затратами ресурсов ЭВМ  на  проведение  процедуры восстановительных работ  выбранным  методом (b3);

n длительностью проведения работ по восстановлению — суммарным временем выбора метода восстановления  и временем  его реализации(t3)

Показатели  восстановления p3и t3непосредственно влияют на показатели  надежности функционирования комплекса программ. Если   операции по  восстановлению работоспособности комплекса программ  при отказовой ситуации полностью  завершаются за время меньше  tд и после  этого продолжается нормальное функционирование, то происшедшее искажение  в работе программ не учитывается как  отказ и не влияет на основные показатели надежности.

Процесс функционирования комплекса программ  на однопроцессорной  ЭВМ в реальном масштабе  времени с учетом операций  контроля  и восстановления можно представить графом состояний, дуги которого  соответствуют возможным переходам между  состояниями за некоторый интервал времени.

Основные  состояния следующие:

0-  состояние  соответствует нормальному   функционированию работоспособного комплекса программ при полном отсутствии искажений —  полезная работа;

1-  состояние имеет место  при  переходе комплекса программ  в  режим  контроля  функционирования и обнаружения ошибок  — состояние контроля;

2-  состояние  соответствует функционированию программ при наличии искажений, не обнаруженных средствами контроля  — состояние необнаруженного искажения данных  или вычислительного процесса, которое, в частности может соответствовать  отказу;

3-  состояние характеризуется функционированием группы программ восстановления  режима полезной работы и устранения последствий искажения — восстановление после действительного искажения;

4-  состояние  соответствует также восстановлению режима полезной  работы, но после  ложного  обнаружения  проявления искажения, когда в действительности состояние полезной работы не   нарушалось  —  восстановление  после  ложной  тревоги.

Переходы между состояниями могут происходить в некоторых направлениях случайно или коррелированно с предыдущем переходом (рис. 5.3, диаграмма 1 ).  Пребывание во всех состояниях, кроме нулевого, сопряжено с затратами производительности  ЭВМ  на выполнение операций, не связанных  с прямыми  функциональными задачами, и может рассматриваться  как снижение общей эффективности комплекса программ и производительности ЭВМ. При определении показателей надежности учитывается только такая цепочка последовательных состояний  вне работоспособности, которая оказывается протяженности  больше. Все остальные более короткие выходы из нулевого состояния не влияют на показатели надежности.

Методы испытаний программ на надежность.

В  теории надежности  разработан ряд  методов, позволяющих  определить характеристики надежности сложных  систем. Эти  методы можно свести к трем основным группам:

n прямые экспериментальные методы  определения показателей надежности  систем  в условиях  нормального функционирования;

n форсированные  методы испытаний реальных  систем на  надежность;

n расчетно-экспериментальные методы,   при использовании  которых ряд  исходных  данных  для компонент  получается  экспериментально, а  окончательные  показатели надежности систем надежности рассчитываются с использованием этих данных.

Прямые  экспериментальные методы определения показателей  надежности  программ в  нормальных  условиях   функционирования   в  ряде  случаев трудно  использовать из-за больших  значений времени наработки  на отказ (сотни и тысячи часов).

Форсированные методы испытаний  надежности  программ значительно отличаются  от традиционных  методов испытаний аппаратуры. Форсирование  испытаний может выполняться путем   повышения  интенсивности искажений  исходных  данных,  а также специальным увеличением загрузки  комплекса программ выше нормальной.

Особым видом форсированных испытаний  является  проверка  эффективности средств контроля  и восстановления программ, данных и  вычислительного  процесса.  Для этого  имитируются запланированные экстремальные условия  функционирования   программ, при которых в наибольшей степени стимулируется работа испытываемого  средства программного  контроля или  восстановления.

Расчетно-экспериментальные  методы . При  анализе надежности программ применение расчетно-экспериментальных  методов  более  ограничено,  чем при анализе  аппаратуры. Это  обусловлено неоднородностью  надежностных  характеристик основных компонент: программных модулей, групп программ, массивов  данных  и т.д.  Однако в некоторых  случаях расчетным путем можно  оценить характеристики надежности  комплексов  программ.  Сочетание  экспериментальных и аналитических методов применяется  также для определения пропускной способности  комплекса программ на конкретной ЭВМ и влияние перегрузки на надежность его  функционирования.

Методы  обеспечения надежности  комплексов   программ  при  сопровождении.

В этой стадии жизненного цикла  программ расширяются  условия их использования и характеристики исходных данных, вследствие  чего могут потребоваться изменения в программах. Для сохранения и улучшения показателей надежности комплексов программ в процессе длительного сопровождения необходимо четко регламентировать передачу комплексов  программ пользователям. Целесообразно накапливать необходимые изменения  в программах  и вводить их  группами, формируя  очередную версию    комплекса программ с измененными характеристиками. Версии комплекса программ можно разделить на эталонные и пользовательские (или конкретного  объекта).

Эталонные версииразвиваются, дорабатываются и модернизируются  основными разработчиками комплекса программ или  специалистами,   выделенными для их  сопровождения. Они снабжаются  откорректированной технической документацией, полностью соответствующей программам,  и точным перечнем всех изменений введенных в данную  версию  по сравнению  с предыдущей.

Пользовательские версии. Необходимы также общие проверки работоспособности и сохранности всех программ  комплекса. Для корректности выполнения изменений они снабжаются методиками проверки и правилами подготовки контролирующих тестов..Целесообразно ограничивать доступ широких пользователей к технологической документации, хранящей подробные сведения о  содержании  и логике функционирования  программ. Такие меры в некоторой степени предотвращают  возможность резкого  ухудшения показателей надежности.

Современный жёсткий диск — уникальный компонент компьютера. Он уникален тем, что хранит в себе служебную информацию, изучая которую, можно оценить «здоровье» диска. Эта информация содержит в себе историю изменения множества параметров, отслеживаемых винчестером в процессе функционирования. Больше ни один компонент системного блока не предоставляет владельцу статистику своей работы! Вкупе с тем, что HDD является одним из самых ненадёжных компонентов компьютера, такая статистика может быть весьма полезной и помочь его владельцу избежать нервотрёпки и потери денег и времени.

Информация о состоянии диска доступна благодаря комплексу технологий, называемых общим именем S.M.A.R.T. (Self-Monitoring, Analisys and Reporting Technology, т. е. технология самомониторинга, анализа и отчёта). Этот комплекс довольно обширен, но мы поговорим о тех его аспектах, которые позволяют посмотреть на атрибуты S.M.A.R.T., отображаемые в какой-либо программе по тестированию винчестера, и понять, что творится с диском.

Отмечу, что нижесказанное относится к дискам с интерфейсами SATA и РАТА. У дисков SAS, SCSI и других серверных дисков тоже есть S.M.A.R.T., но его представление сильно отличается от SATA/PATA. Да и мониторит серверные диски обычно не человек, а RAID-контроллер, потому про них мы говорить не будем.

Итак, если мы откроем S.M.A.R.T. в какой-либо из многочисленных программ, то увидим приблизительно следующую картину (на скриншоте приведён S.M.A.R.T. диска Hitachi Deskstar 7К1000.С HDS721010CLA332 в HDDScan 3.3):

S.M.A.R.T. в HDDScan 3.3

S.M.A.R.T. в HDDScan 3.3

В каждой строке отображается отдельный атрибут S.M.A.R.T. Атрибуты имеют более-менее стандартизованные названия и определённый номер, которые не зависят от модели и производителя диска.

Каждый атрибут S.M.A.R.T. имеет несколько полей. Каждое поле относится к определённому классу из следующих: ID, Value, Worst, Threshold и RAW. Рассмотрим каждый из классов.

  • ID (может также именоваться Number) — идентификатор, номер атрибута в технологии S.M.A.R.T. Название одного и того же атрибута программами может выдаваться по-разному, а вот идентификатор всегда однозначно определяет атрибут. Особенно это полезно в случае программ, которые переводят общепринятое название атрибута с английского языка на русский. Иногда получается такая белиберда, что понять, что же это за параметр, можно только по его идентификатору.
  • Value (Current) — текущее значение атрибута в попугаях (т. е. в величинах неизвестной размерности). В процессе работы винчестера оно может уменьшаться, увеличиваться и оставаться неизменным. По показателю Value нельзя судить о «здоровье» атрибута, не сравнивая его со значением Threshold этого же атрибута. Как правило, чем меньше Value, тем хуже состояние атрибута (изначально все классы значений, кроме RAW, на новом диске имеют максимальное из возможных значение, например 100).
  • Worst — наихудшее значение, которого достигало значение Value за всю жизнь винчестера. Измеряется тоже в «попугаях». В процессе работы оно может уменьшаться либо оставаться неизменным. По нему тоже нельзя однозначно судить о здоровье атрибута, нужно сравнивать его с Threshold.
  • Threshold — значение в «попугаях», которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим. Проще говоря, Threshold — это порог: если Value больше Threshold — атрибут в порядке; если меньше либо равен — с атрибутом проблемы. Именно по такому критерию утилиты, читающие S.M.A.R.T., выдают отчёт о состоянии диска либо отдельного атрибута вроде «Good» или «Bad». При этом они не учитывают, что даже при Value, большем Threshold, диск на самом деле уже может быть умирающим с точки зрения пользователя, а то и вовсе ходячим мертвецом, поэтому при оценке здоровья диска смотреть стоит всё-таки на другой класс атрибута, а именно — RAW. Однако именно значение Value, опустившееся ниже Threshold, может стать легитимным поводом для замены диска по гарантии (для самих гарантийщиков, конечно же) — кто же яснее скажет о здоровье диска, как не он сам, демонстрируя текущее значение атрибута хуже критического порога? Т. е. при значении Value, большем Threshold, сам диск считает, что атрибут здоров, а при меньшем либо равном — что болен. Очевидно, что при Threshold=0 состояние атрибута не будет признано критическим никогда. Threshold — постоянный параметр, зашитый производителем в диске.
  • RAW (Data) — самый интересный, важный и нужный для оценки показатель. В большинстве случаев он содержит в себе не «попугаи», а реальные значения, выражаемые в различных единицах измерения, напрямую говорящие о текущем состоянии диска. Основываясь именно на этом показателе, формируется значение Value (а вот по какому алгоритму оно формируется — это уже тайна производителя, покрытая мраком). Именно умение читать и анализировать поле RAW даёт возможность объективно оценить состояние винчестера.

Этим мы сейчас и займёмся — разберём все наиболее используемые атрибуты S.M.A.R.T., посмотрим, о чём они говорят и что нужно делать, если они не в порядке.

Аттрибуты S.M.A.R.T.
  01 02 03 04 05 07 08 09 10 11 12 183 184 187 188 189 190
0x 01 02 03 04 05 07 08 09 0A 0B 0C B7 B8 BB BC BD BE
 
  191 192 193 194 195 196 197 198 199 200 201 202 203 220 240 254  
0x BF С0 С1 С2 С3 С4 С5 С6 С7 С8 С9 СА CB DC F0 FE  

Перед тем как описывать атрибуты и допустимые значения их поля RAW, уточню, что атрибуты могут иметь поле RAW разного типа: текущее и накапливающее. Текущее поле содержит значение атрибута в настоящий момент, для него свойственно периодическое изменение (для одних атрибутов — изредка, для других — много раз за секунду; другое дело, что в программах чтения S.M.A.R.T. такое быстрое изменение не отображается). Накапливающее поле — содержит статистику, обычно в нём содержится количество возникновений конкретного события со времени первого запуска диска.

Текущий тип характерен для атрибутов, для которых нет смысла суммировать их предыдущие показания. Например, показатель температуры диска является текущим: его цель — в демонстрации температуры в настоящий момент, а не суммы всех предыдущих температур. Накапливающий тип свойственен атрибутам, для которых весь их смысл заключается в предоставлении информации за весь период «жизни» винчестера. Например, атрибут, характеризующий время работы диска, является накапливающим, т. е. содержит количество единиц времени, отработанных накопителем за всю его историю.

Приступим к рассмотрению атрибутов и их RAW-полей.

Атрибут: 01 Raw Read Error Rate

Тип текущий, может быть накапливающим для WD и старых Hitachi
Описание содержит частоту возникновения ошибок при чтении с пластин

Для всех дисков Seagate, Samsung (начиная с семейства SpinPoint F1 (включительно)) и Fujitsu 2,5″ характерны огромные числа в этих полях.

Для остальных дисков Samsung и всех дисков WD в этом поле характерен 0.

Для дисков Hitachi в этом поле характерен 0 либо периодическое изменение поля в пределах от 0 до нескольких единиц.

Такие отличия обусловлены тем, что все жёсткие диски Seagate, некоторые Samsung и Fujitsu считают значения этих параметров не так, как WD, Hitachi и другие Samsung. При работе любого винчестера всегда возникают ошибки такого рода, и он преодолевает их самостоятельно, это нормально, просто на дисках, которые в этом поле содержат 0 или небольшое число, производитель не счёл нужным указывать истинное количество этих ошибок.

Таким образом, ненулевой параметр на дисках WD и Samsung до SpinPoint F1 (не включительно) и большое значение параметра на дисках Hitachi могут указывать на аппаратные проблемы с диском. Необходимо учитывать, что утилиты могут отображать несколько значений, содержащихся в поле RAW этого атрибута, как одно, и оно будет выглядеть весьма большим, хоть это и будет неверно (подробности см. ниже).

На дисках Seagate, Samsung (SpinPoint F1 и новее) и Fujitsu на этот атрибут можно не обращать внимания.

Атрибут: 02 Throughput Performance

Тип текущий
Описание содержит значение средней производительности диска и измеряется в каких-то «попугаях». Обычно его ненулевое значение отмечается на винчестерах Hitachi. На них он может изменяться после изменения параметров ААМ, а может и сам по себе по неизвестному алгоритму

Параметр не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 03 Spin-Up Time

Тип текущий
Описание содержит время, за которое шпиндель диска в последний раз разогнался из состояния покоя до номинальной скорости. Может содержать два значения — последнее и, например, минимальное время раскрутки. Может измеряться в миллисекундах, десятках миллисекунд и т. п. — это зависит от производителя и модели диска

Время разгона может различаться у разных дисков (причём у дисков одного производителя тоже) в зависимости от тока раскрутки, массы блинов, номинальной скорости шпинделя и т. п.

Кстати, винчестеры Fujitsu всегда имеют единицу в этом поле в случае отсутствия проблем с раскруткой шпинделя.

Практически ничего не говорит о здоровье диска, поэтому при оценке состояния винчестера на параметр можно не обращать внимания.

Атрибут: 04 Number of Spin-Up Times (Start/Stop Count)

Тип накапливающий
Описание содержит количество раз включения диска. Бывает ненулевым на только что купленном диске, находившемся в запаянной упаковке, что может говорить о тестировании диска на заводе. Или ещё о чём-то, мне не известном

При оценке здоровья не обращайте на атрибут внимания.

Атрибут: 05 Reallocated Sector Count

Тип накапливающий
Описание содержит количество секторов, переназначенных винчестером в резервную область. Практически ключевой параметр в оценке состояния

Поясним, что вообще такое «переназначенный сектор». Когда диск в процессе работы натыкается на нечитаемый/плохо читаемый/незаписываемый/плохо записываемый сектор, он может посчитать его невосполнимо повреждённым. Специально для таких случаев производитель предусматривает на каждом диске (на каких-то моделях — в центре (логическом конце) диска, на каких-то — в конце каждого трека и т. д.) резервную область. При наличии повреждённого сектора диск помечает его как нечитаемый и использует вместо него сектор в резервной области, сделав соответствующие пометки в специальном списке дефектов поверхности — G-list. Такая операция по назначению нового сектора на роль старого называется remap (ремап) либо переназначение, а используемый вместо повреждённого сектор — переназначенным. Новый сектор получает логический номер LBA старого, и теперь при обращении ПО к сектору с этим номером (программы же не знают ни о каких переназначениях!) запрос будет перенаправляться в резервную область.

Таким образом, хоть сектор и вышел из строя, объём диска не изменяется. Понятно, что не изменяется он до поры до времени, т. к. объём резервной области не бесконечен. Однако резервная область вполне может содержать несколько тысяч секторов, и допустить, чтобы она закончилась, будет весьма безответственно — диск нужно будет заменить задолго до этого.

Кстати, ремонтники говорят, что диски Samsung очень часто ни в какую не хотят выполнять переназначение секторов.

На счёт этого атрибута мнения разнятся. Лично я считаю, что если он достиг 10, диск нужно обязательно менять — ведь это означает прогрессирующий процесс деградации состояния поверхности либо блинов, либо головок, либо чего-то ещё аппаратного, и остановить этот процесс возможности уже нет. Кстати, по сведениям лиц, приближенных к Hitachi, сама Hitachi считает диск подлежащим замене, когда на нём находится уже 5 переназначенных секторов. Другой вопрос, официальная ли эта информация, и следуют ли этому мнению сервис-центры. Что-то мне подсказывает, что нет

Другое дело, что сотрудники сервис-центров могут отказываться признавать диск неисправным, если фирменная утилита производителя диска пишет что-то вроде «S.M.A.R.T. Status: Good» или значения Value либо Worst атрибута будут больше Threshold (собственно, по такому критерию может оценивать и сама утилита производителя). И формально они будут правы. Но кому нужен диск с постоянным ухудшением его аппаратных компонентов, даже если такое ухудшение соответствует природе винчестера, а технология производства жёстких дисков старается минимизировать его последствия, выделяя, например, резервную область?

Атрибут: 07 Seek Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок при позиционировании блока магнитных головок (БМГ)

Описание формирования этого атрибута почти полностью совпадает с описанием для атрибута 01 Raw Read Error Rate, за исключением того, что для винчестеров Hitachi нормальным значением поля RAW является только 0.

Таким образом, на атрибут на дисках Seagate, Samsung SpinPoint F1 и новее и Fujitsu 2,5″ не обращайте внимания, на остальных моделях Samsung, а также на всех WD и Hitachi ненулевое значение свидетельствует о проблемах, например, с подшипником и т. п.

Атрибут: 08 Seek Time Performance

Тип текущий
Описание содержит среднюю производительность операций позиционирования головок, измеряется в «попугаях». Как и параметр 02 Throughput Performance, ненулевое значение обычно отмечается на дисках Hitachi и может изменяться после изменения параметров ААМ, а может и само по себе по неизвестному алгоритму

Не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 09 Power On Hours Count (Power-on Time)

Тип накапливающий
Описание содержит количество часов, в течение которых винчестер был включён

Ничего не говорит о здоровье диска.

Атрибут: 10 (0А — в шестнадцатеричной системе счисления) Spin Retry Count

Тип накапливающий
Описание содержит количество повторов запуска шпинделя, если первая попытка оказалась неудачной

О здоровье диска чаще всего не говорит.

Основные причины увеличения параметра — плохой контакт диска с БП или невозможность БП выдать нужный ток в линию питания диска.

В идеале должен быть равен 0. При значении атрибута, равном 1-2, внимания можно не обращать. Если значение больше, в первую очередь следует обратить пристальное внимание на состояние блока питания, его качество, нагрузку на него, проверить контакт винчестера с кабелем питания, проверить сам кабель питания.

Наверняка диск может стартовать не сразу из-за проблем с ним самим, но такое бывает очень редко, и такую возможность нужно рассматривать в последнюю очередь.

Атрибут: 11 (0B) Calibration Retry Count (Recalibration Retries)

Тип накапливающий
Описание содержит количество повторных попыток сброса накопителя (установки БМГ на нулевую дорожку) при неудачной первой попытке

Ненулевое, а особенно растущее значение параметра может означать проблемы с диском.

Атрибут: 12 (0C) Power Cycle Count

Тип накапливающий
Описание содержит количество полных циклов «включение-отключение» диска

Не связан с состоянием диска.

Атрибут: 183 (B7) SATA Downshift Error Count

Тип накапливающий
Описание содержит количество неудачных попыток понижения режима SATA. Суть в том, что винчестер, работающий в режимах SATA 3 Гбит/с или 6 Гбит/с (и что там дальше будет в будущем), по какой-то причине (например, из-за ошибок) может попытаться «договориться» с дисковым контроллером о менее скоростном режиме (например, SATA 1,5 Гбит/с или 3 Гбит/с соответственно). В случае «отказа» контроллера изменять режим диск увеличивает значение атрибута

Не говорит о здоровье накопителя.

Атрибут: 184 (B8) End-to-End Error

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче данных через кэш винчестера

Ненулевое значение указывает на проблемы с диском.

Атрибут: 187 (BB) Reported Uncorrected Sector Count (UNC Error)

Тип накапливающий
Описание содержит количество секторов, которые были признаны кандидатами на переназначение (см. атрибут 197) за всю историю жизни диска. Причём если сектор становится кандидатом повторно, значение атрибута тоже увеличивается

Ненулевое значение атрибута явно указывает на ненормальное состояние диска (в сочетании с ненулевым значением атрибута 197) или на то, что оно было таковым ранее (в сочетании с нулевым значением 197).

Атрибут: 188 (BC) Command Timeout

Тип накапливающий
Описание содержит количество операций, выполнение которых было отменено из-за превышения максимально допустимого времени ожидания отклика

Такие ошибки могут возникать из-за плохого качества кабелей, контактов, используемых переходников, удлинителей и т. д., а также из-за несовместимости диска с конкретным контроллером SATA/РАТА на материнской плате (либо дискретным). Из-за ошибок такого рода возможны BSOD в Windows.

Ненулевое значение атрибута говорит о потенциальной «болезни» диска.

Атрибут: 189 (BD) High Fly Writes

Тип накапливающий
Описание содержит количество зафиксированных случаев записи при высоте полета головки выше рассчитанной — скорее всего, из-за внешних воздействий, например вибрации

Для того чтобы сказать, почему происходят такие случаи, нужно уметь анализировать логи S.M.A.R.T., которые содержат специфичную для каждого производителя информацию, что на сегодняшний день не реализовано в общедоступном ПО — следовательно, на атрибут можно не обращать внимания.

Атрибут: 190 (BE) Airflow Temperature

Тип текущий
Описание содержит температуру винчестера для дисков Hitachi, Samsung, WD и значение «100 − [RAW-значение атрибута 194]» для Seagate

Не говорит о состоянии диска.

Атрибут: 191 (BF) G-Sensor Shock Count (Mechanical Shock)

Тип накапливающий
Описание содержит количество критических ускорений, зафиксированных электроникой диска, которым подвергался накопитель и которые превышали допустимые. Обычно это происходит при ударах, падениях и т. п.

Актуален для мобильных винчестеров. На дисках Samsung на него часто можно не обращать внимания, т. к. они могут иметь очень чувствительный датчик, который, образно говоря, реагирует чуть ли не на движение воздуха от крыльев пролетающей в одном помещении с диском мухи.

Вообще срабатывание датчика не является признаком удара. Может расти даже от позиционирования БМГ самим диском, особенно если его не закрепить. Основное назначение датчика — прекратить операцию записи при вибрациях, чтобы избежать ошибок.

Не говорит о здоровье диска.

Атрибут: 192 (С0) Power Off Retract Count (Emergency Retry Count)

Тип накапливающий
Описание для разных винчестеров может содержать одну из следующих двух характеристик: либо суммарное количество парковок БМГ диска в аварийных ситуациях (по сигналу от вибродатчика, обрыву/понижению питания и т. п.), либо суммарное количество циклов включения/выключения питания диска (характерно для современных WD и Hitachi)

Не позволяет судить о состоянии диска.

Атрибут: 193 (С1) Load/Unload Cycle Count

Тип накапливающий
Описание содержит количество полных циклов парковки/распарковки БМГ. Анализ этого атрибута — один из способов определить, включена ли на диске функция автоматической парковки (столь любимая, например, компанией Western Digital): если его содержимое превосходит (обычно — многократно) содержимое атрибута 09 — счётчик отработанных часов, — то парковка включена

Не говорит о здоровье диска.

Атрибут: 194 (С2) Temperature (HDA Temperature, HDD Temperature)

Тип текущий/накапливающий
Описание содержит текущую температуру диска. Температура считывается с датчика, который на разных моделях может располагаться в разных местах. Поле вместе с текущей также может содержать максимальную и минимальную температуры, зафиксированные за всё время эксплуатации винчестера

О состоянии диска атрибут не говорит, но позволяет контролировать один из важнейших параметров. Моё мнение: при работе старайтесь не допускать повышения температуры винчестера выше 50 градусов, хоть производителем обычно и декларируется максимальный предел температуры в 55-60 градусов.

Атрибут: 195 (С3) Hardware ECC Recovered

Тип накапливающий
Описание содержит количество ошибок, которые были скорректированы аппаратными средствами ECC диска

Особенности, присущие этому атрибуту на разных дисках, полностью соответствуют таковым атрибутов 01 и 07.

Атрибут: 196 (С4) Reallocated Event Count

Тип накапливающий
Описание содержит количество операций переназначения секторов

Косвенно говорит о здоровье диска. Чем больше значение — тем хуже. Однако нельзя однозначно судить о здоровье диска по этому параметру, не рассматривая другие атрибуты.

Этот атрибут непосредственно связан с атрибутом 05. При росте 196 чаще всего растёт и 05. Если при росте атрибута 196 атрибут 05 не растёт, значит, при попытке ремапа кандидат в бэд-блоки оказался софт-бэдом (подробности см. ниже), и диск исправил его, так что сектор был признан здоровым, и в переназначении не было необходимости.

Если атрибут 196 меньше атрибута 05, значит, во время некоторых операций переназначения выполнялся перенос нескольких повреждённых секторов за один приём.

Если атрибут 196 больше атрибута 05, значит, при некоторых операциях переназначения были обнаружены исправленные впоследствии софт-бэды.

Атрибут: 197 (С5) Current Pending Sector Count

Тип текущий
Описание содержит количество секторов-кандидатов на переназначение в резервную область

Натыкаясь в процессе работы на «нехороший» сектор (например, контрольная сумма сектора не соответствует данным в нём), диск помечает его как кандидат на переназначение, заносит его в специальный внутренний список и увеличивает параметр 197. Из этого следует, что на диске могут быть повреждённые секторы, о которых он ещё не знает — ведь на пластинах вполне могут быть области, которые винчестер какое-то время не использует.

При попытке записи в сектор диск сначала проверяет, не находится ли этот сектор в списке кандидатов. Если сектор там не найден, запись проходит обычным порядком. Если же найден, проводится тестирование этого сектора записью-чтением. Если все тестовые операции проходят нормально, то диск считает, что сектор исправен. (Т. е. был т. н. «софт-бэд» — ошибочный сектор возник не по вине диска, а по иным причинам: например, в момент записи информации отключилось электричество, и диск прервал запись, запарковав БМГ. В итоге данные в секторе окажутся недописанными, а контрольная сумма сектора, зависящая от данных в нём, вообще останется старой. Налицо будет расхождение между нею и данными в секторе.) В таком случае диск проводит изначально запрошенную запись и удаляет сектор из списка кандидатов. При этом атрибут 197 уменьшается, также возможно увеличение атрибута 196.

Если же тестирование заканчивается неудачей, диск выполняет операцию переназначения, уменьшая атрибут 197, увеличивая 196 и 05, а также делает пометки в G-list.

Итак, ненулевое значение параметра говорит о неполадках (правда, не может сказать о том, в само́м ли диске проблема).

При ненулевом значении нужно обязательно запустить в программах Victoria или MHDD последовательное чтение всей поверхности с опцией remap. Тогда при сканировании диск обязательно наткнётся на плохой сектор и попытается произвести запись в него (в случае Victoria 3.5 и опции Advanced remap — диск будет пытаться записать сектор до 10 раз). Таким образом программа спровоцирует «лечение» сектора, и в итоге сектор будет либо исправлен, либо переназначен.

Идёт последовательное чтение с ремапом в Victoria 4.46b

Идёт последовательное чтение с ремапом в Victoria 4.46b

В случае неудачи чтения как с remap, так и с Advanced remap, стоит попробовать запустить последовательную запись в тех же Victoria или MHDD. Учитывайте, что операция записи стирает данные, поэтому перед её применением обязательно делайте бэкап!

Запуск последовательной записи в Victoria 4.46b

Запуск последовательной записи в Victoria 4.46b

Иногда от невыполнения ремапа могут помочь следующие манипуляции: снимите плату электроники диска и почистите контакты гермоблока винчестера, соединяющие его с платой — они могут быть окислены. Будь аккуратны при выполнении этой процедуры — из-за неё можно лишиться гарантии!

Невозможность ремапа может быть обусловлена ещё одной причиной — диск исчерпал резервную область, и ему просто некуда переназначать секторы.

Если же значение атрибута 197 никакими манипуляциями не снижается до 0, следует думать о замене диска.

Атрибут: 198 (С6) Offline Uncorrectable Sector Count (Uncorrectable Sector Count)

Тип текущий
Описание означает то же самое, что и атрибут 197, но отличие в том, что данный атрибут содержит количество секторов-кандидатов, обнаруженных при одном из видов самотестирования диска — оффлайн-тестировании, которое диск запускает в простое в соответствии с параметрами, заданными прошивкой

Параметр этот изменяется только под воздействием оффлайн-тестирования, никакие сканирования программами на него не влияют. При операциях во время самотестирования поведение атрибута такое же, как и атрибута 197.

Ненулевое значение говорит о неполадках на диске (точно так же, как и 197, не конкретизируя, кто виноват).

Атрибут: 199 (С7) UltraDMA CRC Error Count

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче по интерфейсному кабелю в режиме UltraDMA (или его эмуляции винчестерами SATA) от материнской платы или дискретного контроллера контроллеру диска

В подавляющем большинстве случаев причинами ошибок становятся некачественный шлейф передачи данных, разгон шин PCI/PCI-E компьютера либо плохой контакт в SATA-разъёме на диске или на материнской плате/контроллере.

Ошибки при передаче по интерфейсу и, как следствие, растущее значение атрибута могут приводить к переключению операционной системой режима работы канала, на котором находится накопитель, в режим PIO, что влечёт резкое падение скорости чтения/записи при работе с ним и загрузку процессора до 100% (видно в Диспетчере задач Windows).

В случае винчестеров Hitachi серий Deskstar 7К3000 и 5К3000 растущий атрибут может говорить о несовместимости диска и SATA-контроллера. Чтобы исправить ситуацию, нужно принудительно переключить такой диск в режим SATA 3 Гбит/с.

Моё мнение: при наличии ошибок — переподключите кабель с обоих концов; если их количество растёт и оно больше 10 — выбрасывайте шлейф и ставьте вместо него новый или снимайте разгон.

Можно считать, что о здоровье диска атрибут не говорит.

Атрибут: 200 (С8) Write Error Rate (MultiZone Error Rate)

Тип текущий
Описание содержит частоту возникновения ошибок при записи

Ненулевое значение говорит о проблемах с диском — в частности, у дисков WD большие цифры могут означать «умирающие» головки.

Атрибут: 201 (С9) Soft Read Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок чтения, произошедших по вине программного обеспечения

Влияние на здоровье неизвестно.

Атрибут: 202 (СА) Data Address Mark Error

Тип неизвестно
Описание содержание атрибута — загадка, но проанализировав различные диски, могу констатировать, что ненулевое значение — это плохо

Атрибут: 203 (CB) Run Out Cancel

Тип текущий
Описание содержит количество ошибок ECC

Влияние на здоровье неизвестно.

Атрибут: 220 (DC) Disk Shift

Тип текущий
Описание содержит измеренный в неизвестных единицах сдвиг пластин диска относительно оси шпинделя

Влияние на здоровье неизвестно.

Атрибут: 240 (F0) Head Flying Hours

Тип накапливающий
Описание содержит время, затраченное на позиционирование БМГ. Счётчик может содержать несколько значений в одном поле

Влияние на здоровье неизвестно.

Атрибут: 254 (FE) Free Fall Event Count

Тип накапливающий
Описание содержит зафиксированное электроникой количество ускорений свободного падения диска, которым он подвергался, т. е., проще говоря, показывает, сколько раз диск падал

Влияние на здоровье неизвестно.

Подытожим описание атрибутов. Ненулевые значения:

  • атрибутов 01, 07, 195 — вызывают подозрения в «болезни» у некоторых моделей дисков;
  • атрибутов 10, 11, 188, 196, 199, 202 — вызывают подозрения у всех дисков;
  • и, наконец, атрибутов 05, 184, 187, 197, 198, 200 — прямо говорят о неполадках.

При анализе атрибутов учитывайте, что в некоторых параметрах S.M.A.R.T. могут храниться несколько значений этого параметра: например, для предпоследнего запуска диска и для последнего. Такие параметры длиной в несколько байт логически состоят из нескольких значений длиной в меньшее количество байт — например, параметр, хранящий два значения для двух последних запусков, под каждый из которых отводится 2 байта, будет иметь длину 4 байта. Программы, интерпретирующие S.M.A.R.T., часто не знают об этом, и показывают этот параметр как одно число, а не два, что иногда приводит к путанице и волнению владельца диска. Например, «Raw Read Error Rate», хранящий предпоследнее значение «1» и последнее значение «0», будет выглядеть как 65536.

Надо отметить, что не все программы умеют правильно отображать такие атрибуты. Многие как раз и переводят атрибут с несколькими значениями в десятичную систему счисления как одно огромное число. Правильно же отображать такое содержимое — либо с разбиением по значениям (тогда атрибут будет состоять из нескольких отдельных чисел), либо в шестнадцатеричной системе счисления (тогда атрибут будет выглядеть как одно число, но его составляющие будут легко различимы с первого взгляда), либо и то, и другое одновременно. Примерами правильных программ служат HDDScan, CrystalDiskInfo, Hard Disk Sentinel.

Продемонстрируем отличия на практике. Вот так выглядит мгновенное значение атрибута 01 на одном из моих Hitachi HDS721010CLA332 в неучитывающей особенности этого атрибута Victoria 4.46b:

Атрибут 01 в Victoria 4.46b

Атрибут 01 в Victoria 4.46b

А так выглядит он же в «правильной» HDDScan 3.3:

Атрибут 01 в HDDScan 3.3

Атрибут 01 в HDDScan 3.3

Плюсы HDDScan в данном контексте очевидны, не правда ли?

Если анализировать S.M.A.R.T. на разных дисках, то можно заметить, что одни и те же атрибуты могут вести себя по-разному. Например, некоторые параметры S.M.A.R.T. винчестеров Hitachi после определённого периода неактивности диска обнуляются; параметр 01 имеет особенности на дисках Hitachi, Seagate, Samsung и Fujitsu, 03 — на Fujitsu. Также известно, что после перепрошивки диска некоторые параметры могут установиться в 0 (например, 199). Однако подобное принудительное обнуление атрибута ни в коем случае не будет говорить о том, что проблемы с диском решены (если таковые были). Ведь растущий критичный атрибут — это следствие неполадок, а не причина.

При анализе множества массивов данных S.M.A.R.T. становится очевидным, что набор атрибутов у дисков разных производителей и даже у разных моделей одного производителя может отличаться. Связано это с так называемыми специфичными для конкретного вендора (vendor specific) атрибутами (т. е. атрибутами, используемыми для мониторинга своих дисков определённым производителем) и не должно являться поводом для волнения. Если ПО мониторинга умеет читать такие атрибуты (например, Victoria 4.46b), то на дисках, для которых они не предназначены, они могут иметь «страшные» (огромные) значения, и на них просто не нужно обращать внимания. Вот так, например, Victoria 4.46b отображает RAW-значения атрибутов, не предназначенных для мониторинга у Hitachi HDS721010CLA332:

«Страшные» значения в Victoria 4.46b

«Страшные» значения в Victoria 4.46b

Нередко встречается проблема, когда программы не могут считать S.M.A.R.T. диска. В случае исправного винчестера это может быть вызвано несколькими факторами. Например, очень часто не отображается S.M.A.R.T. при подключении диска в режиме AHCI. В таких случаях стоит попробовать разные программы, в частности HDD Scan, которая обладает умением работать в таком режиме, хоть у неё и не всегда это получается, либо же стоит временно переключить диск в режим совместимости с IDE, если есть такая возможность. Далее, на многих материнских платах контроллеры, к которым подключаются винчестеры, бывают не встроенными в чипсет или южный мост, а реализованы отдельными микросхемами. В таком случае DOS-версия Victoria, например, не увидит подключённый к контроллеру жёсткий диск, и ей нужно будет принудительно указывать его, нажав клавишу [Р] и введя номер канала с диском. Часто не читаются S.M.A.R.T. у USB-дисков, что объясняется тем, что USB-контроллер просто не пропускает команды для чтения S.M.A.R.T. Практически никогда не читается S.M.A.R.T. у дисков, функционирующих в составе RAID-массива. Здесь тоже есть смысл попробовать разные программы, но в случае аппаратных RAID-контроллеров это бесполезно.

Если после покупки и установки нового винчестера какие-либо программы (HDD Life, Hard Drive Inspector и иже с ними) показывают, что: диску осталось жить 2 часа; его производительность — 27%; здоровье — 19,155% (выберите по вкусу) — то паниковать не стоит. Поймите следующее. Во-первых, нужно смотреть на показатели S.M.A.R.T., а не на непонятно откуда взявшиеся числа здоровья и производительности (впрочем, принцип их подсчёта понятен: берётся наихудший показатель). Во-вторых, любая программа при оценке параметров S.M.A.R.T. смотрит на отклонение значений разных атрибутов от предыдущих показаний. При первых запусках нового диска параметры непостоянны, необходимо некоторое время на их стабилизацию. Программа, оценивающая S.M.A.R.T., видит, что атрибуты изменяются, производит расчёты, у неё получается, что при их изменении такими темпами накопитель скоро выйдет из строя, и она начинает сигнализировать: «Спасайте данные!» Пройдёт некоторое время (до пары месяцев), атрибуты стабилизируются (если с диском действительно всё в порядке), утилита наберёт данных для статистики, и сроки кончины диска по мере стабилизации S.M.A.R.T. будут переноситься всё дальше и дальше в будущее. Оценка программами дисков Seagate и Samsung — вообще отдельный разговор. Из-за особенностей атрибутов 1, 7, 195 программы даже для абсолютно здорового диска обычно выдают заключение, что он завернулся в простыню и ползёт на кладбище.

Обратите внимание, что возможна следующая ситуация: все атрибуты S.M.A.R.T. — в норме, однако на самом деле диск — с проблемами, хоть этого пока ни по чему не заметно. Объясняется это тем, что технология S.M.A.R.T. работает только «по факту», т. е. атрибуты меняются только тогда, когда диск в процессе работы встречает проблемные места. А пока он на них не наткнулся, то и не знает о них и, следовательно, в S.M.A.R.T. ему фиксировать нечего.

Таким образом, S.M.A.R.T. — это полезная технология, но пользоваться ею нужно с умом. Кроме того, даже если S.M.A.R.T. вашего диска идеален, и вы постоянно устраиваете диску проверки — не полагайтесь на то, что ваш диск будет «жить» ещё долгие годы. Винчестерам свойственно ломаться так быстро, что S.M.A.R.T. просто не успевает отобразить его изменившееся состояние, а бывает и так, что с диском — явные нелады, но в S.M.A.R.T. — всё в порядке. Можно сказать, что хороший S.M.A.R.T. не гарантирует, что с накопителем всё хорошо, но плохой S.M.A.R.T. гарантированно свидетельствует о проблемах. При этом даже с плохим S.M.A.R.T. утилиты могут показывать, что состояние диска — «здоров», из-за того, что критичными атрибутами не достигнуты пороговые значения. Поэтому очень важно анализировать S.M.A.R.T. самому, не полагаясь на «словесную» оценку программ.

Хоть технология S.M.A.R.T. и работает, винчестеры и понятие «надёжность» настолько несовместимы, что принято считать их просто расходным материалом. Ну, как картриджи в принтере. Поэтому во избежание потери ценных данных делайте их периодическое резервное копирование на другой носитель (например, другой винчестер). Оптимально делать две резервные копии на двух разных носителях, не считая винчестера с оригинальными данными. Да, это ведёт к дополнительным затратам, но поверьте: затраты на восстановление информации со сломавшегося HDD обойдутся вам в разы — если не на порядок-другой — дороже. А ведь данные далеко не всегда могут восстановить даже профессионалы. Т. е. единственная возможность обеспечить надёжное хранение ваших данных — это делать их бэкап.

Напоследок упомяну некоторые программы, которые хорошо подходят для анализа S.M.A.R.T. и тестирования винчестеров: HDDScan (работает в Windows, бесплатная), CrystalDiskInfo (Windows, бесплатная), Hard Disk Sentinel (платная для Windows, бесплатная для DOS), HD Tune (Windows, платная, есть бесплатная старая версия).

И наконец, мощнейшие программы для тестирования: Victoria (Windows, DOS, бесплатная), MHDD (DOS, бесплатная).

Первую часть этого материала можно прочитать здесь.

Технология S.M.A.R.T. родилась в далеком 1995 году, так что возраст у нее почтенный. Предполагалось, что атрибуты SMART (давайте для простоты писать аббревиатуру без точек), формируемые микропрограммой жесткого диска, позволят программно оценивать состояние накопителя, а также дадут механизм для предсказания выхода его из строя. Последнее в те времена было достаточно актуально: срок жизни дисков в серверах, например, исчислялся годом-полутора, и знать, когда готовить замену, было нелишним.

Со временем многое поменялось: что-то отмерло, какие-то стороны развились сильнее (например, контроль механики диска). Первоначальный набор из десятка простейших атрибутов усложнился и разросся в несколько раз, порой менялся их смысл, многие производители ввели собственные атрибуты с не всегда ясным функционалом. Появилась масса программ для анализа SMART (как правило, невысокого качества, но с эффектным интерфейсом, да еще и за деньги) и т.п.

Так что не мешает описать современное состояние SMART. Начнем с критически важных атрибутов, ухудшение которых почти всегда свидетельствует о проблемах с накопителем. Именно их первым делом смотрят ремонтники при диагностике HDD.

  • #01 Raw Read Error Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Для всех дисков Seagate, Samsung (семейства F1 и более новые) и Fujitsu 2,5″ это — число внутренних коррекций данных, проведенных ДО выдачи в интерфейс; на пугающе огромные цифры можно не обращать внимания.
  • #03 Spin-Up Time — время раскрутки пакета пластин из состояния покоя до рабочей скорости. Растет при износе механики (повышенное трение в подшипнике и т.п.), также может свидетельствовать о некачественном питании (например, просадке напряжения при старте диска).
  • #05 Reallocated Sectors Count — число операций переназначения секторов. Когда диск обнаруживает ошибку чтения/записи, он помечает сектор переназначенным и переносит данные в резервную область. Вот почему на современных HDD нельзя увидеть bad-блоки — все они спрятаны в переназначенных секторах. Этот процесс называют remapping, на жаргоне — ремап. Поле Raw Value атрибута содержит общее количество переназначенных секторов. Чем оно больше, тем хуже состояние поверхности диска.
  • #07 Seek Error Rate — частота ошибок при позиционировании блока магнитных головок (БМГ). Рост этого атрибута свидетельствует о низком качестве поверхности или о поврежденной механике накопителя. Также может повлиять перегрев и внешние вибрации (например, от соседних дисков в корзине).
  • #10 Spin-Up Retry Count — число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута растет, то велика вероятность проблем с механикой.
  • #196 Reallocation Event Count — число операций переназначения. В поле Raw Value атрибута хранится общее число попыток переноса информации со сбойных секторов в резервную область диска (она, как правило, не слишком велика — несколько тысяч секторов). Учитываются как успешные, так и неудачные операции.
  • #197 Current Pending Sector Count — текущее число нестабильных секторов. Здесь хранится число секторов, являющихся кандидатами на замену. Они не были еще определены как плохие, но считывание с них происходит с затруднениями (например, не с первого раза). Если «подозрительный» сектор будет в дальнейшем считываться успешно, то он исключается из числа кандидатов. В случае же повторных ошибочных чтений накопитель попытается восстановить его и выполнить ремап.
  • #198 Uncorrectable Sector Count — число секторов, при чтении которых возникают неисправимые (внутренними средствами) ошибки. Рост этого атрибута указывает на серьезные дефекты поверхности или на проблемы с механикой накопителя.
  • #220 Disk Shift — сдвиг пакета пластин относительно оси шпинделя. В основном возникает из-за сильного удара или падения диска. Единица измерения неизвестна, но при сильном росте атрибута диск не жилец.

    Также следует принимать во внимание и информационные атрибуты, способные много чего поведать об «истории» диска.

  • #02 Throughput Performance — средняя производительность диска. Если значение атрибута уменьшается, то велика вероятность, что у накопителя есть проблемы.
  • #04 Start/Stop Count — число циклов запуск-остановка шпинделя. У дисков некоторых производителей (например, Seagate) — счетчик включения режима энергосбережения.
  • #08 Seek Time Performance — средняя производительность операции позиционирования головок. Снижение значения этого атрибута свидетельствует о неполадках в механике привода головок (в первую очередь о замедленном позиционировании).
  • #09 Power-On Hours (POH) — время, проведённое во включенном состоянии. Показывает общее время работы диска, единица измерения зависит от модели (не только 1 час, но и 30 мин, и даже 1 минута).
  • #11 Recalibration Retries — число повторов рекалибровки в случае, если первая попытка была неудачной. Рост этого атрибута указывает на проблемы с механикой диска.
  • #12 Device Power Cycle Count — число полных циклов включения-выключения диска.
  • #13 Soft Read Error Rate — частота появления «программных» ошибок при чтении данных. Сюда можно отнести ошибки программного обеспечения, драйверов, файловой системы, неверную разметку диска — в общем, почти все, что не относится к аппаратной части.
  • #190 Airflow Temperature — температура воздуха внутри корпуса HDD. Для дисков Seagate атрибут выдается в нормировке 100º минус температура (тем самым критический нагрев соответствует значению 45), а модели Western Digital используют нормировку 125º минус температура.
  • #191 Gsense error rate — число ошибок, возникших из-за внешних нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера.
  • #192 Poweroff retract count — число зафиксированных повторов включения/выключения питания накопителя.
  • #193 Load/Unload Cycle Count — число циклов перемещения БМГ в специальную парковочную зону/в рабочее положение.
  • #194 HDA temperature — температура механической части диска, в просторечии банки (HDA — Hard Disk Assembly). Информация снимается со встроенного термодатчика, которым служит одна из магнитных головок, обычно нижняя в банке. В битовых полях атрибута фиксируются текущая, минимальная и максимальная температура. Не все программы, работающие со SMART, правильно разбирают эти поля, так что к их показаниям стоит относиться критично.
  • #195 Hardware ECC Recovered — число ошибок, скорректированных аппаратной частью диска. Сюда входят ошибки чтения, ошибки позиционирования, ошибки передачи по внешнему интерфейсу. На дисках с SATA-интерфейсом значение нередко ухудшается при повышении частоты системной шины — SATA очень чувствителен к разгону.
  • #199 UltraDMA (Ultra ATA) CRC Error Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу в режиме UltraDMA (нарушения целостности пакетов и т.п.). Рост этого атрибута свидетельствует о плохом (мятом, перекрученном) кабеле и плохих контактах. Также подобные ошибки появляются при разгоне шины PCI, сбоях питания, сильных электромагнитных наводках, а иногда и по вине драйвера.
  • #200 Write Error Rate/ Multi-Zone Error Rate — частота появления ошибок при записи данных. Показывает общее число ошибок записи на диск. Чем больше значение атрибута, тем хуже состояние поверхности и механики накопителя.

Как видим, большинство «интересных» атрибутов отражает функционирование механики накопителя. Технология SMART действительно позволяет предсказывать выход диска из строя в результате механических неисправностей, что, по статистике, составляет около 60% всех отказов. Полезен и мониторинг температур: перегрев головок резко ускоряет их деградацию, так что превышение опасного порога (45-55º в зависимости от модели) — сигнал срочно улучшить охлаждение диска.

Вместе с тем не следует переоценивать возможности SMART. Современные диски нередко «дохнут» на фоне отличных атрибутов, что связано с тонкими процессами дефект-менеджмента в условиях высокой плотности записи и не всегда, мягко говоря, качественных компонентов (разнобой в отдаче головок сегодня — обычное дело). Тем более SMART не способен предсказать последствия таких «форс-мажоров», как скачок напряжения, перегрев платы электроники или повреждение накопителя от удара.

Практически у всех атрибутов наибольший интерес представляет поле Raw Value: «сырые» значения наиболее информативны. Их нормировка (степень приближения к абстрактному порогу) часто ничего не дает и только запутывает дело. Поэтому и программы, полагающиеся на эти проценты, нельзя считать вполне надежными. Типичный случай для них — ложные тревоги. Программа сообщает, что новый, недавно установленный накопитель того и гляди «склеит ласты». А все дело в том, что в начале эксплуатации некоторые атрибуты SMART быстро меняются и примитивная экстраполяция приводит к пугающим пользователя прогнозам.

Я советую бесплатную программу HDDScan — она корректно понимает все атрибуты, в том числе и новые, правильно разбирает температурные показатели. Отчет выводится в виде аккуратной xml-таблицы с цветовой индикацией, которую можно сохранить или распечатать.

SMART диска WD пятилетнего возраста. О его близкой кончине свидетельствуют ненулевые значения атрибутов 1 и 200 (для WD они особенно чреваты), а также тот факт, что после ремапа атрибут 197 снова растет. Это значит, что возможности исправления дефектов исчерпаны

Крайне полезна у HDDScan возможность считывать SMART у внешних накопителей, столь распространенных сегодня. Практически ни одна другая программа этого не умеет, ведь на пути данных стоит контроллер, преобразующий интерфейс PATA/SATA в USB или FireWire. Автор целенаправленно работал в этом направлении, и ему удалось охватить широкий спектр контроллеров. Не забыты и диски с интерфейсом SCSI, до сих пор широко применяемые в серверах (атрибуты у них особые — например, выводится общее число записанных или считанных байтов за всю жизнь накопителя).

Функционал HDDScan полностью отвечает потребностям ремонтника. Когда первичную диагностику принесенного внешнего диска можно провести, не разбирая корпус, — это удобно, экономит время, а порой и сохраняет гарантию.

SMART, снятый со SCSI-диска. Здесь исторически сложились совсем другие атрибуты

⇡#Барьеры HDD

Механика давно стала ахиллесовой пятой HDD, и даже не столько из-за чувствительности к ударам и вибрации (это еще можно компенсировать), сколько из-за медлительности. Самые быстрые «дерганья» блоком магнитных головок (2-3 мс у лучших серверных моделей) в тысячи раз уступают скоростям электроники.

И принципиально ничего тут не улучшишь. Поднимать скорость вращения пакета дисков некуда, 15000 об./мин уже предел. Японцы несколько лет назад подступались к 20000 об./мин (вполне гироскопная скорость), но в итоге отказались — не выдерживают материалы, конструкция получается слишком дорогая и для массового производства слабо пригодная. В малых же сериях винчестеры выйдут золотыми, такие никто не купит — это не гироскопы, которые заменить нечем.

Выходит, уткнулись в барьер. Механику на кривой козе не объедешь. Единственный выход — поднимать плотность записи, поперечную и продольную. Продольная плотность (вдоль дорожки) влияет на производительность накопителя, т.е. на поток данных к остальным узлам компьютера. Но все равно, даже достигнутые 100-130 Мбайт/с — это для нынешних компьютеров слишком мало. Например, рядовая оперативная память (DRAM) имеет реальную производительность около 3 Гбайт/с, а кеш процессора — еще больше. Разница на порядки, и она сильно сказывается на общем быстродействии. Конечно, никто не требует от энергонезависимого накопителя, емкость которого в сотни раз превышает DRAM, такой же производительности. Но даже простое удвоение было бы заметно любому пользователю.

Поперечная плотность записи — это густота дорожек на пластине, в современных HDD она превышает 10000 на 1 миллиметр. Получается, что сама дорожка имеет ширину менее 100 нм (между прочим, нанотехнологии в чистом виде). Это позволяет резко поднять емкость в расчете на одну поверхность, а также ускоряет позиционирование за счет изощренных алгоритмов (их разработка потянула бы на пару докторских диссертаций).

Как итог, за последние годы емкость и производительность HDD значительно выросли. Все это стало возможным благодаря технологии перпендикулярной записи, которая существует уже более 20 лет, но до массового внедрения дозрела только в 2007 году. Причем емкость тогда выросла даже сильнее, чем требуется: первые терабайтные диски встретили вялый отклик пользователей. Народ просто не понимал, куда приспособить таких монстров, тем более что они поначалу строились на пяти пластинах, были капризными, шумными и горячими (речь о тогдашних флагманах Hitachi).

Потом, конечно, люди разобрались, торренты заработали в полную силу, да и количество пластин поуменьшилось. В то же время плотность записи выросла до 500-750 Гбайт на пластину (имеются в виду диски настольного сегмента с форм-фактором 3,5″). Вот-вот в массовое производство пойдут терабайтные пластины, что даст возможность выпустить винчестеры объемом до 4 Тбайт (больше четырех пластин в стандартном корпусе высотой 26,1 мм не уместить; хитачевские пятипластинные первенцы большого развития не получили).

Трехтерабайтный диск WD Caviar Green WD30EZRX, наиболее емкий на сегодня. Имеет четырехпластинный дизайн, выпускается ровно год (с 20 октября 2010 г.). Как полагается, весной и летом дешевел, но в последние дни резко подорожал из-за наводнения в Таиланде (там расположены сборочные заводы WD, и стихия блокировала подвоз комплектующих)

Увы, скорость позиционирования выросла, мягко говоря, несильно, а у массовых моделей так вообще осталась на прежнем уровне, а то и упала в угоду… тишине. Маркетологи доказали, что потребитель голосует кошельком за гигабайты в расчете на один доллар, а не за миллисекунды доступа. Поэтому и небыстры дешевые диски по сравнению с породистыми серверными собратьями. Медлительность хорошо проявляется в скорости загрузки ОС, когда надо читать с диска большое количество мелких файлов, разбросанных по пластинам. Здесь главную роль играет скорость вращения шпинделя и мощный привод БМГ, дающий возможность больших ускорений.

Между прочим, «быстрые» диски легко отличить даже на вес — они заметно тяжелее «медленных». Полноразмерная банка с утолщенными стенками, способствующая геометрической стабильности и подавлению вибраций, скоростной шпиндельный двигатель, мощные магниты позиционера, двухслойная крышка повышенной жесткости — все это прибавляет такому накопителю десятки и сотни граммов. Еще больше отрыв в серверных моделях на 15000 об./мин, где пластины уменьшенного размера окружены внушительным объемом литого алюминия, а общий вес «харда» доходит до килограмма.

Высокопроизводительный диск WD Raptor со скоростью вращения шпинделя 10 000 об./мин. При емкости 150 Гбайт весит 740 г (массовые модели той же емкости — 400-500 г). Обратите внимание на размер магнитов и толщину стенок

С удешевлением твердотельных SSD, использующихся, в первую очередь, под операционную систему, нужда в высокопроизводительных HDD стала снижаться, а сами они постепенно выделяются в особый сегмент рынка (такова, например, «черная» серия у WD). Подобными дисками комплектуются профессиональные рабочие станции с ресурсоемкими приложениями, критичными к скорости доступа. Рядовые же пользователи брать достаточно дорогие накопители не торопятся, предпочитая объем производительности.

На другом конце спектра — популярные «зеленые» модели с намеренно замедленным вращением шпинделя (5400-5900 об./мин вместо 7200) и небыстрым позиционированием головок. Дешевые, тихие, холодные и достаточно надежные, эти винчестеры идеально подходят для хранения мультимедийных данных в домашних компьютерах, внешних корпусах и сетевых хранилищах. На наших прилавках все эти Green и LP сильно потеснили другие линейки, так что в мелких «точках» порой ничего больше и не найдешь.

⇡#Расточительность магнитной записи

Намагниченность доменов жесткого диска, как и в середине двадцатого века, меняют с помощью магнитной головки, поле которой возбуждается переменным электрическим током и действует на магнитный слой через зазор. Также эта технология требует быстрого вращения пластин, прецизионного контроля положения головки и т.д. Двигатель и позиционер жесткого диска, а также управляющая ими электроника потребляют заметную мощность, да и стоят немало. Но главное — на само возбуждение магнитного поля тратится очень много энергии.

Расточительность стандартного метода магнитной записи трудно оценить, работая на персональном компьютере. Жесткие диски массовых серий даже при активной работе потребляют менее 10 Вт, что на фоне прочих комплектующих (100 Вт и более) почти незаметно. Но ваши взгляды сразу переменятся после посещения серверной комнаты какого-нибудь крупного банка, а чтобы получить впечатлений на всю оставшуюся жизнь, достаточно подойти к дисковой стойке суперкомпьютера. В шуме сотен и тысяч жестких дисков, обдувающих их вентиляторов и прецизионных кондиционеров становится понятно, сколько энергии в глобальном масштабе тратится на такую работу.

Недаром для систем хранения данных энергоэффективность в списке характеристик выходит на первый план. Вот уже и Google переводит свои дата-центры на баржи в море (вот где настоящие офшоры!). Оказывается, охлаждение СХД забортной водой радикально сокращает операционные затраты, в первую очередь за счет экономии на кондиционерах.

⇡#О питании жестких дисков

Будет ли работать обычная 220-вольтовая лампочка от 230 В? Конечно, будет. А от 240 В? Тоже. Вопрос — сколько она протянет? Понятно, что меньше или существенно меньше — это зависит от конкретной лампочки. Ей суждена яркая, но короткая жизнь.

Примерно та же ситуация и с жесткими дисками. Наивные производители проектировали их, полагаясь на стандартные +5 В и +12 В. Однако в типичном компьютерном блоке питания (БП) стабилизируется лишь линия 5 В. К чему же это приводит?

При высокой нагрузке на процессор (а современные «камни» потребляют немало) и недостаточной мощности БП линия 5 В проседает, и система стабилизации отрабатывает это дело, повышая напряжение до номинального значения. Одновременно повышается и напряжение 12 В (из-за отсутствия стабилизации по нему). В результате и так нестойкий к нагреву HDD работает еще и при повышенном напряжении, которое подается на самые греющиеся узлы — микросхему управления двигателем (на жаргоне ремонтников — «крутилка») и привод головок (т.н. «звуковая катушка»). Итог — смотри рассуждение о лампочке.

Сгоревшая «крутилка» на плате как результат повышенного напряжения и плохого охлаждения. Нередко микросхема сгорает в буквальном смысле, с пиротехническими эффектами и выгоранием дорожек на плате. Такое ремонту не подлежит

Отсюда советы по блоку питания. Чем больше его мощность, тем лучше (в разумных пределах: запас более 30-35% по отношению к реальному потреблению снижает КПД блока, так что вы будете греть комнату). Менее мощный, но фирменный БП лучше более мощного, но безродно-китайского. Помните — разгоняют не только процессоры. В первом приближении, 420 «китайских» ватт эквивалентны 300 «правильным».

По-хорошему, надо бы еще учитывать возраст БП: после 2-3 лет эксплуатации его реальная мощность заметно снижается, а выходные напряжения дрейфуют. Разумеется, в некачественных изделиях, работающих на честном китайском слове, процессы старения выражены гораздо резче. Хорошо еще, если подобный блок тихо умрет сам, а не утащит за собой в агонии половину системного блока!

Максимально допустимым считается 12,6 В (+5% от номинала). Однако у многих дисков c ростом напряжения наблюдается нелинейно-резкий нагрев упомянутых выше узлов — «крутилки» и «катушки». Поэтому я рекомендую строже контролировать БП с помощью внешнего вольтметра (датчики на материнской плате, измеряющие напряжение для BIOS и программ типа AIDA, могут быть весьма неточны).

Измерять напряжение лучше всего на разъемах Molex и обязательно под полной нагрузкой: процессор занят вычислениями с плавающей точкой, видеокарта — выводом динамичной трехмерной графики, а диск — дефрагментацией. При 12,2-12,4 В стоит призадуматься, 12,4-12,6 В — поволноваться, 12,6-13 В — бить тревогу, а в случае 13 В и выше — копить деньги на новый диск или положить гарантийный талон на видное место…

Конденсаторы (2200 мкФ, 25 В), напаянные на цепи питания HDD (желтый провод — +12 В, красный — +5 В, черный — земля). В данном случае они уменьшают пульсации напряжения, от которых блок питания издает раздражающий высокочастотный писк

Если напряжение по линии 12 В сильно завышено, а вы не боитесь паяльника и способны отличить транзистор от диода, то можете включить последний в разрыв питания HDD (напомню, линии 12 В соответствует желтый провод). Диод сыграет роль ограничителя — на его p-n переходе упадут «лишние» 0,2-0,7 В (в зависимости от типа диода), и диску станет полегче. Только диод надо брать достаточно мощный, чтобы он выдерживал пусковой ток в 2-3 А.

И без фанатизма: результирующее напряжение не должно опускаться ниже 11,7 В. В противном случае возможна неустойчивая работа диска (множественные рестарты) и даже порча данных. А некоторые модели (в частности, Seagate 7200.10 и 7200.11) могут вообще не запуститься.

⇡#Миграция с флеш

Память NAND Flash появилась много позднее, чем HDD, и переняла ряд его технологий — взять хотя бы коды ECC. Далее оба направления развивались параллельно и сравнительно независимо. Но в последнее время наметился и обратный процесс: миграция технологий с флеш-памяти на жесткие диски. Конкретно речь идет о выравнивании износа.

Как известно, любой флеш-чип имеет ограниченный ресурс по числу стираний-записей в одну ячейку. В какой-то момент стереть ее уже не удается, и она навсегда застывает с последним записанным значением. Поэтому контроллер считает количество записей в каждую страницу и в случае превышения копирует ее на менее изношенное место. В дальнейшем вся работа ведется с новым участком (этим заведует транслятор), а старая страница остается как есть и не используется. Данная технология получила название Wear Leveling. Так вот, износ есть и в жестких дисках, но там он механический и температурный. Если магнитная головка все время висит над одной дорожкой (скажем, постоянно изменяется тот или иной файл), то растет вероятность повреждения дорожки при случайных толчках или вибрации диска (например, от соседних накопителей в корзине). Головка может коснуться пластины и повредить магнитный слой со всеми вытекающими печальными последствиями. Даже если вредного контакта нет, неподвижная головка локально нагревается и пусть обратимо, но деградирует. Запись в данное место происходит менее надежно, растет вероятность последующего неустойчивого считывания (а при современных огромных плотностях записи любое отклонение параметров губительно).

Эти соображения достаточно очевидны, и прошивка серверных дисков с интерфейсом SCSI/SAS (а они весьма горячи) давно научилась перемещать головки в простое, дабы они не перегревались. Но еще лучше вместе с головкой «перебрасывать» и информацию по пластине — в этом случае описанные эффекты подавляются максимально, а надежность накопителя растет. Вот Western Digital и ввел подобный механизм в новых моделях VelociRaptor. Это дорогие высокопроизводительные диски со скоростью вращения шпинделя 10000 об./мин и пятилетней гарантией, так что Wear Leveling там уместен.

VelociRaptor снаружи и внутри. Привлекает внимание мощный радиатор. Пластины же имеют уменьшенный диаметр — это характерно для современных скоростных дисков.

Кроме того, вся линейка VelociRaptor нацелена на использование в высоконагруженных системах, в первую очередь серверах, где запись на диск ведется очень интенсивно и зачастую в одни и те же файлы (типичный пример — логи транзакций). Массовым «ширпотребным» дискам высокие нагрузки не грозят, греются они тоже умеренно, так что подобный изыск там вряд ли появится. Впрочем, поживем — увидим.

⇡#Аdvanced Format и его применение

Вот уже более 20 лет все жесткие диски имеют одинаковый размер физического сектора: 512 байт. Это минимальная порция записи на диск, позволяющая гибко управлять распределением дискового пространства. Однако с ростом объема HDD все сильнее стали проявляться недостатки такого подхода — в первую очередь неэффективное использование емкости магнитной пластины, а также высокие накладные расходы при организации потока данных.

Поэтому диски большой емкости (терабайт и выше) стали производиться по технологии Advanced Format, которая оперирует «длинными» физическими секторами в 4096 байт. Разметка магнитных пластин под AF весьма выгодна для производителя: меньше межсекторных промежутков, выше полезная емкость дорожки и всей пластины (а это, наряду с магнитными головками, самый дорогой компонент HDD). Именно Advanced Format позволил выпустить на рынок недорогие винчестеры, столь популярные ныне у потребителей аудио- и видеоконтента. AF-дисками емкостью 1-3 Тбайт комплектуются не только компьютеры, но и масса внешних накопителей, сетевых хранилищ и медиаплееров.

Один из первых дисков 3,5″ с Advanced Format, выпущенный в 2009 г

Но даром ничего не дается, новые диски уже начинают приносить в ремонт. Похоже, надежность все-таки просела. Ведь единичный сбой диска или дефект поверхности портит теперь в 8 раз больше данных пользователя, чем обычно. При физическом секторе в 4 Кбайт и эмуляции «коротких» секторов в 512 байт не будет читаться от 1 до 8 секторов. Операционная система на это реагирует понятно как: авария, все пропало! В итоге мелкая проблема на пластинах вырастает для пользователя в зависание или чего еще хуже.

Я считаю, на дисках с AF не стоит держать ОС, прикладные программы и базы данных со множеством мелких файлов. Пока что их удел — мультимедийные данные, некритичные к выпадениям.

⇡#Что стоит почитать о жестких дисках

В первую очередь рекомендую заглянуть на форум HARDW.net. Его раздел «Накопители информации» посещает множество профессиональных ремонтников и энтузиастов (почти 40 тыс. участников). Там можно найти ответы практически по любой теме, связанной с HDD, за исключением самых новых «нераскопанных» моделей. Начните с подраздела «Песочница»: на простые (в понимании профессионалов) вопросы там отвечают подробно и содержательно, а не отшивают, как в других местах, — «несите к ремонтнику».

Еще больше информации, правда, на английском языке, можно найти на портале HDDGURU. Помимо ремонтно-диагностического ПО и статей по отдельным вопросам (например, как поменять головки у диска), там есть международный форум ремонтников, а также огромный архив ресурсов по HDD (firmware, документация, фото и т.п.). Портал прививает широкий взгляд на вещи, он будет интересен подготовленным и мотивированным людям. Во всяком случае, в закрытых конференциях ремонтников ссылки на него пробегают постоянно.

Сошлюсь и на свою статью «Как продлить жизнь жестким дискам» в трех частях. Она дает начальные сведения по обращению с HDD, и хотя написана более трех лет назад, устарела мало — диски за это время принципиально не изменились, разве что стали еще менее надежными из-за свирепой экономии. Производители, застигнутые мировым кризисом, снижали свои затраты по всем направлениям, что и послужило причиной ряда громких провалов 2008-2009 гг. Об одном из них речь пойдет в продолжении этого материала, которое выйдет в ближайшее время.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Современный жёсткий диск — уникальный компонент компьютера. Он уникален тем, что хранит в себе служебную информацию, изучая которую, можно оценить «здоровье» диска. Эта информация содержит в себе историю изменения множества параметров, отслеживаемых винчестером в процессе функционирования. Больше ни один компонент системного блока не предоставляет владельцу статистику своей работы! Вкупе с тем, что HDD является одним из самых ненадёжных компонентов компьютера, такая статистика может быть весьма полезной и помочь его владельцу избежать нервотрёпки и потери денег и времени.

Информация о состоянии диска доступна благодаря комплексу технологий, называемых общим именем S.M.A.R.T. (Self-Monitoring, Analisys and Reporting Technology, т. е. технология самомониторинга, анализа и отчёта). Этот комплекс довольно обширен, но мы поговорим о тех его аспектах, которые позволяют посмотреть на атрибуты S.M.A.R.T., отображаемые в какой-либо программе по тестированию винчестера, и понять, что творится с диском.

Отмечу, что нижесказанное относится к дискам с интерфейсами SATA и РАТА. У дисков SAS, SCSI и других серверных дисков тоже есть S.M.A.R.T., но его представление сильно отличается от SATA/PATA. Да и мониторит серверные диски обычно не человек, а RAID-контроллер, потому про них мы говорить не будем.

Итак, если мы откроем S.M.A.R.T. в какой-либо из многочисленных программ, то увидим приблизительно следующую картину (на скриншоте приведён S.M.A.R.T. диска Hitachi Deskstar 7К1000.С HDS721010CLA332 в HDDScan 3.3):

S.M.A.R.T. в HDDScan 3.3

S.M.A.R.T. в HDDScan 3.3

В каждой строке отображается отдельный атрибут S.M.A.R.T. Атрибуты имеют более-менее стандартизованные названия и определённый номер, которые не зависят от модели и производителя диска.

Каждый атрибут S.M.A.R.T. имеет несколько полей. Каждое поле относится к определённому классу из следующих: ID, Value, Worst, Threshold и RAW. Рассмотрим каждый из классов.

  • ID (может также именоваться Number) — идентификатор, номер атрибута в технологии S.M.A.R.T. Название одного и того же атрибута программами может выдаваться по-разному, а вот идентификатор всегда однозначно определяет атрибут. Особенно это полезно в случае программ, которые переводят общепринятое название атрибута с английского языка на русский. Иногда получается такая белиберда, что понять, что же это за параметр, можно только по его идентификатору.
  • Value (Current) — текущее значение атрибута в попугаях (т. е. в величинах неизвестной размерности). В процессе работы винчестера оно может уменьшаться, увеличиваться и оставаться неизменным. По показателю Value нельзя судить о «здоровье» атрибута, не сравнивая его со значением Threshold этого же атрибута. Как правило, чем меньше Value, тем хуже состояние атрибута (изначально все классы значений, кроме RAW, на новом диске имеют максимальное из возможных значение, например 100).
  • Worst — наихудшее значение, которого достигало значение Value за всю жизнь винчестера. Измеряется тоже в «попугаях». В процессе работы оно может уменьшаться либо оставаться неизменным. По нему тоже нельзя однозначно судить о здоровье атрибута, нужно сравнивать его с Threshold.
  • Threshold — значение в «попугаях», которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим. Проще говоря, Threshold — это порог: если Value больше Threshold — атрибут в порядке; если меньше либо равен — с атрибутом проблемы. Именно по такому критерию утилиты, читающие S.M.A.R.T., выдают отчёт о состоянии диска либо отдельного атрибута вроде «Good» или «Bad». При этом они не учитывают, что даже при Value, большем Threshold, диск на самом деле уже может быть умирающим с точки зрения пользователя, а то и вовсе ходячим мертвецом, поэтому при оценке здоровья диска смотреть стоит всё-таки на другой класс атрибута, а именно — RAW. Однако именно значение Value, опустившееся ниже Threshold, может стать легитимным поводом для замены диска по гарантии (для самих гарантийщиков, конечно же) — кто же яснее скажет о здоровье диска, как не он сам, демонстрируя текущее значение атрибута хуже критического порога? Т. е. при значении Value, большем Threshold, сам диск считает, что атрибут здоров, а при меньшем либо равном — что болен. Очевидно, что при Threshold=0 состояние атрибута не будет признано критическим никогда. Threshold — постоянный параметр, зашитый производителем в диске.
  • RAW (Data) — самый интересный, важный и нужный для оценки показатель. В большинстве случаев он содержит в себе не «попугаи», а реальные значения, выражаемые в различных единицах измерения, напрямую говорящие о текущем состоянии диска. Основываясь именно на этом показателе, формируется значение Value (а вот по какому алгоритму оно формируется — это уже тайна производителя, покрытая мраком). Именно умение читать и анализировать поле RAW даёт возможность объективно оценить состояние винчестера.

Этим мы сейчас и займёмся — разберём все наиболее используемые атрибуты S.M.A.R.T., посмотрим, о чём они говорят и что нужно делать, если они не в порядке.

Аттрибуты S.M.A.R.T.
  01 02 03 04 05 07 08 09 10 11 12 183 184 187 188 189 190
0x 01 02 03 04 05 07 08 09 0A 0B 0C B7 B8 BB BC BD BE
 
  191 192 193 194 195 196 197 198 199 200 201 202 203 220 240 254  
0x BF С0 С1 С2 С3 С4 С5 С6 С7 С8 С9 СА CB DC F0 FE  

Перед тем как описывать атрибуты и допустимые значения их поля RAW, уточню, что атрибуты могут иметь поле RAW разного типа: текущее и накапливающее. Текущее поле содержит значение атрибута в настоящий момент, для него свойственно периодическое изменение (для одних атрибутов — изредка, для других — много раз за секунду; другое дело, что в программах чтения S.M.A.R.T. такое быстрое изменение не отображается). Накапливающее поле — содержит статистику, обычно в нём содержится количество возникновений конкретного события со времени первого запуска диска.

Текущий тип характерен для атрибутов, для которых нет смысла суммировать их предыдущие показания. Например, показатель температуры диска является текущим: его цель — в демонстрации температуры в настоящий момент, а не суммы всех предыдущих температур. Накапливающий тип свойственен атрибутам, для которых весь их смысл заключается в предоставлении информации за весь период «жизни» винчестера. Например, атрибут, характеризующий время работы диска, является накапливающим, т. е. содержит количество единиц времени, отработанных накопителем за всю его историю.

Приступим к рассмотрению атрибутов и их RAW-полей.

Атрибут: 01 Raw Read Error Rate

Тип текущий, может быть накапливающим для WD и старых Hitachi
Описание содержит частоту возникновения ошибок при чтении с пластин

Для всех дисков Seagate, Samsung (начиная с семейства SpinPoint F1 (включительно)) и Fujitsu 2,5″ характерны огромные числа в этих полях.

Для остальных дисков Samsung и всех дисков WD в этом поле характерен 0.

Для дисков Hitachi в этом поле характерен 0 либо периодическое изменение поля в пределах от 0 до нескольких единиц.

Такие отличия обусловлены тем, что все жёсткие диски Seagate, некоторые Samsung и Fujitsu считают значения этих параметров не так, как WD, Hitachi и другие Samsung. При работе любого винчестера всегда возникают ошибки такого рода, и он преодолевает их самостоятельно, это нормально, просто на дисках, которые в этом поле содержат 0 или небольшое число, производитель не счёл нужным указывать истинное количество этих ошибок.

Таким образом, ненулевой параметр на дисках WD и Samsung до SpinPoint F1 (не включительно) и большое значение параметра на дисках Hitachi могут указывать на аппаратные проблемы с диском. Необходимо учитывать, что утилиты могут отображать несколько значений, содержащихся в поле RAW этого атрибута, как одно, и оно будет выглядеть весьма большим, хоть это и будет неверно (подробности см. ниже).

На дисках Seagate, Samsung (SpinPoint F1 и новее) и Fujitsu на этот атрибут можно не обращать внимания.

Атрибут: 02 Throughput Performance

Тип текущий
Описание содержит значение средней производительности диска и измеряется в каких-то «попугаях». Обычно его ненулевое значение отмечается на винчестерах Hitachi. На них он может изменяться после изменения параметров ААМ, а может и сам по себе по неизвестному алгоритму

Параметр не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 03 Spin-Up Time

Тип текущий
Описание содержит время, за которое шпиндель диска в последний раз разогнался из состояния покоя до номинальной скорости. Может содержать два значения — последнее и, например, минимальное время раскрутки. Может измеряться в миллисекундах, десятках миллисекунд и т. п. — это зависит от производителя и модели диска

Время разгона может различаться у разных дисков (причём у дисков одного производителя тоже) в зависимости от тока раскрутки, массы блинов, номинальной скорости шпинделя и т. п.

Кстати, винчестеры Fujitsu всегда имеют единицу в этом поле в случае отсутствия проблем с раскруткой шпинделя.

Практически ничего не говорит о здоровье диска, поэтому при оценке состояния винчестера на параметр можно не обращать внимания.

Атрибут: 04 Number of Spin-Up Times (Start/Stop Count)

Тип накапливающий
Описание содержит количество раз включения диска. Бывает ненулевым на только что купленном диске, находившемся в запаянной упаковке, что может говорить о тестировании диска на заводе. Или ещё о чём-то, мне не известном

При оценке здоровья не обращайте на атрибут внимания.

Атрибут: 05 Reallocated Sector Count

Тип накапливающий
Описание содержит количество секторов, переназначенных винчестером в резервную область. Практически ключевой параметр в оценке состояния

Поясним, что вообще такое «переназначенный сектор». Когда диск в процессе работы натыкается на нечитаемый/плохо читаемый/незаписываемый/плохо записываемый сектор, он может посчитать его невосполнимо повреждённым. Специально для таких случаев производитель предусматривает на каждом диске (на каких-то моделях — в центре (логическом конце) диска, на каких-то — в конце каждого трека и т. д.) резервную область. При наличии повреждённого сектора диск помечает его как нечитаемый и использует вместо него сектор в резервной области, сделав соответствующие пометки в специальном списке дефектов поверхности — G-list. Такая операция по назначению нового сектора на роль старого называется remap (ремап) либо переназначение, а используемый вместо повреждённого сектор — переназначенным. Новый сектор получает логический номер LBA старого, и теперь при обращении ПО к сектору с этим номером (программы же не знают ни о каких переназначениях!) запрос будет перенаправляться в резервную область.

Таким образом, хоть сектор и вышел из строя, объём диска не изменяется. Понятно, что не изменяется он до поры до времени, т. к. объём резервной области не бесконечен. Однако резервная область вполне может содержать несколько тысяч секторов, и допустить, чтобы она закончилась, будет весьма безответственно — диск нужно будет заменить задолго до этого.

Кстати, ремонтники говорят, что диски Samsung очень часто ни в какую не хотят выполнять переназначение секторов.

На счёт этого атрибута мнения разнятся. Лично я считаю, что если он достиг 10, диск нужно обязательно менять — ведь это означает прогрессирующий процесс деградации состояния поверхности либо блинов, либо головок, либо чего-то ещё аппаратного, и остановить этот процесс возможности уже нет. Кстати, по сведениям лиц, приближенных к Hitachi, сама Hitachi считает диск подлежащим замене, когда на нём находится уже 5 переназначенных секторов. Другой вопрос, официальная ли эта информация, и следуют ли этому мнению сервис-центры. Что-то мне подсказывает, что нет

Другое дело, что сотрудники сервис-центров могут отказываться признавать диск неисправным, если фирменная утилита производителя диска пишет что-то вроде «S.M.A.R.T. Status: Good» или значения Value либо Worst атрибута будут больше Threshold (собственно, по такому критерию может оценивать и сама утилита производителя). И формально они будут правы. Но кому нужен диск с постоянным ухудшением его аппаратных компонентов, даже если такое ухудшение соответствует природе винчестера, а технология производства жёстких дисков старается минимизировать его последствия, выделяя, например, резервную область?

Атрибут: 07 Seek Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок при позиционировании блока магнитных головок (БМГ)

Описание формирования этого атрибута почти полностью совпадает с описанием для атрибута 01 Raw Read Error Rate, за исключением того, что для винчестеров Hitachi нормальным значением поля RAW является только 0.

Таким образом, на атрибут на дисках Seagate, Samsung SpinPoint F1 и новее и Fujitsu 2,5″ не обращайте внимания, на остальных моделях Samsung, а также на всех WD и Hitachi ненулевое значение свидетельствует о проблемах, например, с подшипником и т. п.

Атрибут: 08 Seek Time Performance

Тип текущий
Описание содержит среднюю производительность операций позиционирования головок, измеряется в «попугаях». Как и параметр 02 Throughput Performance, ненулевое значение обычно отмечается на дисках Hitachi и может изменяться после изменения параметров ААМ, а может и само по себе по неизвестному алгоритму

Не даёт никакой информации пользователю и не говорит ни о какой опасности при любом своём значении.

Атрибут: 09 Power On Hours Count (Power-on Time)

Тип накапливающий
Описание содержит количество часов, в течение которых винчестер был включён

Ничего не говорит о здоровье диска.

Атрибут: 10 (0А — в шестнадцатеричной системе счисления) Spin Retry Count

Тип накапливающий
Описание содержит количество повторов запуска шпинделя, если первая попытка оказалась неудачной

О здоровье диска чаще всего не говорит.

Основные причины увеличения параметра — плохой контакт диска с БП или невозможность БП выдать нужный ток в линию питания диска.

В идеале должен быть равен 0. При значении атрибута, равном 1-2, внимания можно не обращать. Если значение больше, в первую очередь следует обратить пристальное внимание на состояние блока питания, его качество, нагрузку на него, проверить контакт винчестера с кабелем питания, проверить сам кабель питания.

Наверняка диск может стартовать не сразу из-за проблем с ним самим, но такое бывает очень редко, и такую возможность нужно рассматривать в последнюю очередь.

Атрибут: 11 (0B) Calibration Retry Count (Recalibration Retries)

Тип накапливающий
Описание содержит количество повторных попыток сброса накопителя (установки БМГ на нулевую дорожку) при неудачной первой попытке

Ненулевое, а особенно растущее значение параметра может означать проблемы с диском.

Атрибут: 12 (0C) Power Cycle Count

Тип накапливающий
Описание содержит количество полных циклов «включение-отключение» диска

Не связан с состоянием диска.

Атрибут: 183 (B7) SATA Downshift Error Count

Тип накапливающий
Описание содержит количество неудачных попыток понижения режима SATA. Суть в том, что винчестер, работающий в режимах SATA 3 Гбит/с или 6 Гбит/с (и что там дальше будет в будущем), по какой-то причине (например, из-за ошибок) может попытаться «договориться» с дисковым контроллером о менее скоростном режиме (например, SATA 1,5 Гбит/с или 3 Гбит/с соответственно). В случае «отказа» контроллера изменять режим диск увеличивает значение атрибута

Не говорит о здоровье накопителя.

Атрибут: 184 (B8) End-to-End Error

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче данных через кэш винчестера

Ненулевое значение указывает на проблемы с диском.

Атрибут: 187 (BB) Reported Uncorrected Sector Count (UNC Error)

Тип накапливающий
Описание содержит количество секторов, которые были признаны кандидатами на переназначение (см. атрибут 197) за всю историю жизни диска. Причём если сектор становится кандидатом повторно, значение атрибута тоже увеличивается

Ненулевое значение атрибута явно указывает на ненормальное состояние диска (в сочетании с ненулевым значением атрибута 197) или на то, что оно было таковым ранее (в сочетании с нулевым значением 197).

Атрибут: 188 (BC) Command Timeout

Тип накапливающий
Описание содержит количество операций, выполнение которых было отменено из-за превышения максимально допустимого времени ожидания отклика

Такие ошибки могут возникать из-за плохого качества кабелей, контактов, используемых переходников, удлинителей и т. д., а также из-за несовместимости диска с конкретным контроллером SATA/РАТА на материнской плате (либо дискретным). Из-за ошибок такого рода возможны BSOD в Windows.

Ненулевое значение атрибута говорит о потенциальной «болезни» диска.

Атрибут: 189 (BD) High Fly Writes

Тип накапливающий
Описание содержит количество зафиксированных случаев записи при высоте полета головки выше рассчитанной — скорее всего, из-за внешних воздействий, например вибрации

Для того чтобы сказать, почему происходят такие случаи, нужно уметь анализировать логи S.M.A.R.T., которые содержат специфичную для каждого производителя информацию, что на сегодняшний день не реализовано в общедоступном ПО — следовательно, на атрибут можно не обращать внимания.

Атрибут: 190 (BE) Airflow Temperature

Тип текущий
Описание содержит температуру винчестера для дисков Hitachi, Samsung, WD и значение «100 − [RAW-значение атрибута 194]» для Seagate

Не говорит о состоянии диска.

Атрибут: 191 (BF) G-Sensor Shock Count (Mechanical Shock)

Тип накапливающий
Описание содержит количество критических ускорений, зафиксированных электроникой диска, которым подвергался накопитель и которые превышали допустимые. Обычно это происходит при ударах, падениях и т. п.

Актуален для мобильных винчестеров. На дисках Samsung на него часто можно не обращать внимания, т. к. они могут иметь очень чувствительный датчик, который, образно говоря, реагирует чуть ли не на движение воздуха от крыльев пролетающей в одном помещении с диском мухи.

Вообще срабатывание датчика не является признаком удара. Может расти даже от позиционирования БМГ самим диском, особенно если его не закрепить. Основное назначение датчика — прекратить операцию записи при вибрациях, чтобы избежать ошибок.

Не говорит о здоровье диска.

Атрибут: 192 (С0) Power Off Retract Count (Emergency Retry Count)

Тип накапливающий
Описание для разных винчестеров может содержать одну из следующих двух характеристик: либо суммарное количество парковок БМГ диска в аварийных ситуациях (по сигналу от вибродатчика, обрыву/понижению питания и т. п.), либо суммарное количество циклов включения/выключения питания диска (характерно для современных WD и Hitachi)

Не позволяет судить о состоянии диска.

Атрибут: 193 (С1) Load/Unload Cycle Count

Тип накапливающий
Описание содержит количество полных циклов парковки/распарковки БМГ. Анализ этого атрибута — один из способов определить, включена ли на диске функция автоматической парковки (столь любимая, например, компанией Western Digital): если его содержимое превосходит (обычно — многократно) содержимое атрибута 09 — счётчик отработанных часов, — то парковка включена

Не говорит о здоровье диска.

Атрибут: 194 (С2) Temperature (HDA Temperature, HDD Temperature)

Тип текущий/накапливающий
Описание содержит текущую температуру диска. Температура считывается с датчика, который на разных моделях может располагаться в разных местах. Поле вместе с текущей также может содержать максимальную и минимальную температуры, зафиксированные за всё время эксплуатации винчестера

О состоянии диска атрибут не говорит, но позволяет контролировать один из важнейших параметров. Моё мнение: при работе старайтесь не допускать повышения температуры винчестера выше 50 градусов, хоть производителем обычно и декларируется максимальный предел температуры в 55-60 градусов.

Атрибут: 195 (С3) Hardware ECC Recovered

Тип накапливающий
Описание содержит количество ошибок, которые были скорректированы аппаратными средствами ECC диска

Особенности, присущие этому атрибуту на разных дисках, полностью соответствуют таковым атрибутов 01 и 07.

Атрибут: 196 (С4) Reallocated Event Count

Тип накапливающий
Описание содержит количество операций переназначения секторов

Косвенно говорит о здоровье диска. Чем больше значение — тем хуже. Однако нельзя однозначно судить о здоровье диска по этому параметру, не рассматривая другие атрибуты.

Этот атрибут непосредственно связан с атрибутом 05. При росте 196 чаще всего растёт и 05. Если при росте атрибута 196 атрибут 05 не растёт, значит, при попытке ремапа кандидат в бэд-блоки оказался софт-бэдом (подробности см. ниже), и диск исправил его, так что сектор был признан здоровым, и в переназначении не было необходимости.

Если атрибут 196 меньше атрибута 05, значит, во время некоторых операций переназначения выполнялся перенос нескольких повреждённых секторов за один приём.

Если атрибут 196 больше атрибута 05, значит, при некоторых операциях переназначения были обнаружены исправленные впоследствии софт-бэды.

Атрибут: 197 (С5) Current Pending Sector Count

Тип текущий
Описание содержит количество секторов-кандидатов на переназначение в резервную область

Натыкаясь в процессе работы на «нехороший» сектор (например, контрольная сумма сектора не соответствует данным в нём), диск помечает его как кандидат на переназначение, заносит его в специальный внутренний список и увеличивает параметр 197. Из этого следует, что на диске могут быть повреждённые секторы, о которых он ещё не знает — ведь на пластинах вполне могут быть области, которые винчестер какое-то время не использует.

При попытке записи в сектор диск сначала проверяет, не находится ли этот сектор в списке кандидатов. Если сектор там не найден, запись проходит обычным порядком. Если же найден, проводится тестирование этого сектора записью-чтением. Если все тестовые операции проходят нормально, то диск считает, что сектор исправен. (Т. е. был т. н. «софт-бэд» — ошибочный сектор возник не по вине диска, а по иным причинам: например, в момент записи информации отключилось электричество, и диск прервал запись, запарковав БМГ. В итоге данные в секторе окажутся недописанными, а контрольная сумма сектора, зависящая от данных в нём, вообще останется старой. Налицо будет расхождение между нею и данными в секторе.) В таком случае диск проводит изначально запрошенную запись и удаляет сектор из списка кандидатов. При этом атрибут 197 уменьшается, также возможно увеличение атрибута 196.

Если же тестирование заканчивается неудачей, диск выполняет операцию переназначения, уменьшая атрибут 197, увеличивая 196 и 05, а также делает пометки в G-list.

Итак, ненулевое значение параметра говорит о неполадках (правда, не может сказать о том, в само́м ли диске проблема).

При ненулевом значении нужно обязательно запустить в программах Victoria или MHDD последовательное чтение всей поверхности с опцией remap. Тогда при сканировании диск обязательно наткнётся на плохой сектор и попытается произвести запись в него (в случае Victoria 3.5 и опции Advanced remap — диск будет пытаться записать сектор до 10 раз). Таким образом программа спровоцирует «лечение» сектора, и в итоге сектор будет либо исправлен, либо переназначен.

Идёт последовательное чтение с ремапом в Victoria 4.46b

Идёт последовательное чтение с ремапом в Victoria 4.46b

В случае неудачи чтения как с remap, так и с Advanced remap, стоит попробовать запустить последовательную запись в тех же Victoria или MHDD. Учитывайте, что операция записи стирает данные, поэтому перед её применением обязательно делайте бэкап!

Запуск последовательной записи в Victoria 4.46b

Запуск последовательной записи в Victoria 4.46b

Иногда от невыполнения ремапа могут помочь следующие манипуляции: снимите плату электроники диска и почистите контакты гермоблока винчестера, соединяющие его с платой — они могут быть окислены. Будь аккуратны при выполнении этой процедуры — из-за неё можно лишиться гарантии!

Невозможность ремапа может быть обусловлена ещё одной причиной — диск исчерпал резервную область, и ему просто некуда переназначать секторы.

Если же значение атрибута 197 никакими манипуляциями не снижается до 0, следует думать о замене диска.

Атрибут: 198 (С6) Offline Uncorrectable Sector Count (Uncorrectable Sector Count)

Тип текущий
Описание означает то же самое, что и атрибут 197, но отличие в том, что данный атрибут содержит количество секторов-кандидатов, обнаруженных при одном из видов самотестирования диска — оффлайн-тестировании, которое диск запускает в простое в соответствии с параметрами, заданными прошивкой

Параметр этот изменяется только под воздействием оффлайн-тестирования, никакие сканирования программами на него не влияют. При операциях во время самотестирования поведение атрибута такое же, как и атрибута 197.

Ненулевое значение говорит о неполадках на диске (точно так же, как и 197, не конкретизируя, кто виноват).

Атрибут: 199 (С7) UltraDMA CRC Error Count

Тип накапливающий
Описание содержит количество ошибок, возникших при передаче по интерфейсному кабелю в режиме UltraDMA (или его эмуляции винчестерами SATA) от материнской платы или дискретного контроллера контроллеру диска

В подавляющем большинстве случаев причинами ошибок становятся некачественный шлейф передачи данных, разгон шин PCI/PCI-E компьютера либо плохой контакт в SATA-разъёме на диске или на материнской плате/контроллере.

Ошибки при передаче по интерфейсу и, как следствие, растущее значение атрибута могут приводить к переключению операционной системой режима работы канала, на котором находится накопитель, в режим PIO, что влечёт резкое падение скорости чтения/записи при работе с ним и загрузку процессора до 100% (видно в Диспетчере задач Windows).

В случае винчестеров Hitachi серий Deskstar 7К3000 и 5К3000 растущий атрибут может говорить о несовместимости диска и SATA-контроллера. Чтобы исправить ситуацию, нужно принудительно переключить такой диск в режим SATA 3 Гбит/с.

Моё мнение: при наличии ошибок — переподключите кабель с обоих концов; если их количество растёт и оно больше 10 — выбрасывайте шлейф и ставьте вместо него новый или снимайте разгон.

Можно считать, что о здоровье диска атрибут не говорит.

Атрибут: 200 (С8) Write Error Rate (MultiZone Error Rate)

Тип текущий
Описание содержит частоту возникновения ошибок при записи

Ненулевое значение говорит о проблемах с диском — в частности, у дисков WD большие цифры могут означать «умирающие» головки.

Атрибут: 201 (С9) Soft Read Error Rate

Тип текущий
Описание содержит частоту возникновения ошибок чтения, произошедших по вине программного обеспечения

Влияние на здоровье неизвестно.

Атрибут: 202 (СА) Data Address Mark Error

Тип неизвестно
Описание содержание атрибута — загадка, но проанализировав различные диски, могу констатировать, что ненулевое значение — это плохо

Атрибут: 203 (CB) Run Out Cancel

Тип текущий
Описание содержит количество ошибок ECC

Влияние на здоровье неизвестно.

Атрибут: 220 (DC) Disk Shift

Тип текущий
Описание содержит измеренный в неизвестных единицах сдвиг пластин диска относительно оси шпинделя

Влияние на здоровье неизвестно.

Атрибут: 240 (F0) Head Flying Hours

Тип накапливающий
Описание содержит время, затраченное на позиционирование БМГ. Счётчик может содержать несколько значений в одном поле

Влияние на здоровье неизвестно.

Атрибут: 254 (FE) Free Fall Event Count

Тип накапливающий
Описание содержит зафиксированное электроникой количество ускорений свободного падения диска, которым он подвергался, т. е., проще говоря, показывает, сколько раз диск падал

Влияние на здоровье неизвестно.

Подытожим описание атрибутов. Ненулевые значения:

  • атрибутов 01, 07, 195 — вызывают подозрения в «болезни» у некоторых моделей дисков;
  • атрибутов 10, 11, 188, 196, 199, 202 — вызывают подозрения у всех дисков;
  • и, наконец, атрибутов 05, 184, 187, 197, 198, 200 — прямо говорят о неполадках.

При анализе атрибутов учитывайте, что в некоторых параметрах S.M.A.R.T. могут храниться несколько значений этого параметра: например, для предпоследнего запуска диска и для последнего. Такие параметры длиной в несколько байт логически состоят из нескольких значений длиной в меньшее количество байт — например, параметр, хранящий два значения для двух последних запусков, под каждый из которых отводится 2 байта, будет иметь длину 4 байта. Программы, интерпретирующие S.M.A.R.T., часто не знают об этом, и показывают этот параметр как одно число, а не два, что иногда приводит к путанице и волнению владельца диска. Например, «Raw Read Error Rate», хранящий предпоследнее значение «1» и последнее значение «0», будет выглядеть как 65536.

Надо отметить, что не все программы умеют правильно отображать такие атрибуты. Многие как раз и переводят атрибут с несколькими значениями в десятичную систему счисления как одно огромное число. Правильно же отображать такое содержимое — либо с разбиением по значениям (тогда атрибут будет состоять из нескольких отдельных чисел), либо в шестнадцатеричной системе счисления (тогда атрибут будет выглядеть как одно число, но его составляющие будут легко различимы с первого взгляда), либо и то, и другое одновременно. Примерами правильных программ служат HDDScan, CrystalDiskInfo, Hard Disk Sentinel.

Продемонстрируем отличия на практике. Вот так выглядит мгновенное значение атрибута 01 на одном из моих Hitachi HDS721010CLA332 в неучитывающей особенности этого атрибута Victoria 4.46b:

Атрибут 01 в Victoria 4.46b

Атрибут 01 в Victoria 4.46b

А так выглядит он же в «правильной» HDDScan 3.3:

Атрибут 01 в HDDScan 3.3

Атрибут 01 в HDDScan 3.3

Плюсы HDDScan в данном контексте очевидны, не правда ли?

Если анализировать S.M.A.R.T. на разных дисках, то можно заметить, что одни и те же атрибуты могут вести себя по-разному. Например, некоторые параметры S.M.A.R.T. винчестеров Hitachi после определённого периода неактивности диска обнуляются; параметр 01 имеет особенности на дисках Hitachi, Seagate, Samsung и Fujitsu, 03 — на Fujitsu. Также известно, что после перепрошивки диска некоторые параметры могут установиться в 0 (например, 199). Однако подобное принудительное обнуление атрибута ни в коем случае не будет говорить о том, что проблемы с диском решены (если таковые были). Ведь растущий критичный атрибут — это следствие неполадок, а не причина.

При анализе множества массивов данных S.M.A.R.T. становится очевидным, что набор атрибутов у дисков разных производителей и даже у разных моделей одного производителя может отличаться. Связано это с так называемыми специфичными для конкретного вендора (vendor specific) атрибутами (т. е. атрибутами, используемыми для мониторинга своих дисков определённым производителем) и не должно являться поводом для волнения. Если ПО мониторинга умеет читать такие атрибуты (например, Victoria 4.46b), то на дисках, для которых они не предназначены, они могут иметь «страшные» (огромные) значения, и на них просто не нужно обращать внимания. Вот так, например, Victoria 4.46b отображает RAW-значения атрибутов, не предназначенных для мониторинга у Hitachi HDS721010CLA332:

«Страшные» значения в Victoria 4.46b

«Страшные» значения в Victoria 4.46b

Нередко встречается проблема, когда программы не могут считать S.M.A.R.T. диска. В случае исправного винчестера это может быть вызвано несколькими факторами. Например, очень часто не отображается S.M.A.R.T. при подключении диска в режиме AHCI. В таких случаях стоит попробовать разные программы, в частности HDD Scan, которая обладает умением работать в таком режиме, хоть у неё и не всегда это получается, либо же стоит временно переключить диск в режим совместимости с IDE, если есть такая возможность. Далее, на многих материнских платах контроллеры, к которым подключаются винчестеры, бывают не встроенными в чипсет или южный мост, а реализованы отдельными микросхемами. В таком случае DOS-версия Victoria, например, не увидит подключённый к контроллеру жёсткий диск, и ей нужно будет принудительно указывать его, нажав клавишу [Р] и введя номер канала с диском. Часто не читаются S.M.A.R.T. у USB-дисков, что объясняется тем, что USB-контроллер просто не пропускает команды для чтения S.M.A.R.T. Практически никогда не читается S.M.A.R.T. у дисков, функционирующих в составе RAID-массива. Здесь тоже есть смысл попробовать разные программы, но в случае аппаратных RAID-контроллеров это бесполезно.

Если после покупки и установки нового винчестера какие-либо программы (HDD Life, Hard Drive Inspector и иже с ними) показывают, что: диску осталось жить 2 часа; его производительность — 27%; здоровье — 19,155% (выберите по вкусу) — то паниковать не стоит. Поймите следующее. Во-первых, нужно смотреть на показатели S.M.A.R.T., а не на непонятно откуда взявшиеся числа здоровья и производительности (впрочем, принцип их подсчёта понятен: берётся наихудший показатель). Во-вторых, любая программа при оценке параметров S.M.A.R.T. смотрит на отклонение значений разных атрибутов от предыдущих показаний. При первых запусках нового диска параметры непостоянны, необходимо некоторое время на их стабилизацию. Программа, оценивающая S.M.A.R.T., видит, что атрибуты изменяются, производит расчёты, у неё получается, что при их изменении такими темпами накопитель скоро выйдет из строя, и она начинает сигнализировать: «Спасайте данные!» Пройдёт некоторое время (до пары месяцев), атрибуты стабилизируются (если с диском действительно всё в порядке), утилита наберёт данных для статистики, и сроки кончины диска по мере стабилизации S.M.A.R.T. будут переноситься всё дальше и дальше в будущее. Оценка программами дисков Seagate и Samsung — вообще отдельный разговор. Из-за особенностей атрибутов 1, 7, 195 программы даже для абсолютно здорового диска обычно выдают заключение, что он завернулся в простыню и ползёт на кладбище.

Обратите внимание, что возможна следующая ситуация: все атрибуты S.M.A.R.T. — в норме, однако на самом деле диск — с проблемами, хоть этого пока ни по чему не заметно. Объясняется это тем, что технология S.M.A.R.T. работает только «по факту», т. е. атрибуты меняются только тогда, когда диск в процессе работы встречает проблемные места. А пока он на них не наткнулся, то и не знает о них и, следовательно, в S.M.A.R.T. ему фиксировать нечего.

Таким образом, S.M.A.R.T. — это полезная технология, но пользоваться ею нужно с умом. Кроме того, даже если S.M.A.R.T. вашего диска идеален, и вы постоянно устраиваете диску проверки — не полагайтесь на то, что ваш диск будет «жить» ещё долгие годы. Винчестерам свойственно ломаться так быстро, что S.M.A.R.T. просто не успевает отобразить его изменившееся состояние, а бывает и так, что с диском — явные нелады, но в S.M.A.R.T. — всё в порядке. Можно сказать, что хороший S.M.A.R.T. не гарантирует, что с накопителем всё хорошо, но плохой S.M.A.R.T. гарантированно свидетельствует о проблемах. При этом даже с плохим S.M.A.R.T. утилиты могут показывать, что состояние диска — «здоров», из-за того, что критичными атрибутами не достигнуты пороговые значения. Поэтому очень важно анализировать S.M.A.R.T. самому, не полагаясь на «словесную» оценку программ.

Хоть технология S.M.A.R.T. и работает, винчестеры и понятие «надёжность» настолько несовместимы, что принято считать их просто расходным материалом. Ну, как картриджи в принтере. Поэтому во избежание потери ценных данных делайте их периодическое резервное копирование на другой носитель (например, другой винчестер). Оптимально делать две резервные копии на двух разных носителях, не считая винчестера с оригинальными данными. Да, это ведёт к дополнительным затратам, но поверьте: затраты на восстановление информации со сломавшегося HDD обойдутся вам в разы — если не на порядок-другой — дороже. А ведь данные далеко не всегда могут восстановить даже профессионалы. Т. е. единственная возможность обеспечить надёжное хранение ваших данных — это делать их бэкап.

Напоследок упомяну некоторые программы, которые хорошо подходят для анализа S.M.A.R.T. и тестирования винчестеров: HDDScan (работает в Windows, бесплатная), CrystalDiskInfo (Windows, бесплатная), Hard Disk Sentinel (платная для Windows, бесплатная для DOS), HD Tune (Windows, платная, есть бесплатная старая версия).

И наконец, мощнейшие программы для тестирования: Victoria (Windows, DOS, бесплатная), MHDD (DOS, бесплатная).

Первую часть этого материала можно прочитать здесь.

Технология S.M.A.R.T. родилась в далеком 1995 году, так что возраст у нее почтенный. Предполагалось, что атрибуты SMART (давайте для простоты писать аббревиатуру без точек), формируемые микропрограммой жесткого диска, позволят программно оценивать состояние накопителя, а также дадут механизм для предсказания выхода его из строя. Последнее в те времена было достаточно актуально: срок жизни дисков в серверах, например, исчислялся годом-полутора, и знать, когда готовить замену, было нелишним.

Со временем многое поменялось: что-то отмерло, какие-то стороны развились сильнее (например, контроль механики диска). Первоначальный набор из десятка простейших атрибутов усложнился и разросся в несколько раз, порой менялся их смысл, многие производители ввели собственные атрибуты с не всегда ясным функционалом. Появилась масса программ для анализа SMART (как правило, невысокого качества, но с эффектным интерфейсом, да еще и за деньги) и т.п.

Так что не мешает описать современное состояние SMART. Начнем с критически важных атрибутов, ухудшение которых почти всегда свидетельствует о проблемах с накопителем. Именно их первым делом смотрят ремонтники при диагностике HDD.

  • #01 Raw Read Error Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Для всех дисков Seagate, Samsung (семейства F1 и более новые) и Fujitsu 2,5″ это — число внутренних коррекций данных, проведенных ДО выдачи в интерфейс; на пугающе огромные цифры можно не обращать внимания.
  • #03 Spin-Up Time — время раскрутки пакета пластин из состояния покоя до рабочей скорости. Растет при износе механики (повышенное трение в подшипнике и т.п.), также может свидетельствовать о некачественном питании (например, просадке напряжения при старте диска).
  • #05 Reallocated Sectors Count — число операций переназначения секторов. Когда диск обнаруживает ошибку чтения/записи, он помечает сектор переназначенным и переносит данные в резервную область. Вот почему на современных HDD нельзя увидеть bad-блоки — все они спрятаны в переназначенных секторах. Этот процесс называют remapping, на жаргоне — ремап. Поле Raw Value атрибута содержит общее количество переназначенных секторов. Чем оно больше, тем хуже состояние поверхности диска.
  • #07 Seek Error Rate — частота ошибок при позиционировании блока магнитных головок (БМГ). Рост этого атрибута свидетельствует о низком качестве поверхности или о поврежденной механике накопителя. Также может повлиять перегрев и внешние вибрации (например, от соседних дисков в корзине).
  • #10 Spin-Up Retry Count — число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута растет, то велика вероятность проблем с механикой.
  • #196 Reallocation Event Count — число операций переназначения. В поле Raw Value атрибута хранится общее число попыток переноса информации со сбойных секторов в резервную область диска (она, как правило, не слишком велика — несколько тысяч секторов). Учитываются как успешные, так и неудачные операции.
  • #197 Current Pending Sector Count — текущее число нестабильных секторов. Здесь хранится число секторов, являющихся кандидатами на замену. Они не были еще определены как плохие, но считывание с них происходит с затруднениями (например, не с первого раза). Если «подозрительный» сектор будет в дальнейшем считываться успешно, то он исключается из числа кандидатов. В случае же повторных ошибочных чтений накопитель попытается восстановить его и выполнить ремап.
  • #198 Uncorrectable Sector Count — число секторов, при чтении которых возникают неисправимые (внутренними средствами) ошибки. Рост этого атрибута указывает на серьезные дефекты поверхности или на проблемы с механикой накопителя.
  • #220 Disk Shift — сдвиг пакета пластин относительно оси шпинделя. В основном возникает из-за сильного удара или падения диска. Единица измерения неизвестна, но при сильном росте атрибута диск не жилец.

    Также следует принимать во внимание и информационные атрибуты, способные много чего поведать об «истории» диска.

  • #02 Throughput Performance — средняя производительность диска. Если значение атрибута уменьшается, то велика вероятность, что у накопителя есть проблемы.
  • #04 Start/Stop Count — число циклов запуск-остановка шпинделя. У дисков некоторых производителей (например, Seagate) — счетчик включения режима энергосбережения.
  • #08 Seek Time Performance — средняя производительность операции позиционирования головок. Снижение значения этого атрибута свидетельствует о неполадках в механике привода головок (в первую очередь о замедленном позиционировании).
  • #09 Power-On Hours (POH) — время, проведённое во включенном состоянии. Показывает общее время работы диска, единица измерения зависит от модели (не только 1 час, но и 30 мин, и даже 1 минута).
  • #11 Recalibration Retries — число повторов рекалибровки в случае, если первая попытка была неудачной. Рост этого атрибута указывает на проблемы с механикой диска.
  • #12 Device Power Cycle Count — число полных циклов включения-выключения диска.
  • #13 Soft Read Error Rate — частота появления «программных» ошибок при чтении данных. Сюда можно отнести ошибки программного обеспечения, драйверов, файловой системы, неверную разметку диска — в общем, почти все, что не относится к аппаратной части.
  • #190 Airflow Temperature — температура воздуха внутри корпуса HDD. Для дисков Seagate атрибут выдается в нормировке 100º минус температура (тем самым критический нагрев соответствует значению 45), а модели Western Digital используют нормировку 125º минус температура.
  • #191 Gsense error rate — число ошибок, возникших из-за внешних нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера.
  • #192 Poweroff retract count — число зафиксированных повторов включения/выключения питания накопителя.
  • #193 Load/Unload Cycle Count — число циклов перемещения БМГ в специальную парковочную зону/в рабочее положение.
  • #194 HDA temperature — температура механической части диска, в просторечии банки (HDA — Hard Disk Assembly). Информация снимается со встроенного термодатчика, которым служит одна из магнитных головок, обычно нижняя в банке. В битовых полях атрибута фиксируются текущая, минимальная и максимальная температура. Не все программы, работающие со SMART, правильно разбирают эти поля, так что к их показаниям стоит относиться критично.
  • #195 Hardware ECC Recovered — число ошибок, скорректированных аппаратной частью диска. Сюда входят ошибки чтения, ошибки позиционирования, ошибки передачи по внешнему интерфейсу. На дисках с SATA-интерфейсом значение нередко ухудшается при повышении частоты системной шины — SATA очень чувствителен к разгону.
  • #199 UltraDMA (Ultra ATA) CRC Error Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу в режиме UltraDMA (нарушения целостности пакетов и т.п.). Рост этого атрибута свидетельствует о плохом (мятом, перекрученном) кабеле и плохих контактах. Также подобные ошибки появляются при разгоне шины PCI, сбоях питания, сильных электромагнитных наводках, а иногда и по вине драйвера.
  • #200 Write Error Rate/ Multi-Zone Error Rate — частота появления ошибок при записи данных. Показывает общее число ошибок записи на диск. Чем больше значение атрибута, тем хуже состояние поверхности и механики накопителя.

Как видим, большинство «интересных» атрибутов отражает функционирование механики накопителя. Технология SMART действительно позволяет предсказывать выход диска из строя в результате механических неисправностей, что, по статистике, составляет около 60% всех отказов. Полезен и мониторинг температур: перегрев головок резко ускоряет их деградацию, так что превышение опасного порога (45-55º в зависимости от модели) — сигнал срочно улучшить охлаждение диска.

Вместе с тем не следует переоценивать возможности SMART. Современные диски нередко «дохнут» на фоне отличных атрибутов, что связано с тонкими процессами дефект-менеджмента в условиях высокой плотности записи и не всегда, мягко говоря, качественных компонентов (разнобой в отдаче головок сегодня — обычное дело). Тем более SMART не способен предсказать последствия таких «форс-мажоров», как скачок напряжения, перегрев платы электроники или повреждение накопителя от удара.

Практически у всех атрибутов наибольший интерес представляет поле Raw Value: «сырые» значения наиболее информативны. Их нормировка (степень приближения к абстрактному порогу) часто ничего не дает и только запутывает дело. Поэтому и программы, полагающиеся на эти проценты, нельзя считать вполне надежными. Типичный случай для них — ложные тревоги. Программа сообщает, что новый, недавно установленный накопитель того и гляди «склеит ласты». А все дело в том, что в начале эксплуатации некоторые атрибуты SMART быстро меняются и примитивная экстраполяция приводит к пугающим пользователя прогнозам.

Я советую бесплатную программу HDDScan — она корректно понимает все атрибуты, в том числе и новые, правильно разбирает температурные показатели. Отчет выводится в виде аккуратной xml-таблицы с цветовой индикацией, которую можно сохранить или распечатать.

SMART диска WD пятилетнего возраста. О его близкой кончине свидетельствуют ненулевые значения атрибутов 1 и 200 (для WD они особенно чреваты), а также тот факт, что после ремапа атрибут 197 снова растет. Это значит, что возможности исправления дефектов исчерпаны

Крайне полезна у HDDScan возможность считывать SMART у внешних накопителей, столь распространенных сегодня. Практически ни одна другая программа этого не умеет, ведь на пути данных стоит контроллер, преобразующий интерфейс PATA/SATA в USB или FireWire. Автор целенаправленно работал в этом направлении, и ему удалось охватить широкий спектр контроллеров. Не забыты и диски с интерфейсом SCSI, до сих пор широко применяемые в серверах (атрибуты у них особые — например, выводится общее число записанных или считанных байтов за всю жизнь накопителя).

Функционал HDDScan полностью отвечает потребностям ремонтника. Когда первичную диагностику принесенного внешнего диска можно провести, не разбирая корпус, — это удобно, экономит время, а порой и сохраняет гарантию.

SMART, снятый со SCSI-диска. Здесь исторически сложились совсем другие атрибуты

⇡#Барьеры HDD

Механика давно стала ахиллесовой пятой HDD, и даже не столько из-за чувствительности к ударам и вибрации (это еще можно компенсировать), сколько из-за медлительности. Самые быстрые «дерганья» блоком магнитных головок (2-3 мс у лучших серверных моделей) в тысячи раз уступают скоростям электроники.

И принципиально ничего тут не улучшишь. Поднимать скорость вращения пакета дисков некуда, 15000 об./мин уже предел. Японцы несколько лет назад подступались к 20000 об./мин (вполне гироскопная скорость), но в итоге отказались — не выдерживают материалы, конструкция получается слишком дорогая и для массового производства слабо пригодная. В малых же сериях винчестеры выйдут золотыми, такие никто не купит — это не гироскопы, которые заменить нечем.

Выходит, уткнулись в барьер. Механику на кривой козе не объедешь. Единственный выход — поднимать плотность записи, поперечную и продольную. Продольная плотность (вдоль дорожки) влияет на производительность накопителя, т.е. на поток данных к остальным узлам компьютера. Но все равно, даже достигнутые 100-130 Мбайт/с — это для нынешних компьютеров слишком мало. Например, рядовая оперативная память (DRAM) имеет реальную производительность около 3 Гбайт/с, а кеш процессора — еще больше. Разница на порядки, и она сильно сказывается на общем быстродействии. Конечно, никто не требует от энергонезависимого накопителя, емкость которого в сотни раз превышает DRAM, такой же производительности. Но даже простое удвоение было бы заметно любому пользователю.

Поперечная плотность записи — это густота дорожек на пластине, в современных HDD она превышает 10000 на 1 миллиметр. Получается, что сама дорожка имеет ширину менее 100 нм (между прочим, нанотехнологии в чистом виде). Это позволяет резко поднять емкость в расчете на одну поверхность, а также ускоряет позиционирование за счет изощренных алгоритмов (их разработка потянула бы на пару докторских диссертаций).

Как итог, за последние годы емкость и производительность HDD значительно выросли. Все это стало возможным благодаря технологии перпендикулярной записи, которая существует уже более 20 лет, но до массового внедрения дозрела только в 2007 году. Причем емкость тогда выросла даже сильнее, чем требуется: первые терабайтные диски встретили вялый отклик пользователей. Народ просто не понимал, куда приспособить таких монстров, тем более что они поначалу строились на пяти пластинах, были капризными, шумными и горячими (речь о тогдашних флагманах Hitachi).

Потом, конечно, люди разобрались, торренты заработали в полную силу, да и количество пластин поуменьшилось. В то же время плотность записи выросла до 500-750 Гбайт на пластину (имеются в виду диски настольного сегмента с форм-фактором 3,5″). Вот-вот в массовое производство пойдут терабайтные пластины, что даст возможность выпустить винчестеры объемом до 4 Тбайт (больше четырех пластин в стандартном корпусе высотой 26,1 мм не уместить; хитачевские пятипластинные первенцы большого развития не получили).

Трехтерабайтный диск WD Caviar Green WD30EZRX, наиболее емкий на сегодня. Имеет четырехпластинный дизайн, выпускается ровно год (с 20 октября 2010 г.). Как полагается, весной и летом дешевел, но в последние дни резко подорожал из-за наводнения в Таиланде (там расположены сборочные заводы WD, и стихия блокировала подвоз комплектующих)

Увы, скорость позиционирования выросла, мягко говоря, несильно, а у массовых моделей так вообще осталась на прежнем уровне, а то и упала в угоду… тишине. Маркетологи доказали, что потребитель голосует кошельком за гигабайты в расчете на один доллар, а не за миллисекунды доступа. Поэтому и небыстры дешевые диски по сравнению с породистыми серверными собратьями. Медлительность хорошо проявляется в скорости загрузки ОС, когда надо читать с диска большое количество мелких файлов, разбросанных по пластинам. Здесь главную роль играет скорость вращения шпинделя и мощный привод БМГ, дающий возможность больших ускорений.

Между прочим, «быстрые» диски легко отличить даже на вес — они заметно тяжелее «медленных». Полноразмерная банка с утолщенными стенками, способствующая геометрической стабильности и подавлению вибраций, скоростной шпиндельный двигатель, мощные магниты позиционера, двухслойная крышка повышенной жесткости — все это прибавляет такому накопителю десятки и сотни граммов. Еще больше отрыв в серверных моделях на 15000 об./мин, где пластины уменьшенного размера окружены внушительным объемом литого алюминия, а общий вес «харда» доходит до килограмма.

Высокопроизводительный диск WD Raptor со скоростью вращения шпинделя 10 000 об./мин. При емкости 150 Гбайт весит 740 г (массовые модели той же емкости — 400-500 г). Обратите внимание на размер магнитов и толщину стенок

С удешевлением твердотельных SSD, использующихся, в первую очередь, под операционную систему, нужда в высокопроизводительных HDD стала снижаться, а сами они постепенно выделяются в особый сегмент рынка (такова, например, «черная» серия у WD). Подобными дисками комплектуются профессиональные рабочие станции с ресурсоемкими приложениями, критичными к скорости доступа. Рядовые же пользователи брать достаточно дорогие накопители не торопятся, предпочитая объем производительности.

На другом конце спектра — популярные «зеленые» модели с намеренно замедленным вращением шпинделя (5400-5900 об./мин вместо 7200) и небыстрым позиционированием головок. Дешевые, тихие, холодные и достаточно надежные, эти винчестеры идеально подходят для хранения мультимедийных данных в домашних компьютерах, внешних корпусах и сетевых хранилищах. На наших прилавках все эти Green и LP сильно потеснили другие линейки, так что в мелких «точках» порой ничего больше и не найдешь.

⇡#Расточительность магнитной записи

Намагниченность доменов жесткого диска, как и в середине двадцатого века, меняют с помощью магнитной головки, поле которой возбуждается переменным электрическим током и действует на магнитный слой через зазор. Также эта технология требует быстрого вращения пластин, прецизионного контроля положения головки и т.д. Двигатель и позиционер жесткого диска, а также управляющая ими электроника потребляют заметную мощность, да и стоят немало. Но главное — на само возбуждение магнитного поля тратится очень много энергии.

Расточительность стандартного метода магнитной записи трудно оценить, работая на персональном компьютере. Жесткие диски массовых серий даже при активной работе потребляют менее 10 Вт, что на фоне прочих комплектующих (100 Вт и более) почти незаметно. Но ваши взгляды сразу переменятся после посещения серверной комнаты какого-нибудь крупного банка, а чтобы получить впечатлений на всю оставшуюся жизнь, достаточно подойти к дисковой стойке суперкомпьютера. В шуме сотен и тысяч жестких дисков, обдувающих их вентиляторов и прецизионных кондиционеров становится понятно, сколько энергии в глобальном масштабе тратится на такую работу.

Недаром для систем хранения данных энергоэффективность в списке характеристик выходит на первый план. Вот уже и Google переводит свои дата-центры на баржи в море (вот где настоящие офшоры!). Оказывается, охлаждение СХД забортной водой радикально сокращает операционные затраты, в первую очередь за счет экономии на кондиционерах.

⇡#О питании жестких дисков

Будет ли работать обычная 220-вольтовая лампочка от 230 В? Конечно, будет. А от 240 В? Тоже. Вопрос — сколько она протянет? Понятно, что меньше или существенно меньше — это зависит от конкретной лампочки. Ей суждена яркая, но короткая жизнь.

Примерно та же ситуация и с жесткими дисками. Наивные производители проектировали их, полагаясь на стандартные +5 В и +12 В. Однако в типичном компьютерном блоке питания (БП) стабилизируется лишь линия 5 В. К чему же это приводит?

При высокой нагрузке на процессор (а современные «камни» потребляют немало) и недостаточной мощности БП линия 5 В проседает, и система стабилизации отрабатывает это дело, повышая напряжение до номинального значения. Одновременно повышается и напряжение 12 В (из-за отсутствия стабилизации по нему). В результате и так нестойкий к нагреву HDD работает еще и при повышенном напряжении, которое подается на самые греющиеся узлы — микросхему управления двигателем (на жаргоне ремонтников — «крутилка») и привод головок (т.н. «звуковая катушка»). Итог — смотри рассуждение о лампочке.

Сгоревшая «крутилка» на плате как результат повышенного напряжения и плохого охлаждения. Нередко микросхема сгорает в буквальном смысле, с пиротехническими эффектами и выгоранием дорожек на плате. Такое ремонту не подлежит

Отсюда советы по блоку питания. Чем больше его мощность, тем лучше (в разумных пределах: запас более 30-35% по отношению к реальному потреблению снижает КПД блока, так что вы будете греть комнату). Менее мощный, но фирменный БП лучше более мощного, но безродно-китайского. Помните — разгоняют не только процессоры. В первом приближении, 420 «китайских» ватт эквивалентны 300 «правильным».

По-хорошему, надо бы еще учитывать возраст БП: после 2-3 лет эксплуатации его реальная мощность заметно снижается, а выходные напряжения дрейфуют. Разумеется, в некачественных изделиях, работающих на честном китайском слове, процессы старения выражены гораздо резче. Хорошо еще, если подобный блок тихо умрет сам, а не утащит за собой в агонии половину системного блока!

Максимально допустимым считается 12,6 В (+5% от номинала). Однако у многих дисков c ростом напряжения наблюдается нелинейно-резкий нагрев упомянутых выше узлов — «крутилки» и «катушки». Поэтому я рекомендую строже контролировать БП с помощью внешнего вольтметра (датчики на материнской плате, измеряющие напряжение для BIOS и программ типа AIDA, могут быть весьма неточны).

Измерять напряжение лучше всего на разъемах Molex и обязательно под полной нагрузкой: процессор занят вычислениями с плавающей точкой, видеокарта — выводом динамичной трехмерной графики, а диск — дефрагментацией. При 12,2-12,4 В стоит призадуматься, 12,4-12,6 В — поволноваться, 12,6-13 В — бить тревогу, а в случае 13 В и выше — копить деньги на новый диск или положить гарантийный талон на видное место…

Конденсаторы (2200 мкФ, 25 В), напаянные на цепи питания HDD (желтый провод — +12 В, красный — +5 В, черный — земля). В данном случае они уменьшают пульсации напряжения, от которых блок питания издает раздражающий высокочастотный писк

Если напряжение по линии 12 В сильно завышено, а вы не боитесь паяльника и способны отличить транзистор от диода, то можете включить последний в разрыв питания HDD (напомню, линии 12 В соответствует желтый провод). Диод сыграет роль ограничителя — на его p-n переходе упадут «лишние» 0,2-0,7 В (в зависимости от типа диода), и диску станет полегче. Только диод надо брать достаточно мощный, чтобы он выдерживал пусковой ток в 2-3 А.

И без фанатизма: результирующее напряжение не должно опускаться ниже 11,7 В. В противном случае возможна неустойчивая работа диска (множественные рестарты) и даже порча данных. А некоторые модели (в частности, Seagate 7200.10 и 7200.11) могут вообще не запуститься.

⇡#Миграция с флеш

Память NAND Flash появилась много позднее, чем HDD, и переняла ряд его технологий — взять хотя бы коды ECC. Далее оба направления развивались параллельно и сравнительно независимо. Но в последнее время наметился и обратный процесс: миграция технологий с флеш-памяти на жесткие диски. Конкретно речь идет о выравнивании износа.

Как известно, любой флеш-чип имеет ограниченный ресурс по числу стираний-записей в одну ячейку. В какой-то момент стереть ее уже не удается, и она навсегда застывает с последним записанным значением. Поэтому контроллер считает количество записей в каждую страницу и в случае превышения копирует ее на менее изношенное место. В дальнейшем вся работа ведется с новым участком (этим заведует транслятор), а старая страница остается как есть и не используется. Данная технология получила название Wear Leveling. Так вот, износ есть и в жестких дисках, но там он механический и температурный. Если магнитная головка все время висит над одной дорожкой (скажем, постоянно изменяется тот или иной файл), то растет вероятность повреждения дорожки при случайных толчках или вибрации диска (например, от соседних накопителей в корзине). Головка может коснуться пластины и повредить магнитный слой со всеми вытекающими печальными последствиями. Даже если вредного контакта нет, неподвижная головка локально нагревается и пусть обратимо, но деградирует. Запись в данное место происходит менее надежно, растет вероятность последующего неустойчивого считывания (а при современных огромных плотностях записи любое отклонение параметров губительно).

Эти соображения достаточно очевидны, и прошивка серверных дисков с интерфейсом SCSI/SAS (а они весьма горячи) давно научилась перемещать головки в простое, дабы они не перегревались. Но еще лучше вместе с головкой «перебрасывать» и информацию по пластине — в этом случае описанные эффекты подавляются максимально, а надежность накопителя растет. Вот Western Digital и ввел подобный механизм в новых моделях VelociRaptor. Это дорогие высокопроизводительные диски со скоростью вращения шпинделя 10000 об./мин и пятилетней гарантией, так что Wear Leveling там уместен.

VelociRaptor снаружи и внутри. Привлекает внимание мощный радиатор. Пластины же имеют уменьшенный диаметр — это характерно для современных скоростных дисков.

Кроме того, вся линейка VelociRaptor нацелена на использование в высоконагруженных системах, в первую очередь серверах, где запись на диск ведется очень интенсивно и зачастую в одни и те же файлы (типичный пример — логи транзакций). Массовым «ширпотребным» дискам высокие нагрузки не грозят, греются они тоже умеренно, так что подобный изыск там вряд ли появится. Впрочем, поживем — увидим.

⇡#Аdvanced Format и его применение

Вот уже более 20 лет все жесткие диски имеют одинаковый размер физического сектора: 512 байт. Это минимальная порция записи на диск, позволяющая гибко управлять распределением дискового пространства. Однако с ростом объема HDD все сильнее стали проявляться недостатки такого подхода — в первую очередь неэффективное использование емкости магнитной пластины, а также высокие накладные расходы при организации потока данных.

Поэтому диски большой емкости (терабайт и выше) стали производиться по технологии Advanced Format, которая оперирует «длинными» физическими секторами в 4096 байт. Разметка магнитных пластин под AF весьма выгодна для производителя: меньше межсекторных промежутков, выше полезная емкость дорожки и всей пластины (а это, наряду с магнитными головками, самый дорогой компонент HDD). Именно Advanced Format позволил выпустить на рынок недорогие винчестеры, столь популярные ныне у потребителей аудио- и видеоконтента. AF-дисками емкостью 1-3 Тбайт комплектуются не только компьютеры, но и масса внешних накопителей, сетевых хранилищ и медиаплееров.

Один из первых дисков 3,5″ с Advanced Format, выпущенный в 2009 г

Но даром ничего не дается, новые диски уже начинают приносить в ремонт. Похоже, надежность все-таки просела. Ведь единичный сбой диска или дефект поверхности портит теперь в 8 раз больше данных пользователя, чем обычно. При физическом секторе в 4 Кбайт и эмуляции «коротких» секторов в 512 байт не будет читаться от 1 до 8 секторов. Операционная система на это реагирует понятно как: авария, все пропало! В итоге мелкая проблема на пластинах вырастает для пользователя в зависание или чего еще хуже.

Я считаю, на дисках с AF не стоит держать ОС, прикладные программы и базы данных со множеством мелких файлов. Пока что их удел — мультимедийные данные, некритичные к выпадениям.

⇡#Что стоит почитать о жестких дисках

В первую очередь рекомендую заглянуть на форум HARDW.net. Его раздел «Накопители информации» посещает множество профессиональных ремонтников и энтузиастов (почти 40 тыс. участников). Там можно найти ответы практически по любой теме, связанной с HDD, за исключением самых новых «нераскопанных» моделей. Начните с подраздела «Песочница»: на простые (в понимании профессионалов) вопросы там отвечают подробно и содержательно, а не отшивают, как в других местах, — «несите к ремонтнику».

Еще больше информации, правда, на английском языке, можно найти на портале HDDGURU. Помимо ремонтно-диагностического ПО и статей по отдельным вопросам (например, как поменять головки у диска), там есть международный форум ремонтников, а также огромный архив ресурсов по HDD (firmware, документация, фото и т.п.). Портал прививает широкий взгляд на вещи, он будет интересен подготовленным и мотивированным людям. Во всяком случае, в закрытых конференциях ремонтников ссылки на него пробегают постоянно.

Сошлюсь и на свою статью «Как продлить жизнь жестким дискам» в трех частях. Она дает начальные сведения по обращению с HDD, и хотя написана более трех лет назад, устарела мало — диски за это время принципиально не изменились, разве что стали еще менее надежными из-за свирепой экономии. Производители, застигнутые мировым кризисом, снижали свои затраты по всем направлениям, что и послужило причиной ряда громких провалов 2008-2009 гг. Об одном из них речь пойдет в продолжении этого материала, которое выйдет в ближайшее время.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Содержание

  1. Обозначение полей в таблице SMART
  2. В любом случае, «Значение» (Value) нужно сравнивать с «Порогом» (Threshold) — здесь есть нюансы, но в основном, чем ниже Value, тем хуже работает жесткий диск — оно не должно опускаться до порога или сравняться с ним
  3. Многие SMART-программы показывают, что с вашим диском всё в порядке, ориентируясь на параметры «Значение» и «Порог». Да, действительно, диагностика показывает, что значение не приблизилось к порогу, мол, всё окей. Но они не учитывают параметр Данные (RAW), о котором пойдет речь ниже. Зачастую, именно RAW показывает верные значения, а значит ваш диск может быть в опасности!
  4. Частота появления ошибок при чтении с диска
  5. Raw Read Error Rate
  6. Время раскрутки
  7. Pin Up Time
  8. Кол-во переназначенных секторов
  9. Reallocated Sector Count
  10. Ошибки позиционирования
  11. Seek Error Rate
  12. Текущее количество нестабильных секторов.
  13. Current Pending Sector Count (C5)
  14. На что менять свой старый HDD? Конечно, на SSD
  15. Еще статьи при ремонт:

Даже, если вы никогда не слышали про SMART, шпиндель, SATA и другие страшные вещи, то Windows может сама давать недвусмысленные намеки на то, что с вашем жестким диском что-то не так.

Итак, мы уже определили — нам нужно использовать SMART. Теперь детально рассмотрим каждый параметр, на который стоит обратить внимание. Для примера мы возьмем наш жесткий диск компании Western Digitak — модель WD3200BPVT-55JJ5T1 (WD-WX61E82M9996). Срок службы 5 лет.

Кликните, чтобы увеличить изображение

Расшифровка SMART у HDD. Как читать ошибки жесткого диска?

Значение (Value или Current) — текущее значение данного атрибута. Единиц измерений этого нет — некое абстрактное значение, которым пользуется система. Может изменятся в процессе работы HDD. По умолчанию имеет значение 100 или 200 (т.е. это не действительное текущее значение параметра, а выставленное системой). Имеется много споров, действительно ли SMART корректно выставляет параметр «Значение» (Value). Многие склоняются, что точнее и правильней использовать метрику «Данные» (RAW).

В любом случае, «Значение» (Value) нужно сравнивать с «Порогом» (Threshold) — здесь есть нюансы, но в основном, чем ниже Value, тем хуже работает жесткий диск — оно не должно опускаться до порога или сравняться с ним

Наихудшее (Worst) — Самое худшее значение, до которого опускался параметр «Значение» (Value).

Порог (Threshold)  — Порог, ниже которого параметр «Значение» Value ни в коем случае не должен опускаться. Threshold — постоянный параметр, который установил производитель жесткого диска. Если это случилось, тогда у диска имеются серьезные проблемы со здоровьем. Однако тут есть один нюанс

Многие SMART-программы показывают, что с вашим диском всё в порядке, ориентируясь на параметры «Значение» и «Порог». Да, действительно, диагностика показывает, что значение не приблизилось к порогу, мол, всё окей. Но они не учитывают параметр Данные (RAW), о котором пойдет речь ниже. Зачастую, именно RAW показывает верные значения, а значит ваш диск может быть в опасности!

Данные (RAW или Data, «Сырое значение») — Наиболее точный показатель с тем, что творится с вашим жестким диском. Это уже не абстрактный параметр, как «Значение» (Value), а вполне реальный показатель. Хотя есть мнение, что именно «Данные» (RAW) влияет на показатель Значения, но иногда эти два типа данных сильно расходятся друг с другом. Иногда программы SMART показывают его в шестнадцатеричной системе измерения — перевести можно с помощью калькулятора (из DEC в HEX). Например, тут — https://lin.in.ua/tools/numconv.html

Для наших читателей из Азербайджана есть отличные новости. Если вы устали от возни со старым железом, то можете заказать новый игровой компьютер в компании iComp по ссылке https://icomp.az/bakida-komputerler/. Кроме того, вы можете собрать собственный сетап — на сайте огромное количество разнообразных комплектующих на любой вкус и кошелек.

Частота появления ошибок при чтении с диска

Raw Read Error Rate

Частота ошибок при операции чтения с жесткого диска. Большое количество ошибок (меньшее значение атрибута) говорит о том, что с аппаратной частью диска не всё в порядке.Чем меньше параметр, тем хуже

Данный атрибут — главный показатель здоровья именно механики жесткого диска. Любое замедление блока магнитных головок может вылиться в ошибки чтения, так же как и падения, удары, перегрев и другие физические воздействия на диск. Тут важно понимать, что появление этих ошибок уже означает отрицательную динамику — их будет только больше. Остается только надеяться, что это не произойдет так быстро.

Главный нюанс атрибута Raw Read Error Rate в том, что именно параметр Данные «RAW» показывает реальное количество ошибок, а не параметр «Значение». Поэтому, даже если SMART-программы вам говорят о том, что всё в порядке, обратите внимание на «Данные». В нашем случае, Value=200, а RAW=1380, т.е. реальное количество ошибок чтения у нас 1380!

Однако и тут есть некоторые особенности. Часто винчестеры фирмы Seagate и Samsung в поле RAW показывают умопомрачительные значения под десятки тысяч или миллионов — понятно, что это неверная информация от SMART-программы — ваш диск при таком количестве ошибок был бы уже труп. ИТОГ: В данном атрибуте надо смотреть на RAW — он показывает реальные данные. Но если этот показатель показывает миллионные значения — то лучше ориентироваться на показатель «Значение» (Value)

Время раскрутки

Pin Up Time

Атрибут показывает время за которое диск (шпендель) разогнался из полного покоя до своей рабочего состояния, до «паспортной» скорости, которую зашил производитель на заводе — оно отображено Значение «Порог» (Threshold). Соответственно «Значение»(Value) содержит текущий показатель, конкретный для этой модели и этого производителя. До порогового значения он опускаться не должен. Чем меньше параметр, тем хуже

Данный атрибут некоторыми SMART-программами выделен как критичный, хотя его критичность, на самом деле, спорна. В целом, на этот показатель можно не обращать внимание, т.к. он говорит, скорей, не о здоровье конкретно жесткого диска, а наличие проблем с его питанием — недостаточное напряжение в блоке питания.

Кол-во переназначенных секторов

Reallocated Sector Count

Счетчик показывает общее количество так называемых «переназначенных» секторов. Сбойный сектор на диске — это очень плохо, поэтому HDD использует специальную резервную область, куда отныне жесткий диск будет обращаться за данными, вместо этого сбойного сектора. Чем меньше параметр, тем хуже!

Наверное, самый главный показатель здоровья жесткого диска. Если этот атрибут, SMART отмечает как проблемный («Значение» (Value) приближается к «Порогу» (Threshold)) — существуют серьезные проблемы с износом одной из головок или поверхностью жесткого диска. Показатель не выставляется производителем, как Pin Up Time или Raw Read Error Rate, поэтому максимального значения у него нет

При наличии повреждённого сектора диск помечает его как нечитаемый и использует вместо него сектор в резервной области, сделав соответствующие пометки в специальном списке дефектов поверхности – G-list. Такая операция по назначению нового сектора на роль старого называется remap (ремап, ремапинг) либо переназначение, а используемый вместо повреждённого сектор – переназначенным. Новый сектор получает логический номер LBA старого, и теперь при обращении за данными к этому сектору (с этим номером) запрос будет перенаправляться в резервную область. А она — не бесконечная.

В данном атрибуте смотрим лучше обращать внимание на «Данные» (RAW), а не на «Значение» (Value). Т.к. VALUE может стоять 200 или 100 (по умолчанию системы, но это не значит, что у вас уже 200 ошибок). Именно поле RAW показывает реальное общее количество переназначенных секторов.Самый идеальный вариант в данном случае — ноль в поле «RAW». Даже единица в этом поле говорит о начавшихся проблемах.

Проблема кроется в том, что данный атрибут показывает число уже переназначенных секторов, т.е. исправить это уже нельзя (даже низкоуровневым формтированием). Показатель не выставляется производителем, как Pin Up Time или Raw Read Error Rate, поэтому любое значение отличное от ноля — уже плохо. Это значит что уже есть отрицательная для здоровья HDD динамика.

Ошибки позиционирования

Seek Error Rate

Жесткий диск постоянно находится в движении — его головки скользят по поверхности в поисках данных. Иногда этот процесс сбоит и блок магнитных головок оказывается не в том месте — это ошибка позиционирования. При их наличии имеются повреждения сервометок, возможны проблемы с охлаждением и механической частью (шпендель)

Жесткий диск контролирует правильность установки головок на требуемую дорожку поверхности для считывания данных. В случае, когда установка выполнилась неверно, фиксируется ошибка и операция повторяется. Для данного накопителя причиной большого числа ошибок явился перегрев. Как и в случае с Raw Read Error Rate, «Значение» не должно опуститься ниже «Порога». А в столбце «Данные» (RAW) должен быть (в идеале) ноль.

Текущее количество нестабильных секторов.

Current Pending Sector Count (C5)

Предвестник больших проблем. Данный атрибут показывает количество секторов, которые диск не смог прочитать с первого раза. Операция будет проведена еще раз при повторном обращении к этому сектору. Если он не прочитается и второй раз, то он улетит в переназначенные сектора (Reallocated Sector Count)

Непрочитанный второй раз сектор будет переназначен в резервную область (как мы уже знаем, это называется ремап). Если всё-таки сектор будет прочтен, то он будет помечен, как стабильный и атрибут улучшиться. Ошибки в этом параметре могут быть вызваны банальным выключением ПК из сети или севшим ноутбуком — в общем, некорректным заверением работы Windows.

На что менять свой старый HDD? Конечно, на SSD

Как вам статья?

25.08.2012, 03:11. Показов 584322. Ответов 2


В первую очередь хочу сказать спасибо Charles Kludge и nonym4uk за помощь в написании этой статьи.

Итак, S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
Много пользователей знает что такое S.M.A.R.T., немного меньше даже знают как его получить… Но когда встает вопрос проанализировать полученную таблицу, обычно дело стопорится. В этой статье я приведу основные значения и их расшифровку

Для любознательных

SMART производит наблюдение за основными характеристиками накопителя, каждая из которых получает оценку. Характеристики можно разбить на две группы:
параметры, отражающие процесс естественного старения жёсткого диска (число оборотов шпинделя, число премещений головок, количество циклов включения-выключения);
текущие параметры накопителя (высота головок над поверхностью диска, число переназначенных секторов, время поиска дорожки и количество ошибок поиска).

Данные хранятся в шестнадцатеричном виде, называемом «raw value», а потом пересчитываются в «value» — значение, символизирующее надёжность относительно некоторого эталонного значения. Обычно «value» располагается в диапазоне от 0 до 100 (некоторые атрибуты имеют значения от 0 до 200 и от 0 до 253).
Высокая оценка говорит об отсутствии изменений данного параметра или медленном его ухудшении. Низкая говорит о возможном скором сбое.
Значение, меньшее, чем минимальное, при котором производителем гарантируется безотказная работа накопителя, означает выход узла из строя.

Технология SMART позволяет осуществлять:
мониторинг параметров состояния;
сканирование поверхности;
сканирование поверхности с автоматической заменой сомнительных секторов на надёжные.

Следует заметить, что технология SMART позволяет предсказывать выход устройства из строя в результате механических неисправностей, что составляет около 60 % причин, по которым винчестеры выходят из строя.
Предсказать последствия скачка напряжения или повреждения накопителя в результате удара SMART не способна.

Следует отметить, что накопители НЕ МОГУТ сами сообщать о своём состоянии посредством технологии SMART, для этого существуют специальные программы.

Любая программа, показывающая S.M.A.R.T. для каждого атрибута имеет несколько значений, разберемся сначала с ними — ID, Value, Worst, Threshold и RAW. Итак:

ID (Number) — собственно, сам индикатор атрибута. Номера стандартны для значений атрибутов, но например,из-за кривизны перевода один и тот же атрибут может называться по-разному, проще орентироваться по ID, логично?

Value

(Current) — текущее значение атрибута в условных единицах, никому наверное неведомых . В процессе работы винчестера оно может уменьшаться, увеличиваться и оставаться неизменным. По показателю Value нельзя судить о «здоровье» атрибута, не сравнивая его со значением Threshold этого же атрибута. Как правило, чем меньше Value, тем хуже состояние атрибута (изначально все классы значений, кроме RAW, на новом диске имеют максимальное из возможных значение, например 100).

Worst — наихудшее значение, которого достигало значение Value за всю жизнь винчестера. Измеряется тоже в уе. В процессе работы оно может уменьшаться либо оставаться неизменным. По нему тоже нельзя однозначно судить о здоровье атрибута, нужно сравнивать его с Threshold.

Threshold — значение в (сюрприз!!!) уе, которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим. Проще говоря, Threshold — это порог: если Value больше Threshold — атрибут в порядке; если меньше либо равен — с атрибутом проблемы. Именно по такому критерию утилиты, читающие S.M.A.R.T., выдают отчёт о состоянии диска либо отдельного атрибута вроде «Good» или «Bad». При этом они не учитывают, что даже при Value, большем Threshold, диск на самом деле уже может быть умирающим с точки зрения пользователя, а то и вовсе ходячим мертвецом, поэтому при оценке здоровья диска смотреть стоит всё-таки на другой класс атрибута, а именно — RAW. Однако именно значение Value, опустившееся ниже Threshold, может стать легитимным поводом для замены диска по гарантии (для самих гарантийщиков, конечно же) — кто же яснее скажет о здоровье диска, как не он сам, демонстрируя текущее значение атрибута хуже критического порога? Т. е. при значении Value, большем Threshold, сам диск считает, что атрибут здоров, а при меньшем либо равном — что болен. Очевидно, что при Threshold=0 состояние атрибута не будет признано критическим никогда. Threshold — постоянный параметр, зашитый производителем в диске.

RAW (Data) — самый интересный, важный и нужный для оценки показатель. В большинстве случаев он содержит в себе не уе, а реальные значения, выражаемые в различных единицах измерения, напрямую говорящие о текущем состоянии диска. Основываясь именно на этом показателе, формируется значение Value (а вот по какому алгоритму оно формируется — это уже тайна производителя, покрытая мраком). Именно умение читать и анализировать поле RAW даёт возможность объективно оценить состояние винчестера.

Теперь перейдем непосредственно к самим атрибутам.

01 (01) Raw Read Error Rate — Частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Для всех дисков Seagate, Samsung (семейства F1 и более новые) и Fujitsu 2,5″ это — число внутренних коррекций данных, проведенных до выдачи в интерфейс, следовательно, на пугающе огромные цифры можно реагировать спокойно.

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 (0А) Spin-Up Retry Count — Число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность неполадок с механической частью.

11 (0В) Recalibration Retries — Количество повторов запросов рекалибровки в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность проблем с механической частью.

12 (0С) Device Power Cycle Count — Количество полных циклов включения-выключения диска.

13 (0D) Soft Read Error Rate — Число ошибок при чтении, по вине программного обеспечения, которые не поддались исправлению. Все ошибки имеют

не механическую

природу и указывают лишь на неправильную размётку/взаимодействие с диском программ или операционной системы.

100(64) Erase/Program Cycles (для SSD) Общее количество циклов стирания/программирования для всей флэш-памяти за всё время ее существования. Твердотельный накопитель имеет ограничение на количество записей в него. Точные значения (ресурс) зависят от установленных микросхем флэш-памяти.
В накопителях Kingston — объём стёртого в гигабайтах.

103(67) Translation Table Rebuild (для SSD) Количество событий, когда внутренние таблицы адресов блоков были повреждены и впоследствии восстановлены. Raw-значение этого атрибута указывает фактическое количество событий.

170(AA) Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Иногда raw-значение содержит фактическое количество использованных резервных блоков.
170 атрибут связан с атрибутом 5, числом использованных резервных блоков.

171(AB) Program Fail Count (для SSD) Число попыток, когда запись во флэш-память не удалась. Raw-значение показывает фактическое количество отказов. Процесс записи технически называется «программирование флэш-памяти» — отсюда и название атрибута. Когда флэш-память изношена, она больше не может быть записана и становится доступной только для чтения.
Значение обычно идентично атрибуту 181.

172(AC) Erase Fail Count (для SSD) Количество сбоев операции стирания на флэш-памяти. Raw-значение показывает фактическое количество отказов. Полный цикл записи флэш-памяти состоит из двух этапов. Сначала необходимо удалить память, а затем данные должны быть записаны («запрограммированы») в память. Когда флэш-память изношена, она больше не может быть записана и становится доступной только для чтения.
Идентичен атрибуту 182.

173(AD) Wear Leveller Worst Case Erase Count (для SSD) Максимальное количество операций стирания, выполняемых для одного блока флэш-памяти.

174(AE) Unexpected Power Loss (для SSD) Число неожиданных отключений питания, когда питание было потеряно до получения команды на отключение диска. На жестком диске срок службы при таких отключениях намного меньше, чем при обычном отключении. На SSD существует риск потери внутренней таблицы состояний при неожиданном завершении работы.

175(AF) Program Fail Count (для SSD) Число попыток, когда запись во флэш-память не удалась. Raw-значение показывает фактическое количество отказов. Процесс записи технически называется «программирование флэш-памяти», отсюда и название атрибута. Когда флэш-память изношена, она больше не может быть записана и становится доступной только для чтения.

176(B0) Erase Fail Count (для SSD) Количество сбоев операции стирания на флэш-памяти. Raw-значение показывает фактическое количество отказов. Полный цикл записи флэш-памяти состоит из двух этапов. Сначала необходимо удалить память, а затем данные должны быть записаны («запрограммированы») в память. Когда флэш-память изношена, она больше не может быть записана и становится доступной только для чтения.

177(B1) Wear Leveling Count (для SSD)
Wear Range Delta В зависимости от производителя, максимальное количество операций стирания, выполняемых для одного блока флэш-памяти[источник не указан 269 дней] или разница между максималоьно изношенными (больше всего раз записанными) и минимально изношенными (записанными наименьшее число раз) блоками[4].

178(B2) Used Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Raw-значение этого атрибута иногда содержит фактическое количество использованных резервных блоков.

179(B3) Used Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Raw-значение этого атрибута иногда содержит фактическое количество использованных резервных блоков.

180(B4) Unused Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Raw-значение этого атрибута иногда содержит фактическое количество неиспользованных резервных блоков.

181(B5) Program Fail Count (для SSD) Число попыток, когда запись во флэш-память не удалась. Raw-значение показывает фактическое количество отказов.

182(B6) Erase Fail Count (для SSD) Количество сбоев операции стирания на флэш-памяти. Raw-значение показывает фактическое количество отказов.

183(B7) SATA Downshifts (для SSD) Указывает, как часто требовалось снизить скорость передачи данных SATA (с 6 Гбит/с до 3 или 1,5 Гбит/с или с 3 Гбит/с до 1,5 Гбит/с) для успешной передачи данных. Если значение атрибута уменьшается, попробуйте заменить кабель SATA.
Суть в том, что винчестер, работающий в режимах SATA 3 Гбит/с или 6 Гбит/с (и что там дальше будет в будущем), по какой-то причине (например, из-за ошибок) может попытаться «договориться» с дисковым контроллером о менее скоростном режиме (например, SATA 1.5 Гбит/с или 3 Гбит/с соответственно). В случае «отказа» контроллера изменять режим диск увеличивает значение атрибута (Western Digital und Samsung).

184 (B8) End-to-End error — Назначение зависит от производителя.
У HP (часть технологии HP SMART IV) увеличивается в случае, когда после передачи данных через кэш-память чётность данных между хостом и жёстким диском не совпадает.
У Kinston это количество ошибок чтения из флэш-памяти.

185 (B9) Head Stability Стабильность головок (Western Digital).

187 (BB) Reported UNC Errors — Количество ошибок, которое накопитель сообщил хосту (интерфейсу компьютера) при любых операциях, обычно это ошибки данных на диске, которые не исправлены средствами ECC

188 (BC) Command Timeout — содержит количество операций, выполнение которых было отменено из–за превышения максимально допустимого времени ожидания отклика.Такие ошибки могут возникать из-за плохого качества кабелей, контактов, используемых переходников, удлинителей и т.д., несовместимости диска с конкретным контроллером SATA/РАТА на материнской плате и т.д. Из-за ошибок такого рода возможны BSOD в Windows.
Ненулевое значение атрибута говорит о потенциальной «болезни» диска.

189 (BD) High Fly Writes — содержит количество зафиксированных случаев записи при высоте «полета» головки выше рассчитанной, скорее всего, из-за внешних воздействий, например, вибрации.
Для того, чтобы сказать, почему происходят такие случаи, нужно уметь анализировать логи S.M.A.R.T., которые содержат специфичную для каждого производителя информацию

190 (BE) Airflow Temperature (WDC) — Температура воздуха внутри корпуса жёсткого диска. Для дисков Seagate рассчитывается по формуле (100 — HDA temperature). Для дисков

Western Digital

— (125 — HDA).

191 (BF) G-sense error rate — Количество ошибок, возникающих в результате ударных нагрузок. Атрибут хранит показания встроенного акселерометра, который

фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера.

Актуален для мобильных винчестеров. На дисках Samsung на него часто можно не обращать внимания, т.к. они могут иметь очень чувствительный датчик, который, образно говоря, реагирует чуть ли не на движение воздуха от крыльев пролетающей в одном помещении с диском мухой.
Вообще срабатывание датчика не является признаком удара. Может расти даже от позиционирования БМГ самим диском, особенно, если его не закрепить. Основное назначение датчика – прекратить операцию записи при вибрациях, чтобы избежать ошибок.

75

01
Raw Read Error Rate
Ниже
Критично
Частота ошибок при чтении данных с жёсткого диска. Происхождение их обусловлено износом аппаратной части винчестера.

02
Throughput Performance
Выше

Общая производительность накопителя. Если значение атрибута уменьшается поступательно, то велика вероятность проблем с винчестером.

03
Spin-Up Time
Ниже
Критично
Время раскрутки «блинов» из состояния покоя до рабочей скорости ( чаще, всего с 0 rpm до 7200 rpm (оборотов в минуту).

04
Start/Stop Count
Значение

Полное число запусков, остановок шпинделя. Иногда в том числе количество включений режима энергосбережения. В поле raw value хранится общее количество запусков/остановок жёсткого диска.

05
Reallocated Sectors Count
Ниже
Критично
Число операций переназначения секторов. При обнаружении повреждённого сектора на винчестере, информация из него помечается и переносится в специально отведённую зону, происходит утилизация bad блоков, с последующим консервированием этих мест на диске. Этот процесс называют remapping. Чем больше значение Reallocated Sectors Count, тем хуже состояние поверхности дисков — физический износ поверхности. Поле raw value содержит общее количество переназначенных секторов.

07
Seek Error Rate
Ниже
Критично
Частота ошибок при позиционировании блока головок. Чем больше значение, тем хуже состояние механики, или поверхности жёсткого диска.

08
Seek Time Performance
Выше

Средняя производительность операции позиционирования. Если значение атрибута уменьшается, то велика вероятность проблем с механической частью.

09
Power-On Hours (POH)
Ниже

Время, проведённое устройством, во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ.

0A
Spin-Up Retry Count
Ниже
Критично
Число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной.

0B
Recalibration Retries
Ниже

Количество повторов рекалибровки в случае, если первая попытка была неудачной.

0C
Device Power Cycle Count
Значение

Число циклов включения-выключения винчестера.

0D
Soft Read Error Rate
Ниже

Число ошибок при чтении, по вине программного обеспечения, которые не поддались исправлению.

BB
Reported UNC Errors
Ниже
Критично
Неустранимые аппаратные ошибки.

BE
Airflow Temperature
Ниже

Температура воздуха внутри корпуса жёсткого диска. Целое значение, либо значение по формуле 100 — Airflow Temperature.

BF
G-sense error rate
Ниже

Количество ошибок, возникающих в результате ударов.

C0
Power-off retract count
Ниже

Число циклов аварийных выключений.

C1
Load/Unload Cycle
Ниже

Количество циклов перемещения блока головок в парковочную зону.

C2
HDA temperature
Ниже

Показания встроенного термодатчика накопителя.

C3
Hardware ECC Recovered
Ниже
Критично
Число коррекции ошибок аппаратной частью диска (ошибок чтения, ошибок позиционирования, ошибок передачи по внешнему интерфейсу).

C4
Reallocation Event Count
Ниже
Критично
Число операций переназначения в резервную область, успешные и неудавшиеся попытки.

C5
Current Pending Sector Count
Ниже
Критично
Число секторов- кандидатов на перенос в резервную зону. Помечены как не надёжные. При последующих корректных операциях атрибут может быть снят.

C6
Uncorrectable Sector Count
Ниже
Критично
Число некорректируемых ошибок при обращении к сектору.

C7
UltraDMA CRC Error Count
Ниже

Число ошибок при передаче данных по внешнему интерфейсу.

C8
Write Error Rate /Multi-Zone Error Rate
Ниже

Общее количество ошибок при заполнения сектора информацией. Показатель качества накопителя.

C9
Soft read error rate
Ниже

Частота появления «программных» ошибок при чтении данных с диска, а не аппаратной части HDD.

CA
Data Address Mark errors
Ниже

Число ошибок адресно помеченной информации (Data Address Mark (DAM)).Если автоматически не корректируется — заменить устройство.

CB
Run out cancel
Ниже

Количество ошибок ECC данных, присоединяемые к передаваемому сигналу, позволяющие принимающей стороне определить факт сбоя или исправить несущественную ошибку.

CC
Soft ECC correction
Ниже

Количество ошибок ECC, скорректированных программным способом.

CD
Thermal asperity rate (TAR)
Ниже

Число ошибок в следствии температурных колебаний.

CE
Flying height
Значение

Высота между головкой и поверхностью диска компьютера.

D1
Offline seek performance
Значение

Drive’s seek performance during offline operations.

DC
Disk Shift
Ниже
Критично
Дистанция смещения блока дисков относительно шпинделя. В основном возникает из-за удара или падения.

DD
G-Sense Error Rate
Ниже

Число ошибок, возникших из-за внешних нагрузок и ударов. Атрибут хранит показания встроенного crash датчика.

DE
Loaded Hours
Значение

Время, проведённое блоком магнитных головок между выгрузкой из парковочной области в рабочую область диска и загрузкой блока обратно в парковочную область.

DF
Load/Unload Retry Count
Значение

Количество новых попыток выгрузок/загрузок блока магнитных головок винчестера в/из парковочной области после неудачной попытки.

E0
Load Friction
Ниже

Величина силы трения блока магнитных головок при его выгрузке из парковочной области.

E1
Load Cycle Count
Ниже

Число циклов вход-выход в парковочную зону.

E2
Load ‘In’-time
Значение

Время, за которое привод выгружает магнитные головки из парковочной области на рабочую поверхность диска.

E3
Torque Amplification Count
Ниже

Количество попыток скомпенсировать вращающий момент.

E4
Power-Off Retract Cycle
Ниже

Количество повторов автоматической парковки блока магнитных головок в результате выключения питания.

E6
GMR Head Amplitude
Значение

Амплитуда «дрожания» (расстояние повторяющегося перемещения блока магнитных головок).

E7
Temperature
Ниже

Температура жёсткого диска.

F0
Head flying hours
Значение

Время позиционирования головки.

FA
Read error retry rate
Ниже

Число ошибок во время чтения жёсткого диска.

Эту статью не следует рассматривать как руководство пользователя или документацию для программистов.


Цель проделанной мною работы — попытаться разьяснить в приличной, доступной, а главное — рускоязычной форме, все особенности данной технологии. Естесственно, охватить ПОЛНОСТЬЮ все возможности технологии S.M.A.R.T. просто не возможно по причине ужасающего факта отсутствия какой-либо документации и нежелания подавляющего числа производителей жестких дисков предоставить необходимую информацию или вести какие-либо переговоры.

Текст статьи постоянно обновляется, поэтому на возможные неточности и грамматические ошибки прошу не обращать внимания. Но если Вы заметите явную ошибку или «ужасающую» неточность — пожалуйста, напишите мне об этом.

Я с удовольствием приму любые комментарии по тексту, а также Ваши пожелания и дополнения.

1.1. Общее описание.

Технология S.M.A.R.T.Self-Monitoring, Analysis and Reporting Technology (от англ. «Технология Самодиагностики, Анализа и Отчета») — была разработана для повышения надежности и сохранности данных на жестких дисках. В большинстве случаев, SMART-совместимые устройства позволяют предсказать появление наиболее вероятных ошибок и, тем самым, дают пользователю возможность своевременно сделать резервную копию данных и/или полностью заменить накопитель до выхода его из строя.

S.M.A.R.T. представляет собой набор мини-подпрограмм, которые являются частью микрокода накопителя и определяют поддерживаемые диагностические функции. Наиболее распространенные среди них:

  • набор атрибутов, отражающих состояние отдельных параметров накопителя (до 30)
  • внутренние тесты накопителя (self-test)
  • журналы S.M.A.R.T. (ошибок, общего состояния, дефектных секторов и т.п.)

В настоящий момент не существует официальной документации или стандарта на технологию S.M.A.R.T. В связи с этим, производители не публикуют полные характеристики и поддерживаемые функции S.M.A.R.T. в своих накопителях. Обязательный минимум описан в последнем стандарте ATA/ATAPI-6.

1.2. Развитие технологии S.M.A.R.T.

История технологии S.M.A.R.T. не так уж и богата подробностями:

  • SMART I предусматривал мониторинг основных жизненно важных параметров и запускался только после команды по интерфейсу

  • в SMART II появилась возможность фоновой проверки поверхности, которая выполнялась накопителем автоматически во время «холостого хода»; появилась функция журналирования ошибок

  • в SMART III впервые появилась не только функция обнаружения дефектов поверхности, но и возможность их восстановления «прозрачно» для пользователя и многие другие новшества

Известно, что первыми разработали основы и предложили эту технологию совместно Western Digital, Seagate и Quantum. После этого их уже поддержали такие компании как IBM, Maxtor и Samsung. Hitachi приняла участие в развитии технологии S.M.A.R.T. уже на стадии разработки SMART II, первыми предложив методику полной самодиагностики накопителя (extended self-test).

В настоящее время производители жестких дисков готовятся принять к использованию новый вариант технологии S.M.A.R.T.«1024 S.M.A.R.T.», характерной особенностью которого будет заметно бОльший размер журналов, повсеместное использование мультисекторных журналов, более точные алгоритмы анализа показаний встроенных в накопитель сенсоров (термодатчики, сенсоры ударов, и т.п.) и многое другое. Вот несколько новых функций:

  • введение алгоритма анализа температурного режима накопителя

  • введение ограничения по минимальной и максимальной температуре в рабочем состоянии

  • введение счетчика общего количества записанных секторов на протяжении жизненного цикла накопителя

  • введение счетчика запусков внутренних алгоритмов восстановления (recovery counters)

Главным же плюсом можно считать введение новых атрибутов, которые позволят контролировать состояние и рабочие характеристики по каждой из головок чтения/записи:

  • относительная устойчивость (стабильность «полета») головки

  • исправление ошибок чтения (со «скрытыми» повторными попытками)

  • автоматическое перераспределение дефектных участков поверхности при операциях записи

  • счетчик-накопитель G-List для учета количества принятых ударных нагрузок

  • счетчик-накопитель S-List для учета общего количества «программных» ошибок

Атрибуты.

Атрибуты S.M.A.R.T. — особые характеристики, которые используются при анализе состояния и запаса производительности накопителя. Атрибуты выбираются производителем накопителя, основываясь на способности этих атрибутов предсказывать ухудшение рабочих характеристик накопителя или определить его дефектность. Каждый производитель имеет свой характерный набор атрибутов и может свободно вносить изменения в этот набор в соответствиии со своими собственными требованиями и без уведомления об этом фирм-продавцов и конечных пользователей.

1.3.1. Значения атрибутов.
Значения атрибутов (value) используются для представления относительной надежности отдельного эксплуатационного или эталонного атрибута. Допустимое значение атрибута лежит в диапазоне от 1 до 255. Высокое значение атрибута говорит о том, что результат анализа данной рабочей характеристики указывает на низкую вероятность ее ухудшения или выхода накопителя из строя. Соответственно, низкое значение атрибута говорит о том, что результат анализа данной рабочей характеристики указывает на высокую вероятность ее ухудшения или выхода накопителя из строя.

1.3.2. Пороговые значения атрибутов.
Каждый атрибут имеет собственное пороговое значение (threshold), которое используется для сравнения со значением атрибута (value) и указывает на ухудшение рабочих характеристик или дефектность накопителя. Числовое значение порогового атрибута определяется производителем накопителя через конструкционные особенности накопителя и анализ результатов испытаний на надежность. Пороговое значение каждого атрибута указывает на нижнюю допустимую границу значения атрибута, вплоть до которой сохраняется положительный статус надежности.

Пороговые значения устанавливаются в заводских условиях производителем накопителя и, в большинстве случаев, могут быть изменены только после переключения накопителя в технологический (factory mode). Допустимое пороговое значение атрибута может находится в диапазоне от 1 до 255.

Если значение одного или более атрибутов, имеющих тип pre-failure (в HDD Speed отмечаются символом «*«), меньше или равно соответствующего порогового значения, то это свидетельствует о предстоящем ухудшении рабочих характеристик и/или полном выходе накопителя из строя.

1.3.3. Краткое описание основных атрибутов.
Данный перечень атрибутов является наиболее полным из доступных на сегодняшний момент в Сети или иных источниках. Назначение атрибутов и способ интерпретации их значений выявлены либо опытным путем, либо получены от служб технической поддержки компаний-производителей накопителей.

Ниже приведена сводная таблица всех известных мне атрибутов (55) и краткое описание к большинству (38) из них.

ID Название атрибута
0    = атрибут не используется
1   Raw Read Error Rate
2   Throughput Performance
3   Spin Up Time
4   Start/Stop Count
5   Reallocated Sector Count
6   Read Channel Margin
7   Seek Error Rate
8   Seek Time Performance
9   Power-On Hours Count
10   Spin Retry Count
11   Recalibration Retries
12   Device Power Cycle Count
13   Soft Read Error Rate
??   Emergency Re-track (Hitachi)
??   ECC On-The-Fly Count (Hitachi)
96   ? (Maxtor)
97   ? (Maxtor)
98   ? (Maxtor)
99   ? (Maxtor)
100   ? (Maxtor)
101   ? (Maxtor)
191   G-Sense Error Rate
192   Power-Off Retract Cycle
193   Load/Unload Cycle Count
194   Temperature
195   ? (Quantum AS, Seagate, Maxtor)
196   Reallocation Events Count
197   Current Pending Sector Count
198   Uncorrectable Sector Count
199   UltraDMA CRC Error Rate
200   Write Error Rate (в WD — MultiZone Error Rate)
201   TA Counter Detected
202   TA Counter Increased
203   ? (Maxtor)
204   ? (Maxtor)
205   ? (Maxtor)
206   ? (Maxtor)
207   ? (Maxtor)
208   ? (Maxtor)
209   ? (Maxtor)
220   Disk Shift
221   G-Sense Error Rate (в Hitachi — Shock Sense Error Rate)
222   Loaded Hours
223   Load/Unload Retry Count
224   Load Friction
225   Load/Unload Cycle Count
226   Load-in Time
227   Torque Amplification Count
228   Power-Off Retract Count
229   ? (IBM DTTA, thanx to Vladislav Shaklein)
230   GMR Head Amplitude
231   Temperature
240   Head Flying Hours (Hitachi)
250   Read Error Retry Rate

Краткое описание известных атрибутов.

  • * (используется в программе HDD Speed)
    Данный указатель показывает, что соответствующий атрибут S.M.A.R.T. является критическим для нормального функционирования накопителя. Ухудшение значений таких атрибутов с наибольшей вероятностью приводит к выходу накопителя из строя. В новых материнских платах BIOS имеют встроенную функцию контроля состояния накопителя именно по этим атрибутам.

  • Raw Read Error Rate
    Частота появления ошибок при чтении данных с диска.
    Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине аппаратной части накопителя.

  • Throughput Performance
    Средняя производительность (пропускная способность) диска.

    Уменьшение значения value этого атрибута с большой вероятностью указывает на проблемы в накопителе.

  • Spin Up Time
    Время раскрутки шпинделя.
    Среднее время раскрутки шпинделя диска от 0 RPM до рабочей скорости. Предположительно, в поле raw value содержится время в миллисекундах/секундах.

  • Start/Stop Count
    Количество циклов запуск/останов шпинделя.
    Поле raw value хранит общее количество включений/выключений диска.

  • Reallocated Sectors Count
    Количество переназначенных секторов.
    Когда жесткий диск встречает ошибку чтения/записи/верификации он пытается переместить данные из него в специальную резервную область (spare area) и, в случае успеха, помечает сектор как «переназначенный». Также, этот процесс называют remapping, а переназначенный сектор — remap. Благодаря этой возможности, на современных жестких дисках очень редко видны [при тестировании поверхности] так называемые bad block. Однако, при большом количестве ремапов, на графике чтения с поверхности будут заметны «провалы» — резкое падение скорости чтения (до 10% и более).
    Поле raw value содержит общее количество переназначенных секторов.

  • Read Channel Margin
    Запас канала чтения.
    Назначение этого атрибута не документировано и в современных накопителях он не используется.

  • Seek Error Rate
    Частота появления ошибок позиционирования БМГ.
    В случае сбоя в механической системе позиционирования, повреждения сервометок (servo), сильного термического расширения дисков и т.п. возникают ошибки позиционирования. Чем их больше, тем хуже состояние механики и/или поверхности жесткого диска.

  • Seek Time Performance
    Средняя производительность операций позиционирования БМГ.
    Данный параметр показывает среднюю скорость позиционирования привода БМГ на указанный сектор. Снижение значения этого атрибута говорит о неполадках в механике привода.

  • Power-On Hours
    Количество отработанных часов во включенном состоянии.
    Поле raw value этого атрибута показывает количество часов (минут, секунд — в зависимости от производителя), отработанных жестким диском. Снижение значения (value) атрибута до критического уровня (threshold) указывает на выработку диском ресурса (MTBFMean Time Between Failures). На практике, даже падение этого атрибута до нулевого значения не всегда указывает на реальное исчерпывание ресурса и накопитель может продолжать нормально функционировать.

  • Spin Retry Count
    Количество повторов попыток старта шпинделя диска.
    Данный атрибут фиксирует общее количество попыток раскрутки шпинделя и его выхода на рабочую скорость, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода.

  • Recalibration Retries
    Количество повторов попыток рекалибровки накопителя.
    Данный атрибут фиксирует общее количество попыток сброса состояния накопителя и установки головок на нулевую дорожку, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода.

  • Device Power Cycle Count
    Количество полных циклов запуска/останова жесткого диска.

  • Soft Read Error Rate
    Частота появления «программных» ошибок при чтении данных с диска.
    Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине программного обеспечения, а не аппаратной части накопителя.

  • Emergency Re-track

  • ECC On-The-Fly Count

  • Load/Unload Cycle Count
    Количество циклов вывода БМГ в специальную парковочную зону/в рабочее положение.
    Подробнее — см. описание технологии Head Load/Unload Technology.

  • Temperature
    Температура.
    Данный параметр отражает в поле raw value показание встроенного температурного сенсора в градусах Цельсия.

  • Reallocation Event Count
    Количество операций переназначения (ремаппинга).
    Поле raw value этого атрибута показывает общее количество попыток переназначения сбойных секторов в резервную область, предпринятых накопителем. При этом, учитываются как успешные, так и неудачные операции.

  • Current Pending Sector Count
    Текущее количество нестабильных секторов.
    Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает претендентами на переназначение в резервную область (remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка претендентов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped). Постоянно ненулевое значение raw value этого атрибута говорит о низком качестве (отдельной зоны) поверхности диска.

  • Uncorrectable Sector Count
    Количество нескорректированных ошибок.
    Атрибут показывает общее количество ошибок, возникших при чтении/записи сектора и которые не удалось скорректировать. Рост значения в поле raw value этого атрибута указывает на явные дефекты поверхности и/или проблемы в работе механики накопителя.

  • UltraDMA CRC Error Count
    Общее количество ошибок CRC в режиме UltraDMA.
    Поле raw value содержит количество ошибок, возникших в режиме передачи данных UltraDMA в контрольной сумме (ICRCInterface CRC).

    Примечание автора

    . Практика, собранная статистика и изучение журналов ошибок SMART показывают: в большинстве случаев ошибки CRC возникают при сильном завышении частоты PCI (больше номинальных 33.6 MHz), сильно перекрученом кабеле, а также — по вине драйверов ОС, которые не соблюдают требований к передачи/приему данных в режимах UltraDMA.

  • Write Error Rate (Multi Zone Error Rate)
    Частота появления ошибок при записи данных.
    Показывает общее количество ошибок, обнаруженных во время записи сектора. Чем больше значение в поле raw value (и ниже значение value), тем хуже состояние поверхности диска и/или механики привода.

  • Disk Shift
    Сдвиг пакета дисков относительно оси шпинделя.
    Актуальное значение атрибута содержится в поле raw value. Единицы измерения — не известны.
    Подробности — см. в описании технологии G-Force Protection.

    Примечание

    . Сдвиг пакета дисков возможен в результате сильной ударной нагрузки на накопитель в результате его падения или по иным причинам.

  • G-Sense Error Rate
    Частота появления ошибок в результате ударных нагрузок.
    Данный атрибут хранит показания ударочувствительного сенсора — общее количество ошибок, возникших в результате полученных накопителем внешних ударных нагрузок (при падении, неправильной установке, и т.п.).
    Подробнее — см. описание технологии G-Force Protection.

  • Loaded Hours
    Нагрузка на привод БМГ, вызванная общей наработкой часов накопителем.
    Учитывается только период, в течении которого головки находились в рабочем положении.

  • Load/Unload Retry Count
    Нагрузка на привод БМГ, вызванная многочисленными повторениями операций чтения, записи, позиционирования головок и т.п. Учитывается только период, в течении которого головки находились в рабочем положении.

  • Load Friction
    Нагрузка на привод БМГ, вызванная трением в механических частях накопителя.
    Учитывается только период, в течении которого головки находились в рабочем положении.

  • Load/Unload Cycle Count
    Общее количество циклов нагрузки на привод БМГ.
    Учитывается только период, в течении которого головки находились в рабочем положении.

  • Load-in Time
    Общее время нагрузки на привод БМГ.
    Предположительно, данный атрибут показывает общее время работы накопителя под нагрузкой, при условии, что головки находятся в рабочем состоянии (вне парковочной зоны).

  • Torque Amplification Count
    Количество усилий вращающего момента привода.

  • Power-Off Retract Count
    Количество зафиксированных повторов в(ы)ключения питания накопителя.

  • GMR Head Amplitude
    Амплитуда дрожания головок (GMR-head) в рабочем состоянии.

  • Head Flying Hours

  • Read Error Retry Rate

1.3.4. Типы атрибутов.
Каждый атрибут может иметь некоторый набор флагов, определяющих его функциональные особенности. Ниже приводятся все шесть основных типов и их краткие описания.

  • Pre-failure (PF). Если атрибут имеет этот тип, то поле threshold атрибута содержит минимально допустимое значение атрибута, ниже которого не гарантируется работоспособность накопителя и резко увеличивается вероятность его выхода из строя.

  • On-line collection (OC). Указывает, что значение данного атрибута обновляется (вычисляется) во время выполнения on-line тестов S.M.A.R.T. или же во время обоих видов тестов (on-line/off-line). В противном случае, значение атрибута обновляется только при выполнении off-line тестов.

  • Performance related (PR). Указывает на то, что значение этого атрибута напрямую зависит от производительности накопителя по отдельным показателям (seek/throughput/etc. performance). Обычно обновляется после выполнения self-test`ов SMART.

  • Error rate (ER). Указывает на то, что значение атрибута отражает относительную частоту ошибок по данному параметру (raw read/write, seek, etc.).

  • Events count (EC). Указывает на то, что атрибут является счетчиком событий.

  • Self-preserve (SP). Указывает на то, что значение атрибута обновляется и сохраняется автоматически (обычно при каждом старте накопителя и при выполнении тестов SMART).

Автономное сканирование поверхности
(off-line read scanning)

Большинство накопителей обеспечивают поддержку автономного сканирования поверхности, которое является одной из функций подпрограммы автономного сбора данных о состоянии накопителя (off-line data collection). При выполнении этой функции, накопитель выполняет полное сканирование поверхности путем чтения каждого сектора и замещением ненадежных секторов на запасные сектора из резервной области (spare area) для предотвращения потери пользовательских данных.

Примечание. Если во время выполнения сканирования накопитель получает команду по интерфейсу, то процесс сканирования прерывается и накопитель приступает к обработке поступившей команды. При этом гарантируется максимальное время реагирования на поступившую команду — до 2 секунд.

Журналы ошибок
(SMART error log)

В большинстве современных накопителей реализованна функция журналирования появляющихся в течении работы накопителя ошибок или иных событий. В основном, накопители предоставляют информацию о пяти последних ошибках. При этом сохраняются последние 5 поступивших в накопитель команд, предшествующих возникновению этой ошибки, и другая необходимая информация.Накопитель может также поддерживать дополнительные журналы. Их структура, размер и назначение устанавливаются фирмой-производителем. При обновлении микропрограммы накопителя, все журналы накопителя очищаются, а общее количество ошибок устанавливается в значение 0.

Примечание: в журналах сохраняется время по внутренним часам накопителя, т.е. либо общее отработанное время на данный момент, либо время от момента последнего включения накопителя.

1.5.1. Log Directory
    Тип: Каталог журналов S.M.A.R.T.
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддержка мультисекторных журналов

Данный журнал представляет собой своего рода каталог, в котором указаны адреса всех поддерживаемых журналов S.M.A.R.T. и их размер в секторах. Максимальное количество журналов — 255.

1.5.2. Summary Error Log
    Тип: Суммарный журнал ошибок
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит информацию об общем количестве ошибок, зафиксированных накопителем с момента первого включения (или обновления микропрограммы) и подробные записи о последних 5 ошибках. Для каждой из 5 зафиксированных ошибок сохраняются последние 5 поступивших в накопитель команд. В этом журнале сохраняются все ошибки UNC, IDNF, ошибки сервосистемы, записи/чтения и т.д. При этом, для каждой команды сохраняется значения всех регистров, время и текущее состояние накопителя на момент подачи самой команды. Ошибки, вызванные подачей неподдерживаемых команд или командами с ошибочными параментами не фиксируются в журнале. Если накопитель поддерживает Comprehensive Error Log, то журнал Summary Error Log дублирует последние пять записей из журнала Comprehensive Error Log.

1.5.3. Comprehensive Error Log
    Тип: Комплексный журнал ошибок [SMART Error Logging]
    Вид доступа: только чтение (RO)
    Размер: 1..51 сектор (максимум 26,112 байт)
    Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит подробную информацию о общем количестве ошибок, зафиксированных накопителем с момента первого включения (или обновления микропрограммы) и подробные записи о последних ошибках. Максимальное количество сохраняемых ошибок — 255. Для каждой зафиксированной ошибки сохраняются последние 5 поступивших в накопитель команд. В этом журнале сохраняются все ошибки UNC, IDNF, ошибки сервосистемы, записи/чтения и т.д. При этом, для каждой команды сохраняется значения всех регистров, время и текущее состояние накопителя на момент подачи самой команды. Ошибки, вызванные подачей неподдерживаемых команд или командами с ошибочными параментами не фиксируются в журнале.

1.5.4. Extended Comprehensive Error Log
    Тип: Расширенный комплексный журнал ошибок [SMART Error Logging]
    Вид доступа: только чтение (RO)
    Размер: 1..65,536 секторов (максимум 32 Мбайт)
    Примечание: поддерживается 28/48-битная адресация секторов

Назначение данного журнала аналогично журналу Comprehensive Error Log и содержит в себе копию его записей, однако этот журнал имеет иную структуру, которая позволяет реализовать поддержку как 28-битной, так и 48-битной адресации секторов. Максимальное количество сохраняемых ошибок — 327,680.

1.5.5. Self-test Log
    Тип: Журнал результатов самоконтроля [SMART self-test]
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит информацию о результатах выполнения команд внутренней самодиагностики накопителя. Журнал может хранить до 21 записи. При превышении этого количества, журнал начинает заполняться заново, перезаписывая 1-ю запись 22-й, 2-ю — 23-ей и так далее. В каждой записи журнала сохраняется регистр с номером теста, код статуса выполнения теста, время на момент запуска/прерывания теста, номер текущей контрольной точки (или точки останова) теста, а также LBA-адрес сектора, на котором произошло прерывание/отмена теста.

1.5.6. Extended Self-test Log
    Тип: Расширенный журнал результатов самоконтроля [SMART self-test]
    Вид доступа: только чтение (RO)
    Размер: 1..65,536 секторов (максимум 32 Мбайт)
    Примечание: поддерживается 28/48-битная адресация секторов

Назначение данного журнала аналогично журналу Self-test Log и содержит в себе копию его записей, однако этот журнал имеет иную структуру, которая позволяет реализовать поддержку как 28-битной, так и 48-битной адресации секторов. Максимальное количество записей — 1,179,648.

1.5.7. Streaming Performance Log
    Тип: Журнал параметров производительности потоков [Streaming]
    Вид доступа: только чтение (RO)
    Размер: 1..65,536 секторов (максимум 32 Мбайт)

Данный журнал содержит информацию о переданных накопителю параметров командами управления режимом Automatic Acoustic Management и Typical Host Interface Sector Time (подробнее — см. ATA/ATAPI-6 rev 1e). В журнале сохраняется набор параметров, по которым производится настройка накопителя и перевод в его в режим, когда все операции чтения/записи возможны только специальными командами и передача данных происходит в виде непрерывного потока, для которого гарантированны и учитываются все временные интервалы (на обработку команды, чтение и передачу данных; минимальные/максимальные задержки, время доступа, позиционирования и т.п.). Подробнее о назначении данного вида журналов можно узнать из описания технологии Audio/Video (AV) Streaming Feature.

1.5.8. Write Stream Error Log
    Тип: Журнал ошибок потоковой записи [Streaming]
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит информацию о возникших ошибках записи в период работы накопителя в потоковом режиме (streaming mode). В этом журнале сохраняется общее количество подобных ошибок, номер последней ошибки, предыдущее и текущее значения регистров состояния и ошибки, количество и LBA-номер сектора, на котором данная ошибка была зафиксирована. После чтения данного журнала, накопитель сбрасывает счетчик общего количества ошибок и очищает журнал. Содержимое журнала сохраняется только во время работы и очищается в момент следующего включения/выключения накопителя или при поступлении сигнала аппаратного сброса (hardware reset). Максимальное количество сохраняемых ошибок — 31.

1.5.9. Read Stream Error Log
    Тип: Журнал ошибок потокового чтения [Streaming]
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит информацию о возникших ошибках чтения в период работы накопителя в потоковом режиме (streaming mode). В этом журнале сохраняется общее количество подобных ошибок, номер последней ошибки, предыдущее и текущее значения регистров состояния и ошибки; количество и LBA-номер сектора, на котором данная ошибка была зафиксирована. После чтения данного журнала, накопитель сбрасывает счетчик общего количества ошибок и очищает журнал. Содержимое журнала сохраняется только во время работы и очищается в момент следующего включения/выключения накопителя или при поступлении сигнала аппаратного сброса (hardware reset). Максимальное количество сохраняемых ошибок — 31.

1.5.10. Delayed LBA Sector Log
    Тип: Vendor Specified [General Purpose Logging]
    Вид доступа: только чтение (RO)
    Размер: устанавливается производителем (VS)
    Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит LBA-адреса всех секторов, которые были перемещены со своего нормального физического расположения, а также адреса границ недоступной последовательности секторов. Таким образом ведется журнал всех дефектных или нестабильных секторов. Максимальный размер журнала устанавливается производителем. Новое физическое расположение, метод и время доступа к замещенным секторам также устанавливается производителем и не документируется. Запись в данный журнал может быть добавлена в любой момент времени, при условии активности (питания) самого накопителя. Для процесса обновления журнала устанавливается наивысший приоритет и выполнение всех других команд приостанавливается. При этом удалить существующую запись из журнала не возможно. Содержимое журнала сохраняется при циклах включения/выключения накопителя и при поступлении сигнала аппаратного сброса (hardware reset).

1.5.11. ECC Uncorrectable Sector Log
    Тип: Журнал неисправимых ошибок ECC [SMART Recovering]
    Вид доступа: только чтение (RO)
    Размер: 1 сектор (512 байт)
    Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

    Данный журнал содержит список LBA-адресов секторов, на которых была зафиксирована и проигнорирована некорректируемая ошибка ECC при выполнении операции READ CONTINUOUS (см. AV feature). При этом, выполнение процедуры автоматического переназначения сбойного сектора (ADR — Automatic Defects Reassigment) накопителем заблокировано. Журнал может содержать до 126 записей.

Примечание. Данный журнал доступен для чтения только при разрешенной операции READ CONTINUOUS. В противном случае накопитель возвратит код ошибки ERR->ABRT, прервет выполнение команды или возвратит пустой журнал. После успешного чтения журнала, в самом накопителе он будет очищен.

1.5.12. Reassigned Sector Log
    [under construction]

1.5.13. Drive Activity Log
    [under construction]

1.5.14. Drive Time Buffer Log
    [under construction]

1.5.15. Host Vendor Specific Log
    Тип: Пользовательские журналы
    Вид доступа: чтение/запись (R/W)
    Размер: максимум 31 журнал по 16 секторов (253,952 байт)
    Примечание: содержание и формат журнала — любое, на усмотрение пользователя

Этот вид журнала может быть использован для хранения произвольных пользовательских данных. Для записи этого журнала используется команда WRITE SMART LOG. Если данный журнал ни разу не был записан, то при чтении накопитель возвратит пустой журнал, заполненный нулями.

1.5.16. Device Vendor Specific Log
    Тип: Технические журналы изготовителя
    Вид доступа: не определен, на усмотрение производителя (VS)
    Размер: максимум 31 журнал по 16 секторов (253,952 байт)
    Примечание: содержание, формат и размеры журнала — на усмотрение производителя

Этот вид журнала предназначен для внутреннего использования фирменными утилитами производителя, для хранения результатов работы встроенных подпрограмм анализа и диагностики состояния накопителя и т.п. Возможность чтения/записи этого вида журнала устанавливается производителем и не не документируется.

Примечание. Новые накопители Seagate (модели Ux и Barracuda ATA) поддерживают и даже реально используют еще три вида журналов SMART, однако их назначение и описание пока не известны.

Встроенные функции самоконтроля
(self-test)

Практически с момента появления стандарта S.M.A.R.T. II, в большинстве накопителей появилась новая функция — внутренняя диагностика и самоконтроль, для углубленного контроля состояния механики накопителя, поверхности дисков и т.п. Для запуска этой функции, в набор команд S.M.A.R.T. была введена новая команда — SMART EXECUTE OFF-LINE IMMEDIATE. Результат работы сохраняется либо в специализированных атрибутах, либо отдельным параметром среди других данных в атрибутах. Если накопитель поддерживает журналы S.M.A.R.T., то результат выполнения тестов сохраняется также в журнале Self-test Log. После выполнения теста, накопитель в обязательном порядке обновляет показания во всех атрибутах и других параметрах. Если во время выполнения внутреннего теста накопитель получит по интерфейсу новую команду, то выполнение теста прерывается и накопитель приступает к обработке поступившей команды.

1.6.1. Методы тестирования
Существует два способа запуска тестов S.M.A.R.T.: автономный (off-line) или монопольный (captive). Результат теста всегда сохраняется накопителем в данных S.M.A.R.T. При автономном запуске накопитель сообщает о успешном завершении команды ДО ее ФАКТИЧЕСКОГО исполнения и только после этого выполняет тест. При этом, по интерфейсу флаг ЗАНЯТО (BSY) не выставляется и накопитель в любой момент готов приступить к выполнению очередной интерфейсной команды, приостанавливая работу теста. Фактически, тест выполняется в фоновом режиме. При запуске теста в монопольном режиме, по интерфейсу выставляется флаг ЗАНЯТО (BSY) и накопитель начинает непосредственное выполнение теста в режиме реального времени. Любая интерфейсная команда во время выполнения этого теста приведет к его прерыванию и остановке, после чего накопитель приступит к обработке поступившей команды.

1.6.2. Разновидности тестов S.M.A.R.T.
 Официально документированы три вида внутренних тестов, однако еще существует набор так называемых «активных» тестов, функциональные особенности которых различны у разных производителей и для широкой публики не документированы.

Название теста

off-line captive
1   Off-line collection +
2   Short Self-test + +
3   Extended Self-test + +
4   Drive Activity test #1..#4 + +

Время тестирования может варьироваться от 1 секунды (Quantum) до 54 минут (Fujitsu MPG3409AT). Поддержка первого теста наиболее вероятна даже в очень старых накопителях 4-5 летней давности.
Второй и третий тесты появились относительно недавно, как дань внедренным сложным технологическим решениям — для полного контроля состояния накопителя пришлось реализовывать более глубокие и точные тесты. Поддержка 4-х «активных» тестов (см. таблицу, п.4) официально не документированна.

Реальный набор выполняемых тестами функций можно рассмотреть на примере тестов, поддерживаемых жесткими дисками Hitachi:

Функция теста Short Self test Extended Self test Off-line Collection
Raw Read Error Rate Test YES YES YES
Write Test YES YES NO
Servo Test YES YES NO
Partial Read Scanning YES NO NO
Full Read Scanning NO YES YES

Этот перечень тестов не является одинаковым для всех накопителей и приведен лишь в качестве примера.

Версия от 03.09.2001.

Доброго времени суток, уважаемые читатели. Идея написать эту статью появилась у меня после того, как мне достался 10GB WesternDigital, сильно убитый (Windows 98 с него загружался около 10 минут, и постоянно включалась проверка диска при запуске компьютера). У владельца этого HDD S.M.A.R.T. был отключен, и поэтому не появлялось сообщения об ошибках. На моем компьютере в конце Post выскакивало сообщение – «Один из атрибутов S.M.A.R.T.(Seek Time Performance, как потом выяснилось) превысил пороговое значение, рекомендуется сделать резервную копию данных» (не помню как это на английском). Дальше компьютер не грузился. Загрузка продолжалась, когда S.M.A.R.T. был отключен в биосе. После отрезания бэдов диск все равно работал плохо. Обнуление атрибутов ни к чему не привело, после 2ой перезагрузки наблюдалась та же картина, вот и пришлось выяснять, что это за атрибут и с чем он связан.

В этой статье я постараюсь описать технологию S.M.A.R.T. – Self-Monitoring, Analysis and Reporting Technology («Технология Самодиагностики, Анализа и Отчета») — в доступной для понимания форме. Конечно, полностью охватить все ее возможности не возможно, т.к. в настоящее время отсутствует какая-либо полная документация по этому вопросу, да и производители накопителей о своих продвижениях в этой области сообщать не спешат.

Что такое S.M.A.R.T.

Итак, S.M.A.R.T. позволяет отслеживать и, самое главное, предсказывать возникновение ошибок, связанных с функционированием HDD, отсюда появляется возможность вовремя сделать резервную копию данных, тем самым избежать морального и материального ущерба от потери информации, ограничившись лишь покупкой нового диска.

S.M.A.R.T. – это набор программ, вшитых в микрокод винчестера. Каждая фирма-производитель дисков ведет свои разработки, отсюда и разнообразие параметров для разных дисков. Однако существуют общие параметры:

1.Атрибуты, отражающие общее состояние диска (примерно 30);

2.Внутренние тесты (self-tests);

3.Журналы S.M.A.R.T. (ошибок, общего состояния, дефектных секторов и т.п.).

Полный обязательный перечень S.M.A.R.T атрибутов описан в стандарте ATA/ATAPI-6.

Атрибуты S.M.A.R.T.

Атрибуты S.M.A.R.T. – особые характеристики, которые используются при анализе состояния и запаса производительности накопителя. Они выбираются производителем, основываясь на их способности предсказывать ухудшение рабочих характеристик накопителя или определить его дефектность.

Значения атрибутов (value) используются для представления относительной надежности отдельного эксплуатационного или эталонного атрибута. Допустимое значение атрибута лежит в диапазоне от 1 до 255. Его высокое значение говорит о том, что результат анализа данной рабочей характеристики указывает на низкую вероятность ее ухудшения или выхода накопителя из строя. Соответственно, низкое значение атрибута говорит о том, что результат анализа данной рабочей характеристики указывает на высокую вероятность ее ухудшения или выхода накопителя из строя.

Каждый атрибут имеет собственное пороговое значение (threshold), которое используется для сравнения со значением атрибута (value) и указывает на ухудшение рабочих характеристик или дефектность накопителя. Числовое значение порогового атрибута определяется производителем через конструкционные особенности накопителя и анализ результатов испытаний на надежность. Пороговое значение каждого атрибута указывает на его нижнюю допустимую границу, до которой накопитель нормально функционирует.

Ниже приведено краткое описание основных атрибутов:

Raw Read Error Rate — Частота появления ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине аппаратной части накопителя.

Throughput Performance — Средняя производительность (пропускная способность) диска. Уменьшение значения value этого атрибута с большой вероятностью указывает на проблемы в накопителе.

Spin Up Time— Время раскрутки шпинделя. Среднее время раскрутки шпинделя диска от 0 RPM до рабочей скорости.

Start/Stop Count— Количество циклов запуск/останов шпинделя. Хранит общее количество включений/выключений диска.

Reallocated Sectors Count — Количество переназначенных секторов. Когда жесткий диск встречает ошибку чтения/записи/верификации, он пытается переместить данные в специальную резервную область (spare area) и, в случае успеха, помечает сектор как «переназначенный». Также, этот процесс называют remapping, а переназначенный сектор — remap. Благодаря этой возможности, на современных жестких дисках очень редко видны (при тестировании поверхности) так называемые bad block. Однако, при большом количестве ремапов, на графике чтения с поверхности будут заметны «провалы» — резкое падение скорости чтения (до 10% и более).

Seek Error Rate — Частота появления ошибок позиционирования МГ (магнитной головки). В случае сбоя в механической системе позиционирования, повреждения сервометок (servo), сильного термического расширения дисков и т.п. возникают ошибки позиционирования. Чем их больше, тем хуже состояние механики и/или поверхности жесткого диска.

Seek Time Performance — Средняя производительность операций позиционирования МГ. Данный параметр показывает среднюю скорость позиционирования привода МГ на указанный сектор. Снижение значения этого атрибута говорит о неполадках в механике привода.

Power-On Hours — Количество отработанных часов во включенном состоянии. Значение value этого атрибута показывает количество часов (минут, секунд — в зависимости от производителя), отработанных жестким диском. Снижение значения атрибута до критического уровня (threshold) указывает на выработку диском ресурса. На практике, даже падение этого атрибута до нулевого значения не всегда указывает на реальное исчерпывание ресурса и накопитель может продолжать нормально функционировать.

Spin Retry Count — Количество повторов попыток старта шпинделя диска. Данный атрибут фиксирует общее количество попыток раскрутки шпинделя и его выхода на рабочую скорость, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода.

Recalibration Retries— Количество повторов попыток рекалибровки накопителя. Данный атрибут фиксирует общее количество попыток сброса состояния накопителя и установки головок на нулевую дорожку, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода.

Device Power Cycle Count — Количество полных циклов запуска/останова жесткого диска.

Soft Read Error Rate — Частота появления «программных» ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине программного обеспечения, а не аппаратной части накопителя.

Load/Unload Cycle Count — Количество циклов вывода МГ в специальную парковочную зону/в рабочее положение.

Temperature — Температура. Данный параметр отражает показание встроенного температурного сенсора в градусах Цельсия.

Reallocation Event Count — Количество операций переназначения (ремаппинга). Показывает общее количество попыток переназначения сбойных секторов в резервную область, предпринятых накопителем. При этом, учитываются как успешные, так и неудачные операции.

Current Pending Sector Count — Текущее количество нестабильных секторов. Показывает общее количество секторов, которые накопитель в данный момент считает претендентами на переназначение в резервную область (remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка претендентов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped).

Uncorrectable Sector Count — Количество нескорректированных ошибок. Атрибут показывает общее количество ошибок, возникших при чтении/записи сектора, которые не удалось скорректировать. Рост значения в поле raw value этого атрибута указывает на явные дефекты поверхности и/или проблемы в работе механики накопителя.

UltraDMA CRC Error Count — Общее количество ошибок CRC в режиме UltraDMA, содержит количество ошибок, возникших в режиме передачи данных UltraDMA в контрольной сумме (ICRC — Interface CRC). В большинстве случаев ошибки CRC возникают при сильном завышении частоты PCI (больше номинальных 33.3 MHz), сильно перекрученом кабеле, а также — по вине драйверов ОС, которые не соблюдают требований к передачи/приему данных в режимах UltraDMA.

Write Error Rate — Частота появления ошибок при записи данных. Показывает общее количество ошибок, обнаруженных во время записи сектора. Чем ниже значение value, тем хуже состояние поверхности диска и/или механики привода.

Disk Shift — Сдвиг пакета дисков относительно оси шпинделя.

G-Sense Error Rate — Частота появления ошибок в результате ударных нагрузок. Данный атрибут хранит показания ударочувствительного сенсора — общее количество ошибок, возникших в результате полученных накопителем внешних ударных нагрузок (при падении, неправильной установке, и т.п.).

Здесь приведены атрибуты, с помощью которых можно определить надежность функционирования диска. Остальные же не представляют практической важности.

Автономное сканирование поверхности (off-line read scanning).

Большинство накопителей обеспечивают поддержку автономного сканирования поверхности, которое является одной из функций подпрограммы автономного сбора данных о состоянии накопителя (off-line data collection). При выполнении этой функции, накопитель выполняет полное сканирование поверхности путем чтения каждого сектора с замещением ненадежных секторов на запасные из резервной области (spare area) для предотвращения потери пользовательских данных.

Примечание! Если во время выполнения сканирования накопитель получает команду по интерфейсу, то процесс сканирования прерывается и накопитель приступает к обработке поступившей команды. При этом гарантируется максимальное время реагирования на поступившую команду — до 2 секунд.

Встроенные функции самоконтроля (self-test)

Практически с момента появления стандарта S.M.A.R.T. II, в большинстве накопителей появилась новая функция — внутренняя диагностика и самоконтроль, для углубленного контроля состояния механики накопителя, поверхности дисков и т.п. Для запуска этой функции, в набор команд S.M.A.R.T. была введена новая команда — SMART EXECUTE OFF-LINE IMMEDIATE. Результат работы сохраняется либо в специализированных атрибутах, либо отдельным параметром среди других данных в атрибутах

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

Методы тестирования.

Существует два способа запуска тестов S.M.A.R.T.: автономный (off-line) или монопольный (captive). Результат теста всегда сохраняется накопителем в данных S.M.A.R.T.

При автономном запуске накопитель сообщает о успешном завершении команды до ее фактического исполнения и только после этого выполняет тест. При этом, по интерфейсу флаг «занято» (busy) не выставляется и накопитель в любой момент готов приступить к выполнению очередной интерфейсной команды, приостанавливая работу теста. Фактически, тест выполняется в фоновом режиме.

При запуске теста в монопольном режиме, по интерфейсу выставляется флаг «занято» (busy) и накопитель начинает непосредственное выполнение теста в режиме реального времени. Любая интерфейсная команда во время выполнения этого теста приведет к его прерыванию и остановке, после чего накопитель приступит к обработке поступившей команды.

Монитор параметров S.M.A.R.T. программа SIGuardian.

Существует большое количество программ, контролирующих SMART, это может быть специально направленная программа (Drive Health, SIGuardian), или программа, содержащая контроль параметров SMART как дополнительную функцию. На мой взгляд, наиболее функциональной является SIGuardian (siguardian.ru). Программа предоставляет возможность следить за практически всеми атрибутами SMART, имеет приятный интерфейс, и обладает большим количеством настроек.

Общие сведения о дисках.

Монитор параметров S.M.A.R.T. программа SIGuardian.

Рис. 1

Общие сведения о дисках

Рис. 2

Закладка «Общие» содержит общую информацию о выбранном жестком диске. В левой половине указаны: технические характеристики, такие как объем диска, количество цилиндров, головок и т.п.; режим работы диска в настоящий момент (PIO, multiword DMA, UDMA); поддерживаемые режимы работы диска (только в Расширенном режиме). В правой половине показывается логотип фирмы-производителя жесткого диска и ниже – общая информация о диске: модель диска, серийный номер диска, дата/ревизия прошивки микропрограммы.

Обратите внимание, на рис. 1 отсутствует показание температуры. Диск достаточно старый и не обладает таким сенсором.

Общие сведения S.M.A.R.T.

Общие сведения S.M.A.R.T.

Рис. 3.

Закладка «S.M.A.R.T.» показывает общую информацию о состоянии диска на основе S.M.A.R.T. атрибутов или S.M.A.R.T. – информацию:

1.Дату начала мониторинга S.M.A.R.T. – т.е. дату, когда вы начали контроль за состоянием диска при помощи SIGuardian. Чаще всего, это дата первого запуска SIGuardian.

2. Ближайшую прогнозируемую дату T.E.C. (ThresholdExceedCondition) – т.е. дату, когда по прогнозам SIGuardian один из S.M.A.R.T. атрибутов достигнет порогового (критического) значения.

S.M.A.R.T. подробно

S.M.A.R.T. подробно

Рис.4.

Закладка «Подробно» предназначена для отображения полной информации о S.M.A.R.T.-атрибутах диска. Она показывает:

1. Attribute name – Графическое отображение значения атрибута. При наводке указателя мыши на него показывается в окне всплывающей подсказки более подробное текстовое описание смысла этого атрибута;

2.1/month – скорость падения атрибута – на сколько пунктов в месяц упало значение атрибута. Этот коэффициент вычисляется автоматически при любом изменении атрибутов S.M.A.R.T. для каждого атрибута в отдельности. Вычисление производится ежедневно, поэтому относитесь нормально к колебаниям этого показателя, особенно сразу после изменения атрибута;

3.Value – значение атрибута – текущее значение данного атрибута S.M.A.R.T.;

4.Threshold – пороговое (критическое) значение атрибута – значение, величину которого производитель жесткого диска считает критической и при достижении которого вполне вероятен выход диска из строя;

5.T.E.C. – Threshold Exceeds Condition – предполагаемая дата, когда данный атрибут достигнет порогового значения, иначе говоря, дата возможного выхода из строя диска. Прогноз этой даты делается на основе показателя «скорости падения атрибута», поэтому не удивляйтесь сильным колебаниям даты сразу после изменения атрибутов S.M.A.R.T.;

6.Worst – худшее значение атрибута – самое худшее (минимальное) значение, которое данный атрибут принимал за всё время жизни жесткого диска. Может использоваться чисто в ознакомительных целях;

7.Raw — «чистое» значение атрибута – просто числовое значение атрибута в чистом, необработанном виде.

Настройки

Настройки

Рис. 5.

Закладка «Настройка» предназначена для самостоятельной настройки пользователем параметров SIGuardian для работы на компьютере. Если вы не считаете себя опытным пользователем, рекомендуем воспользоваться «Мастером настройки» — он поможет вам выбрать наиболее подходящие параметры работы.

Основные и наиболее важные настройки:

При загрузке проверка и выход – отметьте этот режим, если вы хотите чтобы SIGuardian проверял состояние S.M.A.R.T. только при загрузке операционной системы.

Общие настройки для всех дисков– SIGuardian будет использовать общие настройки для всех дисков в компьютере. Они включают: контроль S.M.A.R.T., период опроса S.M.A.R.T. и адрес электронной почты для сообщений. Вы можете установить общие или индивидуальные для каждого диска параметры.

Включить контроль S.M.A.R.T.– при выключении этого режима SIGuardian не будет проверять этот диск (или все диски) на значения атрибутов S.M.A.R.T.

Режим работы – Обычный или Расширенный – Обычный режим – основной для пользователей. В этом режиме SIGuardian показывает значение атрибута, пороговое значение и T.E.C., скорость падения атрибута. На закладке «Общее» Вы не увидите информации о поддерживаемых диском режимах работы (передачи данных). В расширенном режиме дополнительно показывают Худшее и Чистое (Raw) значение атрибута и полную информацию о диске на закладке «Общее».

Опрос S.M.A.R.T. – установите здесь период опроса S.M.A.R.T. при работе SIGuardian фоном.

Отчеты на e-mail – введите здесь адрес электронной почты, на который SIGuardian должен посылать сообщения. Вы не должны видеть никаких сообщений при работе в этом случае.

WiseControl – информация только о значительных изменениях (ухудшениях) параметров S.M.A.R.T.

Hibernate on overheat temperature– если температура HDD превышает установленное значение, компьютер переходит в режим hibernate.

Петров Б.М., Уткина О.Н. АНАЛИЗ ОСОБЕННОСТЕЙ ОЦЕНКИ ЖИВУЧЕСТИ СЕРВЕРНЫХ ПРОГРАММНЫХ СРЕДСТВ НАНОПРОЦЕССОРНЫХ СИСТЕМ

При разработке серверных («облачных») систем, использующих новейшие достижения наноэлектроники, необходимо рассмотреть основные особенности программных средств (ПС) серверных нанопроцессор-ных систем (СНПС), которые влияют на оценку живучести СНПС. В статье рассмотрены отличие серверных технологий от клиентских.

Разработка современных серверных («облачных») систем, базирующихся на новых методах обработки информации и использующих новейшие достижения наноэлектроники, потребовала разработки новых моделей расчета живучести программных средств СНПС для основных типов серверов: -print, -mail, -web,

-ftp, -vpn, -DHCP, -DNS, -proxy, сервер БД.

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

Использование новых сложных методов обработки информации, значительно усложняет современные СНПС, а возрастающая ответственность выполняемых ими функций выдвигает на одно из первых мест проблему расчета живучести СНПС. В статье рассмотрены методы расчета и обеспечения живучести программных средств СНПС.

Проблема живучести программного обеспечения (ПО) возникла при создании больших вычислительных комплексов, когда трудоемкость и стоимость технических средств (логических элементов и приборов памяти) стала непрерывно снижаться, а стоимость и трудоемкость разработки ПО стала повышаться.

В настоящее время в Интернете находятся десятки миллиардов к пакетов (1010), которые имеют емкость десятки миллиардов байт информации (1010), которые обрабатываются на серверах с производительностью сотни миллиардов (1011), производительность серверных систем равна произведению тактовой частоты на разрядность системной шины данных, в итоге мы имеем информационную сложность Интернета 1031, которая должна обеспечиваться новыми моделями расчета и обеспечения живучести.

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

Особенностями СНПС, которые обеспечивают высокую защищенность за счет живучести и безопасности, являются:

— конфигурирование массива с избыточностью данных;

— конфигурирование CRON;

— конфигурирование LVM;

— MD5-sum для контроля целостности;

— проверка на spy, и на back door;

— наличие firewall и clam;

— наличие межсетевых экранов и сканеров безопасности;

— наличие политики безопасности сетевого оборудования;

— наличие системы аутентификации и авторизации;

— наличие системы обнаружения атак;

— наличие системы антивирусной защиты;

— ограничения на ввод ID и шифрование каналов.

Особенностями СНПС, которые обеспечивают высокую функциональность за счет быстродействия и доступа в Интернет, являются:

— оптимальная настройка маршрутизации;

— оптимизация пропускной способности сети;

— планирование приоритетов вторичных процессов;

— балансировка нагрузки и многоканальность;

— наличие системы от несанкционированного доступа;

— дефрагментация и физическая чистка HDD;

— автоматизация уведомлений;

— делегирование доступа и чистка баз данных.

Особенностями СНПС, которые обеспечивают высокую работоспособность за счет системы обслуживания и стабильности, являются:

— поиск и удаление временных файлов;

— поиск и удаление .bac файлов;

— поиск и удаление битых ссылок;

— регулярное и своевременное обновление всей системы;

— RAID с избыточностью;

— наличие вторичных серверов и нескольких внешних IP;

— наличие ИБП и сетевых фильтров.

Вероятность достижения требуемого уровня функциональности СНПС сильно зависит от:

— допустимого коэффициента нагрузки (0,1 — 0,8) и от балансировки ее;

— возможности перераспределения обязанностей, коэффициента

делегирования задач (0,3 — 0,9) вторичным серверам;

— коэффициента конфигурации и полноты, глубины и достоверности

проверок (число точек контроля в серверах);

— сложности выполняемых задач, коэффициента ресурсоемкости задач (0,1

— 1,0) при построении очередей задач.

При этом сервер должен выдерживать не менее 98% атак, а система резервного копирования должна каждый день делать инкрементальное резервное копирование и раз в неделю полное резервное копирование, а источник бесперебойного питания должен обеспечивать работу сервера не менее 8 часов, а

СНПС должна уметь обрабатывать не менее 1000 обращений к базе данных. При конфигурировании необходимо обращать особое внимание на самые важные для данной ситуации характеристики и необходимо проводить постоянный мониторинг для своевременного обнаружения и исправления возникающих проблем при обслуживании сервера.

Для получения максимальной вероятности достижения требуемого уровня функциональности СНПС необходимо в первую очередь обеспечивать:

— оптимальное построение очередей задач;

— разработку адаптивной системы резервного копирования под текущие задачи;

— высокий уровень безопасности за счет анализа всех направлений, по которым можно ожидать атаки;

— постоянное поддержание баз данных в компонентном состоянии;

— мониторинг, дефрагментацию и регулярную чистку сервера.

Внедрение микропроцессоров (МП), сверхбольших интегральных схем (СБИС) памяти, цифровых сигнальных процессоров (ЦСП), программи-руемых логических интегральных схем (ПЛИС), микроконтроллеров (МК) и нанопроцессоров (НП) и привело к значительному увеличению сложности ПО. Существует прогноз, что к 2012 году, когда будут внедрены разрабатываемые сейчас системы, вклад ПО составит более 95 % стоимости технических вычислительных средств.

В настоящее время существует несколько моделей оценки живучести ПС микропроцессоров, модели оценки живучести ПС нанопроцессоров с учетом их особенностей, пока в литературе не рассматривались. Все известные модели оценки живучести ПС МП можно разделить на две группы.

В первой группе моделей на этапе разработки ПО определяется показатель сложности ПО. Оцениваются количественные и качественные характеристики: общее время выполнения алгоритма с учетом

сложности арифметических и логических команд и их длительности (длина программы Тго), ее объем, уровень и интеллектуальное содержание программы. Следует отметить, что рассматриваемые модели имеют два серьезных недостатка, которые на порядок и более ухудшают оценку сложности. Во-первых, они не учитывают структуру алгоритма, а во-вторых, объем и время программирования изменяется нелинейно при усложнении алгоритма, поэтому приходится корректировать наработку на ошибку в ПС ТПО .

Во второй группе моделей для прогнозирования одной из важнейших характеристик живучести ПО -интенсивности ошибок используют модели, базирующиеся на теории надежности технических систем. Эти модели чаще всего используются на практике, т.к. они позволяют определить следующие показатели живучести ПО: времена появления ошибок; результирующее время между ошибками; количество ошибок за

заданный период времени.

Как в технических средствах, в качестве показателей живучести используются: функция надежности (вероятность безошибочной работы) — , среднее время между появлениями ошибок в ПО — Тср, интенсивность ошибок ^по(Ъ), которую обозначают через функцию риска Z(t) (количество, скорость, темп

выявления ошибок) условную вероятность того, что ошибка произойдет в интервале времени ( ^ t + А ^ при условии, что программа не отказывала в течение времени ^

Модели второй группы отличаются между собой теми ограничениями и предположениями, которым они соответствуют. Поэтому необходимо очень строго сравнивать предположения, принятые в конкретной модели.

При исследовании живучести ПО предполагаем, что в процессе функционирования в СНПС возникают различные виды отказов (сбои, перемежающиеся отказы, ошибки, внезапные отказы), включающие отказы технических и программных средств (ТС, ПС).

Живучесть СНПС определяется совместной вероятностью Рснпс = Ртс(А) х Рпо(В/А) , где Ртс(А) — безусловная вероятность безотказной работы технических средств; Рпо(В/А) — условная вероятность безотказной работы программного обеспечения при условии, что в технических средствах отказ не произошел. Как отмечено в [1], целесообразно принять допущение о независимости отказов в ТС и ПС,

Т.е. РБНПС = Ртс (А) х Рпо (в) .

Изменение системной функции СНПС при возникновении различных видов отказов происходит случайным образом и описывается различными моделями, применение которых позволяет при расчете живучести СНПС вычислять вероятностные характеристики, адекватно отражающие реальные процессы взаимодействия различных видов отказов. При выборе показателей живучести СНПС для проведения расчетов целесообразно использовать два подхода, которые в настоящее время применяются для создания надежных технических и программных средств и приведены в табл. 1.

В первом подходе, который для программных средств называется подходом «безотказности» ( инто-лерантным ) «правильностью» программ, задается показатель ТО (Топо). Этот показатель характеризует уровень создания правильного программного обеспечения. Показатель То зависит от сложности программного обеспечения, от количества функциональных и логических команд, от использованной технологии программирования, от времени отладки ПО.

Таблица 1Выбор номенклатуры показателей безотказности технических и программных средств серверных нанопроцессорных систем вида II (СНПС)

Надежность и живучесть НПС Надежность элементной базы (нанопроцессоры и команды) Интолерантный подход Живучесть структуры Толерантный подход Живучесть архитектуры (структуры и протоколы обмена данных и управления) Толерантный подход

Свойство Показатель Свойство Показатель Свойство Показатель

Технические средства НПС Безотказность То.тс — средняя наработка на отказ в технических средствах Отказо- устойчи- вость Р (^ — вероятность, что не произойдет срыва выполнения задания, из-за отказов в технических средствах Безотказ- ность, отказо- устойчи- вость ТО.ТС — средняя наработка на отказ в технических средствах; Р (^ — вероятность, что не произойдет срыва

выполнения задания, из-за отказов в технических средствах

Программные средства НПС Правильность То.пс — средняя наработка на ошибку в программных средствах Устойчи- вость Р (^ — вероятность, что не произойдет срыва решения задачи, из-за появления ошибки в программных средствах Правиль- ность (коррект- ность), устойчи- вость ТО.ПС — средняя наработка на ошибку в программных средствах; Р (^ — вероятность, что не произойдет срыва решения задачи, из-за появления ошибки в программных средствах

Изделия вида II (СНПС), которые в процессе эксплуатации могут находиться, кроме двух состояниях — работоспособном или неработоспособном, в некотором числе частично неработоспособных состояний, в которые они переходят в результате частичного отказа, что соответствует свойству живучести. Живучесть архитектуры это совместный учет отказов элементной базы, устойчивость структуры и протоколов обмена данных и управления для обеспечения эффективной работы за счет корректного отключения т количества ядер, различных уровней КЭШ — памяти, различных ступеней конвейеров и различных микротехнологий.

Повышение значения показателя Топо может быть за счет уменьшения количества и сложности команд, совершенствования программирования и методов тестирования, за счет внедрения методов автоматического доказательства правильности программ.

Второй подход называется проектированием СНПС «с допуском на сбой» (толерантным), «устойчивостью» программ и задается показателем Р(^ — вероятностью успешного выполнения задания или ТС средней наработкой на ошибку, приводящей к срыву выполнения задания. Этот показатель характеризует устойчивость ПО к различного рода ошибкам, искажениям, отказам и зависит от различных видов избыточности (информационной, временной, алгоритмической), введенных в СНПС и согласованных с механизмами типовых ошибок.

По мере увеличения сложности программных средств СНПС второй подход становится более перспективным и более экономичным, чем первый. Универсальность СНПС позволяет осуществлять последовательный переход от проектирования специализированных СНПС частного применения к СНПС универсального применения, которые имеют большую естественную алгоритмическую и архитектурную избыточность. Кроме того, все мероприятия по повышению надежности, применяемые в первом подходе автоматически приводят к повышению показателей надежности второго подхода.

Программное обеспечение в СНПС представляет одну из областей возникновения ошибок и значительно влияет на работоспособность устройства. Для оценки безотказности программного обеспечения построена укрупненная модель, позволяющая учесть основные особенности ПО в СНПС. Для адекватного отражения в модели реальных процессов отказов ПО предварительно проведен анализ видов и механизмов ошибок. На основе анализа приняты следующее определения и допущения, которые позволяют построить инженерную модель расчета безотказности ПО СНПС:

— программа называется правильной, если она выдает правильные результаты при правильных исходных данных и при отсутствии ошибок в командах и константах;

— программа называется устойчивой, если она выдает правильные результаты при наличии ошибок в исходных данных или в командах, т.е. возникающие ошибки в процессе функционирования нейтрализуются;

— отказ ПО определяется как недопустимое отклонение результатов выполнения задания от заданных в ТУ, по точности, по времени;

— безотказность ПО характеризуется вероятностью безотказной (безошибочной) работы ПО в течение заданного времени, в заданных условиях (т.е. с требуемой точностью и быстродействием), для данного СНПС в комплект которого включено ПО;

— для проведения расчетов в качестве основной характеристики безотказности ПО используется интенсивность отказов ^цо ;

— в начале отладки ПО содержит N0 ошибок, которые возникают на этапе разработки из-за неправильного кодирования, ошибок в последовательности передачи управления, несоответствия условий обработки заданным требованиям по точности, быстродействию, области допустимых значений, из-за неправильного описания или неполного учета возникающих ситуаций. N0 не зависит от времени отладки, а зависит от сложности ПО, типа НП и используемой технологии программирования;

— устранение ошибок, в небольших по объему программных модулях СНПС, происходит без внесения новых ошибок, т.е. считаем, что интенсивность ошибок ПО является не возрастающей функцией;

— проведение полного и тщательного анализа типа ошибок и его влияния на ПО не реально из-за множества логических путей, поэтому проверка ПО в СНПС проводится выборочно. Адекватное отражение реальных условий работы можно получить при тестировании наиболее вероятного множества входных данных, которое охватывает наиболее вероятные ветви алгоритма и наиболее сложные и вероятные сочетания условных переходов.

Точное определение вида закона распределения времени безотказной работы ПО СНПС на практике получить очень трудно. Попытки описать время безотказной работы ПО двух- или трехпараметрическим законом распределения успехов не имели, так как точность увеличивалась незначительно, а сложность вычислений из-за сложности определения дополнительных параметров увеличилась в несколько раз.

Обработка множества гистограмм, приведенных в литературе, показывает хорошее совпадение экспериментальных данных с теоретическими кривыми экспоненциального закона. Отклонения, которые наблюдаются в некоторых гистограммах на начальном участке, объясняются растягиванием сроков ввода и начала обработки информации по отказам у различных пользователей. Некоторые разработчики из-за большого потока ошибок на начальном этапе не успевают их анализировать и поэтому снижают интенсивность отработки ПО.

Время функционирования ПО не влияет на остаточное время жизни ПО (так как в ПО не происходят процессы, вызывающие износ и старение, а этим свойством обладает только экспоненциальное распределение), то логично принять этот закон для описания безотказности, при котором мы получаем оценку снизу.

Различают последствия при возникновении ошибок:

а) средние (45%) и незначительные (ЗО%) последствия при ошибках в данных, которые искажают данные, точность вычислений (т.е. ухудшают характеристики СНПС) , эти ошибки обнаруживаются и исправляются при циклической обработке;

б) катастрофические (5%) и серьезные (20%) последствия при ошибках в командах, в последовательности передачи управления, которые приводят к искажению программы и срыву решения задачи.

В таблицах 2, 3, 4, 5 приведена классификация ошибок ПО по типам, этапам возникновения и обнаружения ошибок [1].

Таблица 2

Тип ошибки Вес ошибки, %

Неполная или ошибочная спецификация 25

Отклонение от спецификации 15

Нарушение стандартов программирования 14

Ошибочная выборка данных 10

Логическая ошибка в последовательности операций 9

Ошибка в арифметической операции 8

Ошибки в документации и в исходных данных 8

Ошибка в обработке прерываний 8

Ошибка в константах 3

Таблица 3

Причины ошибок Вес ошибки, %

Ошибки в числовых значениях 20

Недостаточные требования к быстродействию 18

Недостаточные требования к точности 15

Ошибочные символы и знаки 14

Ошибки оформления 12

Ошибочные модели описания аппаратуры 11

Ошибочные и неопределенные исходные данные 10

Таблица 4

Этап, на котором допущена ошибка Вес ошибки, %

Выбор цели 10

Алгоритмизация и спецификация 40

Кодирование 43

Отладка 3

Опытная эксплуатация 2

Тиражирование и поддержание 2

Таблица 5

Этап, на котором обнаружена ошибка Вес ошибки, %

Разработка контрольных примеров и тестов 20

Отладка 24

Натурные испытания и моделирование 22

Стыковка с другими программами при комплексных испытаниях 16

Сдача заказчику и эксплуатация 18

Литература

1. Петров Б.М., Уткина О.Н. Применение компьютерных технологий для разработки меЬ-портала экспертной системы анализа живучести информационных систем. Сб. трудов межд. научно-практич. конф. «Информационные технологии в образовании, науке и производстве» г. Серпухов 2008 г., с.128-132.

6.5.1. Весовой коэффициент двоичных векторов и расстояние между ними

6.5.2. Минимальное расстояние для линейного кода

6.5.3. Обнаружение и исправление ошибок

6.5.3.1. Распределение весовых коэффициентов кодовых слов

6.5.3.2.Одновременное обнаружение и исправление ошибок

6.5.4. Визуализация пространства 6-кортежей

6.5.5. Коррекция со стиранием ошибок

6.5.1. Весовой коэффициент двоичных векторов и расстояние между ними

Конечно же, понятно, что правильно декодировать можно не все ошибочные комбинации. Возможности кода для исправления ошибок в первую очередь определяются его структурой. Весовой коэффициент Хэмминга (Hamming weight) w(U) кодового слова U определяется как число ненулевых элементов в U. Для двоичного вектора это эквивалентно числу единиц в векторе. Например, если U=100101101, то w(U) = 5. Расстояние Хэмминга (Hamming distance) между двумя кодовыми словами U и V, обозначаемое как d(U, V), определяется как количество элементов, которыми они отличаются.

U=100101101

V=011110100

d(U,V)=6

Согласно свойствам сложения по модулю 2, можно отметить, что сумма двух двоичных векторов является другим двоичным вектором, двоичные единицы которого расположены на тех позициях, которыми эти векторы отличаются.

U + V=111011001

Таким образом, можно видеть, что расстояние Хэмминга между двумя векторами равно весовому коэффициенту Хэмминга их суммы, т.е. d(U, V) = w(U + V). Также видно, что весовой коэффициент Хэмминга кодового слова равен его расстоянию Хэмминга до нулевого вектора.

6.5.2. Минимальное расстояние для линейного кода

Рассмотрим множество расстояний между всеми парами кодовых слой в пространстве Vn. Наименьший элемент этого множества называется минимальным расстоянием кода и обозначается dmin. Как вы думаете, почему нас интересует именно минимальное расстояние, а не максимальное? Минимальное расстояние подобно наиболее слабому звену в цепи, оно дает нам меру минимальных возможностей кода и, следовательно, характеризует его мощность.

Как обсуждалось ранее, сумма двух произвольных кодовых слов дает другой элемент пространства кодовых слов. Это свойство линейных кодов формулируется просто: если U и V — кодовые слова, то и W = U + V тоже должно быть кодовым словом. Следовательно, расстояние между двумя кодовыми словами равно весовому коэффициенту третьего кодового слова, т.е. d(U, V) = w(U + V) = w(W). Таким образом, минимальное расстояние линейного кода можно определить, не прибегая к изучению расстояний между всеми комбинациями пар кодовых слов. Нам нужно лишь определить вес каждого кодового слова (за исключением нулевого вектора) в подпространстве; минимальный вес соответствует минимальному расстоянию dmin. Иными словами, dmin соответствует наименьшему из множества расстояний между нулевым кодовым словом и всеми остальными кодовыми словами.

6.5.3. Обнаружение и исправление ошибок

Задача декодера после приема вектора r заключается в оценке переданного кодового слова Ui. Оптимальная стратегия декодирования может быть выражена в терминах алгоритма максимального правдоподобия (см. приложение Б); считается, что передано было слово Ui, если

(6.41)

Поскольку для двоичного симметричного канала (binary symmetric channel — BSC) правдоподобие Ui относительно r обратно пропорционально расстоянию между r и U, можно сказать, что передано было слово Ui, если

(6.42)

Другими словами, декодер определяет расстояние между r и всеми возможными переданными кодовыми словами Uj, после чего выбирает наиболее правдоподобное Uj, для которого

(6.43)

где М = 2k — это размер множества кодовых слов. Если минимум не один, выбор между минимальными расстояниями является произвольным. Наше обсуждение метрики расстояний будет продолжено в главе 7.

На рис. 6.13 расстояние между двумя кодовыми словами U и V показано как расстояние Хэмминга. Каждая черная точка обозначает искаженное кодовое слово. На рис. 6.13, а проиллюстрирован прием вектора r1 находящегося на расстоянии 1 от кодового слова U и на расстоянии 4 от кодового слова V. Декодер с коррекцией ошибок, следуя стратегии максимального правдоподобия, выберет при принятом векторе r1 кодовое слово U. Если r1 получился в результате появления одного ошибочного бита в переданном векторе кода U, декодер успешно исправит ошибку. Но если же это произошло в результате 4-битовой ошибки в векторе кода V, декодирование будет ошибочным. Точно так же, как показано на рис. 6.13, б, двойная ошибка при передаче U может привести к тому, что в качестве переданного вектора будет ошибочно определен вектор r2, находящийся на расстоянии 2 от вектора U и на расстоянии 3 от вектора кода V. На рис. 6.13 показана ситуация, когда в качестве переданного вектора ошибочно определен вектор r3, который находится на расстоянии 3 от вектора кода U и на расстоянии 2 от вектора V. Из рис. 6.13 видно, что если задача состоит только в обнаружении ошибок, а не в их исправлении, то можно определить искаженный вектор — изображенный черной точкой и представляющий одно-, двух-, трех- и четырехбитовую ошибку. В то же время пять ошибок при передаче могут привести к приему кодового слова V, когда в действительности было передано кодовое слово U; такую ошибку невозможно будет обнаружить.

Из рис. 6.13 можно видеть, что способность кода к обнаружению и исправлению ошибок связана с минимальным расстоянием между кодовыми словами. Линия решения на рисунке служит той же цели, что и в процессе демодуляции, — для разграничения областей решения.

а)

б)

в)

Рис. 6.13. Возможности определения и исправления ошибок: а) принятый вектор r1; б) принятый вектор r2; в) принятый вектор r3

В примере, приведенном на рис. 6.13, критерий принятия решения может быть следующим: выбрать U, если r попадает в область 1, и выбрать V, если r попадает в область 2. Выше показывалось, что такой код (при dmin = 5) может исправить две ошибки. Вообще, способность кода к исправлению ошибок t определяется, как максимальное число гарантированно исправимых ошибок на кодовое слово, и записывается следующим образом [4].

(6.44)

Здесь означает наибольшее целое, не превышающее х. Часто код, который исправляет все искаженные символы, содержащие ошибку в t или меньшем числе бит, также может исправлять символы, содержащие t +1 ошибочных бит. Это можно увидеть на рис. 6.11. В этом случае dmin = 3, поэтому из уравнения (6.44) можно видеть, что исправимы все ошибочные комбинации из t = 1 бит. Также исправима одна ошибочная комбинация, содержащая / +1 (т.е. 2) ошибочных бит. Вообще, линейный код (n, k), способный исправлять все символы, содержащие t ошибочных бит, может исправить всего 2nk ошибочных комбинаций. Если блочный код с возможностью исправления символов, имеющих ошибки в t бит, применяется для исправления ошибок в двоичном симметричном канале с вероятностью перехода р, то вероятность ошибки сообщения Рм(вероятность того, что декодер совершит неправильное декодирование и п-битовый блок содержит ошибку) можно оценить сверху, используя уравнение (6.18).

(6.45)

Оценка переходит в равенство, если декодер исправляет все ошибочные комбинации, содержащие до t ошибочных бит включительно, но не комбинации с числом ошибочных бит, большим t. Такие декодеры называются декодерами с ограниченным расстоянием. Вероятность ошибки в декодированном бите РB зависит от конкретного кода и декодера. Приближенно ее можно выразить следующим образом [5].

(6.46)

В блочном коде, прежде чем исправлять ошибки, необходимо их обнаружить. (Или же код может использоваться только для определения наличия ошибок.) Из рис. 6.13 видно, что любой полученный вектор, который изображается черной точкой (искаженное кодовое слово), можно определить как ошибку. Следовательно, возможность определения наличия ошибки дается следующим выражением.

(6.47)

Блочный код с минимальным расстоянием dmin гарантирует обнаружение всех ошибочных комбинаций, содержащих dmin — 1 или меньшее число ошибочных бит. Такой код также способен обнаружить и большую ошибочную комбинацию, содержащую dmin или более ошибок. Фактически код (n, k) может обнаружить 2n – 2k ошибочных комбинаций длины п. Объясняется это следующим образом. Всего в пространстве 2n n-кортежей существует 2n -1 возможных ненулевых ошибочных комбинаций. Даже правильное кодовое слово — это потенциальная ошибочная комбинация. Поэтому всего существует 2k -1 ошибочных комбинаций, которые идентичны 2k -1 ненулевым кодовым словам. При появлении любая из этих 2k — 1 ошибочных комбинаций изменяет передаваемое кодовое слово Uj на другое кодовое слово Uj. Таким образом, принимается кодовое слово Uj и его синдром равен нулю. Декодер принимает Uj за переданное кодовое слово, и поэтому декодирование дает неверный результат. Следовательно, существует 2k -1 необнаружимых ошибочных комбинаций. Если ошибочная комбинация не совпадает с одним из 2k кодовых слов, проверка вектора r с помощью синдромов дает ненулевой синдром и ошибка успешно обнаруживается. Отсюда следует, что существует ровно 2n-2k выявляемых ошибочных комбинаций. При больших n, когда 2k<<2n, необнаружимой будет только незначительная часть ошибочных комбинаций.

6.5.3.1. Распределение весовых коэффициентов кодовых слов

Пусть Aj количество кодовых слов с весовым коэффициентом j в линейном коде (п, k). Числа A0,A1,…,An называются распределением весовых коэффициентов этого кода. Если код применяется только для обнаружения ошибок в двоичном симметричном канале, то вероятность того, что декодер не сможет определить ошибку, можно рассчитать, исходя из распределения весовых коэффициентов кода [5].

(6.48)

где р — вероятность перехода в двоичном симметричном канале. Если минимальное расстояние кода равно dmin значения от А1 до , равны нулю.

Пример 6.5. Вероятность необнаруженной ошибки в коде

Пусть код (6,3), введенный в разделе 6.4.3, используется только для обнаружения наличия ошибок. Рассчитайте вероятность необнаруженной ошибки, если применяется двоичный симметричный канал, а вероятность перехода равна 10-2.

Решение

Распределение весовых коэффициентов этого кода выглядит следующим образом: A0=1, А1= А2 = 0, A3 = 4, A5 = 0, A6 = 0. Следовательно, используя уравнение (6.48), можно записать следующее.

Для р = 10-2 вероятность необнаруженной ошибки будет равна 3,9 х 10-6.

6.5.3.2. Одновременное обнаружение и исправление ошибок

Возможностями исправления ошибок с максимальным гарантированным (t), где t определяется уравнением (6.44), можно пожертвовать в пользу определения класса ошибок. Код можно использовать для одновременного исправления α и обнаружения β ошибок, причем , а минимальное расстояние кода дается следующим выражением [4].

(6.49)

При появлении t или меньшего числа ошибок код способен обнаруживать и исправлять их. Если ошибок больше t, но меньше е+1, где е определяется уравнением (6.47), код может определять наличие ошибок, но исправить может только некоторые из них. Например, используя код с dmin = 7. можно выполнить обнаружение и исправление со следующими значениями α и β.

Заметим, что исправление ошибки подразумевает ее предварительное обнаружение. В приведенном выше примере (с тремя ошибками) все ошибки можно обнаружить и исправить. Если имеется пять ошибок, их можно обнаружить, но исправить можно только одну из них.

6.5.4. Визуализация пространства 6-кортежей

На рис. 6.14 визуально представлено восемь кодовых слов, фигурирующих в примере из раздела 6.4.3. Кодовые слова образованы посредством линейных комбинаций из трех независимых 6-кортежей, приведенных в уравнении (6.26); сами кодовые слова образуют трехмерное подпространство. На рисунке показано, что такое подпространство полностью занято восемью кодовыми словами (большие черные круги); координаты подпространства умышленно выбраны неортогональными. На рис. 6.14 предпринята попытка изобразить все пространство, содержащее шестьдесят четыре 6-кортежей, хотя точно нарисовать или составить такую модель невозможно. Каждое кодовое слово окружают сферические слои или оболочки. Радиус внутренних непересекающихся слоев — это расстояние Хэмминга, равное 1; радиус внешнего слоя — это расстояние Хэмминга, равное 2. Большие расстояния в этом примере не рассматриваются. Для каждого кодового слова два показанных слоя заняты искаженными кодовыми словами. На каждой внутренней сфере существует шесть таких точек (всего 48 точек), представляющих шесть возможных однобитовых ошибок в векторах, соответствующих каждому кодовому слову. Эти кодовые слова с однобитовыми возмущениями могут быть соотнесены только с одним кодовым словом; следовательно, такие ошибки могут быть исправлены. Как видно из нормальной матрицы, приведенной на рис. 6.11, существует также одна двухбитовая ошибочная комбинация, которая также поддается исправлению. Всего существует разных двухбитовых ошибочных комбинаций, которыми может быть искажено любое кодовое слово, но исправить можно только одну из них (в нашем примере это ошибочная комбинация 010001). Остальные четырнадцать двухбитовых ошибочных комбинаций описываются векторами, которые нельзя однозначно сопоставить с каким-либо одним кодовым словом; эти не поддающиеся исправлению ошибочные комбинации дают векторы, которые эквивалентны искаженным векторам двух или большего числа кодовых слов. На рисунке все (56) исправимые кодовые слова с одно- и двухбитовыми искажениями показаны маленькими черными кругами. Искаженные кодовые слова, не поддающиеся исправлению, представлены маленькими прозрачными кругами.

Рис, 6.14. Пример восьми кодовых слов в пространстве 6-кортежей

При представлении свойств класса кодов, известных как совершенные коды (perfect code), рис. 6.14 весьма полезен. Код, исправляющий ошибки в t битах, называется совершенным, если нормальная матрица содержит все ошибочные комбинации из t или меньшего числа ошибок и не содержит иных образующих элементов классов смежности (отсутствует возможность исправления остаточных ошибок). В контексте рис. 6.14 совершенный код с коррекцией ошибок в t битах — это такой код, который (при использовании обнаружения по принципу максимального правдоподобия) может исправить все искаженные кодовые слова, находящиеся на расстоянии Хэмминга t (или ближе) от исходного кодового слова, и не способен исправить ни одну из ошибок, находящихся на расстоянии, превышающем t.

Кроме того, рис. 6.14 способствует пониманию основной цели поиска хороших кодов. Предпочтительным является пространство, максимально заполненное кодовыми словами (эффективное использование введенной избыточности), а также желательно, чтобы кодовые слова были по возможности максимально удалены друг от друга. Очевидно, что эти цели противоречивы.

6.5.5. Коррекция со стиранием ошибок

Приемник можно сконструировать так, чтобы он объявлял символ стертым, если последний принят неоднозначно либо обнаружено наличие помех или кратковременных сбоев. Размер входного алфавита такого канала равен Q, а выходного —Q + 1; лишний выходной символ называется меткой стирания (erasure flag), или просто стиранием (erasure). Если демодулятор допускает символьную ошибку, то для ее исправления необходимы два параметра, определяющие ее расположение и правильное значение символа. В случае двоичных символов эти требования упрощаются — нам необходимо только расположение ошибки. В то же время, если демодулятор объявляет символ стертым (при этом правильное значение символа неизвестно), расположение этого символа известно, поэтому декодирование стертого кодового слова может оказаться проще исправления ошибки. Код защиты от ошибок можно использовать для исправления стертых символов или одновременного исправления ошибок и стертых символов. Если минимальное расстояние кода равно dmin, любая комбинация из ρ или меньшего числа стертых символов может быть исправлена при следующем условии [6].

(6.50)

Предположим, что ошибки появляются вне позиций стирания. Преимущество исправления посредством стираний качественно можно выразить так: если минимальное расстояние кода равно dmin, согласно уравнению (6.50), можно восстановить dmin-1 стирание. Поскольку число ошибок, которые можно исправить без стирания информации, не превышает (dmin-1)/2, то преимущество исправления ошибок посредством стираний очевидно. Далее, любую комбинацию из α ошибок и γ стираний можно исправить одновременно, если, как показано в работе [6],

(6.51)

Одновременное исправление ошибок и стираний можно осуществить следующим образом. Сначала позиции из у стираний замещаются нулями, и получаемое кодовое слово декодируется обычным образом. Затем позиции из у стираний замещаются единицами, и декодирование повторяется для этого варианта кодового слова. После обработки обоих кодовых слов (одно с подставленными нулями, другое — с подставленными единицами) выбирается то из них, которое соответствует наименьшему числу ошибок, исправленных вне позиций стирания. Если удовлетворяется неравенство (6.51), то описанный метод всегда дает верное декодирование.

Пример 6.6. Коррекция со стиранием ошибок

Рассмотрим набор кодовых слов, представленный в разделе 6.4.3.

000000 110100 011010 101110 101001 011101 110011 000111

Пусть передано кодовое слово 110011, в котором два крайних слева разряда приемник объявил стертыми. Проверьте, что поврежденную последовательность хx0011 можно исправить.

Решение

Поскольку , код может исправить = 2 стирания. В этом легко убедиться из рис. 6.11 или приведенного выше перечня кодовых слов, сравнивая 4 крайних правых разряда xx00l1 с каждым из допустимых кодовых слов. Действительно переданное кодовое слово — это ближайшее (с точки зрения расстояния Хэмминга) к искаженной последовательности.

Разница между этими ошибками — во времени их обнаружения. Ошибки компиляции, что очевидно из названия, обнаруживаются во время компиляции. Ошибки выполнения можно обнаружить при запуске программы, если повезёт, и на тестовых данных выполнится ветка кода, содержащая ошибку.


Комментировать

Ошибки компиляции — ошибки в синтаксисе.
Ошибки исполнения — ошибки в логике.

Это если в двух словах.

jcmvbkbc

jcmvbkbc

@jcmvbkbc

«I’m here to consult you» © Dogbert

Если есть что выполнять — будут ошибки выполнения. Если выполнять нечего — значит были ошибки компиляции (или линковки).


Комментировать

Понравилась статья? Поделить с друзьями:
  • Временная ошибка 500 цифровой код 5927
  • Время от времени ты будешь совершать ошибки это
  • Временная ошибка 500 гугл почта
  • Время подключения истекло ошибка cc23 мта
  • Временная ошибка 404 ваш аккаунт gmail временно недоступен