Что стоит за отказоустойчивостью дисковой подсистемы
Дисковые подсистемы RAID
AutoRAID компании Hewlett-Packard
RAID-S компании EMC
Ступени совершенства RAID
Динамическая миграция
Особенности реализации RAID-S

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

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

Что стоит за отказоустойчивостью дисковой подсистемы

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

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

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

Второй метод - параллельное оперативное тестирование (Concurrent Online Testing) - относится ко времени нормальной работы системы. Этот метод ищет главным образом те ошибки, которые могли появится после инсталляции системы. Один из самых известных способов оперативного тестирования - контроль четности (parity checking). Он гарантирует, что каждый байт данных, передаваемый по компьютерной системе, дойдет до следующего ее компонента в целости и сохранности. Метод контроля четности только обнаруживает присутствие ошибки и не может определить, какой бит потерян. Поэтому он используется вместе с кодом коррекции ошибок (Error Correction Code), который точно определяет, какие данные потеряны, позволяя системе быстро их восстановить.

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

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

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

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

Дисковые подсистемы RAID

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

В 1987 году трое специалистов из университета Беркли опубликовали статью с описанием методов обеспечения отказоустойчивости с помощью массивов небольших (3.5- и 5.25-дюймовых) дисководов, которые могут достичь показателей производительности, характерных для одного большого дорогого диска (Single Large Expensive Disk - SLED) в мэйнфреймах. Эта технология получила название RAID - Redundant Array of Inexpensive Disks (избыточный массив недорогих дисков). Ниже мы рассмотрим основные характеристики шести уровней RAID.

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

При выборе отказоустойчивой дисковой подсистемы необходимо также иметь в виду программное обеспечение для автоматического восстановления данных в случае сбоя. Если речь идет о файловом сервере локальной сети, важно, чтобы данные могли быть восстановлены с минимальными усилиями со стороны администратора LAN и с наименьшими потерями для пользователей сервера. Например, для RAID 0 восстановление - это просто копирование данных с дополнительного диска на восстановленный или замененный диск. Для систем RAID 3, 4 и 5 производители поставляют программное обеспечение, восстановливающие данные по XOR-сегментам. Эти программы работают в фоновом режиме, позволяя пользователям не прерывать своей работы во время восстановления. RAID-системы с встроенными интеллектуальными процессорами способны провести реконструкцию гораздо быстрее, чем их аналоги, использующие программное обеспечение, которое выполняется процессором основной системы.

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

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

AutoRAID компании Hewlett-Packard

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

Ядро технологии составляет набор алгоритмов контроллера дисковой подсистемы для управления адресами блоков данных. Традиционные дисковые массивы, такие как RAID 4 или 5, используют статические, заранее определенные алгоритмы трансляции адресов блоков данных хост-компьютера в адреса их размещения на дисках. Разработчики AutoRAID отказались от этого подхода и предпочли использовать динамические алгоритмы интеллектуального отображения любого адреса блока на хосте на любой диск массива. Данное отображение может меняться в процессе работы системы.

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

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

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

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

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

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

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

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

RAID-S компании EMC

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

RAID-S нельзя отнести к какому-либо одному уровню RAID. Используя новые достижения в аппаратном и программном обеспечении и средствах отображения данных, EMC комбинирует позитивные аспекты систем RAID 4 и 5, а также уровня RAID 6, с новыми технологиями и создает новую схему защиты данных. Дисковые массивы RAID-S предназначены для использования в системах класса мейнфреймов.

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

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

Ступени совершенства RAID

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

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

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

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

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

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

Динамическая миграция

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

Особенности реализации RAID-S:

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