Принципы работы RAID

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

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

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

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

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

Уровни RAID

Уровни RAID — способ организации дисков внутри массива. В 1993 году про­мышленный консорциум по стандартизации RAID (RAID Advisory Board — RAB) определил семь типовых уровней RAID: от О до 6. Термин «уровни RAID» (RAID levels) является официальным и прочно вошел в лексику компьютерных пользо­вателей, хотя никакой иерархии здесь нет: это всего лишь семь совершенно разных независимых архитектур. Спецификация RAID-2 осталась чисто теоретической, поскольку описывает массивы из 14 или 39 дисков. Зато уже после принятия стан­дарта были предложены спецификации RAID 0+1 и RAID 1+0 (RAID-10), которые, по сути, являются комбинациями RAID-0 и RAID-1.

RAID-0 — простейший вариант построения массива (рис. 3.1). Это так называемое чередование, или простое распараллеливание записи/чтения данных между всеми дисками. Поток данных разбивается на равные блоки («полосы» — stripes) задан­ного размера, и первый блок записывается на один диск, второй — на следующий, третий — снова на первый диск и т. д. Массив может строиться из любого количе­ства дисков: чем больше их чередуется, тем выше скорость обмена данными. Запись производится без избыточности, поэтому такой массив не является RAID в прямом смысле, хотя термин RAID-0 широко используется и принят RAB.

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

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

Массивы уровня I подходят для хранения критически важных данных. На практике быстродействие такого массива может немного превосходить быстродействие каж­дого из дисков. Это связано с аппаратной реализацией чтения и записи данных.

Спецификация RAID-2 осталась чисто теоретической, поскольку она описывает массивы, состоящие из 14 или 39 дисков.

RAID-3 — трехдисковый массив. Два диска в нем работают подобно RAID-0, дан­ные на них записываются с чередованием. Однако для каждых двух чередующих­ся блоков контроллер вычисляет код четности (Parity Code) и записывает его на третий диск. Благодаря простому алгоритму данные четности для двух блоков занимают столько же места, сколько каждый из этих блоков. В результате образу­ются наборы из трех взаимосвязанных блоков: два — на первых двух дисках, со­держат данные, а третий — на третьем диске (экстраблок) — контрольную сумму для двух блоков данных (рис. 3.3). По данным на одном из первых двух дисков и контрольным суммам всегда можно восстановить содержимое другого диска при его повреждении. Точно так же коды четности, в случае аварии третьего диска, всегда можно пересчитать по данным на первых двух дисках.

clip_image002

Рис. 3.1. Структура RAID-0

clip_image004

Рис. 3.2. Структура RAID-1

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

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

RAID-5 — другая реализация идеи чередования с контролем четности. Чередование блоков данных происходит между всеми тремя дисками. В массиве уровня 5 все диски равноценны, а блоки четности распределены между ними (рис. 3.4). При этом блок четности для блоков, находящихся на двух дисках, всегда записывается на третий диск и т. д. «по кругу». Порядок чередования блоков данных и блоков чет­ности (Parity Rotation) зависит от контроллера. Существует несколько вариантов такого чередования: Forward (прямое), Backward (обратное) и Backward symmetric (обратное симметричное). В большинстве современных RAID-контроллеров ис­пользуется последний вариант.

clip_image006

Рис. 3.3. Структура RAID-3

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

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

Составные массивы (multi-RAID) представляют собой сочетание двух специфи­каций. Они могут реализовываться полностью на уровне контроллера либо час­тично на аппаратном уровне, а частично на программном.

RAID 0+1 — чередование двух или нескольких двухдисковых массивов RAID-1. RAID 1+0 (RAID-10) — зеркалирование массива RAID-0 на другой такой же массив.

clip_image008

Рис. 3.4. Структура RAID-5

Оба этих варианта привлекательны для недорогих систем. Хотя в обоих случаях емкость дисков используется только на 50 % (каждый винчестер полностью дуб­лируется), а сам контроллер дешев. Контроллеры этих уровней RAID занимаются только распределением потоков данных, тогда как контроллеры RAID-3 и RAID-5 непрерывно в реальном времени обсчитывают четность, а это уже серьезная вы­числительная задача.

Массивы RAID 5+0 (RAID-50) и RAID 6+0 (RAID-60) образуются чередованием массивов уровней 5 и 6 соответственно. Это большие серверные решения. Для их реализации нужны дорогие многопортовые контроллеры, а в массив будут вклю­чаться от шести до нескольких десятков жестких дисков.

Существует спецификация JBOD Gust а Bunch of Disks — простая группа дисков). В этом случае несколько винчестеров представляются одним большим диском. Объединение (spanning) нескольких физических дисков еще недавно использова­лось в компьютерах для видеозахвата и видеомонтажа, чтобы получить достаточно места для сохранения непрерывного файла размером в десятки или сотни гигабай­тов. С появлением терабайтных винчестеров это утратило актуальность.

