Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
archit_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
6.2 Mб
Скачать

§ 1.4. Raid-системы

В 1987 году Паттерсон (Patterson), Гибсон (Gibson) и Катц (Katz) из калифорнийского университета Беркли опубликовали статью "Кор­пус для избыточных массивов из дешевых дисководов (RAID)". В этой статье описывались разные типы дисковых массивов, обозначаемых сокращением RAIDRedundant Array of Independent (или Inexpensive) Disks (избыточный массив независимых или недорогих) дисководов). В основу RAID положена следующая идея: объединяя в массив несколько небольших и/или дешевых дисководов, можно получить систему, превосходящую по объему, скорости работы и надежности самые дорогие дисководы. Вдобавок ко всему такая система с точки зрения компьютера выглядит как один единственный дисковод.

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

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

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

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

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

Возможность одновременной работы с несколькими дисками можно реализовать двумя способами: с использованием параллельного доступа (parallel-access array) и с использованием независимого доступа (independent-access array) [7].

Для организации параллельного доступа рабочее пространство дисков размечается на зоны определенного размера (блоки) для размещения данных и избыточной информации (рис. 1.4.1). Информация, подлежащая записи на диски (запрос на обслуживание), разбивается на такие же по величине блоки, и каждый блок записывается на отдельный диск. При поступлении запроса на чтение, необходимая информация собирается из нескольких блоков:

Рис. 1.4.1. Массив с параллельным доступом

В этом случае скорость записи (чтения) увеличивается пропорционально количеству дисков, объединенных в RAID.

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

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

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

И, наконец, в RAID различного уровня применяются различные способы вычисления избыточной информации. Это также влияет на характеристики RAID (надежность, в первую очередь, производительность и стоимость). Основные способы: полное дублирование информации, применение кодов с коррекцией ошибок (применяется код с коррекцией одиночных ошибок и обнаружением двойных ошибок ECC – код Хемминга) и вычисление четности (Parity).

Рис. 1.4.2. Массив с независимым доступом

Естественно, что при объединении нескольких устройств в единый массив, сразу же встает вопрос о скорости доступа к информации, а так же о сохранении ее достоверности, то есть о надежности (отказоустойчивости) всей системы. Поэтому, в зависимости от способов решения приведенных выше проблем, различают различные типы (уровни) RAID. На схеме, приведенной на рис. 1.4.3 приведена классификация наиболее используемых уровней RAID-массивов [7].

Рис. 1.4.3. Классификация уровней RAID

Теперь рассмотрим подробнее различные уровни RAID-массивов1.

  • RAID 0. Дисковый массив без отказоустойчивости (Striped Disk Array without Fault Tolerance). Такая конфигурация представляет собой единый дисковый массив (рис.1.4.4), в котором данные разбиваются на блоки, и каждый блок записываются (или же считывается) на отдельный диск. Таким образом, можно осуществлять несколько операций ввода/вывода одновременно.

Рис. 1.4.4. RAID-массив уровня 0

Этот массив имеет наивысшую производительность для приложений требующих интенсивной обработки запросов ввода/вывода и данных большого объема и прост в реализации, однако не является отказоустойчивым, так как отказ одного диска влечет за собой потерю всех данных массива. Вообще-то RAID 0 не является избыточным массивом, но данный термин широко применяется и поэтому разрешен RAB (RAID Advisory Board), то есть консорциумом по стандартизации RAID.

  • RAID 1. Дисковый массив с дублированием (рис. 1.4.5) или зеркалированный (Mirrored disk). Зеркалирование является традиционным способом для повышения надежности дискового массива небольшого объема.

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

Рис. 1.4.5. RAD-массив уровня 1

  • RAID 2 (Memory-Style ECC). Отказоустойчивый дисковый массив с использованием кода Хемминга (Hamming Code ECC). Избыточное кодирование, которое используется в RAID 2, носит название кода Хемминга. Код Хемминга позволяет исправлять одиночные и обнаруживать двойные неисправности и активно используется в технологии кодирования данных в оперативной памяти типа ECC, а так же при кодировании данных на магнитных дисках.

В RAID уровня 2 (рис. 1.4.6) расслоение данных для записи или чтения осуществляется на уровне битов. Однако, вследствие применения кода с коррекцией ошибок, RAID уровня 2 требует для хранения контрольной информации более одного диска. Большинство контрольных дисков, используемых в RAID уровня 2, нужны для определения положения неисправного разряда. Массив отличается быстрой коррекцией ошибок ("на лету") и высокой скоростью передачи данных больших объемов, простой реализацией. Недостатками являются высокая стоимость при малом количестве дисков и низкая скорость обработки запросов и большой избыточностью. Следует заметить, что большинство современных контроллеров в состоянии самостоятельно определить отказ диска при помощи специальных сигналов, или дополнительного кодирования информации, записанной на диск и используемой для исправления случайных сбоев. В связи с этим RAID уровня 2 используется редко.

Рис. 1.4.6. RAID-массив уровня 2

  • RAID 3. Отказоустойчивый массив с параллельной передачей данных и четностью (Parallel Transfer Disks with Parity, Bit-Interleaved Parity).

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

Как и в RAID уровня 2 расслоение данных для записи или чтения осуществляется на уровне битов (вообще говоря, допускается и расслоение на уровне байтов). Таким образом, в RAID уровня 3 реализуется практически в чистом виде архитектура с параллельным доступом. Использование RAID 3 решает проблему большой избыточности в RAID 2.

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

Рис. 1.4.7. RAID-массив уровня 3

  • RAID 4. Отказоустойчивый массив независимых дисков с разделяемым диском четности (Independent Data disks with shared Parity disk, Block-Interleaved Parity).

Данные разбиваются на блочном уровне. Каждый блок данных записывается на отдельный диск и может быть прочитан отдельно. Четность для группы блоков генерируется при записи и проверяется при чтении. RAID уровня 4 (рис. 1.4.8) повышает производительность передачи небольших объемов данных за счет параллелизма, давая возможность выполнять более одного обращения по вводу/выводу одновременно. Главное отличие между RAID 3 и 4 состоит в том, что в последнем, расслоение данных выполняется на уровне секторов, а не на уровне битов или байтов, то есть RAID уровня 4 отличается от RAID уровня 3 в первую очередь значительно большим размером блока записываемых данных (большим, чем размер записываемых данных).

Рис. 1.4.8. RAID-массив уровня 4

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

  • RAID 5. Отказоустойчивый массив независимых дисков с распределенной четностью (Independent Data disks with distributed parity blocks, Block-Interleaved Distributed-Parity).

Этот уровень похож на RAID 4 (рис. 1.4.9), но в отличие от предыдущего четность распределяется циклически по всем дискам массива. Это изменение позволяет увеличить производительность записи небольших объемов данных в многозадачных системах. Кроме того, в RAID уровня 5 реализуется архитектура с независимым доступом.

Рис. 1.4.9. RAID-массив уровня 5

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

Следующие уровни по различным причинам применяются крайне редко, но они входят в современные стандарты RAID.

  • RAID 6. Отказоустойчивый массив независимых дисков с двумя независимыми распределенными схемами четности (Independent Data disks with two independent distributed parity schemes)

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

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

Рис. 1.4.10. RAID-массив уровня 6

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

  • RAID 7. Отказоустойчивый массив, оптимизированный для повышения производительности. (Optimized Asynchrony for High I/O Rates as well as High Data Transfer Rates). RAID 7® является зарегистрированной торговой маркой Storage Computer Corporation (SCC).

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

  • RAID 10. Отказоустойчивый массив с дублированием и параллельной обработкой.

Эта архитектура представляет собой массив типа RAID 0, сегмен­тами которого являются массивы RAID 1. Он объединяет в себе очень высокую отказоустойчивость и производительность, но имеет чрезвы­чайно высокую стоимость.

  • RAID 30. Представляет собой массив типа RAID 0, сегментами которого являются массивы RAID 3. Он объединяет в себе отказоустойчивость и высокую производительность. Обычно используется для приложений требующих последовательной передачи данных больших объемов. Данному уровню присущи все достоинства и недостатки RAID 10

  • RAID 50. Отказоустойчивый массив с распределенной четно­стью и повышенной производительностью. Строится как массив уровня ноль с элементами RAID 5. Он объединяет в себе отказоустой­чивость и высокую производительность для приложений с большой интенсивностью запросов и высокую скорость передачи данных.