RAID

За последнее десятилетие производительность центральных процессоров росла в геометрической прогрессии, удваиваясь примерно каждые 18 месяцев, чего нельзя сказать о производительности дисковых устройств.
В 70-е годы прошлого столетия среднее время позиционирования головок на нужную дорожку на дисках, используемых в мини-компьютерах, было от 50 до 100 мс. В настоящее время этот показатель составляет всего несколько миллисекунд. В большинстве технических отраслей (скажем, автомобильной или авиационной) увеличение производительности в 5-10 раз за два десятилетия стало бы сенсацией (представьте автомобили, расходующие 0,8 л бензина на 100 км), но в компьютерной индустрии такие темпы вряд ли кого-нибудь впечатлили бы. Таким образом, разрыв между производительностью центральных процессоров и дисков со временем становился все более заметным. Можно ли как-то посодействовать этому?

Конечно! Мы уже видели, что для увеличения производительности центральных процессоров все шире используются параллельные вычисления. С годами многим стало казаться неплохой идеей и распараллеливание ввода-вывода. В своей статье 1988 года Паттерсон (Patterson) с соавторами предложили шесть конкретных способов организации дисковых устройств, которые могли использоваться для повышения их производительности, надежности, а также обоих этих качеств. Эти идеи были тут же подхвачены производителями и привели к появлению нового класса устройств ввода- вывода, получившего название RAID. Паттерсон и его коллеги под названием RAID подразумевали Redundant Array of Inexpensive Disks — избыточный массив недорогих дисков, но производители переопределили значение буквы I как Independent — независимых, а не как Inexpensive — недорогих (может быть, благодаря этому они могли получить большую прибыль?). Поскольку этому классу нужно было противопоставить какой-нибудь отрицательный пример (как и в случае противопоставления RISC и CISC, возникшего также благодаря Паттерсону), в этом качестве фигурировал SLED (Single Large Expensive Disk — одиночный дорогостоящий диск большой емкости).

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

большими производительностью и надежностью. Ранее RAID-массивы ради высокой производительности состояли практически исключительно из RAID SCSI-контроллера и стойки из SCSI-дисков, и SCSI-устройства поддерживали до 15 дисков на одном контроллере. Теперь же многие производители предлагают также более дешевые RAID-массивы на основе SATA. Системных администраторов при приобретении таких массивов привлекает отсутствие необходимости вносить какие-либо изменения в программное обеспечение.

Кроме того, что новый класс представлялся программному обеспечению в виде одного диска большой емкости, все RAID-системы обладали свойством распределения данных по дисковым устройствам, позволявшим проводить параллельные операции. В настоящее время большинство производителей называют семь стандартных конфигураций RAID-системами с уровнями от 0 до 6. Кроме них есть еще несколько других незначительных уровней, которые здесь не будут рассматриваться. Употребление слова «уровень» в данном случае несколько неправомерно, поскольку речь идет не о какой-то иерархии, а просто о семи различных вариантах организации RAID-систем.

RAID-система уровня 0 показана на рис. 5.16, а. Она выглядит как один виртуальный диск, смоделированный RAID-системой в виде диска, разделенного на блоки по k секторов в каждом с номерами от 0 до k - 1 для блока 0, с номерами от k до 2k - 1 для блока 1 и т. д. При k = 1 каждый блок представляет собой один сектор, при k = 2 он представляет собой два сектора и т. д. Как показано на рис. 5.16, а, если для RAID-массива, состоящего из четырех дисков, используется организация RAID-системы уровня 0, запись ведется последовательными блоками по всем дискам по кругу.

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

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

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

Рис.

5.16. RAID-системы уровней с 0 по 6; закрашены дублирующие приводы и приводы дисков четности

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

В отличие от RAID-систем уровней 0 и 1, работающих с блоками, состоящими из секторов, RAID-система уровня 2 работает на основе слов и даже байтов. Представьте себе разбиение каждого байта единого виртуального диска на пару 4-битовых полубайтов, затем добавление к каждому из них кода Хэмминга с образованием 7-битового слова, в котором биты 1, 2 и 4 являются битами четности. Затем представьте, что семь дисков (рис. 5.16, в) синхронизированы по позициям блока головок и угловому положению. В таком случае появится возможность записать закодированное по Хэммингу 7-битовое слово на семь дисков, по биту на каждый дисковый привод.

Эта схема использовалась в компьютере CM-2 фирмы Thinking Machines. Бралось 32-разрядное слово данных, к нему добавлялись 6 битов четности, чтобы получилось 38-разрядное слово Хэмминга, плюс дополнительный бит четности. Полученное 39-разрядное слово записывалось на 39 дисков. При этом достигалась превосходная общая пропускная способность, поскольку за время, отводимое на работу с одним сектором, можно было записать 32 сектора данных, имеющих информационную значимость. Потеря одного из дисковых приводов также не создавала никакой проблемы, поскольку при этом терялся только один бит в каждом считываемом 39-разрядном слове, с восстановлением которого код Хэмминга легко справлялся на лету.

Недостаток этой схемы заключался в том, что для ее работы требовалась синхронизация вращения всех дисков. Кроме того, такая схема имела смысл лишь при значительном количестве дисковых приводов (даже при наличии 32 дисковых приводов, хранящих данные, и 6 приводов с битами четности издержки составляли 19 %). Кроме этого к контроллеру предъявлялись слишком высокие дополнительные требования, поскольку он должен был выдавать с каждым битом контрольную сумму по Хэммингу.

RAID-система уровня 3 является упрощенной версией RAID уровня 2. Она показана на рис. 5.16, г. Здесь для каждого слова данных вычисляется один бит четности, который записывается на отдельный диск четности. Как и в RAID-системе уровня 2, приводы дисков должны быть точно синхронизированы, поскольку отдельные слова данных разбросаны по нескольким дискам.

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

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

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

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

RAID-система уровня 6 похожа на систему уровня 5, за исключением использования дополнительного блока четности. Иными словами, данные распределяются по дискам с двумя блоками четности вместо одного. В результате из-за вычислений четности записи оказываются немного более затратными, но считывания потерь производительности не испытывают. Система получается более надежной (представьте себе, что произойдет, если RAID-система уровня 5 обнаружит сбойный блок при перестройке своего массива).

5.4.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме RAID:

  1. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  2. Л.О. Доліненко, В.О. Доліненко, С.О. Сарновська. Цивільне право України, 2006
  3. ЦИВІЛЬНЕ ПРАВО УКРАЇНИ
  4. ПЕРЕДМОВА
  5. Частина І ПРОГРАМА КУРСУ «ЦИВІЛЬНЕ ПРАВО УКРАЇНИ»
  6. Розділ І. Загальні положення цивільного права
  7. Тема 1. Поняття цивільного права. Предмет та метод, система цивільного права. Функції та принципи цивільного права
  8. Тема 2. Цивільне законодавство України
  9. Тема 3. Поняття, елементи та види цивільних правовідносин
  10. Тема 4. Здійснення цивільних прав і виконання обов’язків
  11. Тема 5. Захист цивільних прав та інтересів
  12. Тема 6. Об’єкти цивільних прав
  13. Тема 7.ФІЗИЧНІ особи як суб’єкти цивільного права
  14. Тема 8. Юридичні особи
  15. Тема 9. Держава як суб’єкт цивільного права. Територіальні громади та Автономна Республіка Крим як суб’єкти цивільного права
  16. Тема 10. Правочини: поняття, види. Умови чинності правочину
  17. Тема 11. Представництво і довіреність
  18. Тема П.Строки. Позовна давність
  19. Нормативний матеріал:
  20. Література