Зеркальный рейд массив. Что такое RAID - массив. Варианты RAID-массивов. Что лучше использовать на практике

Зеркальный рейд массив. Что такое RAID - массив. Варианты RAID-массивов. Что лучше использовать на практике

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



RAID 0

  • RAID 0 (Stripe). Режим, при использовании которого достигается максимальная производительность. Данные равномерно распределяются по дискам массива, объединяются в один, который может быть размечен на несколько. Распределенные операции чтения и записи позволяют значительно увеличить скорость работы, поскольку несколько одновременно читают/записывают свою порцию данных. Пользователю доступен весь объем , но это снижает надежность хранения данных, поскольку при отказе одного из дисков массив обычно разрушается и восстановить данные практически невозможно. Область применения - приложения, требующие высоких скоростей обмена с диском, например видеозахват, видеомонтаж. Рекомендуется использовать с высоконадежными дисками.

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

    RAID 10
  • RAID 10 , также иногда называется RAID 1+0 - комбинация двух первых вариантов. (Массив RAID0 из массивов RAID1). Имеет все скоростные преимущества RAID0 и преимущество надежности RAID1, сохраняя недостаток - высокую стоимость дискового массива, так как эффективная ёмкость массива равна половине ёмкости использованных в нём дисков. Для создания такого массива требуется минимум 4 диска. (При этом их число должно быть чётным).
  • RAID 0+1 - Массив RAID1 из массивов RAID0. Фактически не применяется из-за отсутствия преимуществ по сравнению с RAID10 и меньшей отказоустойчивости.

    RAID 1E
  • RAID 1E - Похожий на RAID10 вариант распределения данных по дискам, допускающий использование нечётного числа (минимальное количество - 3)
  • RAID 2, 3, 4 - различные варианты распределенного хранения данных с дисками, выделенными под коды четности и различными размерами блока. В настоящее время практически не используются из-за невысокой производительности и необходимости выделять много дисковой емкости под хранение кодов ЕСС и/или четности.


    RAID 5
  • RAID 5 - массив, также использующий распределенное хранение данных аналогично RAID 0 (и объединение в один большой логический ) + распределенное хранение кодов четности для восстановления данных при сбоях. Относительно предыдущих конфигураций размер Stripe-блока еще больше увеличен. Возможно как одновременное чтение, так и запись. Плюсом этого варианта является то, что доступная для пользователя емкость массива уменьшается на емкость лишь одного диска, хотя надежность хранения данных ниже, чем у RAID 1. По сути, является компромиссом между RAID0 и RAID1, обеспечивая достаточно высокую скорость работы при неплохой надежности хранения данных. При отказе одного диска из массива данные могут быть восстановлены без потерь в автоматическом режиме. Минимальное количество дисков для такого массива - 3.
    "Программные" реализации RAID5, встроенные в южные мосты материнских плат, не отличаются высокой скоростью записи, поэтому годятся далеко не для всех применений.


    RAID 5EE
  • RAID 5EE - массив, аналогичный RAID5, однако кроме распределенного хранения кодов четности используется распределение резервных областей - фактически задействуется , который можно добавить в массив RAID5 в качестве запасного (такие массивы называют 5+ или 5+spare). В RAID 5 массиве резервный диск простаивает до тех пор, пока не выйдет из строя один из основных , в то время как в RAID 5EE массиве этот диск используется совместно с остальными HDD все время, что положительно сказывается на производительность массива. К примеру, массив RAID5EE из 5 HDD сможет выполнить на 25% больше операций ввода/вывода за секунду, чем RAID5 массив из 4 основных и одного резервного HDD. Минимальное количество дисков для такого массива - 4.


    RAID 6
  • RAID 6 - аналог RAID5 c большим уровнем избыточности - информация не теряется при отказе двух любых дисков, соответственно, общая ёмкость массива уменьшается на ёмкость двух дисков. Минимальное количество дисков, необходимое для создания массива такого уровня - 4. Скорость работы в общем случае примерно аналогична RAID5. Рекомендуется для применений, где важна максимально высокая надёжность.


    RAID 50
  • RAID 50 - объединение двух(или более, но это крайне редко применяется) массивов RAID5 в страйп, т.е. комбинация RAID5 и RAID0, частично исправляющая главный недостаток RAID5 - низкую скорость записи данных за счёт параллельного использования нескольких таких массивов. Общая ёмкость массива уменьшается на ёмкость двух , но, в отличие от RAID6, без потери данных такой массив переносит отказ лишь одного диска, а минимально необходимое число дисков для создания массива RAID50 равно 6. Наряду с RAID10, это наиболее рекомендуемый уровень RAID для использования в приложениях, где требуется высокая производительность в сочетании с приемлемой надёжностью.


    RAID 60
  • RAID 60 - объединение двух массивов RAID6 в страйп. Скорость записи повышается примерно в два раза, относительно скорости записи в RAID6. Минимальное количество дисков для создания такого массива - 8. Информация не теряется при отказе двух дисков из каждого RAID 6 массива.
  • Matrix RAID - технология, реализованная фирмой Intel в своих южных мостах, начиная с ICH6R, позволяющая организовать всего на двух дисках несколько массивов RAID0 и RAID1, одновременно создавая разделы как с повышенной скоростью работы, так и с повышенной надёжностью хранения данных.
  • JBOD (От английского "Just a Bunch Of Disks")- последовательное объединение нескольких физических в один логический, не влияющее на производительность (надёжность при этом падает аналогично RAID0), при этом могут иметь разные размеры. В настоящее время практически не применяется.
  • Все современные материнские платы оснащены интегрированным RAID-контроллером, а топовые модели имеют даже по нескольку интегрированных RAID-контроллеров. Насколько интегрированные RAID-контроллеры востребованы домашними пользователями - вопрос отдельный. В любом случае современная материнская плата предоставляет пользователю возможность создания RAID-массива из нескольких дисков. Однако далеко не каждый домашний пользователь знает, как создать RAID-массив, какой уровень массива выбрать, да и вообще плохо представляет себе плюсы и минусы использования RAID-массивов.
    В этой статье мы дадим краткие рекомендации по созданию RAID-массивов на домашних ПК и на конкретном примере продемонстрируем, каким образом можно самостоятельно протестировать производительность RAID-массива.

    История создания

    Впервые термин «RAID-массив» появился в 1987 году, когда американские исследователи Паттерсон, Гибсон и Катц из Калифорнийского университета Беркли в своей статье «Избыточный массив недорогих дисков» (“A Case for Redundant Arrays of Inexpensive Discs, RAID”) описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы.

    С момента выхода этой статьи прошло уже более 20 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, - это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive (недорогие) поменяли на Independent (независимые), что больше соответствовало действительности.

    Принцип действия

    Итак, RAID - это избыточный массив независимых дисков (Redundant Arrays of Independent Discs), на который возлагается задача обеспечения отказоустойчивости и повышения производительности. Отказоустойчивость достигается за счет избыточности. То есть часть емкости дискового пространства отводится для служебных целей, становясь недоступной для пользователя.

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

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

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

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

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

    Уровни RAID-массивов

    В настоящее время существует несколько RAID-уровней, которые можно считать стандартизованными, - это RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 и RAID 6.

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

    Отметим, что все современные RAID-контроллеры поддерживают функцию JBOD (Just a Bench Of Disks), которая не предназначена для создания массивов, - она обеспечивает возможность подключения к RAID-контроллеру отдельных дисков.

    Нужно отметить, что интегрированные на материнские платы для домашних ПК RAID-контроллеры поддерживают далеко не все RAID-уровни. Двухпортовые RAID-контроллеры поддерживают только уровни 0 и 1, а RAID-контроллеры с большим количество портов (например, 6-портовый RAID-контроллер, интегрированный в южный мост чипсета ICH9R/ICH10R) - также уровни 10 и 5.

    Кроме того, если говорить о материнских платах на чипсетах Intel, то в них тоже реализована функция Intel Matrix RAID, которая позволяет создать на нескольких жестких дисках одновременно RAID-матрицы нескольких уровней, выделив для каждой из них часть дискового пространства.

    RAID 0

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

    RAID 1 (Mirrored disk)

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

    RAID 5

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

    Предположим, что массив содержит n дисков, а размер страйпа d . Для каждой порции из n–1 страйпов рассчитывается контрольная сумма p .

    Cтрайп d 1 записывается на первый диск, страйп d 2 - на второй и так далее вплоть до страйпа d n–1 , который записывается на (n –1)-й диск. Далее на n -й диск записывается контрольная сумма p n , и процесс циклически повторяется с первого диска, на который записывается страйп d n .

    Процесс записи (n–1) страйпов и их контрольной суммы производится одновременно на все n дисков.

    Для вычисления контрольной суммы используется поразрядная операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. Так, если имеется n жестких дисков, d - блок данных (страйп), то контрольная сумма рассчитывается по следующей формуле:

    p n = d 1 d 2 ... d 1–1 .

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

    В качестве иллюстрации рассмотрим блоки размером по четыре бита. Пусть имеются всего пять дисков для хранения данных и записи контрольных сумм. Если есть последовательность битов 1101 0011 1100 1011, разбитая на блоки по четыре бита, то для расчета контрольной суммы необходимо выполнить следующую поразрядную операцию:

    1101 0011 1100 1011 = 1001.

    Таким образом, контрольная сумма, записываемая на пятый диск, равна 1001.

    Если один из дисков, например четвертый, вышел из строя, то блок d 4 = 1100 окажется недоступным при считывании. Однако его значение легко восстановить по контрольной сумме и по значениям остальных блоков с помощью все той же операции «исключающего ИЛИ»:

    d 4 = d 1 d 2 d 4 p 5 .

    В нашем примере получим:

    d 4 = (1101) (0011) (1100) (1011) = 1001.

    В случае RAID 5 все диски массива имеют одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 100 Гбайт, то фактический размер массива составляет 400 Гбайт, поскольку 100 Гбайт отводится на контрольную информацию.

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

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

    RAID 10

    Уровень RAID 10 представляет собой некое сочетание уровней 0 и 1. Минимально для этого уровня требуются четыре диска. В массиве RAID 10 из четырех дисков они попарно объединяются в массивы уровня 0, а оба этих массива как логические диски объединяются в массив уровня 1. Возможен и другой подход: первоначально диски объединяются в зеркальные массивы уровня 1, а затем логические диски на основе этих массивов - в массив уровня 0.

    Intel Matrix RAID

    Рассмотренные RAID-массивы уровней 5 и 1 редко используются в домашних условиях, что связано прежде всего с высокой стоимостью подобных решений. Наиболее часто для домашних ПК применяется именно массив уровня 0 на двух дисках. Как мы уже отмечали, RAID уровня 0 не обеспечивает безопасности хранения данных, а потому конечные пользователи сталкиваются с выбором: создавать быстрый, но не обеспечивающий надежности хранения данных RAID-массив уровня 0 или же, увеличивая стоимость дискового пространства в два раза, - RAID-массив уровня 1, который обеспечивает надежность хранения данных, однако не позволяет получить существенного выигрыша в производительности.

    Для того чтобы разрешить эту нелегкую проблему, корпорация Intel разработала технологию Intel Matrix Storage, позволяющую объединить достоинства массивов уровней 0 и 1 всего на двух физических дисках. А для того, чтобы подчеркнуть, что речь в данном случае идет не просто о RAID-массиве, а о массиве, сочетающем в себе и физические и логические диски, в названии технологии вместо слова «массив» используется слово «матрица».

    Итак, что же представляет собой RAID-матрица из двух дисков по технологии Intel Matrix Storage? Основная идея заключается в том, что при наличии в системе нескольких жестких дисков и материнской платы с чипсетом Intel, поддерживающим технологию Intel Matrix Storage, возможно разделение дискового пространства на несколько частей, каждая из которых будет функционировать как отдельный RAID-массив.

    Рассмотрим простой пример RAID-матрицы из двух дисков по 120 Гбайт каждый. Любой из дисков можно разбить на два логических диска, например по 40 и 80 Гбайт. Далее два логических диска одного размера (например, по 40 Гбайт) можно объединить в RAID-матрицу уровня 1, а оставшиеся логические диски - в RAID-матрицу уровня 0.

    В принципе, используя два физических диска, также можно создать всего одну или две RAID-матрицы уровня 0, но вот получить только матрицы уровня 1 невозможно. То есть если в системе имеются всего два диска, то технология Intel Matrix Storage позволяет создавать следующие типы RAID-матриц:

    • одна матрица уровня 0;
    • две матрицы уровня 0;
    • матрица уровня 0 и матрица уровня 1.

    Если в системе установлены три жестких диска, то возможно создание следующих типов RAID-матриц:

    • одна матрица уровня 0;
    • одна матрица уровня 5;
    • две матрицы уровня 0;
    • две матрицы уровня 5;
    • матрица уровня 0 и матрица уровня 5.

    Если в системе установлены четыре жестких диска, то дополнительно имеется возможность создать RAID-матрицу уровня 10, а также комбинации уровня 10 и уровня 0 или 5.

    От теории к практике

    Ели говорить о домашних компьютерах, то наиболее востребованными и популярными являются RAID-массивы уровней 0 и 1. Использование RAID-массивов из трех и более дисков в домашних ПК - скорее исключение из правила. Связано это с тем, что, с одной стороны, стоимость RAID-массивов возрастает пропорционально количеству задействованных в нем дисков, а с другой - для домашних компьютеров первоочередное значение имеет емкость дискового массива, а не его производительность и надежность.

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

    Дело в том, что хотя теоретически при использовании RAID-массива уровня 0 скорость чтения и записи должна возрастать вдвое, на практике возрастание скоростных характеристик гораздо менее скромное и для разных RAID-контроллеров оно различно. Аналогично и для RAID-массива уровня 1: несмотря на то что теоретически скорость чтения должна увеличиваться вдвое, на практике не всё так гладко.

    Для нашего сравнительного тестирования RAID-контроллеров мы использовали материнскую плату Gigabyte GA-EX58A-UD7. Эта плата основана на чипсете Intel X58 Express с южным мостом ICH10R, имеющим интегрированный RAID-контроллер на шесть портов SATA II, который поддерживает организацию RAID-массивов уровней 0, 1, 10 и 5 с функцией Intel Matrix RAID. Кроме того, на плате Gigabyte GA-EX58A-UD7 интегрирован RAID-контроллер GIGABYTE SATA2, на базе которого реализованы два порта SATA II c возможностью организации RAID-массивов уровней 0, 1 и JBOD.

    Также на плате GA-EX58A-UD7 интегрирован SATA III-контроллер Marvell 9128, на базе которого реализованы два порта SATA III c возможностью организации RAID-массивов уровней 0, 1 и JBOD.

    Таким образом, на плате Gigabyte GA-EX58A-UD7 имеются три отдельных RAID-контроллера, на базе которых можно создать RAID-массивы уровней 0 и 1 и сравнить их друг с другом. Напомним, что стандарт SATA III обратно совместим со стандартом SATA II, поэтому на базе контроллера Marvell 9128, поддерживающего диски с интерфейсом SATA III, можно также создавать RAID-массивы с использованием дисков с интерфейсом SATA II.

    Стенд для тестирования имел следующую конфигурацию:

    • процессор - Intel Core i7-965 Extreme Edition;
    • материнская плата - Gigabyte GA-EX58A-UD7;
    • версия BIOS - F2a;
    • жесткие диски - два диска Western Digital WD1002FBYS, один диск Western Digital WD3200AAKS;
    • интегрированные RAID-контроллеры:
    • ICH10R,
    • GIGABYTE SATA2,
    • Marvell 9128;
    • память - DDR3-1066;
    • объем памяти - 3 Гбайт (три модуля по 1024 Мбайт);
    • режим работы памяти - DDR3-1333, трехканальный режим работы;
    • видеокарта - Gigabyte GeForce GTS295;
    • блок питания - Tagan 1300W.

    Тестирование проводилось под управлением операционной системы Microsoft Windows 7 Ultimate (32-bit). Операционная система инсталлировалась на диск Western Digital WD3200AAKS, который подключался к порту контроллера SATA II, интегрированного в южный мост ICH10R. RAID-массив собирался на двух дисках WD1002FBYS с интерфейсом SATA II.

    Для измерения скоростных характеристик создаваемых RAID-массивов мы использовали утилиту IOmeter, которая является отраслевым стандартом для измерения производительности дисковых систем.

    Утилита IOmeter

    Поскольку мы задумывали эту статью как своеобразное руководство пользователя по созданию и тестированию RAID-массивов, логично будет начать с описания утилиты IOmeter (Input/Output meter), которая, как мы уже отметили, является своеобразным отраслевым стандартом для измерения производительности дисковых систем. Данная утилита бесплатна, и ее можно скачать с ресурса http://www.iometer.org.

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

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

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

    Утилита IOmeter не требует инсталляции на компьютер и состоит из двух частей: собственно IOmeter и Dynamo.

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

    Для того чтобы начать работу с программой IOmeter, достаточно запустить файл IOmeter.exe. При этом открывается главное окно программы IOmeter (рис. 1).

    Рис. 1. Главное окно программы IOmeter

    Нужно отметить, что утилита IOmeter позволяет производить тестирование не только локальных дисковых систем (DAS), но и сетевых накопителей (NAS). К примеру, с ее помощью можно протестировать производительность дисковой подсистемы сервера (файл-сервера), используя для этого несколько сетевых клиентов. Поэтому часть закладок и инструментов в окне утилиты IOmeter относится именно к сетевым настройкам программы. Понятно, что при тестировании дисков и RAID-массивов эти возможности программы нам не потребуются, а потому мы не станем объяснять назначение всех вкладок и инструментов.

    Итак, при запуске программы IOmeter в левой части главного окна (в окне Topology) будет отображаться древовидная структура всех запущенных генераторов нагрузки (экземпляров Dynamo). Каждый запущенный экземпляр генератора нагрузки Dynamo называется менеджером (manager). Кроме того, программа IOmeter является многопотоковой и каждый отдельный запущенный поток экземпляра генератора нагрузки Dynamo называется Worker. Количество запущенных Worker’ов всегда соответствует количеству логических ядер процессора.

    В нашем примере используется только один компьютер с четырехъядерным процессором, поддерживающим технологию Hyper-Threading, поэтому запускается лишь один менеджер (один экземпляр Dynamo) и восемь (по количеству логических ядер процессора) Worker’ов.

    Собственно, для тестирования дисков в данном окне нет необходимости что-либо менять или добавлять.

    Если выделить мышью название компьютера в древовидной структуре запущенных экземпляров Dynamo, то в окне Target на вкладке Disk Target отобразятся все диски, дисковые массивы и прочие накопители (включая сетевые), установленные в компьютере. Это те накопители, с которыми программа IOmeter может работать. Носители могут быть помечены желтым или голубым цветом. Желтым цветом отмечаются логические разделы носителей, а голубым - физические устройства без созданных на них логических разделов. Логический раздел может быть перечеркнут или не перечеркнут. Дело в том, что для работы программы с логическим разделом его нужно прежде подготовить, создав на нем специальный файл, равный по размеру емкости всего логического раздела. Если логический раздел перечеркнут, то это значит, что раздел еще не подготовлен для тестирования (он будет подготовлен автоматически на первом этапе тестирования), ну а если раздел не перечеркнут, то это означает, что на логическом разделе уже создан файл, полностью готовый для тестирования.

    Отметим, что, несмотря на поддерживаемую возможность работы с логическими разделами, оптимально тестировать именно не разбитые на логические разделы диски. Удалить логический раздел диска можно очень просто - через оснастку Disk Management . Для доступа к ней достаточно щелкнуть правой кнопкой мыши на значке Computer на рабочем столе и в открывшемся меню выбрать пункт Manage . В открывшемся окне Computer Management в левой части необходимо выбрать пункт Storage , а в нем - Disk Management . После этого в правой части окна Computer Management отобразятся все подключенные диски. Щелкнув правой кнопкой по нужному диску и выбрав в открывшемся меню пункт Delete Volume …, можно удалить логический раздел на физическом диске. Напомним, что при удалении с диска логического раздела вся информация на нем удаляется без возможности восстановления.

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

    Итак, вернемся к описанию утилиты IOmeter. В окне Target на вкладке Disk Target необходимо выбрать тот диск (или дисковый массив), который будет подвергаться тестированию. Далее необходимо открыть вкладку Access Specifications (рис. 2), на которой можно будет определить сценарий тестирования.

    Рис. 2. Вкладка Access Specifications утилиты IOmeter

    В окне Global Access Specifications имеется список предустановленных сценариев тестирования, которые можно присвоить менеджеру загрузки. Впрочем, эти сценарии нам не понадобятся, поэтому все их можно выделить и удалить (для этого предусмотрена кнопка Delete ). После этого нажмем на кнопку New , чтобы создать новый сценарий тестирования. В открывшемся окне Edit Access Specification можно определить сценарий загрузки диска или RAID-массива.

    Предположим, мы хотим выяснить зависимость скорости последовательного (линейного) чтения и записи от размера блока запроса на передачу данных. Для этого нам нужно сформировать последовательность сценариев загрузки в режиме последовательного чтения при различных размерах блока, а затем последовательность сценариев загрузки в режиме последовательной записи при различных размерах блока. Обычно размеры блоков выбираются в виде ряда, каждый член которого вдвое больше предыдущего, а первый член этого ряда равен 512 байт. То есть размеры блоков составляют следующий ряд: 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Кбайт, 1 Мбайт. Делать размер блока больше 1 Мбайт при последовательных операциях нет смысла, поскольку при таких больших размерах блока данных скорость последовательных операций не изменяется.

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

    В поле Name окна Edit Access Specification вводим название сценария загрузки. Например, Sequential_Read_512. Далее в поле Transfer Request Size задаем размер блока данных 512 байт. Ползунок Percent Random/Sequential Distribution (процентное соотношение между последовательными и выборочными операциями) сдвигаем до упора влево, чтобы все наши операции были только последовательными. Ну а ползунок , задающий процентное соотношение между операциями чтения и записи, сдвигаем до упора вправо, чтобы все наши операции были только чтением. Остальные параметры в окне Edit Access Specification менять не нужно (рис. 3).

    Рис. 3. Окно Edit Access Specification для создания сценария загрузки последовательного чтения
    при размере блока данных 512 байт

    Нажимаем на кнопку Ok , и первый созданный нами сценарий отобразится в окне Global Access Specifications на вкладке Access Specifications утилиты IOmeter.

    Аналогично нужно создать сценарии и для остальных блоков данных, однако, чтобы облегчить себе работу, проще не создавать сценарий каждый раз заново, нажимая для этого кнопку New , а, выбрав последний созданный сценарий, нажать кнопку Edit Copy (редактировать копию). После этого опять откроется окно Edit Access Specification с настройками нашего последнего созданного сценария. В нем достаточно будет поменять лишь название и размер блока. Проделав аналогичную процедуру для всех остальных размеров блоков, можно приступить к формированию сценариев для последовательной записи, что делается совершенно аналогично, за исключением того, что ползунок Percent Read/Write Distribution , задающий процентное соотношение между операциями чтения и записи, нужно сдвинуть до упора влево.

    Аналогично можно создать сценарии для выборочной записи и чтения.

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

    Для этого еще раз проверяем, что в окне Topology выделено название компьютера (то есть менеджер нагрузки на локальном ПК), а не отдельный Worker. Это гарантирует, что сценарии нагрузки будут присваиваться сразу всем Worker’ам. Далее в окне Global Access Specifications выделяем все созданные нами сценарии нагрузки и нажимаем кнопку Add . Все выделенные сценарии нагрузки добавятся в окно (рис. 4).

    Рис. 4. Присвоение созданных сценариев нагрузки менеджеру нагрузки

    После этого нужно перейти к вкладке Test Setup (рис. 5), на которой можно задать время выполнения каждого созданного нами сценария. Для этого в группе Run Time задаем время выполнения сценария нагрузки. Вполне достаточно будет задать время, равное 3 мин.

    Рис. 5. Задание времени выполнения сценария нагрузки

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

    После того как все необходимые настройки произведены, рекомендуется сохранить созданный тест, нажав на панели инструментов на кнопку с изображением дискеты. Тест сохраняется с расширением *.icf. Впоследствии можно будет воспользоваться созданным сценарием нагрузки, запустив не файл IOmeter.exe, а сохраненный файл с расширением *.icf.

    Теперь можно приступить непосредственно к тестированию, нажав на кнопку с изображением флажка. Вам будет предложено указать название файла с результатами тестирования и выбрать его местоположение. Результаты тестирования сохраняются в CSV-файле, который потом легко экспортировать в Excel и, установив фильтр по первому столбцу, выбрать нужные данные с результатами тестирования.

    В ходе тестирования промежуточные результаты можно наблюдать на вкладке Result Display , а определить, к какому сценарию нагрузки они относятся, можно на вкладке Access Specifications . В окне Assigned Access Specification исполняемый сценарий отображается зеленым, выполненные сценарии - красным, а еще не выполненные сценарии - синим цветом.

    Итак, мы рассмотрели базовые приемы работы с утилитой IOmeter, которые потребуются для тестирования отдельных дисков или RAID-массивов. Отметим, что мы рассказали далеко не обо всех возможностях утилиты IOmeter, но описание всех ее возможностей выходит за рамки данной статьи.

    Создание RAID-массива на базе контроллера GIGABYTE SATA2

    Итак, мы начинаем создание RAID-массива на базе двух дисков с использованием интегрированного на плате RAID-контроллера GIGABYTE SATA2. Конечно, сама компания Gigabyte не производит чипов, а потому под чипом GIGABYTE SATA2 скрывается перемаркированный чип другой фирмы. Как можно выяснить из INF-файла драйвера, речь идет о контроллере серии JMicron JMB36x.

    Доступ в меню настройки контроллера возможен на этапе загрузки системы, для чего нужно нажать комбинацию клавиш Ctrl+G, когда появится соответствующая надпись на экране. Естественно, прежде в настройках BIOS нужно определить режим работы двух SATA-портов, относящихся к контроллеру GIGABYTE SATA2, как RAID (в противном случае доступ в меню конфигуратора RAID-массива будет невозможен).

    Меню настройки RAID-контроллера GIGABYTE SATA2 довольно простое. Как мы уже отмечали, контроллер является двухпортовым и позволяет создавать RAID-массивы уровня 0 или 1. Через меню настройки контроллера можно удалить или создать RAID-массив. При создании RAID-массива имеется возможность указать его название, выбрать уровень массива (0 или 1), задать размер страйпа для RAID 0 (128, 84, 32, 16, 8 или 4K), а также определить размер массива.

    Если массив создан, то какие-либо изменения в нем уже невозможны. То есть нельзя впоследствии для созданного массива изменить, например, его уровень или размер страйпа. Для этого прежде нужно удалить массив (с потерей данных), а потом создать его заново. Собственно, это свойственно не только контроллеру GIGABYTE SATA2. Невозможность изменения параметров созданных RAID-массивов - особенность всех контроллеров, которая вытекает из самого принципа реализации RAID-массива.

    После того как массив на базе контроллера GIGABYTE SATA2 создан, текущую информацию о нем можно просмотреть, используя утилиту GIGABYTE RAID Configurer, которая устанавливается автоматически вместе с драйвером.

    Создание RAID-массива на базе контроллера Marvell 9128

    Конфигурирование RAID-контроллера Marvell 9128 возможно только через настройки BIOS платы Gigabyte GA-EX58A-UD7. Вообще, нужно сказать, что меню конфигуратора контроллера Marvell 9128 несколько сыровато и может ввести в заблуждение неискушенных пользователей. Впрочем, об этих незначительных недоработках мы расскажем чуть позже, а пока рассмотрим основные функциональные возможности контроллера Marvell 9128.

    Итак, несмотря на то что этот контроллер поддерживает работу с дисками с интерфейсом SATA III, он также полностью совместим с дисками с интерфейсом SATA II.

    Контроллер Marvell 9128 позволяет создать RAID-массив уровней 0 и 1 на базе двух дисков. Для массива уровня 0 можно задать размер страйпа 32 или 64 Кбайт, а также указать имя массива. Кроме того, имеется и такая опция, как Gigabyte Rounding, которая нуждается в пояснении. Несмотря на название, созвучное с именем компании-производителя, функция Gigabyte Rounding никакого отношения к ней не имеет. Более того, она никак не связана с RAID-массивом уровня 0, хотя в настройках контроллера ее можно определить именно для массива этого уровня. Собственно, это первая из тех недоработок конфигуратора контроллера Marvell 9128, о которых мы упоминали. Функция Gigabyte Rounding определена только для RAID-массива уровня 1. Она позволяет использовать для создания RAID-массива уровня 1 два диска (например, различных производителей или разные модели), емкость которых немного отличается друг от друга. Функция Gigabyte Rounding как раз и задает разницу в размерах двух дисков, применяемых для создания RAID-массива уровня 1. В контроллере Marvell 9128 функция Gigabyte Rounding позволяет установить разницу в размерах дисков 1 или 10 Гбайт.

    Еще одна недоработка конфигуратора контроллера Marvell 9128 заключается в том, что при создании RAID-массива уровня 1 у пользователя имеется возможность выбора размера страйпа (32 или 64 Кбайт). Однако понятие страйпа вообще не определено для RAID-массива уровня 1.

    Создание RAID-массива на базе контроллера, интегрированного в ICH10R

    RAID-контроллер, интегрированный в южный мост ICH10R, является самым распространенным. Как уже отмечалось, данный RAID-контроллер 6-портовый и поддерживает не только создание массивов RAID 0 и RAID 1, но также RAID 5 и RAID 10.

    Доступ в меню настройки контроллера возможен на этапе загрузки системы, для чего нужно нажать комбинацию клавиш Ctrl+I, когда появится соответствующая надпись на экране. Естественно, прежде в настройках BIOS следует определить режим работы этого контроллера как RAID (в противном случае доступ в меню конфигуратора RAID-массива будет невозможен).

    Меню настройки RAID-контроллера достаточно простое. Через меню настройки контроллера можно удалить или создать RAID-массив. При создании RAID-массива можно указать его название, выбрать уровень массива (0, 1, 5 или 10), задать размер страйпа для RAID 0 (128, 84, 32, 16, 8 или 4K), а также определить размер массива.

    Сравнение производительности RAID-массивов

    Для тестирования RAID-массивов с помощью утилиты IOmeter мы создали сценарии нагрузки последовательного чтения, последовательной записи, выборочного чтения и выборочной записи. Размеры блоков данных в каждом сценарии нагрузки составляли следующую последовательность: 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Кбайт, 1 Мбайт.

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

    Итак, обратимся к результатам нашего тестирования.

    Контроллер GIGABYTE SATA2

    Прежде всего рассмотрим результаты тестирования RAID-массивов на базе контроллера GIGABYTE SATA2 (рис. 6-13). В общем-то контроллер оказался в буквальном смысле загадочным, а его производительность просто разочаровала.

    Рис. 6. Скорость последовательных
    и выборочных операций для диска
    Western Digital WD1002FBYS

    Рис. 7. Скорость последовательных

    c размером страйпа 128 Кбайт
    (контроллер GIGABYTE SATA2)

    Рис. 12. Скорость последовательных
    и выборочных операций для RAID 0
    c размером страйпа 4 Кбайт
    (контроллер GIGABYTE SATA2)

    Рис. 13. Скорость последовательных
    и выборочных операций
    для RAID 1 (контроллер GIGABYTE SATA2)

    Если посмотреть на скоростные характеристики одного диска (без RAID-массива), то максимальная скорость последовательного чтения составляет 102 Мбайт/с, а максимальная скорость последовательной записи - 107 Мбайт/с.

    При создании массива RAID 0 с размером страйпа 128 Кбайт максимальная скорость последовательного чтения и записи увеличивается до 125 Мбайт/с, то есть возрастает примерно на 22%.

    При размере страйпа 64, 32 или 16 Кбайт максимальная скорость последовательного чтения составляет 130 Мбайт/с, а максимальная скорость последовательной записи - 141 Мбайт/с. То есть при указанных размерах страйпа максимальная скорость последовательного чтения возрастает на 27%, а максимальная скорость последовательной записи - на 31%.

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

    При размере страйпа 8 Кбайт максимальная скорость последовательных операций (чтения и записи) остается примерно такой же, как и при размере страйпа 64, 32 или 16 Кбайт, однако с выборочным чтением - явные проблемы. При увеличении размера блока данных вплоть до 128 Кбайт скорость выборочного чтения (как и должно быть) возрастает пропорционально размеру блока данных. Однако при размере блока данных более 128 Кбайт скорость выборочного чтения падает практически до нуля (примерно до 0,1 Мбайт/с).

    При размере страйпа 4 Кбайт падает не только скорость выборочного чтения при размере блока более 128 Кбайт, но и скорость последовательного чтения при размере блока более 16 Кбайт.

    Использование массива RAID 1 на контроллере GIGABYTE SATA2 практически не изменяет (в сравнении с одиночным диском) скорость последовательного чтения, однако максимальная скорость последовательной записи уменьшается до 75 Мбайт/с. Напомним, что для массива RAID 1 скорость чтения должна возрастать, а скорость записи не должна уменьшаться в сравнении со скоростью чтения и записи одиночного диска.

    На основании результатов тестирования контроллера GIGABYTE SATA2 можно сделать только один вывод. Использовать данный контроллер для создания массивов RAID 0 и RAID 1 имеет смысл только в том случае, когда все остальные RAID-контроллеры (Marvell 9128, ICH10R) уже задействованы. Хотя представить себе подобную ситуацию довольно сложно.

    Контроллер Marvell 9128

    Контроллер Marvell 9128 продемонстрировал гораздо более высокие скоростные характеристики в сравнении с контроллером GIGABYTE SATA2 (рис. 14-17). Собственно, различия проявляются даже при работе контроллера с одним диском. Если для контроллера GIGABYTE SATA2 максимальная скорость последовательного чтения составляет 102 Мбайт/с и достигается при размере блока данных 128 Кбайт, то для контроллера Marvell 9128 максимальная скорость последовательного чтения составляет 107 Мбайт/с и достигается при размере блока данных 16 Кбайт.

    При создании массива RAID 0 с размером страйпа 64 и 32 Кбайт максимальная скорость последовательного чтения увеличивается до 211 Мбайт/с, а последовательной записи - до 185 Мбайт/с. То есть при указанных размерах страйпа максимальная скорость последовательного чтения возрастает на 97%, а максимальная скорость последовательной записи - на 73%.

    Существенной разницы по скоростным показателям массива RAID 0 с размером страйпа 32 и 64 Кбайт не наблюдается, однако применение страйпа 32 Кбайт более предпочтительно, поскольку в этом случае скорость последовательных операций при размере блока менее 128 Кбайт будет немного выше.

    При создании массива RAID 1 на контроллере Marvell 9128 максимальная скорость последовательных операций практически не изменяется в сравнении с одиночным диском. Так, если для одиночного диска максимальная скорость последовательных операций составляет 107 Мбайт/с, то для RAID 1 она равна 105 Мбайт/с. Также заметим, что для RAID 1 скорость выборочного чтения немного ухудшается.

    В целом же нужно отметить, что контроллер Marvell 9128 обладает неплохими скоростными характеристиками и его вполне можно задействовать как для создания RAID-массивов, так и для подключения к нему одиночных дисков.

    Контроллер ICH10R

    RAID-контроллер, встроенный в ICH10R, оказался самым высокопроизводительным из всех протестированных нами (рис. 18-25). При работе с одиночным диском (без создания RAID-массива) его производительность фактически такая же, как и производительность контроллера Marvell 9128. Максимальная скорость последовательного чтения и записи составляет 107 Мбайт и достигается при размере блока данных 16 Кбайт.

    Рис. 18. Скорость последовательных
    и выборочных операций
    для диска Western Digital WD1002FBYS (контроллер ICH10R)

    Если говорить о массиве RAID 0 на контроллере ICH10R, то максимальная скорость последовательного чтения и записи не зависит от размера страйпа и составляет 212 Мбайт/с. От размера страйпа зависит лишь размер блока данных, при котором достигается максимальное значение скорости последовательного чтения и записи. Как показывают результаты тестирования, для RAID 0 на базе контроллера ICH10R оптимально использовать страйп размером 64 Кбайт. В этом случае максимальное значение скорости последовательного чтения и записи достигается при размере блока данных всего 16 Кбайт.

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

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

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

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

    Для чего нужны RAID массивы?

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

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

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

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

    Многие удивятся, но еще в 1987 году Девид Петерсон со своей командой представил «резервный массив недорогих дисков», наверное потому, что жесткие диски — это в общем то не такое уж дешевые устройства… Так и расшифровывается сегодня аббревиатура RAID «избыточный массив независимых дисков »

    Чем отличаются рейд — массивы друг от друга?

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

    Подключать можно столько — сколько у вас на материнской плате разъемов для подключения. На блок питания компьютера так же стоит обратить внимание. Мощность и количество разъемов питания для подключения возможно придется увеличить.

    Исходя из этого уже можно судить о том, какие массивы может поддерживать материнская плата вашего компьютера. Можно говорить о том, что все мало-мальски современные материнские платы поддерживают использование RAID . А вот ноутбуки — нет, там без вариантов только один жесткий диск.

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

    Изменились конечно технологии. У меня в 90-х годах был компьютер «Спектр» , там в качестве «жесткого диска» использовалась магнитофонная кассета и подключенный магнитофон.

    Игра была записана на кассету. Перед тем как играть, нужно было для начала кассету «прослушать» — так загружалась игра в этот компьютер. Видел недавно у друга подобную вещь — ZX Spectrum , еще работает. Были времена…


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

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

    Виды и назначение рейд массивов

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

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

    Скорость чтения записи возрастает в нашем случае в два раза. Если дисков в массиве три — то в три раза и т. д. Данные при таком варианте массива не резервируются.


    Вероятность потери данных при отказе одного из дисков так же повышается в два раза. У меня есть компьютер с двумя дисками в RAID0. Плюс отдельно один диск, на который ежедневно скидывается копия системы. Вот я и решил применить дополнительные средства.

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

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

    Можно построить «зеркало» из трех дисков. Соответственно, вероятность отказа уменьшается втрое, а скорость чтения увеличивается. Но тут мы проигрываем, теряя дисковое пространство — массив из двух (или трех) дисков получается по объему как один обычный.


    RAID2. Эта схема мудренее предыдущих, в ней сочетаются принцип RAID -0 (для данных используются как минимум два диска). А на остальных записываются коды коррекции ошибок, с помощью которых можно восстановить информацию в случае отказа. Причем коррекция ошибок происходит в процессе работы системы. Беда в том, что дисков коррекции нужно довольно много. Параллельной записи нет.

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

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

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


    RAID5 Интересная и экономичная комбинация. Нет контрольных дисков. Минимальное количество дисков — это три. Данные на диски записываются циклично. К примеру, один файл пишется сразу на все диски.

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

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

    RAID6 отличается от предыдущего варианта наличием контрольных дисков. На два диска данных подключается три контрольных. Запись ведется по особому коду. Повышена надежность, но несколько снижена производительность по сравнению с RAID 5.


    Итак, слегка пробежавшись по базовым стандартам мы видим, что есть только два «достойных» варианта, это RAID0 и RAID1 Один из них обеспечивает самую высокую скорость, другой — высокую надежность. Остальные базовые стандарты — это компромиссы между скоростью и надежностью.

    И выбирать нужно исходя из потребностей. Основное назначение массивов — повышение скорости и отказоустойчиовсти в процессе работы. Есть и распространенные комбинации базовых вариантов. Одной из таких является стандарт RAID 1,0.

    RAID 1,0 (1+0) Если у Вас есть задумки развернуть к примеру сервер 1с или любой другой сервер баз данных, то комбинация RAID 1,0 то, что надо. Нужно будет использовать как минимум 4 (или восемь) дисков в массиве.

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

    Какие HDD (жесткие диски) можно подключить в RAID

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

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


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

    В общем, брать новые и одинаковые. Самым продвинутым и дорогим на сегодня вариантом является объединение в RAID массив твердотельных жестких дисков. Если вы собираетесь модернизировать сервер в этом направлении — тут нужно брать специальные серверные версии таких устройств.

    На момент написания статьи ведущим лидером среди производителей SSD (на нашем рынке) для сервера остается Intel. Цена на их устройства высока, но с качеством не прогадаете. Даже такой производитель как Hitachi пока не может похвастать особым выбором устройств SSD для серверов, по крайней мере у нас.

    И прочее, прочее, прочее, прочее. Так вот, сегодня поговорим про RAID массивах на их основе.

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

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

    Наверняка так же Вы знаете (а если и не знаете, то не беда) о том, что эти массивы имеют разные порядковые номера (0, 1, 2, 3, 4 и пр.), а так же выполняют вполне себе различные функции. Оное явление действительно имеет место быть в природе и, как Вы думаю уже догадались, как раз о этих самых RAID массивах я и хочу Вам рассказать в этой статье. Точнее уже рассказываю;)

    Поехали.

    Что такое RAID и зачем оно нужно?

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

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

    Просто, например, в случае построения 0 -вой версии (описание вариаций 0, 1, 2, 3 и пр., - читайте ниже) Вы получите ощутимый прирост производительности. Да и вообще жесткий диск нынче как раз таки узкий канал в быстродействии системы.

    Почему так сложилось в общем и целом

    Жесткие диски же растут разве что в объеме ибо скорость оборота головки оных (за исключением редких моделей типа Raptor "ов) замерла уже довольно давно на отметке в 7200 , кэш тоже не то чтобы растет, архитектура остается почти прежней.

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

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

    В общем, повторюсь, рейды будут полезны всем и каждому. Я бы даже сказал, что обязательны:)

    Что такое RAID в физическом смысле

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

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

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

    Установка массива не представляет собой ничего сложного: просто берем мат.плату, которая поддерживает технологию RAID , берем два полностью идентичных, - это важно! , - как по характеристикам (размеру, кэшу, интерфейсу и пр) так и по производителю и модели, диска и подключаем их к оной мат.плате. Далее просто включаем компьютер, заходим в BIOS и выставляем параметр SATA Configuration : RAID .

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

    Важное примечание, которое стоит помнить

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

    Что до конфигураций.. Как я уже говорил, RAID массивов существует несколько видов (как минимум из основного базиса, - это RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 ). Для начала я расскажу о двух, наиболее понятных и популярных среди обычных пользователей:

    • RAID 0 - дисковый массив для увеличения скорости\записи.
    • RAID 1 - зеркальный дисковый массив.

    А в конце статьи быстренько пробегусь по прочим.

    RAID 0 - что это и с чем его едят?

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

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

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

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

    RAID 1 - что такое и с чем его едят?

    Что же до RAID 1 (Mirroring - «зеркало»).. Собственно, начну с недостатка. В отличии от RAID 0 получается, что Вы как бы "теряете" объем второго жесткого диска (он используется для записи на него полной (байт в байт) копии первого жесткого диска в то время как RAID 0 это место полностью доступно).

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

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

    RAID 2, 3, 4, 5, 6 - что такое и с чем едят их?

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

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

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

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

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

    Какой RAID все же выбрать?

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

    Если же вы работаете с ценной информацией, которую потерять равносильно смерти, то Вам безусловно нужен RAID 1 - с ним потерять информацию крайне сложно.

    Повторюсь, что очень желательно, чтобы диски устанавливаемые в RAID массив были пол идентичны. Размер, фирма, серия, объём кэша - всё, желательно, должно быть одинаковым.

    Послесловие

    Вот такие вот дела.

    Кстати, как собрать это чудо я писал в статье: "Как создать RAID-массив штатными методами ", а про пару параметров в материале "RAID 0 из двух SSD, - практические тесты с Read Ahead и Read Cache ". Пользуйтесь поиском.

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

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

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

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

    На этом месте мы остановимся и сделаем краткий экскурс в историю и теорию RAID-массивов. Сама аббревиатура RAID расшифровывается как Redundant Array of Independent Disks (избыточный массив независимых дисков). Раньше вместо independent употребляли inexpensive (недорогой), но со временем это определение потеряло актуальность: недорогими стали почти все дисковые накопители.

    История RAID началась в 1987 году, когда появилась на свет статья "Корпус для избыточных массивов из дешевых дисков (RAID)", подписанная товарищами Петерсоном, Гибсоном и Катцем. В заметке была описана технология объединения нескольких обычных дисков в массив для получения более быстрого и надежного накопителя. Также авторы материала рассказывали читателям о нескольких типах массивов - от RAID-1 до RAID-5. Впоследствии к описанным почти двадцать лет назад массивам прибавился RAID-массив нулевого уровня, и он обрел популярность. Так что же представляют собой все эти RAID-x? В чем их суть? Почему они называются избыточными? В этом мы и постараемся разобраться.

    Если говорить очень простым языком, то RAID - это такая штука, которая позволяет операционной системе не знать, сколько дисков установлено в компьютере. Объединение хардов в RAID-массив - процесс, прямо противоположный разбиению единого пространства на логические диски: мы формирует один логический накопитель на основе нескольких физических. Для того чтобы сделать это, нам потребуется или соответствующий софт (об этом варианте мы даже говорить не будем - ненужная это вещь), или RAID-контроллер, встроенный в материнку, или отдельный, вставляемый в слот PCI либо PCI Express. Именно контроллер объединяет диски в массив, а операционная система работает уже не с HDD, а с контроллером, который ей ничего ненужного не сообщает. А вот вариантов объединения нескольких дисков в один существует великое множество, точнее, около десяти.

    Какими бывают RAID?

    Самый простой из них - JBOD (Just a Bunch of Disks). Два винчестера склеены в один последовательно, информация записывается сначала на один, а затем на другой диск без разбиения ее на куски и блоки. Из двух накопителей по 200 Гбайт мы делаем один на 400 Гбайт, работающий практически с той же, а в реальности с чуть меньшей скоростью, что и каждый из двух дисков.

    JBOD является частным случаем массива нулевого уровня, RAID-0. Встречается также другой вариант названия массивов этого уровня - stripe (полоска), полное наименование - Striped Disk Array without Fault Tolerance. Этот вариант тоже предполагает объединение n дисков в один с объемом, увеличенным в n раз, но диски объединяются не последовательно, а параллельно, и информация на них записывается блоками (объем блока задает пользователь при формировании RAID-массива).

    То есть в случае, если на два накопителя, входящие в массив RAID-0, нужно записать последовательность цифр 123456, контроллер разделит эту цепочку на две части - 123 и 456 - и первую запишет на один диск, а вторую - на другой. Каждый диск может передавать данные… ну, пусть со скоростью 50 Мбайт/с, а суммарная скорость двух дисков, данные с которых берутся параллельно, составляет 100 Мбайт/c. Таким образом, скорость работы с данными должна увеличиться в n раз (реально, конечно, рост скорости меньше, так как потери на поиск данных и на передачу их по шине никто не отменял). Но этот прирост дается не просто так: при поломке хотя бы одного диска информация со всего массива теряется.

    RAID-массив нулевого уровня. Данные разбиваются на блоки и раскидываются по дискам. Контроля четности и резервирования нет.

    То есть никакой избыточности и никакого резервирования нет и в помине. Считать этот массив RAID-массивом можно лишь условно, тем не менее он очень популярен. Мало кто задумывается о надежности, ее ведь никак не измеришь бенчмарками, зато все понимают язык мегабайт в секунду. Это не плохо и не хорошо, просто такое явление есть. Ниже мы поговорим о том, как и рыбку съесть, и надежность сохранить. Восстановление RAID-0 после сбоя

    Кстати, дополнительный минус stripe-массива заключается в его непереносимости. Я не имею в виду то, что он плохо переносит какие-то отдельные виды пищи или, к примеру, хозяев. На это ему наплевать, но перенести куда-то сам массив - это целая проблема. Даже если притащить к другу оба диска и драйверы контроллера в придачу, не факт, что они определятся как один массив и данными удастся воспользоваться. Более того, известны случаи, когда простое подключение (без записи чего-либо!) stripe-дисков к "неродному" (отличному от того, на котором формировался массив) контроллеру приводило к порче информации в массиве. Не знаем, насколько эта проблема актуальна сейчас, с появлением современных контроллеров, но все же советуем быть аккуратнее.


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

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

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

    Как видите, и у RAID-0, и у RAID-1 есть свои недостатки. А как бы от них избавиться? Если у вас есть минимум четыре винчестера, вы можете создать конфигурацию RAID 0+1. Для этого массивы RAID-1 объединяются в массив RAID-0. Или наоборот, иногда создают массив RAID-1 из нескольких массивов RAID-0 (на выходе получится RAID-10, единственное преимущество которого - меньшее время восстановления данных при выходе одного диска из строя).

    Надежность такой конфигурации из четырех винчестеров равна надежности массива RAID-1, а скорость фактически такая же, как у RAID-0 (реально она, скорее всего, будет чуть ниже из-за ограниченных возможностей контроллера). При этом одновременный выход из строя двух дисков не всегда означает полную потерю информации: это произойдет лишь в случае, если сломаются диски, содержащие одни и те же данные, что маловероятно. То есть если четыре диска разбиты на пары 1-2 и 3-4 и пары объединены в массив RAID-0, то лишь одновременная поломка дисков 1 и 2 или 3 и 4 приведет к потере данных, в то время как в случае безвременной кончины первого и третьего, второго и четвертого, первого и четвертого или второго и третьего винчестеров данные останутся в целости и сохранности.

    Однако главный недостаток RAID-10 - высокая стоимость дисков. Все-таки цену четырех (минимум!) винчестеров маленькой не назовешь, особенно если реально нам доступен объем лишь двух из них (о надежности и о том, сколько она стоит, как мы уже говорили, мало кто думает). Большая (100%-я) избыточность хранения данных дает о себе знать. Все это привело к тому, что в последнее время популярность приобрел вариант массива под названием RAID-5. Для его реализации необходимо три диска. Помимо самой информации, контроллер складирует на накопителях массива еще и блоки контроля четности.

    Не будем вдаваться в подробности работы алгоритма контроля четности, скажем только, что он позволяет в случае потери информации на одном из дисков восстановить ее, используя данные четности и живые данные с других дисков. Блок четности имеет объем одного физического диска и равномерно распределяется по всем винчестерам системы так, что потеря любого диска позволяет восстановить информацию с него с помощью блока четности, находящегося на другом диске массива. Информация же разбивается на большие блоки и записывается на диски поочередно, то есть по принципу 12-34-56 в случае с трехдисковым массивом.

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

    RAID-0, RAID-1 и RAID 0+1, иногда еще RAID-5 - этими уровнями чаще всего исчерпываются возможности десктопных RAID-контроллеров. Более высокие уровни доступны лишь сложным системам, основой для которых служат SCSI-винчестеры. Однако счастливые обладатели SATA-контроллеров с поддержкой Matrix RAID (такие контроллеры встроены в южные мосты ICH6R и ICH7R от компании Intel) могут воспользоваться преимуществами массивов RAID-0 и RAID-1, имея всего два диска, а те, у кого есть плата с ICH7R, могут объединить RAID-5 и RAID-0, если у них есть четыре одинаковых накопителя.

    Как это реализуется на практике? Разберем более простой случай с RAID-0 и RAID-1. Допустим, вы купили два харда по 400 Гбайт. Вы разбиваете каждый из накопителей на логические диски объемом 100 Гбайт и 300 Гбайт. После этого с помощью зашитой в BIOS утилиты Intel Application Accelerator RAID Option ROM вы объединяете 100-гигабайтные разделы в stripe-массив (RAID-0), а 300-гигабайтные - в массив Mirror (RAID-1). Теперь на быстрый диск объемом 200 Гбайт можно складывать, скажем, игрушки, видеоматериал и другие данные, требующие высокой скорости дисковой подсистемы и притом не очень важные (то есть те, о потере которых вы не будете очень сильно жалеть), а на зеркалируемый 300-гигабайтный диск вы перемещаете рабочие документы, архив почты, служебный софт и другие жизненно необходимые файлы. При выходе из строя одного диска вы лишаетесь того, что было размещено на массиве stripe, но данные, размещенные вами на втором логическом диске, дублируются на оставшемся накопителе.

    Объединение уровней RAID-5 и RAID-0 подразумевает то, что часть объема четырех дисков отведена под быстрый stripe-массив, а другая часть (пусть это будут 300 Гбайт на каждом диске) приходится на блоки данных и блоки четности, то есть вы получаете один сверхбыстрый диск объемом 400 Гбайт (4 х 100 Гбайт) и один надежный, но менее быстрый массив объемом 900 Гбайт 4 х 300 Гбайт минус 300 Гбайт на блоки четности.

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

    Вот, пожалуй, и все виды RAID-массивов, которые применяются в домашних системах. Однако в жизни вам могут встретиться RAID-2, 3, 4, 6 и 7. Так что давайте все-таки посмотрим, что это за уровни такие.

    RAID-2 . В массива такого типа диски делятся на две группы - для данных и для кодов коррекции ошибок, причем если данные хранятся на n дисках, то для складирования кодов коррекции необходимо n-1 дисков. Данные записываются на соответствующие винчестеры так же, как и в RAID-0, они разбиваются на небольшие блоки по числу дисков, предназначенных для хранения информации. Оставшиеся диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо винчестера из строя возможно восстановление информации. Метод Хемминга давно применяется в памяти типа ECC и позволяет на лету исправлять мелкие однобитовые ошибки, если они вдруг возникнут, а если ошибочно будут переданы два бита, это будет обнаружено опять-таки с помощью систем контроля четности. Впрочем, держать ради этого громоздкую структуру из почти двойного количества дисков никому не хотелось, и этот вид массива не получил распространения.

    Структура массива RAID-3 такова: в массиве из n дисков данные разбиваются на блоки размером 1 байт и распределяются по n-1 дискам, а еще один диск используется для хранения блоков четности. В RAID-2 для этой цели стояло n-1 дисков, но большая часть информации на этих дисках использовалась только для коррекции ошибок на лету, а для простого восстановления в случае поломки диска достаточно меньшего ее количества, хватает и одного выделенного винчестера.


    RAID третьего уровня с отдельным диском для хранения информации о четности. Резервирования нет, но данные восстановить можно.

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


    Массив пятого уровня отличается от RAID-3 тем, что блоки четности равномерно разбросаны по всем дискам массива.

    RAID-4 похож на RAID-3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось "победить" проблему низкой скорости передачи данных небольшого объема. Запись же производится медленно из-за того, что четность для блока генерируется при записи и записывается на единственный диск. Используются массивы такого типа очень редко.

    RAID-6 - это тот же самый RAID-5, но теперь на каждом из дисков массива хранятся два блока четности. Таким образом, при выходе двух дисков из строя информация все еще может быть восстановлена. Разумеется, повышение надежности привело к уменьшению полезного объема дисков и к увеличению минимального их количества: теперь при наличии n дисков в массиве общий объем, доступный для записи данных, будет равен объему одного диска, умноженному на n-2. Необходимость вычисления сразу двух контрольных сумм определяет второй недостаток, унаследованный RAID-6 от RAID-5, - низкую скорость записи данных.

    RAID-7 - зарегистрированная марка компании Storage Computer Corporation. Структура массива такова: на n-1 дисках хранятся данные, один диск используется для складирования блоков четности. Но добавилось несколько важных деталей, призванных ликвидировать главный недостаток массивов такого типа: кэш данных и быстрый контроллер, заведующий обработкой запросов. Это позволило снизить количество обращений к дискам для вычисления контрольной суммы данных. В результате удалось значительно повысить скорость обработки данных (кое-где в пять и более раз).



    Массив уровня RAID 0+1, или конструкция из двух массивов RAID-1, объединенных в RAID-0. Надежно, быстро, дорого.

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

    Создание массива

    Надеюсь, с выбором типа массива вы уже справились. Если на вашей плате есть RAID-контроллер, вам ничего, кроме нужного количества дисков и драйверов этого самого контроллера, не понадобится. Кстати, имейте в виду: есть смысл объединять в массивы только диски одинакового объема, причем лучше одной модели. С дисками разного объема может отказаться работать контроллер, и, скорее всего, вы сможете задействовать лишь часть большого диска, равную по объему меньшему из дисков. Кроме того, даже скорость stripe-массива будет определяться скоростью самого медленного из дисков. И мой вам совет: не пытайтесь сделать RAID-массив загрузочным. Это возможно, но в случае возникновения каких-либо сбоев в системе вам придется нелегко, так как восстановление работоспособности будет сильно затруднено. Кроме того, опасно размещать несколько систем на таком массиве: почти все программы, отвечающие за выбор ОС, убивают информацию из служебных областей винчестера и, соответственно, портят массив. Лучше выбрать иную схему: один диск - загрузочный, а остальные объединены в массив.



    Matrix RAID в действии. Часть объема дисков используется массивом RAID-0, оставшуюся часть пространства забирает массив RAID-1.

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

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

    Пренебрежительное отношение к качественному питанию и температурному режиму дисков может существенно сократить срок жизни HDD, бывает, все диски массива выходят из строя, а все данные оказываются безвозвратно потерянными. В частности, современные винчестеры (в особенности IBM и Hitachi) очень чувствительны к каналу +12 В и не любят даже малейшего изменения напряжения на нем, так что перед закупкой всего оборудования, необходимого для построения массива, стоит проверить соответствующие напряжения и при необходимости включить новый БП в список покупок.

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

    Кроме того, RAID не отменяет необходимости регулярно изготавливать резервные копии данных. Зеркалирование зеркалированием, но если вы случайно испортите или сотрете файлы, второй диск вам никак не поможет. Так что делайте бэкап всякий раз, когда вы можете его делать. Это правило действует вне зависимости от наличия RAID-массивов внутри ПК.

    Так что, are you RAIDy? Да? Отлично! Только в погоне за объемом и скоростью не забудьте другую пословицу: "Заставь дурака Богу молиться, он и лоб расшибет". Крепких вам дисков и надежных контроллеров!

    Ценовая выгода шумного RAID

    RAID - это хорошо даже без оглядки на деньги. Но давайте посчитаем цену простейшего stripe-массива объемом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт каждый обойдутся вам примерно в $230. RAID-контроллеры встроены в большинство материнских плат, то бишь мы получаем их бесплатно.

    В то же время 400-гигабайтный диск той же модели стоит $280. Разница - $50, и на эти деньги можно приобрести мощный блок питания, который вам, несомненно, понадобится. Я уж не говорю о том, что производительность составного "диска" при более низкой цене будет почти вдвое выше производительности одного винчестера.

    Проведем теперь подсчет, ориентируясь на общий объем 250 Гбайт. Дисков по 125 Гбайт не существует, так что возьмем два винчестера по 120 Гбайт. Цена каждого диска - $90, цена одного 250-гигабайтного винчестера - $130. Что ж, при таких объемах за производительность приходится платить. А если взять 300-гигабайтный массив? Два диска по 160 Гбайт - примерно $200, один на 300 Гбайт - $170… Опять не то. Получается, что выгоден RAID только при использовании дисков очень большого объема.