Контроллеры и конфигурирование RAID

Первоначально RAID-контроллеры выполнялись только в виде самостоятельных плат расширения PCI. Такой контроллер включает в себя микропроцессор, буфер­ную память, flash-память с микропрограммой и областью для хранения сведений о конфигурации массива. Известными производителями RAID-контроллеров яв­ляются компании Adaptec, Intel, Tekram (Areca), Promise, SWare. Современные дискретные контроллеры поддерживают спецификации RAID-O/l/lO/5/6/50/бО/ JBOD и несут от 4 до 8 портов Ultra320 SCSI либо SAS/SATA.

Интегрированные RAID-контроллеры материнских плат строятся либо на отдель­ных чипах, например Silicon Image, Promise, ITE GigaRAID, либо являются частью чипсета материнской платы, например Intel ICH5 или VIA VT8237. Эти контрол­леры, которые сейчас широко распространены, обслуживают от 2 до 4 дисков SАТА или IDE и поддерживают уровни RAID-0/1/JBOD, но нередко и RAID-5/10.

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

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

2. В меню настройки RAID выберите команду с названием наподобие Create Array (Создать массив). Затем обьино требуется указать физические диски, которые должны быть включены в массив, и выбрать тип массива из нескольких пред­лагаемых вариантов.

3. Далее (в общем случае) укажите размер блока чередования (Stripe Block Size). Некоторые контроллеры предлагают упрощенную процедуру создания массива, когда достаточно выбрать один из пунктов с названием типа Optimize Array for Performance (Оптимизировать массив для производительности) — из двух дис­ков будет создан RAID-0, Optimize Array for Security (Оптимизировать массив для надежности) — создается массив RAID-1 или Optimize Array for Capacity (Опти­мизировать массив для емкости) — диски объединяются в массив JBOD. При вы­боре таких пунктов в массив включаются все обнаруженные диски, а все на­стройки устанавливаются по умолчанию.

При создании RAID-1 есть возможность сразу скопировать все данные с одного диска на второй — «зеркальный». Как правило, это действие обозначается как Create & Duplicate the disk (Создать массив и дублировать диск).

В меню, вызываемом при загрузке, доступны операции обслуживания массива. Проверка (Check) массива средствами контроллера позволяет выявить ошибки чередования и четности. После замены одного из дисков массив следует перестро­ить (Rebuild) или восстановить (Restore). Это достаточно длительный процесс, в ходе которого контроллер воссоздает содержимое замененного диска по двум оставшимся (RAID-5) или копирует один диск на другой (RAID-1).

Помимо меню, вызываемого при загрузке, для проверки и обслуживания массивов используются утилиты, работающие в среде MS-DOS или Windows. Первые за­пускаются со специально создаваемого загрузочного диска, а вторые обычно уста­навливаются вместе с драйвером RAID-массива или являются одним из компонен­тов драйвера. Такие резидентные программы способны непрерывно отслеживать состояние массива и при возникновении неполадок уведомлять об этом пользова­теля даже путем отправки сообщения по электронной почте.

В процессе создания RAID-массива на нулевые дорожки входящих в него дисков контроллер обычно записывает служебную информацию о номере диска в массиве, уровне RAID и размере блока. Информация о дисках, включенных в массив, в свою очередь сохраняется в энергонезависимой памяти контроллера. Некоторые кон­троллеры «запоминают» диски по их серийным номерам, но чаще контроллер идентифицирует диски в процессе инициализации массива, основываясь на слу­жебной информации из нулевых дорожек дисков. Вывод: и искажение данных в CMOS контроллера, и изменение служебной информации на самих дисках может привести к разрушению массива.

Программный RAID-массив

Кроме аппаратной, существует и программная реализация RAID. В этом случае массив формируется из дисков, подключенных к обычному контроллеру SATA или IDE. Серверные версии операционной системы Windows (Windows Server 2003/ 2008/2008 R2) работают со всеми типами программных массивов. «Настольные» версии (Windows XP/Vista/7) официально поддерживают только чередование дисков (RAID-0). Впрочем, несложная модификация трех системных файлов с по­мощью НЕХ-редактора позволяет включить функции работы со всеми типами программных массивов и в «настольных» выпусках ОС Windows. Сведения о том, как это сделать, легко найти в Интернете.

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

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

Чередующийся том — программный аналог RAID-0. В чередующийся том также могут входить до 32 динамических дисков. Команды создания составных и чере­дующихся томов становятся активны в контекстном меню диска после преобразо­вания его в динамический диск.

Сведения о конфигурации программных массивов хранятся в системном реестре Windows. Создание программных массивов — допустимое решение при отсутствии аппаратного RAID-контроллера. Основным недостатком создания программных массивов без аппаратного RAID-контроллера является повышенный расход ресур­сов и относительное снижение быстродействия компьютера по сравнению с пол­ноценной аппаратной реализацией RAID. Тем не менее такое решение может применяться на практике.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий