Возникновение и развитие концепции RAID связано с увеличением объема используемых данных, с необходимостью обеспечить максимально быстрый доступ к ним и высокую надежность хранения. Объем хранимой информации исчисляется уже многими сотнями терабайт. Сейчас основное средство хранения, обеспечивающее оперативный доступ к информации - это накопители на магнитных дисках, характеристики которых за последние годы значительно выросли. Однако в сравнении с чисто электронными устройствами (процессоры, ОЗУ, контроллеры и т.п.) рост производительности из-за электромеханической природы дисков заметно ниже. С начала 80-годов быстродействие центральных процессоров увеличивалось в среднем в пять, а по некоторым оценкам, даже в десять раз каждые три года. Емкость внешних накопителей удваивалась, снижаясь в цене вдвое также примерно каждые три года. Однако время доступа за этот период улучшилось по разным оценкам всего на 10-50%. В результате внешние накопители стали "узким местом".
Увы, в ближайшее время не предвидится принципизльно новых решений, которые позволили бы реализовать внешние накопители, лишенные недостатков магнитных дисков. Например, оптические накопители, способные обеспечить значительно большую удельную емкость, страдают тем же самым недостатком: наличием электро-механических узлов.
Поток пользовательских запросов чрезвычайно неравномерно распределен по всей дисковой памяти. Образуются так называемые "горячие пятна" - области, к которым происходит подавляющее большинство обращений, в то время как остальная часть памяти имеет очень низкую нагрузку. К этой ситуации применимо известное "правило 80/20"; в большинстве случаев 80% обращений осуществляется к ограниченной области, составляющей только 20% емкости памяти. Если это "горячее пятно" располагается на одном диске, производительность подсистемы внешней памяти будет очень низкой, поскольку последовательные запросы большую часть времени будут ожидать окончания операций подвода головки и поиска нужного сектора на диске. Один из подходов, предлагавшихся для снижения отрицательного эффекта "правила 80/20", состоит в использовании более дорогого устройства с существенно лучшими характеристиками для хранения "горячих файлов". Однако мало кто в состоянии определить наболее вероятный набор таких файлов, тем более, что в зависимости от типа згдач, времени суток, дня недели и друтих факторов картина неизбежно будет меняться. Наиболее общим решением этой проблемы остается распределение логического дискового пространства по набору (массиву) относительно небольших и сравнительно недорогих дисковых устройств со средним временем поиска. "Горячее пятно" располагается небольшими фрагментами на всех накопителях, чем достигается более равномерная их нагрузка.
При очевидной привлекательности такого решения, оно имеет и очень серьезный недостаток: с ростом числа дисков в массиве пропорционально возрастает и вероятность отказа. Другими словами, с ростом числа параллельно работающих накопителей время наработки на отказ системы в целом сокращается; ее надежность становится недопустимо низкой. Производительность с ростом числа накопителей будет увеличиваться, а надежность уменьшаться. Увеличить надежность можно за счет введения избыточной емкости, обеспечивающей возможность восстановления разрушенных данных.
Уровни RAID
Эти соображения впервые были приведены в [1]. В статье формулировалась концепция избыточных массивов недорогих дисков - Redundant Arrays of Inexpensive Disks (RAID) и описывались основные конфигурации (уровни) RAID. Выделялись три основные признака RAID-массивов:
- набор физических дисков с точки зрения пользователя представляет собой единый виртуальный диск большой емкости;
- данные распределены по набору дисков;
- в наборе имеется избыточная емкость, обеспечивающая возможность восстановления данных при отказе одного или нескольких дисков.
Уровень RAID определяется способом распределения данных и способом использования избыточной емкости.
Из пяти RAID-уровней, описанных в статье, уровни 1,3 и 5 встретили значительный интерес в промышленности. В дополнение были предложены еще два RAID-уровня: 0 и 6.
Рассмотрим особенности уровней RAID. Будем условно считать, что RAID-массив представляет собой только набор физических дисков, связанных с компьютером, и не содержит никакой дополнительной логики, кроме минимально необходимой для обеспечения обмена данными.
RAID-0
RAID-0 не был описан в упомянутой выше статье. Эта конфигурация была предложена Digital Equipment Corporation и реализована в одной из подсистем ОС VMS на машине VAX 11. RAID-0 не имеет избыточной емкости. Выход из строя любого диска приводит к невозможности доступа к данным и может повлечь их йотерю. (Формально не следовало бы использовать для этой конфигурации обозначение RAID-0. Возможно, правильнее назвать ее RAID-0). На рис.1 приведена конфигурация RAID-0 из четырех физических дисков.Число дисков выбрано условно.
Распределение данных по физическим дискам осуществляется следующим образом. Совокупное пространство памяти разбивается на сегменты равной длины. Обозначим эти сегменты буквами А, В, С и т.д. Сегмент А располагается на первом физическом диске, сегмент В - на втором диске в том же самом месте, что и А на первом, сегмент С - на третьем, а сегмент 0 - на четвертом. Пятый сегмент размещается опять на первом диске вслед за сегментом А, шестой - на втором вслед за сегментом В и т. д. до тех пор, пока все сеггменты не будут распределены по всем физическим дискам.
Эффективность распределения данных будет сильно зависеть от соотношения размера сегмента и длины читаемого/записываемого файла. Сначала положим размер сегмента большим по отношению к размерам файла. В как его небольшая (затененная) часть. При записи или чтении обращение происходит только к этой части сегмента В на втором диске. Большинство запросов с таким соотношением размера файла к размеру сегмента будет относиться к единственному сегменту. При чтении данных виртуальный адрес отображается в физический адрес сегмента на диске, содержащем данные. Данные читаются из этого сегмента. Аналогичные действия выполняются и при записи. Поскольку в этом случае почти каждому запросу будет соответствовать единственный сегмент, то разные диски в массиве смогут обслуживать разные запросы параллельно. Этим обеспечивается хорошая производительность для запросов небольших и средних размеров.
На рис. 2 приведен несколько иной вариант нагрузки для RAID-0. Размеры запросов велики, а размер сегмента мал по отношению к размерам запроса. В этом случае запрос распределен по всем дискам, и для его обслуживания диски будут передавать информацию одновременно. Скорость при передаче запросов большого объема оказывается больше, но число запросов, обслуживаемых в единицу времени ограничено, так как в каждый момент времени может быть обслужен только один запрос. При таком типе распределения RAID-0 обеспечивает хорошую производительность для последовательного потока больших запросов.
RAID-1
Технология, на которой основана конфигурация RAID-1, известна давно и получила наименование "зеркальных дисков". Как и ранее, для пользователя массив представляет собой виртуальное дисковое устройство с необходимым объемом памяти, разбитым на сегменты. Данные размещаются точно так же, как на традиционных дисках,т .е. сегменты А, В, С, ... размещены в естественном порядке на первом диске. Когда диск заполнен, данные размещаются в таком же порядке на третьем диске и так далее до исчерпания всего объема памяти. Избыточность обеспечивается с помощью второго диска, который является точной копией первого, т.е. сегменты А, В, С, ... расположены на нем в тех же самых местах, что и на первом. Аналогично четвертый диск является точной копией третьего.
При поступлении в устройство запроса на чтение данные могут быть прочитаны с любого из двух дисков, так что каждая зеркальная пара дисков в среднем исполняет только половину запросов. При записи данные записываются в оба диска.
Если один из дисков выходит из строя, доступ не прерывается, не происходит и потерь данных. Все операции выполняются оставшимся работоспособным диском. Поскольку такое расположение данных ничем не отличается от традиционного, для данной конфигурации имеет место проблема "горячих пятен".
На рис. 4 приведен иной вариант RAID-1. Отличие состоит в том, что данные распределены по дисковому массиву аналогично тому, как это делается в конфигурации RAID-0.
Сегмент А располагается на первом и втором дисках, следующий сегмент В - на третьем и четвертом дисках. Сегмент С располагается на первом и втором диске следом за сегментом А. Сегмент 0 размещается на третьем и четвертом дисках следом за сегментом В, и так далее.
Размеры сегмента выбираются достаточно большими в сравнении с размерами запросов пользователя. Если поступает запрос на чтение, доступ осуществляется только к тем сегментам в одном из двух дисков, в которых находятся требуемые данные. Если это запрос на запись, обращение происходит также только к тем сегментам, адрес которых соответствует логическому адресу в запросе. Эта схема уже не страдает от проблемы "горячих пятен", и ее производительность заметно выше, чем в ранее описанной конфигурации. ый из дисков "зеркальной пары" может исполнять запросы на чтение одновременно.
Если выбрать размер сегмента меньшим по сравнению в размером запроса, то для последовательности запросов большого размера можно получить производительность, близкую к производительности RAID-0. Рабочая нагрузка может быть сбалансирована между дисками путем подбора размера сегмента таким образом, чтобы обеспечить в среднем наилучшую возможную производительность.
RAID-3
Конфигурация RAID-3 приведена на рис. 5. Сегмент А физически расположен на первом диске, сегмент В - на втором диске в том же месте, сегмент С помещается на третий диск, сегмент 0 - вслед за сегментом А на первом диске, сегмент Е - на втором следом за сегментом В и так далее до тех пор, пока вся емкость логического диска не будет распределена. Избыточность обеспечивает четвертый диск. Первый сегмент четвертого диска содержит сумму по модулю 2 (Хог) информационных сегментов А, В и С первых трех дисков. Следующйй сегмент четвертого диска содержит Xor(D,E,F) и т.д.
При чтении данных определяется физический адрес сегмента на диске, содержащем данные. Затем данные читаются одновременно из всех дисков. При записи также производится отображение запроса по физическим адресам, и записываемые данные одновременно помещаются на все диски. В процессе записи вычисляется значение Xor для всех передаваемых данных, и результат также записывается на диск одновременно. При отказе диска данные на нем можно восстановить по данных из Хог-диска и оставшихся исправных дисков.
RAID-3 отличается от RAID-1 тем, что размер сегмента выбирается с учетом механизма избыточности. Во время выполнении операций записи или чтения при наличии отказавшего диска необходимо, чтобы вссегда было возможно вычисление Хог-сегментов. Для этого размер сегмента должен быть невелик по сравнению с размером запроса, чтобы все сегменты, участвующие в операции Хог были доступны в каждый момент времени.
Типичный размер сегмента в RAID-3 один бит или один байт. Запрос, распределенный по всем дискам, означает, что каждый диск будет передавать свою часть информации по запросу одновременно с друтими. Этим достигается очень высокая скорость обмена для больших запросов, но ограничивается число запросов, обслуживаемых одновременно, поскольку в каждый момент времени можно обслужить только один запрос. Это обеспечивает хорошую производительность для нагрузки, представляющей собой последовательный поток больших запросов.
RAID-3 обеспечивает хорошую целостность данных, поскольку потеря данных возможна только если из строя выйдет еще один накопитель прежде, чем будет заменен первый отказавший.
RAID-2 очень похож на RAID-З, но вместо одного избыточного Хог-диска он использует несколько, на которых формируется код Хемминга и для хранения избыточной инфорации требуется несколько дополнительнх дисков вместо одного. Избыточность получается более дорогой.
RAID-5
Конфигурация RAID-5 приведена на рис.6. Пользователь воспринимает массив как единый логический диск, содержащий память требуемой емкости. Восстановление данных также обеспечивается с помощью операции Хог, но в данном случае Хог-сегменты распределены по всем дискам. Сегмент А расположен на первом диске, сегмент В - на втором диске, сегмент С - на третьем диске. Первый сегмент на четвертом диске содержит Xor(А,В,С). Сегментданных 0 помещается на первом диске следом за сегментом А; сегмент Е - на втором диске следом за сегментом В. Второй сегмент третьего диска, следующий за сегментом С, содержит Xor(D,E,F), а сегмент F расположен вторым на четвертом диске. Для следующих трех сегментов Хог(G,H,I) помещается на второй диск и так далее.
Размер сегмента в RAID-5 также тесно связан с механизмом избыточности. Предполагается, что при записи доступны только те данные, которые необходимы для вычисления Хог. Используется алгоритм: чтение - модификация - запись.
Размер сегмента выбирается большим по отношению к размеру пользовательского запроса,пользовательский запрос показан на рисунке внутри сегмента В в виде затененной части сегмента. При чтении доступ происходит только к этой области надиске. Когда происходит запись, то записывается только эта область сегмента на втором диске и связанная с ним область Xor на четвертом диске. При таком размере запроса почти все запросы попадают внутрь одного сегмента.
При чтении данных адрес, заданный в запросе, отображается в физический адрес сегмента на диске, содержащем данные. Данные затем читаются одновременно из всех дисков. При записи также производится отображение запроса по физическому адресу, затем читаются старые данные и связанные с ним Хог-данные. Записываемые данные складываются по модулю 2 с предыдущими Хог-данными, в результате получается контрольная сумма для новых данных. Новые данные и новая Хог-комбинация записывается на соответствующие диски. Следовательно, в выполнении записи на RAID-5 участвуют два диска, и каждый из них должен выполнить дополнительный оборот. Иначе говоря, при записи требуется четыре обращения: чтение, после которого происходит запись данных, и чтение, после которого происходит запись Хог. В случае отказадиска производится чтение всех исправных дисков, для всех сегментов вычисляется Xor - так данные восстанавливаются. Поскольку почти все запросы относятся к одному сегменту, каждый из дисков в массиве в состоянии исполнять одновременно разные запросы. Операции записи требуют обращения к двум дискам, но оставшиеся два диска свободны для исполнения друтих запросов. Поскольку Хог-сегменты распределены по всему массиву дисков, оказывается возможным выполнять одновременно и запись. Такая схема обеспечивает хорошую производительность при большом числе запросов малого и среднего размера.
RAID-5 обеспечивает хорошую целостность данных, поскольку потеря данных происходит только в том случае, если второй диск отказывает прежде, чем первый отказавший будет заменен.
Производительность RAID-5 оценивается как средняя. "Горячие пятна" распределены, но дополнительные внутренние запросы на запись снижают общую производительность.
RAID-6
RAID-6 не был описан в статье [1], его предложили производители, причем различные источники описывают этот уровень по-разному. Приведем описание RAID-6, предложенное в [2].
Корректирующая информация вычисляется с использованием кодов Рида-Соломона; в результате получаются два дополнительных сегмента Р и Q (для одних и тех же входных данных с помощью двух разных уравнений вычисляются два результата). Если выходят из строя два диска, то с помощью двух оставшихся дисков данные можно восстановлены. Сегменты Р и Q распределены по набору дисков так же, как распределены Хог-сегменты в RAID-5. Сегмент А расположен на первом диске, сегмент В - на втором диске в том же самом месте, что и А на первом. Первый сегмент на третьем диске содержит избыточный сегмент Р(А,В), а первый сегмент четвертого диска - избыточный сегмент Q(А,В). Сегмент данных С расположен на первом диске вслед за сегментом А. Второй сегмент на втором диске содержит избыточный сегмент P(C,D), а второй сегмент на третьем диске - избыточный сегмент Q(C,D). Сегмент данных 0 размещен на четвертом диске. Третий сегмент первого диска, следующий за сегментом С, содержит избыточный сегмент P(E,F); третий сегмент второго диска - Q(E,F). Сегмент данных Е размещается на третьем диске, а сегмент F - на четвертом, и так далее.
В RAID-6 размер сегмента тесно связан с механизмом избыточности. Это объясняется тем, что доступ осуществляется к такой порции данных, которая требуется для вычисления сегментов Р и Q при выполнении записи. Используется алгоритм: чтение - модификация - запись. Размер сегмента выбирается большим по отношению к размерам запроса.
На рисунке запрос пользователя показан на сегменте В, как затененная область. При чтении доступ осуществляется только к этой области. При записи же обращение производится к соответствующим областям сегмента В и избыточных сегментов Р и Q на третьем и четвертом дисках. При таком соотношении размеров сегмента и размеров запроса почти все запросы попадают внутрь одного сегмента.
Во время чтения данных адрес, заданный в запросе, преобразуется в физический адрес сегмента с требуемыми данными. При записи также определяется физическое расположение соответствующих сегментов данных и избыточных сегментов Р и Q. Производится их чтение. Корректирующая информация старых данных удаляется из из Р и Q. Записываемые данные используются для вычислений Р и Q после чего вместе с вычисленными значениями записываются на соответствующие места. При записи происходит обращение к трем дискам, что создает дополнительную скрытую нагрузку. Иначе говоря, при записи требуется шесть передач: чтение данных, за которым следует запись данных, и чтение сегментов Р и Q за которым следует их запись.
В случае отказа одного диска читаются все оставшиеся сегменты данных плюс сегмент Р или сегмент Q и потерянные данные вычисляются. При отказе сразу двух дисков потерянные данные вычисляются с использованием сегментов, хранящихся на двух оставшихся дисках. Поскольку почти все запросы попадают внутрь одного сегмента, каждый из дисков в массиве может выполнять различные запросы чтения одновременно. Операция записи требует использования трех дисков, но оставшиеся диски могут исполнять другие запросы. Поскольку Р и Q распределены по набору дисков, возможно одновременное выполнение операций записи, если набор дисков достаточно велик. Этим обеспечивается хорошая производительность при исполнении запросов небольшого и среднего размера.
Надежность RAID-6 очень высока: потеря данных возможна только при выходе из строя еще двух накопителей прежде, чем будет заменен первый отказавший.
Производительность оценивается также как средняя. Хотя "горячие пятна" распределены по массиву, требуются дополнительные операции записи, снижающие общую производительность.
Сравнение характеристик RAID
Мы рассмотрели основные конфигурации RAID-массивов. Выбор требуемой конфигурации происходит с учетом особенностей архитектуры и потребностей приложений, в которых эти массивы будут использованы. При этом необходимо учитывать не только чисто технические характеристики (производительность, надежность), но и друтие требования, которые может предъявлять пользователь.
В зависимости от требований к системе можно условно выделить три группы пользователей. Для первой группы наиболее важной характеристикой является стоимость. К следующей группе относятся пользователи, для которых больше важна надежность. Для третьей группы основной характеристикой является производительность.
Большинство же пользователей попадает "в середину" этого треугольника. Например, выбирая устройство более высокой надежности, пользователь обязательно будет учитывать как стоимость, так и производильность.
Стоимость. На рис.8 приведено соотношение стоимостей различных RAID при заданной емкости. Стоимость RAID-0 - это просто стоимость четырех накопителей. RAID-3 и RAID-5 требуют наличия одного дополнительного дискадля обеспечения избыточности и, таким образом, их стоимость при четырех накопителях на 25% выше, RAID-6 требует двух избыточных дисков - стоимость возрастает на 50%. И, наконец, RAID-1 самый дорогой, его стоимость равна удвоенной стоимости RAID-О.
Надежность. Надежность RAID-устройств определяется организацией массива дисков и мощностью используемого механизма защиты от ошибок. Оценку надежности различных конфигураций можно получить, сравнив относительные значения времени наработки на отказ для основных конфигураций, приведенной в работе [2].
Наилучшим показателем надежности обладает RAID-6 вместе со значительной избыточностью (50%) эта конфигурация использует мощную кодовую защиту, что обеспечивает надежность, на несколько порядков превышающую надежность RAID-0. Полная избыточность RAID-1 обуславливает очень хорошее время наработки на отказ, хотя и заметно меньшее, чем у RAID-6. Хорошие характеристики имеют RAID-3 и RAID-5. Одинаковые значения времени наработки на отказ для этих конфигураций объясняются тем, что с точки зрения надежности они абсолютно идентичны - избыточность составляет 25%, и методы восстановления информации совпадают.
Учитывая же абсолютную величину времени наработки на отказ, можно увидеть, что надежность любой из приведенных конфигураций (за исключением RAID-0) удовлетворит практически любого пользователя.
Производительность. Производительность сильно зависит от структуры потока данных, определяемого соотношением числа запросов чтения/ записи, соотношением размеров сегментов на дисках и длины массивов. В работе [2] предлагается оценивать производительность RAID-устройств по поведению кривых зависимости времени ответа на запрос в зависимости от значения коэффициента ввода/вывода, выраженом числом запросов обмена в единицу времени.
Вид этих кривых в значительной степени зависит от соотношения объема данных, передаваемых по запросу, и длины сегмента. Рассматривается два семейства кривых: одно - для запросов с относительно малым объемом передаваемых данных и второе - для запросов с объемами, превышающими размер сегмента.
Характерной особенностью этих кривых является наличие явно выраженного участка, соответствующего нагрузке, при которой число запросов, выполняемых массивом в единицу времени, перестает расти, что выражается в резком увеличении времени ответа на запрос. Именно этот участок всех кривых характеризует производительность устройства.
На рис.9 приведены кривые изменения времени ответа для запросов малого размера (четыре сектора и 25% операций записи). Для RAID-О, распределенного RAID-1, RAID-5 и RAID-6 размер сегмента - шесть трактов (т.е. очень немногие запросы затрагивают более одного сегмента).
Можно видеть, что RAID-0 при таком типе нагрузки является хорошим. Он осуществляет распределение "горячих пятен" и не дает дополнительной нагрузки по записи. RAID-1 без распределения не плох. RAID-1 с распределением лучше. При отсутствии распределения эффект 80/20 доминирует. Более 80% запросов исполняются одним накопителем из пары. RAID-3 ведет себя как одиночный накопитель. При такой структуре нагрузки это не всегда хорошо. RAID-5 и RAID-6 имеют среднюю производительность. Они распределяют нагрузку, но необходимость в дополнительных оборотах во время операции записи снижает производительность.
На рис.10 приведены кривые зависимости времени ответа от коэффициента ввода/вывода для второго типа запросов (4 тракта на запрос). Поток запросов содержит 25% операций записи, размер сегмента для RAID-0, RAID-1, RAID-5 и RAID-6 равен одному тракту, так что каждый запрос исполняется всеми дисками. При заданных условиях RAID-0 и RAID-3 имеют хорошую производительность. Они распределяют передачи и не создают дополнительной нагрузки при записи. Плохие характеристики у RAID-1 без распределения, он требует четыре оборота на каждую передачу. RAID-1 с распределением все еще имеет наилучшую производительность, он обеспечивает те же самые преимущества, что RAID-0 и RAID-3 для однократной передачи, и может обслуживать два запроса чтения одновременно. RAID-5 и RAID-6 характеризуются средней производительностью, что объяснняется особенностями алгоритма записи.
Современные подходы в реализации RAID
Описанные выше RAID-устройства отражают исходные концепции их реализации, сформировавшиеся во второй половине 80-х годов. Поиск путей увеличения производительности внешних запоминающих устройств продолжается.
Предложена концепция и архитектура RAID-7. Этот уровень определяется как интеллектуальное устройство, обеспечивающее высокую степень совмещения всех операций, выполняемых массивом. Архитектуру уровня 7 характеризует полностью асинхронная работа накопителей и интерфейсных узлов устройства. Этот уровень отличает ряд особенностей:
1) каждый интерфейс ввода/вывода имеет отдельный кэш и независимые асинхронные магистрали для управления и передачи информации;
2) каждое устройство или интерфейс соединены с высокоскоростной шиной данных, снабженную центральной кэш-памятью, способной обслуживать несколько направлений ввода/вывода;
3) устройство имеет встроенный микропроцессор с операционной системой реального времени, для управления всеми процессами ввода/вывода через независимые магистрали.
Последняя особенность, с одной стороны, явным образом учитывает асинхронную природу нагрузки дисковых массивов. С другой стороны, отдельные диски достигают максимальной производительности, когда работают с большими последовательными потоками данных. Несоответствие этих двух требований является причиной снижения производительности RAID-массивов. Именно наличие встроенной ОС позволяет согласовать два, казалось бы, взаимоисключавших друг друга аспекта:
1) со стороны компьютера массив выглядит как один большой и быстрый диск, а
2) для каждого отдельного накопителя в массиве компьютер выглядит как устройство, минимизирующее число обращений и оптимизирующее поток запросов чтения/записи.
Одно из следствий такого подхода - возможность сделать генерацию корректирующей (избыточной) информации функцией кэш-памяти. Последовательные запросы записи на диск, используемый для хранения избыточной информации (parity-диск), можно выстроить в очередь в кэш-памяти и отложить с тем, чтобы оптимизировать процесс обмена. Операции записи также можно упорядочить, что добиться максимального размера и числа передач при минимальном числе физических обращений к дискам.
Еще одна особенность архитектуры RAID-7 состоит в наличии раздельных коммуникационных магистралей между массивом и ЭВМ. Это позволяет передавать запросы к дисковым массивам, не дожидаясь окончания уже начатых операций.
С момента опубликования статьи [1] в университете Беркли сформировался исследовательский коллектив, занимающийся вопросами повышения производительности RAID-массивов. За прошедшие годы сотрудниками этой группы опубликован ряд работ, посвященных новым конфигурациям RAID-устройств. В течение 1992-1994 годов была создана система, получившая название RAID-II, представляющая собой дисковый массив большого объема. Его отличительная черта - концепция организации информационных связей на основе высокоскоростной сети. Авторы используют для этих целей сеть с пропускной способностью до 1 Гбит/с. Одновременно для передачи управляющей информации и для обменов случайными последовательностями небольших массивов используется менее быстродействующая сеть (100 Мбит/с) [4,5].
Разработаны новые подходы к реализации механизма избыточности. В частности, в работе [3] предлагается подход, получивший название Information Dispersal Algorithm, IDA (рис. 12). Он был первоначально предложен для обеспечения надежности передачи данных в сетях. Его сущность состоит в том, что исходный массив данных разбивается на m фрагментов, для которых создается n > m новых фрагментов, содержащих избыточную информацию и записываемых на п дисков. Если исходный массив имеет размер S, то каждый исходный фрагмент имеет размер S/m и размер требуемой дисковой памяти будет равен Sx n/m. Чтобы добиться нечувствительности к r одновременным отказам, необходимо сохранить r дополнительных фрагментов, так чтобы n = m + r. Надежную информацию можно получить, прочитав любые m исправных дисков.
Надежность реальных устройств зависит не только от надежности используемых накопителей. К потере данных могут привести отказы в системе связи с компьютером, блоках питания и даже в системе вентиляции. Одна из возможных причин отказов - ненадежность сети питания. При создании устройств высокой надежности конструкторы предусматривают возможность резервирования жизненно важных узлов, в частности, включают дополнительные блоки питания, батарейные источники резервного питания, обеспечивающие автономное функционирование RAID-массивов.
Надежность дисковых накопителей за последние годы значительно выросла. Если в 1987 году типичное время наработки на отказ составляло 150-300 тысяч часов, то сегодня эта величина уже приближается к миллиону часов (т.е. более 114 лет). Поэтому расходы на создание сверхнадежных конфигураций (RAID-1 и тем более RAID-6) во многих случаях экономически уже не оправданы.
Сегодня наиболее популярны RAID-3 и RAID-5. Обычно предусматривается возможность настройки устройства на несколько конфигураций (RAID-О, RAID-3 и RAID-5, реже RAID-1). Такая настройка может осуществляться пользователем при первоначальной конфигурации устройства. Интересное решение предлагается фирмой Digital. RAID-контроллер анализирует поток запросов и выделяет запросы, отличающиеся либо большей интенсивностью при малом объеме передач в расчете на запрос, либо, наоборот, большим объемом передаваемой информации в пределах одного запроса. Для запросов разного типа автоматически выделяется подсистема типа RAID-3 или RAID-5.
Большинство ведущих компьютерных фирм имеет свои собственные RAID устройства. Эти системы имеют высокие эксплуатационные характеристики, однако в большинстве случаев они жестко ориентированны на использование аппаратуры и программ только этих фирм. Однако жесткая конкуренция заставляет их выпускать и более гибкие системы. Так, последнее RAID-устройство компании Digital Raid Аггау 410 рассчитано на подключение к различным UNIX-платформам. Оно выпускается в виде автономной стойки, содержащей RAID-контроллер, набор диковых накопителей, резервированную систему питания. Устройство имеет SCSI-интерфейс, с помощью которого оно может подключаться к серверам HP 9000, IBM RS/6000 и Sun SPARC.
Raid Аггау 410 имеет гибкую архитектуру, что позволяет расширять конфигурацию в пределах от 2 до 100 ГБ. Пользователь в зависимости от потребностей может выбирать конфигурацию уровней 0, 3, 5 или использовать устройство как обычную дисковую стойку с отдельными накопителями, доступными независимо друг от друта. Внутри одного массива может быть создано несколько подмассивов с различными уровнями RAID.
В последние годы появился ряд независимых производителей, выпускающих автономные RAID системы. В качестве примера рассмотрим используемые в ВЦ РАН устройства фирмы Storage Solutions, Inc (SSI). Мы обратили внимание на эту фирму, так как она по нашим сведениям оказалась практически первой фирмой на отечественном рынке, комплектующей свои RAID-устройства накопителями, обладающими наработкой на отказ более 1 млн. часов, что позволяет предоставлять пользователям бессрочную гарантию. Емкость используемых фирмой накопителей - от 1 до 5,2 ГБ. Это наряду с низкой общей стоимостью RAID систем обеспечивает наиболее низкую стоимость хранения информации в расчете на мегабайт.
RAID-системы SSI имеют интерфейс типа WIDE и FAST SCSI-2. Зто позволяет использовать их совместно с персональными системами и серверами любых производителей. Внутренние RAID-контроллеры основаны на RISC-процессоре i960. Все операции передачи данных выполняются через внутреннюю кэш-память, минимальный объем которой составляет 4 МБ и может быть увеличен. Пользователь может задавать три конфигурации: RAID-0, RAID-3 и RAID-5. В устройствах предусмотрены резервные источники питания и возможность смены неисправных накопителей "на ходу". Емкость устройств лежит в пределах от 4 до 103,2 ГБ и может плавно наращиваться путем введения дополнительных модулей и использования накопителей большей емкости.
Литература
[1] D. Patterson G. Garth, R. Katz, "А Case for Redundant Arrays of Inexpensive Disks (RAID)" University of Califomia, Berkely, Report No. UC8/CSD/87/391, December 1987.
[2] Pete McLean "An Introduction to RAID Redundant Arrays of Inexpensive Disks. Digital Equipment Corporation, April 1991.
[3] Azer Bestaves "IDA-based Redandant Arrays of Inexpensive Disks." Proceed. of I-st International Conference on Parallel and Distributed Information Systems. Dec 4-6, 1991. IEEE Comp. Society Pkss.
[4] Lee, Edward Kiehyen; Chen, Peter Ming-Chien, and others "RAID-II А Scalable Storage Architecture for High-Bandwith Network File Service" University of California, Berkely, Report No. UCB/CSD-92-672, October 1992.
[5] Lee, Edward Kiehyen. "Performance Modeling and Analisis of Disk Arrауs" University of Califonia, Berkely, Report No. UCB/CSD-93-770, September 1993.