На рынке производителей RAID-контроллеров для недорогих систем существуют основные конкуренты. Наиболее известные из них — Promise Technologies и HighPoint Technologies. Их контроллерами оснащается каждая третья выпускаемая материнская плата. Еще один производитель, прежде работавший исключительно на рынке серверных систем, а ныне предлагающий продукцию и для недорогих настольных компьютеров, — это компания 3ware, Inc.
Продукция HighPoint ориентирована главным образом на продвинутых пользователей и бюджетные серверные системы. Продукцию класса hi-end этот производитель выпускать пока не торопится. Наиболее популярным в настоящее время является чип НРТ374, который представляет собой четырехканальный контроллер Ultra DMA/ATA133 RAID.
В то же время Promise Technologies уже на протяжении двух лет поставляет для наиболее требовательных клиентов системы серии SuperTrak. Эти системы позволяют с использованием IDE-винчестеров строить RAID-массивы пятого уровня. Что касается встроенных решений, то наиболее свежими продуктами данной компании являются двухка-нальный Serial ATA и одноканальный контроллер Ultra DMA/ATA133 RAID, размешенные на одном чипе под названием PDC20386.
Однако подобные чипы зачастую не уходят дальше поддержки уровней RAID 0, 1 и 0+1, поскольку встраивание дорогостоящих моделей RAID-контроллеров было бы слишком негибким решением, ориентированным на узкий круг потребителей.
3ware с момента своего основания была ориентирована на рынок корпоративных решений. Эта компания примечательна не только тем, что производит 12-канальные IDE-контроллеры, но также и тем, что единственная из всех поставляет контроллеры SATA RAID с поддержкой до 4, 8 и 12 устройств. При этом все платы RAID-контроллеров 3ware, рассчитанные на четыре и более канала, поддерживают уровень RAID 5 и могут быть использованы при построении нетривиальных систем хранения и обработки данных.
RAID — это определенный подход к обеспечению скорости, надежности и повышенной емкости хранения данных, основанный на использовании нескольких дисковых накопителей вместо одного. Фактически RAID позволяет взять несколько жестких дисков и использовать их как один с некоторыми преимуществами, которые определяются уровнем RAID. В зависимости от конкретных потребностей существует множество вариаций и реализаций RAID стоимостью от десятков и сотен долларов до десятков тысяч. Конечно, чем лучше реализовано то или иное решение на базе RAID, тем предположительно дороже оно обойдется. Наилучшего решения здесь, как и во многих других областях, нет — все во многом зависит от конкретной области применения.
Существует множество схем реализации (или уровней) RAID, но прежде чем перейти к их рассмотрению, остановимся более детально на главных концепциях, составляющих основу всех этих уровней.
Концепция массива и RAID-контроллера
Для начала давайте определимся, с чем именно мы имеем дело. Под дисковым массивом будем понимать объединенный в одну группу' набор жестких дисков. Когда говорят о RAID, то нужно отличать физические диски и их массивы от логических. Массивы физических дисков могут быть разделены или сгруппированы для создания одного или нескольких логических массивов. Последние, в свою очередь, могут быть поделены на логические диски, с которыми будет работать операционная система. Логические диски рассматриваются как отдельные жесткие диски, соответственно, они могут быть разбиты на разделы и отформатированы. Такое разделение может показаться немного запутанным, но многие реализации RAID-массивов относительно просты для понимания — по крайне мере, пока дело не дойдет до множества вложенных уровней RAID, используемых в реализациях RAID класса high-end.
Контроллер RAID управляет тем, как будут храниться и передаваться данные между физическими и логическими массивами. Он позволяет операционной системе работать с логическими дисками, не обращая внимания на схему реализации RAID-массива. Функции RAID-контроллера могут быть реализованы аппаратно или программно. Аппаратные реализации больше подходят для уровней RAID, требующих интенсивных вычислений. С учетом сегодняшнего уровня развития микропроцессоров программные реализации кажутся более приатекательными, однако центральный процессор может в конечном счете оказаться перегруженным тем объемом данных, вычисления над которыми ему придется осуществлять.
Зеркалирование (Mirroring)
Зеркалирование включает в себя обеспечение хранения двух копий одних и тех же данных на двух различных жестких дисках или массивах дисков — система фактически пишет данные одновременно на два диска. Этот подход является одним из двух технических приемов использования избыточных данных, которые применяются в RAID-массивах для защиты от потери основных. Преимущество очевидно: при выходе из строя одного жесткого диска или дискового массива система сможет продолжить работу за счет использования второй копии данных. Время простоя при использовании зеркалирования минимально, а восстановление данных весьма просто: нужно лишь воссоздать данные из рабочей копии.
На приведенной далее в блоке упрощенной диаграмме показано, как работает зеркалирование данных. А, В, и С представляют собой файлы, размещающиеся на каждом из дисков. При этом диски 1 и 2 необязательно должны быть отдельными физическими жесткими дисками — это могут быть дисковые массивы. Главное здесь то, что RAID-контроллер пишет одни и те же данные на каждый из зеркалируемых дисков. В этом случае каждый диск или дисковый массив хранит одну и ту же информацию. Можно несколько усложнить схему, введя разделение данных (striping). Это, не вдаваясь в подробности использования разделения данных, позволит повысить производительность всей системы.
Зеркалирование может представляться неплохим решением для обеспечения сохранности данных, однако платой за это оказывается повышенная стоимость и нерациональное использование дискового пространства, связанные с необходимостью хранения двух копий одних и тех же данных. Альтернативой зеркали-рованию может служить контроль четности, который мы сейчас рассмотрим.
Контроль четности
Контроль четности — это еще один способ использования избыточности данных в RAID-массивах. Данное понятие широко применяется, когда речь заходит о коммуникациях и обнаружении ошибок в передаче данных. Также контроль четности используется в микросхемах памяти, причем практически аналогично использованию этой концепции в RAID. К примеру, возьмем X элементов данных. Они могут быть использованы для создания элемента четности, и в итоге мы получим Х+1 элементов данных. Если будет потерян
один из Х+1 элементов данных, он может быть восстановлен при условии, что у нас остались X элементов.
Как правило, данные о четности создаются с использованием логической операции «исключающее ИЛИ» (XOR). Для тех, кто не знаком с принципом ее работы, приведена табл. 1 истинности для операции XOR.
Если взять два операнда XOR и результат этой операции, то любое из трех этих значений можно получить, имея два других, и это именно то, ради чего используется информация о четности. Таким образом, для хранения данных о четности для двух жестких дисков понадобится лишь один дополнительный диск. Это является очевидным преимуществом использования четности вместо зеркалирования, однако уровень отказоустойчивости в этом случае окажется не столь высоким.
Данные о четности необязательно будут храниться на одном диске — они могут быть распределены по всему дисковому массиву. Кроме того, как и в случае с зеркалированием, здесь может быть использовано разделение данных (striping). Основным ограничением в данном случае является то, что алгоритм подсчета четности, как правило, требует значительных вычислительных мощностей, что означает необходимость использова-
ния аппаратного RAID-контроллера. Процесс автоматического восстановления данных при использовании данных о четности также осуществляется аппаратным контроллером, и даже в этом случае он занимает больше времени, чем при использовании зеркалирования.
Разделение данных (striping)
Пока что все обсуждаемые концепции были нацелены на улучшение надежности хранения данных. Разделение данных (striping) используется для эффективного повышения производительности дискового массива за счет распределения данных по всем его дискам. Главным принципом, на котором базируется эта концепция, является параллелизм. Представьте, что на одном жестком диске хранится большой файл. Чтобы прочитать этот файл, придется ждать, пока жесткий диск считает его от начала до конца. Но если разбить файл на множество отдельных фрагментов и распределить их между несколькими дисками, все они могут быть считаны одновременно. Ожидание
сократится до времени считывания одного фрагмента, поскольку все диски будут работать параллельно. То же будет верно и для записи большого файла на диск. Производительность передачи данных в этом случае значительно повышается, и она тем выше, чем больше используется жестких дисков. Число дисков в этом случае также соответствует ширине страйпа (stripe width), то есть числу страйпов, которые могут передаваться одновременно. Разделение данных работает следующим образом. Каждый блок данных, поступающих в RAID-контроллер, разбивается на более мелкие фрагменты. При этом существует два уровня разбиения данных: разделение на уровне байтов и на уровне блоков. Разделение на уровне байтов (byte level striping) включает в себя разделение данных на отдельные байты и их последовательное сохранение на жестких дисках. К примеру, если данные разбиваются по 16 байт, а в системе используется четыре жестких диска, то первый байт сохраняется на первом диске, второй — на втором, и т. д. Пятый байт сохраняется на первом диске, и цикл повторяется. Иногда разделение на уровне байтов осуществляется по 512 байт. Разделение на уровне блоков (block level striping) включает в себя разбивку данных на блоки заданного размера. Размер этих блоков также называется размером страйпа (stripe size). Как правило, в зависимости от реализации RAID-контроллера имеется возможность использования различных размеров страйпа.
Поступающий файл разбивается на шесть блоков (А, В, С, D, E, F) и распределяется между двумя жесткими дисками. При наличии большего числа дисков блоки были бы также распределены и между ними. Теперь, если понадобится передать файл куда-либо, то контроллер будет считывать его с обоих дисков одновременно, и тут как раз проявится выигрыш в производительности, поскольку для передачи всего файла потребуется вполовину меньше времени. С увеличе-нием числа дисков скорость передачи файла будет сокращаться относительно скорости передачи с одного диска до 1/N, где N — число имеющихся жестких дисков. Далее будут рассмотрены различные уровни RAID, и станет видно, как в них используются описанные концепции.
Уровни RAID
Все основные концепции, рассмотренные ранее, используются для создания всех тех уровней RAID, о которых можно сегодня услышать. Некоторые компании разрабатывают свои уровни RAID, выходящие за рамки тех, что были изначально описаны в работе Дэвида Паттер-сона и его коллег. Кроме того, отдельные уровни RAID могут сочетаться в тех или иных реализациях для предоставления большей функциональности, которая может потребоваться в той или иной области применения.
RAID 0
RAID 0 является наиболее простым вариантом и использует лишь разделение данных (striping). Избыточность данных здесь даже не предусматривается, посему уровень этот не рекомендуется использовать там, где сохранность данных критична. Между тем этот уровень обеспечивает наивысшую производительность из всех некомбинированных уровней RAID, а также наименьшую стоимость реализации за счет отсутствия дополнительной емкости хранения. Повышенная производительность отличает этот уровень RAID от организации дискового массива в так называемом JBOD («just а bunch of disks», в официальной терминологии — spanning). В случае с JBOD данные, в отличие от RAID 0, пишутся не поочередно на каждый из дисков массива, а последовательно по мере исчерпания свободного пространства на дисках, то есть сначала данные пишутся на первый диск, затем, когда он заполнится, на второй и т. д.
Для организации RAID 0 необходимы как минимум два жестких диска, по возможности идентичных, а характеристики его будут главным образом определяться контроллером. Этот уровень RAID приобрел особую популярность на рынке недорогих систем за счет его низкой стоимости и ощутимого выигрыша в производительности; для него существует множество реализаций для SCSI/IDE. Однако при выходе из строя одного из дисков данные всего дискового массива будут утеряны.
RAID1
Уровень RAID 1 реализуется с использованием зеркалирования. Две идентичные копии данных хранятся на двух дисках. При выходе из строя одного из них система сохранит работоспособность за счет того, что данные будут доступны с другого диска. Восстановление утерянной копии данных является в этом случае очень простой операцией. Такой подход обеспечивает избыточность данных и определенную защиту от сбоев. Этот уровень подходит для тех случаев, где сохранность данных является критичной. Относительная простота и низкая стоимость реализации этого уровня способствовали росту его популярности на рынке недорогих систем. Большинство RAID-контроллеров в наши дни реализуют RAID 1 в том или ином виде.
RAID 2
Этот уровень использует разделение данных на уровне битов с применением для контроля ошибок кода Хэмминга (Hamming code ECC). Используемый здесь подход в чем-то схож с обычным разделением данных с применением четности: данные разделяются на уровне битов и распределяются между жесткими дисками, хранящими данные и ЕСС-коды. При записи данных коды Хэмминга вычисляются и обновляют информацию на отдельных ЕСС-дис-ках. При чтении данных из дискового массива эти коды используются для проверки искажений данных, возникших с момента их записи. Использование кода Хэмминга позволяет обнаруживать искажения до двух бит, а искажения в один бит исправлять «на лету». Впрочем, сложность и высокая стоимость RAID-контроллера, а также необходимость использования большого числа дисков привели к тому, что в наши дни этот уровень RAID практически нигде не используется.
RAID3
Уровень RAID 3 использует разделение данных на уровне байтов с выделенным диском для хранения четности. Иными словами, данные распределяются по дисковому массиву на уровне байтов, при этом один из дисков выделяется для хранения избыточной информации. Идея состоит в том, чтобы обеспечить высокий уровень производительности за счет разделения данных (striping), a отказоустойчивость — за счет хранения информации о четности. Для реализации этого уровня необходимо по меньшей мере три жестких диска. И хотя разделение данных (striping) благотворно сказывается на производительности, использование данных о четности ощутимо замедляет запись. Кроме того, интенсивные вычисления, связанные с необходимостью обновления информации о четности при каждой операции записи, вынуждают использовать аппаратный контроллер. RAID 3 хорошо подходит для работы с большими файлами благодаря малому размеру страйпа.
RAID 4
RAID 4 во многом схож с предыдущим уровнем, единственное различие заключается в использовании разделения данных на уровне блоков (block level striping) вместо разделения на уровне байтов. Преимущество такого подхода состоит в возможности изменения размера страйпа в соответствии с той или иной областью применения. Этот уровень часто представляется как смесь RAID 3 и RAID 5, так как обладает выделенным диском для хранения четности, как в RAID 3, и разделением данных на уровне блоков, как в RAID 5. Вместе с тем он обладает недостатками RAID 3 — необходимостью использования аппаратного контроллера и замедлением записи данных из-за необходимости пересчета информации о четности.
RAID 5
RAID 5 использует разделение данных на уровне блоков и распределенное хранение информации о четности. При этом данные распределяются вместе с храни- мой информацией по всему дисковому массиву. Такой подход устраняет ограничение производительности, связанное с использованием одного жесткого диска для хранения данных о четности, однако это не избавляет от необходимости вычислять и записывать дополнительную информацию при каждой операции записи, что приводит к замедлению процесса. Отказоустойчивость обеспечивается за счет отделения информации о четности от данных самого блока. При этом в случае выхода из строя одного из жестких дисков вся информация на нем может быть восстановлена за счет данных на оставшихся дисках, хотя этот процесс несколько сложнее обычного в виду распределенности данных о четности. Размер страйпа, как и при использовании RAID 4, может варьироваться в зависимости от области применения. RAID 5 — наиболее широко используемый уровень RAID в наши дни. Для многих он представляется оптимальным сочетанием производительности, отказоустойчивости и эффективности использования дискового пространства.
RAID 6
RAID 6 фактически представляет собой расширение RAID 5, обеспечивающее дополнительную отказоустойчивость за счет использования второй независимой схемы распределенного хранения данных о четности. Данные разделяются на уровне блоков, в точности как в RAID 5, а дополнительная информация о четности вычисляется и распределяется по всему дисковому массиву. RAID 6 обеспечивает очень высокую отказо- устойчивость, будучи способным противостоять множественным одновременным отказам дисковых накопителей. Оборотной стороной медали является весьма низкая производительность при записи данных, сложность и высокая стоимость контроллеров, а также менее эффективное использование дискового пространства.
RAID 7
RAID 7 является разработкой Storage Computer Corporation (SCC) и ориентирован на использование в системах, где необходимо обеспечить высокую производительность при обработке множества асинхронных запросов, а также высокую пропускную способность. За счет использования специально созданного контроллера, работающего под управлением операционной системы реального времени, а также асинхронной обработки и кэширования запросов на операции ввода-вывода системы RAID 7 являются лидерами в плане производительности. Они оказываются на 25—90% производительнее систем на базе одного дискового накопителя и в 1,5—6 раз более производительными, чем системы на базе любого другого уровня RAID. Впрочем, платой за это является наибольшая стоимость такой системы в пересчете на 1 Мбайт, необходимость использования источника бесперебойного питания для предотвращения потерь информации, меньшие сроки наработки на отказ.
Комбинирование уровней RAID
Описанные выше уровни RAID отнюдь не всегда являются наиболее подходя- щими в той или иной ситуации. Но что, если скомбинировать два различных уровня RAID и воспользоваться при этом преимуществами обоих? Основным стимулом к использованию комбинированных уровней RAID является повышенная производительность. При этом, впрочем, использование аппаратного RAID-контроллера становится уже обязательным условием. Не все уровни RAID комбинируются между собой, а из существующих широко используемых комбинаций можно отметить 0+1 и 1+0 как наиболее популярные и простые в реализации, а также 0+3, 3+0, 0+5, 5+0, 1+5 и 5+1. Здесь первая цифра означает уровень RAID, на базе которого комбинируются отдельные дисковые массивы, а вторая — уровень RAID, в соответствии с которым организованы эти самые массивы. Для примера: уровень 0+1 является массивом с разделением данных (striped array, RAID 0), сегментами которого являются массивы RAID 1. При этом RAID 0 используется ради повышения производительности, a RAID 1 — для обеспечения отказоустойчивости.
Программные реализации RAID
С учетом возросшей производительности центральных процессоров в ряде случаев приемлемым вариантом было бы построение RAID-системы без использования специализированного контроллера. Для этого на разных платформах существуют различные программные решения, с которыми мы вас сейчас познакомим.
Одним из наиболее известных в этой области является Veritas Volume Manager, поддерживающий множество операционных систем: Solaris, HP-UX, AIX, Linux, Windows 2000 и Windows NT. Впрочем, в ряде случаев такое тяжеловесное решение может оказаться неприемлемым. Для платформы FreeBSD существует Vinum Volume Manager, чье создание было вдохновлено примером Veritas VM. Vinum обладает менее избыточной функциональностью, поддерживая лишь уровни RAID 0, 1 и 5, а также их комбинации (например, RAID 1+0). На платформе Linux программная поддержка RAID доступна в стандартном наборе исходных текстов ядра начиная с версии 2.0. В версиях ядра 2.3 и 2.4 эта поддержка была во многом переработана, получив дополнительную функциональность.
Для Windows NT/2K/XP также существует ряд решений. Кроме уже упомянутого Veritas VM есть, к примеру, WIN-RAID, поддерживающий уровни RAID 0 и 1 при использовании дисков с самыми разными интерфейсами: IDE, SCSI, USB, Fire Wire, Fibre channel и т. д. Впрочем, в Windows 2000/XP имеется встроенная поддержка программной реализации RAID-массивов, являющаяся неплохой альтернативой продуктам сторонних производителей.
Уровень RAID
Описание
Надежность данных
Пропускная способность
Число запросов ввода-вывода
Рекомендуемая область применения
Стоимость накладных расходов
RAID 1
Данные копируются на два отдельных диска
Очень высокая. Устойчив к некоторым отказам нескольких дисков
Производительность выше, чем у одного диска на чтение, но без балансировки нагрузки
Вдвое выше, чем у одного диска на чтение. Слегка ниже, чем у одного диска на запись
Обычная
Очень высокая. Нужно вдвое больше дискового пространства
RAID 2
Данные разделяются между несколькими дисками. Четность хранится на нескольких дисках
Очень высокая. Устойчив к некоторым отказам нескольких дисков
Выше при аппаратном расчете кодов коррекции ошибок
Почти вдвое выше, чем у одного диска
Обычная
Высокая, необходимы дополнительные диски
RAID 3
Данные разделяются между всеми дисками, под четность выделяется свой диск
Намного выше, чем у одного диска. Устойчив к отказу одного диска
Выше других перечисленных уровней на чтение и запись
Быстрее, чем у одного диска, за счет параллельных операций
Видео, обработка изображений, прочая работа с большими файлами
Низкая. Необходим один дополнительный диск
RAID 4
Данные разделяются между некоторыми дисками, под четность выделяется свой диск
Намного выше, чем у одного диска. Устойчив к отказу одного диска
Выше, чем у одного диска на чтение, но намного ниже, чем у одного диска
на запись
Выше, чем у одного диска на чтение. Значительно ниже, чем у одного диска на запись
Ориентированы на чтение с небольшим числом операций записи
Низкая. Необходим один дополнительный диск
RAID 5
Данные и четность разделяются между несколькими дисками
Намного выше, чем у одного диска. Устойчив к отказу одного диска
Выше, чем у одного диска на чтение, но ниже, чем у одного диска на запись I
Выше, чем у одного диска на чтение. Как правило, ниже, чем у одного диска на запись
Ориентированы на транзакции со значительным преобладанием операций чтения
Низкая. Необходим один дополнительный диск
Разбираем жесткий диск
Самое простое – это снять плату управления. Крепится она всего тремя маленькими болтиками под внутренний шестигранник.
Дальше, сверху еще 7 болтиков, кстати, тоже под шестигранник. Их я открутил с помощью плоской отвертки и все тех же плоскогубцев.
Фильтр
На очереди головки. Их 16 штук, так как у этого винта 8 дисков. Но снять их было не так то просто. Пришлось опять взяться за достойный инструмент. Болты крепления открутились довольно быстро, но дело в том, что в шаговом двигателе, что приводит в действие головки чтения/записи, используются очень сильные магниты (в день разборки три человека прищемили этими магнитами пальцы и в том числе я). Короче, пришлось малость повозится. Вот они, эти головки:
Диски снялись очень легко.
А вот так выглядят головки с приводом и диски в сборе.
В общем, после полной разборки винта остались вот эти вот запчасти.
Восстановление дохлой нулевой дорожки у HDD
Один из вариантов оживления винтов с подобным повреждением. Если убита (например, низкоуровневым форматированием) сервоинформация на нулевой дорожке, то однозначно в морг - винт не сможет выполнить рекалибровку. В остальных случаях может помочь следующее:
1. Подключить винт как Primary/Master. Если не проходит автодетект, выставить в BIOS/Setup'е 1-й тип или паспортные параметры винта. Остальные винты (если есть) следует во избежание порчи временно отключить. 2. Загрузить DOS, запустить стандартный ДОСовский отладчик: Debug -F 200 L200 0 -a 100 mov ax,301 mov bx,200 mov cx,1 mov dx,0080 int 13 int 3 нажать 'Enter' -G=100 -q Этот 2-й пункт является дословным цитированием рекомендации от Award'а. 3. Если для винта стоял тип 1, повторить авто детектирование. Если авто детектирование не проходит, выставить паспортные параметры винта. 4. При необходимости перезагрузить DOS. Запустить FDISK, коим разметить Partition Table винта, не забыв указать при необходимости партицию, которая на данном винте будет активной (загрузочной). Запустить "FORMAT C: /S /U" или "FORMAT C: /U" для форматирования диска соответственно с переписью и без переписи загрузчика. 5. Восстановить ранее стоявшую конфигурацию (если на время форматирования отключались другие винты).
SMART - технология внутренней оценки состояния HDD
Введение
Сегодня, хотелось бы чуточку подробнее поговорить о вскользь упомянутой в предыдущей статье о критериях выбора винчестера технологии SMART, а также выяснить вопрос о появлении плохих секторов при проверке поверхности специальными программами и исчерпании резервной поверхности для их переназначения - вопросу, поднятому на форуме из прошлой статьи.
Для начала как всегда краткий исторический экскурс. Надежность жесткого диска (и любого устройства хранения в самом общем случае) всегда придается огромное значение. И дело отнюдь не в его стоимости, а в ценности той информации, которую он уносит с собой в мир иной, уходя из жизни сам, и в потерях прибыли, связанных с простоями при выходе из строя винчестеров, если речь идет о бизнес-пользователях, даже в том случае, если информация осталась. И вполне естественно, что о таких неприятных моментах хочется знать заранее. Даже обычные рассуждения на бытовом уровне подсказывают, что наблюдение за состоянием прибора в работе, может подсказать такие моменты. Осталось только каким-то образом реализовать это наблюдение в винчестере.
Впервые над этой задачей задумались инженеры голубого гиганта (IBM то бишь). И в 1995 году они предложили технологию, отслеживающую несколько критически важных параметров накопителя, и делающую попытки на основании собранных данных предсказать выход его из строя - Predictive Failure Analysis (PFA). Идею подхватила Compaq, которая чуть позже создала свою технологию - IntelliSafe. В разработке Compaq также поучаствовали Seagate, Quantum и Conner. Созданная ими технология также отслеживала ряд рабочих характеристик диска, сравнивала их с допустимым значением и рапортовала хост-системе в случае наличия опасности. Это был огромный шаг вперед если и не в повышении надежности винчестеров, то хотя бы в уменьшении риска потери информации при их использовании. Первые попытки оказались удачными, и показали необходимость дальнейшего развития технологии. Уже в объединении всех крупных производителей жестких дисков появилась технология S.M.A.R.T (Self Monitoring Analysing and Reporting Technology), базирующаяся на технологиях IntelliSafe и PFA (кстати говоря, PFA существует и поныне, как набор технологий для наблюдения и анализа за различными подсистемами серверов IBM, в том числе и дисковой подсистемой, причем наблюдение за последней базируется именно на технологии SMART).
Итак, SMART - это технология внутренней оценки состояния диска, и механизм предсказания возможного выхода из строя жесткого диска. Важно отметить то, что технология в принципе не решает возникающих проблем (основные из них показаны на рисунке чуть ниже), она способна лишь предупредить об уже возникшей проблеме либо об ожидающейся в ближайшем времени.
При этом нужно также сказать, что технология не в состоянии предсказать абсолютно все возможные проблемы и это логично: выход электроники в результате скачка напряжения, порча головок и поверхности в результате удара и т.п. никакая технология предсказать не в силах. Предсказуемы лишь те проблемы, которые связаны с постепенным ухудшением каких-либо характеристик, равномерной деградацией каких либо компонент.
Этапы развития технологии
В своем развитии технология SMART прошла три этапа. В первом поколении было реализовано наблюдение небольшого числа параметров. Никаких самостоятельных действий накопителя не предусматривалось. Запуск осуществлялся только командами по интерфейсу. Спецификации описывающей стандарт полностью нет, и, следовательно, не было и нет и четкого предначертания, о том, какие именно параметры надлежит контролировать. Более того, их определение и определение допустимого уровня их снижения целиком и полностью предоставлялся производителям винчестеров (что естественно в силу того, что производителю виднее что именно надлежит контролировать данном его винчестере, ибо все винчестеры слишком различны). И программное обеспечение, по этой причине, написанное, как правило, сторонними фирмами, не было универсальным, и могло ошибочно рапортовать о предстоящем сбое (путаница возникала из-за того, что под одним и тем же идентификатором различные производители хранили значения различных параметров). Имело место большое число жалоб на то, что число случаев обнаружения пред сбойного состояния чрезвычайно мало (особенности человеческой природы: получать хочется все и сразу, жаловаться на внезапные отказы дисков до внедрения SAMRT в голову как-то никому не приходило). Ситуация усугубилась еще и тем, что в большинстве случаев не были выполнены минимально необходимые требования для функционирования SMART (об этом поговорим позже). Статистика говорит о том, что число предсказываемых сбоев было менее 20%. Технология на этом этапе была далека от совершенства, но являлась революционным шагом вперед.
О втором этапе развития SMART - SMART II известно также не много. В основном наблюдались те же проблемы, что и с первой. Нововведениями являлись возможность фоновой проверки поверхности, выполняемая диском в автоматическом режиме при простоях и ведение журналов ошибок, расширился список контролируемых параметров (снова же в зависимости от модели и производителя). Статистика говорит о том, что число предсказываемых сбоев достигло 50%.
Современный этап представлен технологией SMART III. На ней остановимся подробней, попытаемся разобраться в общих чертах как она работает, что и зачем в ней нужно.
Нам уже известно, что SMART производит наблюдение за основными характеристиками накопителя. Эти параметры называются атрибутами. Необходимые к мониторингу параметры определяются производителем. Каждый атрибут имеет какую-то величину - Value. Обычно изменяется в диапазоне от 0 до 100 (хотя может быть в диапазоне до 200 или до 255), ее величина - это надежность конкретного атрибута относительно некоторого его эталонного значения (определяется производителем). Высокое значение говорит об отсутствии изменений данного параметра или, в зависимости от значения, его медленном ухудшении. Низкое значение говорит о быстрой деградации или о возможном скором сбое, т.е. чем выше значение Value атрибута, тем лучше. Некоторыми программами мониторинга выводится значение Raw или Raw Value - это значение атрибута во внутреннем формате (который так же различен у дисков разных моделей и разных производителей), в том, в котором он хранится в накопителе. Для простого пользователя он малоинформативен, больший интерес представляет посчитанное из него значение Value. Для каждого атрибута производителем определяется минимальное возможное значение, при котором гарантируется безотказная работа накопителя - Threshold. При значении атрибута ниже величины Threshold очень вероятен сбой в работе или полный отказ. Осталось только добавить, что атрибуты бывают критически важными и некритически. Выход критически важного параметра за пределы Threshold фактический означает выход из строя, выход за переделы допустимых значений некритически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность (хотя, возможно, с некоторым ухудшением некоторых характеристик: производительности например).
К наиболее часто наблюдаемым критически важным характеристикам относятся: Raw Read Error Rate - частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.
Spin Up Time - время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся немаксимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например блок питания подкачал. Spin Up Retry Count - число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно немаксимальное Value) свидетельствует о проблемах в механической части накопителя.
Seek Error Rate - частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.
Reallocated Sector Count - число операций переназначения секторов. SMART в современных способен произвести анализ сектора на стабильность работы 'на лету' и в случае признания его сбойным произвести его переназначение. Ниже мы поговорим об этом подробнее.
Из некритических, так сказать информационных атрибутов, обычно производят наблюдение за следующими:
Start/Stop Count - полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.
Power On Hours - число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MBTF). Принимая во внимание обычно совершенно невероятные величины MBTF, маловероятно, что параметр достигнет когда либо критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.
Drive Power Cycle Count - количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.
Temperatue - просто и понятно. Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах).
Current Pending Sector Count - здесь храниться число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.
Uncorrectable Sector Count - число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.
UDMA CRC Error Rate - число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.
Write Error Rate - показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя. Все происходящие ошибки и изменения параметров фиксируются в журналах SMART. Эта возможность появилась уже в SMART II. Все параметры журналов - назначение, размер, их число определяются изготовителем винчестера. Нас с вами в настоящий момент интересует только факт их наличия. Без подробностей. Информация хранящаяся в журналах используется для анализа состояния и составления прогнозов. Если не вдаваться в подробности, то работа SMART проста - при работе накопителя просто отслеживаются все возникающие ошибки и подозрительные явления, которые находят отражение в соответствующих атрибутах. Кроме того начиная так же со SMART II у многих накопителей появились функции самодиагностики. Запуск тестов SMART возможен в двух режимах, off-line - тест выполняется фактически в фоновом режиме, так как накопитель в любое время готов принять и выполнить команду, и монопольном при котором при поступлении команды, выполнение теста завершается. Документировано существует три типа тестов самодиагностики: фоновый сбор данных (Off-line collection), сокращенный тест (Short Self-test), расширенный тест (Extended Self-test). Два последних способны выполняться как в фоновом, так и в монопольном режимах. Набор тестов в них входящих не стандартизирован.
Продолжительность их выполнения может быть от секунд до минут и часов. Если вы вдруг не обращаетесь к диску, а он при этом издатет звуки как и при рабочей нагрузке - он просто похоже занимается самоанализом. Все данные собранне в результате таких тестов будут также сохранены в журналах и аттрибутах.
Ох уж эти плохие сектора...
Теперь вернемся к вопросу бэд-секторов, с которых все началось. В SMART III появилась функция, позволяющая прозрачно для пользователя переназначать BAD сектора. Работает механизм достаточно просто, при неустойчивом чтении сектора, или же ошибки его чтения, SMART заносит его в список нестабильных и увеличит их счетчик (Current Pending Sector Count). Если при повторном обращении сектор будет прочитан без проблем, он будет выброшен из этого списка. Если же нет, то при предоставившейся возможности - при отсутствии обращений к диску, диск начнет самостоятельную проверку поверхности, в первую очередь подозрительных секторов. Если сектор будет признан сбойным, то он будет переназначен на сектор из резервной поверхности (соответственно RSC увеличиться). Такое фоновое переназначение приводит к тому, что на современных винчестерах сбойные секторы практически никогда не видны при проверке поверхности сервисными программами. В тоже время, при большом числе плохих секторов их переназначение не может происходить до бесконечности. Первый ограничитель очевиден - это объем резервной поверхности. Именно этот случай я имел ввиду. Второй не столь очевиден - дело в том, что у современных винчестеров есть два дефект-листа P-list (Primary, заводской) и G-list (Growth, формируется непосредственно во время эксплуатации). И при большом числе переназначений может оказаться так, что в G-list не оказывается места для записи о новом переназначении. Эта ситуация может быть выявлена по высокому показателю переназначенных секторов в SMART. В этом случае еще не все потеряно, но это выходит за рамки данной статьи.
Итак, используя данные SMART даже не нося диск в мастерскую можно довольно точно сказать, что с ним происходит. Существуют различные технологии-надстройки над SMART, которые позволяют определить состояние диска еще более точно и практически достоверно причину его неисправности. Об этих технологиях мы поговорим в отдельной статье.
Нужно знать, что приобретения накопителя со SMART не достаточно, для того, что бы быть в курсе всех происходящих с диском проблем. Диск, конечно, может следить за своим состоянием и без посторонней помощи, но он не сможет сам предупредить в случае приближающейся опасности. Нужно что-то, что позволит на основании данных SMART выдать предупреждение. Как вариант возможен BIOS, который при загрузке при включенной соответствующей опции проверяет состояние SMART накопителей. А если же вам хочется вести постоянный контроль за состоянием диска, необходимо использовать какую-то программу мониторинга. Тогда вы сможете видеть информацию в подробном и удобном виде.
Об этих программах мы также поговорим в отдельной статье. Именно это я имел ввиду, когда говорил о том, что по началу не выполнялись необходимые требования при эксплуатации жестких дисков с SMART.
Как уберечь винчестер
Специалисты утверждают, что уже спустя несколько месяцев после покупки нового компьютера, стоимость хранящейся на нем информации превышает стоимость самого ПК. Это что касается "офисных" машин. Для домашней "персоналки" этот срок - от полугода до года. Причем, по сути, эта самая информация спокойно переживет поломку любого узла компьютера, за исключением одного-единственного - жесткого диска, на котором она, собственно, и хранится. Так что проблема надежности винчестера сегодня не менее актуальна, чем лет десять назад.
Несмотря на бурный прогресс в области хранения данных на жестких дисках, надежность современных HDD, в общем, в нашем обыденном понимании оставляет желать лучшего. Более того, некоторые склонны утверждать, что в последнее время (по сравнению с недавним прошлым) количество "вылетающих" винчестеров даже увеличилось. И теперь уже практически не осталось ни одной фирмы с абсолютно безупречной в этом отношении репутацией. Так что, думается, отнюдь не лишними окажутся несколько советов желающим "нарастить гигабайты" или переживающим за сохранность своих курсовых - дипломов, многолетней переписки, личного ПО и "уникальных", с таким трудом вытащенных из Интернета "зеркал" различных сайтов.
Охлаждение HDD
Все современные винчестеры греются. Одни сильно, другие - очень сильно. Мало того, из-за того что в компьютере сейчас (по сравнению с опять же недавним прошлым) стало существенно больше "горячих" комплектующих, среднестатистическая температура внутри среднестатистического корпуса (читай - "китайского", в смысле - дешевого) стала выше. Получается, что существенно более горячие современные HDD работают при этом еще и в более неблагоприятных условиях. Потому проблема их охлаждения выходит на первый план (в смысле влияния на надежность). Отсюда первые логичные рекомендации - относительно корпуса и расположения в нем винчестера:
Обеспечьте хороший обдув винчестера - не стоит закручивать его в "бутерброд" между другими греющимися приводами.
Многочисленные шлейфы совсем не улучшают воздухообмен, потому их нужно либо аккуратно уложить, либо вообще разрезать вдоль на узкие полоски, получив в результате удобные жгуты.
Дополнительный кулер для системного блока - "маслом кашу не испортишь".
Радикальное средство - модные нынче HDD-Cooler'ы.
Примечание: не существует какой-то "стандартной" температуры для винчестеров, превышение которой можно было бы четко считать перегревом - для одних моделей больше 40 будет нехорошо, а для других и 80 нипочем. А так, в общем, чем ближе к "среднесистемноблочной", тем лучше, т.е. это где-то в районе +30 градусов. Но не стоит, измерив температуру, торопиться выбрасывать свой системный блок - минимальная температура не должна быть ниже ~+20 градусов, иначе винчестер может не только не запуститься, но и повредиться.
Питание
Будет ли работать обычная 220-вольтовая лампочка от 230V? Конечно, будет. А от 240V? Тоже. Но вот как долго - это вопрос. Точнее, не вопрос. Понятно, что меньше или существенно меньше - зависит от конкретной лампочки.
Примерно та же ситуация и с винчестерами. Наивные зарубежные производители рассчитывали их, полагаясь на стандартные +5V и +12V. В компьютерном блоке питания (БП) стабилизируемое напряжение лишь +5V (и в качественном, и в дешевом). При нагрузке на процессор (а современные CPU "кушают" немало, сравните - 6A Pentium-i233MMX и 60A Pentium4 - 2.2GHz), в случае, если БП "не тянет", +5V "проседают". Система стабилизации блока питания отрабатывает это дело (повышая напряжение до номинального значения), но из-за отсутствия стабилизации по +12V (а нагрузка-то по ним не изменилась), оно (+12V) завышается. В результате и так критичный к нагреву современный винчестер работает еще и при повышенном напряжении. Итог - смотри рассуждение о лампочке. Отсюда - советы по блоку питания.
Чем больше ватт - тем лучше. И не стоит приводить расчеты, что для потребления даже 200 W придется подключить связку винчестеров, набор сидирайтеров и кофеварку - проблема не в "общей" цифре, а в вышеуказанной особенности работы системы стабилизации. Так что, если есть выбор: 300 Wt неизвестный или 250 W неизвестный, но красивый, берите все же первый.
Менее "ваттный", но "брэндовый" лучше более "ваттного", но "китайского" (в смысле - безызвестно-дешевого). Помните - разгоняют не только процессоры (камень в огород дешевых блоков питания). Так что если есть выбор: 300 W JNC либо 250 W Powerman - без вариантов, последний (даже если чуть дороже).
В случае сильно завышенных +12V, и если вы способны отличить транзистор от диода, можете попробовать включить последний в разрыв - на его p-n переходе упадет "лишнее" напряжение (0.2-0.7V - в зависимости от типа диода). Брать надо мощный (типа КД214) и лучше Шоттки, а для устранения последствий "нелинейности" (желательно) включить еще и с фильтрующим конденсатором на "побольше" микрофарад. Однако не стоит увлекаться и пытаться "заморозить" HDD: минимально рекомендуемое напряжение - +11.7V, а если оно будет меньше +11.5V, вообще, теоретически, но существует возможность повреждения винчестера уже из-за пониженного напряжения.
Если вы не только отличаете диод от транзистора, но и вообще неплохо разбираетесь - в случае завышенных и +5V и +12V (и отсутствии гарантии на БП), можно попробовать разобрать "питатель" и понизить опорное напряжение. Однако и тут не переусерд-ствуйте, пытаясь максимально понизить +12V (понижая +5V, естественно, понижается и +12V): не стоит делать меньше +4.95-4.9V, а при напряжении меньше +4.85V система вообще может потерять стабильность.
Примечание: максимальным считается +12.6V. Однако у многих моделей современных винчестеров наблюдается нелинейно-резкое повышение температуры с превышением +12V. Потому специалисты рекомендуют в случае 12.2-12.3V - подумать и "поволноваться", 12.4-12.6V - сильно поволноваться, 12.6-12.8V - бить тревогу, а в случае 13V и выше - копить деньги или положить гарантийный листок на видное место...
Другие рекомендации
Из-за крайне жесткой конкуренции производителям винчестеров приходится изворачиваться и сочетать в своих изделиях высокую производительность при максимально низкой цене. В результате частенько бывает, что винчестер работает, так сказать, "на пределе", микросхемы контроллера серьезно греются, а в случае постоянной и непрекращающейся нагрузки при завышенном питании и не самом лучшем охлаждении запросто могут выйти из строя.
Кстати, именно совокупность вышеописанных особенностей можно считать причиной достаточно распространенной в Интернете темы под названием "WinXP - HDD Killer". Многие пользователи после благополучной эксплуатации с новым винчестером Win98, решив задействовать на полную катушку его гигабайты, ставят себе "такую красивую и большую" WinXP. Из-за существенно более высоких требований к объему оперативной памяти (только для самого "ядра" XP нужно за сотню мегабайт), а также из-за многочисленных "оптимизаций log-остроения" со товарищи, винчестер под новыми, такими "тяжелыми" "окнами", практически "не расслабляется" (ведь на дополнительную память денег-то не хватило - "итак еле на винт насобирал"). Поработав в запредельном режиме пару дней, он не выдерживает, порождая видимость очередного всемирного заговора Билла Гейтса.
Итак, не самые очевидные рекомендации.
Увеличение объема оперативной памяти. Для современных приложений минимальный объем - 256 Mb, рекомендуемый - 384 Mb, оптимальный - 512 Mb. (Например, для UT2003 при настройках даже не на самое качественное изображение, 256 Mb просто откровенно мало).
"Ощупайте" контроллер винчестера на предмет наличия горячих микросхем. Будет совсем не лишним (а в некоторых случаях просто спасительным) приклеить на нее (обычно она одна) какой-нибудь небольшой пассивный радиатор (например, от чипсета неисправной материнской платы или видеокарты).
Все современные винчестеры имеют так называемый "бесшумный" режим работы (AAM - Automatic Acoustic Management). При его включении винчестер не только меньше шумит (хотя, в целом, проблема шума винчестера давно в прошлом), но и меньше потребляет энергии, а, соответственно, и греется меньше. Делается это с помощью специальных утилит. Для различных производителей их можно найти по адресам:
Кстати, нужно отметить, что включение "шумопонижения" не влияет на линейную скорость считывания, а лишь на время доступа. Поэтому общая производительность "тихого", но не сильно фрагментированного HDD практически не отличается от "шумного". Итого - счастливым обладателям "безмолвных" винтов в обязательном порядке показана периодическая дефрагментация.
Ну и последнее, "совсем уже косвенное" влияние может оказать правильная настройка кэширования в системе (при достаточном объеме оперативной памяти), которая не только увеличивает общую скорость компьютера, но и уменьшает нагрузку на винчестер. В заключение стоит отметить, что с этой точки зрения количество наборт-ного кэша винчестера - чем больше, тем лучше.
Покупка винчестера
Если вы не занимаетесь редактированием видео и другими задачами, для которых скорость работы HDD крайне принципиальна, стоит подумать над тем, чтобы выбрать все же винчестер на 5400 оборотов, а не на 7200 - понятно, что 5400-обротные греются при работе намного меньше. При выборе нового винчестера в случае вариантов с близкими по значениям ценами стоит расставить важность факторов следующим образом:
"Беспроблемность" гарантийного отдела - стоит обращаться в фирму, где в каждом клиенте не подозревают диверсанта, бьющего об стенку их замотанный в полотенце винчестер. Срок гарантии - чем больше, тем лучше (с учетом "солидности" фирмы). И только потом уже скорость и цена.
И напоследок - несколько советов тем, кто приобретает бывший в употреблении винчестер. Даже если вы не сильно разбираетесь в подобного рода технике, - не забудьте при проверке посмотреть хотя бы параметры S.M.A.R.T винчестера. Программ, позволяющих это сделать, существует великое множество (и под DOS, и под Windows). Причем, если один из пунктов красный (близок к 0), не стоит верить убеждениям продавца, мол, "это ничего страшного", "он совершенно не нужен" - в любом случае это отнюдь не хорошо. Подумайте - стоит ли риск (эксплуатация безгарантийного HDD) разницы в цене по сравнению с новым?
Есть некоторые модели, массово выходящие из строя после определенного срока эксплуатации, так называемая "группа риска". Это, в частности, Fujitsu модели MPG3xxxAx, IBM DTLA, WD 2000-2001 года выпуска, плоские (тонкие) Maxtor'ы (541DX) и некоторые другие. Более того, корпорация Western Digital признала, что поставляла на постсоветский рынок "восстановленные" на заводе винчестеры с соответствующей надежностью. И хотя обещала больше так не делать, веры им уже нет. Покупатели и пользователи перечисленных винчестеров должны очень серьезно отнестись ко всему вышеописанному и даже в случае использования всего "самого-самого" почаще делать резервные копии важной информации.