RAID-4 / RAID-DP — превращаем недостатки в достоинства / Хабр
Когда я в прошлом посте написал, что Snapshots были, на момент появления систем NetApp их главной «фичей», я отчасти слукавил (а отчасти просто забыл), так как у них, на тот момент, была как минимум еще одна особенность, радикально выделяющая их из ряда «традиционных» систем хранения — это «RAID тип 4».
Это тем более интересно, так как никто больше такой тип RAID для использования в дисковых системах хранения данных не использует.
Почему же был выбран именно такой тип, в чем его преимущества, и почему никто больше такой тип RAID сегодня не использует?
Для тех, кто далек от теории рэйдостроения, напомню, что из шести стандартных типов RAID, описанных в научной работе, положившей начало их использованию, RAID тип 2 (с защитой кодом Хэмминга) не применялся в «живой природе», оставшись забавным теоретическим упражнением, RAID-1 (и его вариант RAID-10, или, иногда, как RAID-0+1) это защита данных автоматическим синхронным зеркалированием на паре (или нескольких парах) физических дисков, а RAID-3, 4 и 5 (позже к ним добавился RAID тип 6) — это так называемые «RAID с чередованием и четностью».
В RAID-3 и 4 для информации parity выделен отдельный диск (Между же 3 и 4 разница в размере блока чередования — сектор в type 3 и группа секторов, блок — в type 4).
У RAID-4, то есть «RAID с блочным чередованием и четностью на выделенном диске», есть одно важное достоинство. Его можно увеличивать в размерах, просто добавляя в RAID физические диски, и при этом нет необходимости перестраивать полностью весь RAID, как, например, обстоит дело в случае RAID-5. Если вы используете 5 дисков под данные (и один под parity) в RAID-4, то для того, чтобы увеличить его емкость, вы можете просто добавить в него один, два, и так далее дисков, и емкость RAID-массива немедленно увеличится на объем добавленных дисков. Никакого длительного процесса перестроения недоступного для использования RAID-массива, как в случае RAID-5, не нужно.
Очевидное, и очень удобное на практике преимущество.Отчего же тогда RAID-4 не применяют повсеместно вместо RAID-5?
Он имеет одну, но очень серьезную проблему — производительность на записи.
Дело в том что каждая операция записи блока на дисках RAID, сопровождается записью для обновления блока parity на диске Parity. Это означает, что сколько мы ни добавим к наш массив дисков, между которыми будет распараллелен ввод-вывод, он все равно весь упрется в один единственный диск — диск parity. По сути производительность RAID-4, в «классическом» его применении, ограничена производительностью диска Parity. Пока на этом диске не прошла запись обновления содержимого лежащих на нем блоков parity, все остальные диски, хранящие данные, крутятся и ждут завершения этой операции.
Отчасти эта проблема была решена в RAID-5, где блоки parity также распараллеливаются по дискам, как и блоки данных, и проблема «бутылочного горла» в отношении диска parity была отчасти решена, что, впрочем, не означает, что RAID-5 лишен всех недостатков, скорее наоборот, это, на сегодня, наихудший тип RAID из всех широко применяемых, страдающий и от ненадежности, и от низкой производительности, о чем я писал в статье «Почему RAID-5 — mustdie?».
Особо останавливаясь на вопросах производительности (о надежности читайте статью выше) следует отметить, что RAID-5 имеет одну, но очень серьезную «родовую травму», изначально конструктивно присущую этому типу RAID вообще (типов 3,4,5 и 6 — «чередование с четностью») — малой производительности на произвольной (random) записи. Этот аспект в реальной жизни очень важен, так как объемы произвольной, случайной по характеру, записи в общем трафике хранения довольно значительны (достигая 30-50%), и падение производительности на записи напрямую влияет на производительность хранилища вообще.
Этой проблемой «болеют», повторюсь, все «классические» системы хранения, использующие RAID такого типа (3, 4, 5 и 6).
Все, кроме NetApp.
Каким образом NetApp удалось решить сразу и проблему «бутылочного горла» с диском parity, и проблему низкой производительности при random write?
Тут нам опять придется вспомнить структуру WAFL, о которой я уже писал ранее.
Как сказал по этому поводу инженер NetApp Kostadis Roussos: «Почти любая файловая система сегодня лежит поверх того или иного RAID.
Что же это за «взаимные возможности»?
Как вы помните из моего рассказа про WAFL, она устроена таким образом, что данные на ней, однажды записанные, в дальнейшем не перезаписываются. В случае же необходимости внести изменения содержимого внутри уже записанного файла, выделяется место в пространстве свободных блоков, запись измененного блока проводится туда, а затем указатель на содержимое старого блока переставляется на новый блок, бывший пустым, а теперь несущий новое содержимое.
Такая стратегия записи позволяет нам превратить случайную (random) запись в последовательную (sequental).
А раз так, мы можем делать запись максимально эффективным способом — «полным страйпом» предварительно подготовив его, и собрав все «перезаписи», нацеленные в разные участки дисков, в одну удобную для записи область. То есть вместо перезаписи отдельных блоков, записывая в один прием готовую, сформированную «полосу» данных, разом на все диски RAID, включая и предварительно вычисленную parity всего страйпа на соответствующий ему диск. Вместо трех операций чтения-записи — одна.Ни для кого не секрет, что sequental операции значительно быстрее и удобнее для системы, чем операции типа random.
Запись «полным страйпом», то есть на все диски RAID с чередованием, это максимально желанный алгоритм записи для такого типа RAID. Именно для этого на RAID-контроллерах наращивают объемы кэш-памяти, достигающих на high-end системах весьма впечатляющих размеров (и стоимости). Чем больше кэш на запись в традиционных массивах, и чем дольше в нем «зависает» блок данных, пришедший с сервера на запись на диск, тем больше шансов на то, что в этом кэше однажды соберется из таких блоков «полный страйп», и его можно будет слить на диски максимально выгодно.
Именно поэтому write-back кэши RAID-контроллеров стремятся сливать (flush) данные на диски пореже, и обязательно нуждаются в автономном питании своей памяти от батарейки для сохранения блоков данных, ожидающих своей очереди в кэше.
С ростом объемов дисков NetApp, как и все другие, столкнулась с необходимостью обеспечить повышенную надежность хранения данных RAID. Именно по этой причине, начиная с 2005 года, именно RAID-DP, NetApp-овская реализация RAID-6, является рекомендуемой, предпочтительной, и вообще «конфигурацией по умолчанию». В этом NetApp также первенствует, так как RAID -DP, защищая, как и RAID-6, от потери данных при потере двух дисков разом (например, сбое во время ребилда ранее отказавшего диска), не ухудшает показатели производительности, в отличие от RAID-6, в сравнении с RAID-5 или RAID-10.
Причины этому все те же. Ситуация у «других вендоров» с RAID-6, по сравнению с RAID-5 еще более ухудшается. Принято считать, что производительность RAID-6 падает по сравнению с RAID-5 на 10-15%, а по сравнению с RAID-10 на 25-35%. Теперь надо проводить не только чтение-запись одного блока parity, но надо делать это для двух разных групп блоков.
Однако RAID-DP по прежнему не нуждается в этом, причины этому все те же — случайная запись в произвольное место массива превращается в нем усилиями WAFL в последовательную запись в заранее выделенное пространство, а такая запись осуществляется гораздо быстрее и выгоднее.
Подтверждение того, что использование RAID-4 (и его варианта — RAID-DP, аналога RAID-6) на системах NetApp объективно не приводит к ухудшению производительности — авторитетные тесты производительности дисковых систем SAN (Storage Performance Council, SPC-1/SPC-1E) и NAS (SPECsfs2008), которые NetApp демонстрирует на RAID-4 (и RAID-DP с 2005 года).
Более того, системы NetApp с RAID-DP на равных соревнуются там с системами с RAID-10, то есть показывают производительность значительно выше привычной для «RAID с чередованием и четностью», сохраняя высокую эффективность использования пространства, ведь, как вы знаете, на RAID-10 можно использовать под данные всего 50% от купленной емкости, в то время, как на RAID-DP, при более высокой надежности, но сравнимом c RAID-10 быстродействии, и для стандартного размера группы, получается доступного места для данных свыше 87%.
Таким образом, остроумное использование совместно двух «фич» — RAID-4 и режима записи в WAFL, позволило получить преимущества от них обоих, одновременно избавившись от их недостатков. А дальнейшее развитие RAID-4 в RAID-DP, обеспечивающего защиту от двойного дискового сбоя, позволило повысить надежность хранения данных не жертвуя при этом традиционно высокой производительностью. А это непросто. Достаточно сказать, что использование RAID-6 (аналога RAID-DP, с эквивалентно высоким уровнем защиты), по причине низкой производительности на записи не практикуется и не рекомендуется для primary data больше никем из производителей систем хранения.
Как стать одновременно богатым, сильным и здоровым (и чтобы за это ничего не было)? Как обеспечить высокую степень защиты данных от сбоя, при этом не пожертвовав ни высокой производительностью, ни объемом дискового пространства?
Обращайтесь к его компаниям-партнерам 😉
UPD: в главной роли на фото в заставке статьи — NetApp FAS2020A из хозяйства хабраюзера foboss.
RAID-массивы — надежность и производительность
Уровни RAID
RAID 0
RAID 1 (Mirrored disk)
RAID 2
RAID 3
RAID 4
RAID 5
Практическая реализация
Проблема повышения надежности хранения информации и одновременного увеличения производительности системы хранения данных занимает умы разработчиков компьютерной периферии уже давно. Относительно повышения надежности хранения все понятно: информация — это товар, и нередко очень ценный. Для защиты от потери данных придумано немало способов, наиболее известный и надежный из которых — это резервное копирование информации.
Вопрос повышения производительности дисковой подсистемы весьма сложен. Рост вычислительных мощностей современных процессоров привел к тому, что наблюдается явный дисбаланс между возможностями жестких дисков и потребностями процессоров. При этом не спасают ни дорогие SCSI-диски, ни уж тем более IDE-диски. Однако если не хватает возможностей одного диска, то, может быть, отчасти решить данную проблему позволит наличие нескольких дисков? Конечно, само по себе наличие двух или более жестких дисков на компьютере или на сервере дела не меняет — нужно заставить эти диски работать совместно (параллельно) друг с другом так, чтобы это позволило повысить производительность дисковой подсистемы на операциях записи/чтения. Кроме того, нельзя ли, используя несколько жестких дисков, добиться повышения не только производительности, но и надежности хранения данных, чтобы выход из строя одного из дисков не приводил к потере информации? Именно такой подход был предложен еще в 1987 году американскими исследователями Паттерсоном, Гибсоном и Катцом из Калифорнийского университета Беркли. В своей статье «A Case for Redundant Arrays of Inexpensive Discs, RAID» («избыточный массив недорогих дисков») они описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы.
С момента выхода статьи прошло уже 15 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, — это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive (недорогие) поменяли на Independent (независимые), что больше соответствовало действительности.
Более того, именно сейчас технология RAID получила широкое распространение. Так, если еще несколько лет назад RAID-массивы использовались в дорогостоящих серверах масштаба предприятия с применением SCSI-дисков, то сегодня они стали своеобразным стандартом де-факто даже для серверов начального уровня. Кроме того, постепенно расширяется и рынок IDE RAID-контроллеров, то есть актуальность приобретает задача построения RAID-массивов на рабочих станциях с использованием дешевых IDE-дисков. Так, некоторые производители материнских плат (Abit, Gigabyte) уже начали интегрировать IDE RAID-контроллеры на сами платы.
Итак, RAID — это избыточный массив независимых дисков (Redundant Arrays of Independent Discs), на который возлагается задача обеспечения отказоустойчивости и повышения производительности. Отказоустойчивость достигается за счет избыточности. То есть часть емкости дискового пространства отводится для служебных целей, становясь недоступной для пользователя.
Повышение производительности дисковой подсистемы обеспечивается одновременной работой нескольких дисков, и в этом смысле чем больше дисков в массиве (до определенного предела), тем лучше.
Совместную работу дисков в массиве можно организовать с использованием либо параллельного, либо независимого доступа.
При параллельном доступе дисковое пространство разбивается на блоки (полоски) для записи данных. Аналогично информация, подлежащая записи на диск, разбивается на такие же блоки. При записи отдельные блоки записываются на различные диски (рис. 1), причем запись нескольких блоков на различные диски происходит одновременно, что и приводит к увеличению производительности в операциях записи. Нужная информация также считывается отдельными блоками одновременно с нескольких дисков (рис. 2), что также способствует росту производительности пропорционально количеству дисков в массиве.
Следует отметить, что модель с параллельным доступом реализуется только при условии, что размер запроса на запись данных больше размера самого блока. В противном случае реализовать параллельную запись нескольких блоков просто невозможно. Представим ситуацию, когда размер отдельного блока составляет 8 Кбайт, а размер запроса на запись данных — 64 Кбайт. В этом случае исходная информация нарезается на восемь блоков по 8 Кбайт каждый. Если имеется массив из четырех дисков, то одновременно можно записать четыре блока, или 32 Кбайт, за один раз. Очевидно, что в рассмотренном примере скорость записи и скорость считывания окажется в четыре раза выше, чем при использовании одного диска. Однако такая ситуация является идеальной, поскольку далеко не всегда размер запроса кратен размеру блока и количеству дисков в массиве.
Если же размер записываемых данных меньше размера блока, то реализуется принципиально иная модель доступа — независимый доступ. Более того, эта модель может быть реализована и в том случае, когда размер записываемых данных больше размера одного блока. При независимом доступе все данные отдельного запроса записываются на отдельный диск, то есть ситуация идентична работе с одним диском. Преимущество модели с параллельным доступом в том, что при одновременном поступлении нескольких запросов на запись (чтение) все они будут выполняться независимо, на отдельных дисках (рис. 3). Подобная ситуация типична, например, в серверах.
В соответствии с различными типами доступа существуют и различные типы RAID-массивов, которые принято характеризовать уровнями RAID. Кроме типа доступа, уровни RAID различаются способом размещения и формирования избыточной информации. Избыточная информация может либо размещаться на специально выделенном диске, либо перемешиваться между всеми дисками. Способов формирования этой информации несколько больше. Простейший из них — это полное дублирование (100-процентная избыточность), или зеркалирование. Кроме того, используются коды с коррекцией ошибок, а также вычисление четности.
Уровни RAID
В настоящее время существует несколько стандартизированных RAID-уровней: от RAID 0 до RAID 5. К тому же используются комбинации этих уровней, а также фирменные уровни (например, RAID 6, RAID 7). Наиболее распространенными являются уровни 0, 1, 3 и 5.
RAID 0
RAID уровня 0, строго говоря, не является избыточным массивом и соответственно не обеспечивает надежности хранения данных. Тем не менее данный уровень находит широкое применение в случаях, когда необходимо обеспечить высокую производительность дисковой подсистемы. Особенно популярен этот уровень в рабочих станциях. При создании RAID-массива уровня 0 информация разбивается на блоки, которые записываются на отдельные диски (рис. 4), то есть создается система с параллельным доступом (если, конечно, размер блока это позволяет). Благодаря возможности одновременного ввода-вывода с нескольких дисков RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, поскольку не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. В основном RAID 0 применяется в тех областях, где требуется быстрая передача большого объема данных.
RAID 1 (Mirrored disk)
RAID уровня 1 — это массив дисков со 100-процентной избыточностью. То есть данные при этом просто полностью дублируются (зеркалируются), за счет чего достигается очень высокий уровень надежности (как, впрочем, и стоимости). Отметим, что для реализации уровня 1 не требуется предварительно разбивать диски и данные на блоки. В простейшем случае два диска содержат одинаковую информацию и являются одним логическим диском (рис. 5). При выходе из строя одного диска его функции выполняет другой (что абсолютно прозрачно для пользователя). Кроме того, этот уровень удваивает скорость считывания информации, так как эта операция может выполняться одновременно с двух дисков. Такая схема хранения информации используется в основном в тех случаях, когда цена безопасности данных намного выше стоимости реализации системы хранения.
RAID 2
RAID уровня 2 — это схема резервирования данных с использованием кода Хэмминга (смотри ниже) для коррекции ошибок. Записываемые данные формируются не на основе блочной структуры, как в RAID 0, а на основе слов, причем размер слова равен количеству дисков для записи данных в массиве. Если, к примеру, в массиве имеется четыре диска для записи данных, то размер слова равен четырем дискам. Каждый отдельный бит слова записывается на отдельный диск массива. Например, если массив имеет четыре диска для записи данных, то последовательность четырех бит, то есть слово, запишется на массив дисков таким образом, что первый бит окажется на первом диске, второй бит — на втором и т.д.
Кроме того, для каждого слова вычисляется код коррекции ошибок (ECC), который записывается на выделенные диски для хранения контрольной информации (рис. 6). Их число равно количеству бит в контрольном слове, причем каждый бит контрольного слова записывается на отдельный диск. Количество бит в контрольном слове и соответственно необходимое количество дисков для хранения контрольной информации рассчитывается на основе следующей формулы: где K — разрядность слова данных.
Естественно, что L при вычислении по указанной формуле округляется в большую сторону до ближайшего целого числа. Впрочем, чтобы не связываться с формулами, можно воспользоваться другим мнемоническим правилом: разрядность контрольного слова определяется количеством разрядов, необходимым для двоичного представления размера слова. Если, например, размер слова равен четырем (в двоичной записи 100), то, чтобы записать это число в двоичном виде, потребуется три разряда, значит, размер контрольного слова равен трем. Следовательно, если имеется четыре диска для хранения данных, то потребуется еще три диска для хранения контрольных данных. Аналогично при наличии семи дисков для данных (в двоичной записи 111) понадобится три диска для хранения контрольных слов. Если же под данные отводится восемь дисков (в двоичной записи 1000), то нужно уже четыре диска для контрольной информации.
Код Хэмминга, формирующий контрольное слово, основан на использовании поразрядной операции «исключающего ИЛИ» (XOR) (употребляется также название «неравнозначность»). Напомним, что логическая операция XOR дает единицу при несовпадении операндов (0 и 1) и нуль при их совпадении (0 и 0 или 1 и 1).
Само контрольное слово, полученное по алгоритму Хэмминга, — это инверсия результата поразрядной операции исключающего ИЛИ номеров тех информационных разрядов слова, значения которых равны 1. Для иллюстрации рассмотрим исходное слово 1101. В первом (001), третьем (011) и четвертом (100) разрядах этого слова стоит единица. Поэтому необходимо провести поразрядную операцию исключающего ИЛИ для этих номеров разрядов:
Само же контрольное слово (код Хэмминга) получается при поразрядном инвертировании полученного результата, то есть равно 001.
При считывании данных вновь рассчитывается код Хэмминга и сравнивается с исходным кодом. Для сравнения двух кодов используется поразрядная операция «исключающего ИЛИ». Если результат сравнения во всех разрядах равен нулю, то считывание верное, в противном случае его значение есть номер ошибочно принятого разряда основного кода. Пусть, к примеру, исходное слово равно 1100000. Поскольку единицы стоят в шестой (110) и седьмой (111) позициях, контрольное слово равно:
110
Если при считывании зафиксировано слово 1100100, то контрольное слово для него равно 101. Сравнивая исходное контрольное слово с полученным (поразрядная операция исключающего ИЛИ), имеем:
то есть ошибка при считывании в третьей позиции.
Соответственно, зная, какой именно бит является ошибочным, его легко исправить «на лету».
RAID 2 — один из немногих уровней, позволяющих не только исправлять «на лету» одиночные ошибки, но и обнаруживать двойные. При этом он является самым избыточным из всех уровней с кодами коррекции. Эта схема хранения данных применяется редко, поскольку плохо справляется с большим количеством запросов, сложна в организации и обладает незначительными преимуществами перед уровнем RAID 3.
RAID 3
RAID уровня 3 — это отказоустойчивый массив с параллельным вводом-выводом и одним дополнительным диском, на который записывается контрольная информация (рис. 7). При записи поток данных разбивается на блоки на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива, кроме выделенного для хранения контрольной информации. Для вычисления контрольной информации (называемой также контрольной суммой) используется операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. При выходе из строя любого диска данные на нем можно восстановить по контрольным данным и данным, оставшимся на исправных дисках.
Рассмотрим в качестве иллюстрации блоки размером по четыре бита. Пусть имеются четыре диска для хранения данных и один диск для записи контрольных сумм. Если имеется последовательность бит 1101 0011 1100 1011, разбитая на блоки по четыре бита, то для расчета контрольной суммы необходимо выполнить операцию:
Таким образом, контрольная сумма, записываемая на пятый диск, равна 1001.
Если один из дисков, например третий, вышел из строя, то блок 1100 окажется недоступным при считывании. Однако его значение легко восстановить по контрольной сумме и значениям остальных блоков, используя все ту же операцию «исключающего ИЛИ»:
Блок 3=Блок 1Блок 2Блок 4
Контрольная сумма.
В нашем примере получим:
Блок 3=1101001110111001= 1100.
RAID уровня 3 имеет намного меньшую избыточность, чем RAID 2. Благодаря разбиению данных на блоки RAID 3 имеет высокую производительность. При считывании информации не производится обращение к диску с контрольными суммами (в случае отсутствия сбоя), что происходит всякий раз при операции записи. Поскольку при каждой операции ввода-вывода производится обращение практически ко всем дискам массива, одновременная обработка нескольких запросов невозможна. Данный уровень подходит для приложений с файлами большого объема и малой частотой обращений. Кроме того, к достоинствам RAID 3 относятся незначительное снижение производительности при сбое и быстрое восстановление информации.
RAID 4
RAID уровня 4 — это отказоустойчивый массив независимых дисков с одним диском для хранения контрольных сумм (рис. 8). RAID 4 во многом схож с RAID 3, но отличается от последнего прежде всего значительно большим размером блока записываемых данных (большим, чем размер записываемых данных). В этом и есть главное различие между RAID 3 и RAID 4. После записи группы блоков вычисляется контрольная сумма (точно так же, как и в случае RAID 3), которая записывается на выделенный для этого диск. Благодаря большему, чем у RAID 3, размеру блока возможно одновременное выполнение нескольких операций чтения (схема независимого доступа).
RAID 4 повышает производительность передачи файлов малого объема (за счет распараллеливания операции считывания). Но поскольку при записи должна вычисляться контрольная сумма на выделенном диске, одновременное выполнение операций здесь невозможно (налицо асимметричность операций ввода и вывода). Рассматриваемый уровень не обеспечивает преимущества в скорости при передаче данных большого объема. Эта схема хранения разрабатывалась для приложений, в которых данные изначально разбиты на небольшие блоки, поэтому нет необходимости дополнительно их разбивать. RAID 4 представляет собой неплохое решение для файл-серверов, информация с которых преимущественно считывается и редко записывается. Эта схема хранения данных имеет невысокую стоимость, но ее реализация достаточно сложна, как и восстановление данных при сбое.
RAID 5
RAID уровня 5 — это отказоустойчивый массив независимых дисков с распределенным хранением контрольных сумм (рис. 9). Блоки данных и контрольные суммы, которые рассчитываются точно так же, как и в RAID 3, циклически записываются на все диски массива, то есть отсутствует выделенный диск для хранения информации о контрольных суммах.
В случае RAID 5 все диски массива имеют одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 10 Гбайт, то фактический размер массива составляет 40 Гбайт, так как 10 Гбайт отводится на контрольную информацию.
RAID 5, так же как и RAID 4, имеет архитектуру независимого доступа, то есть в отличие от RAID 3 здесь предусмотрен большой размер логических блоков для хранения информации. Поэтому, как и в случае с RAID 4, основной выигрыш такой массив обеспечивает при одновременной обработке нескольких запросов.
Главным же различием между RAID 5 и RAID 4 является способ размещения контрольных сумм.
Наличие отдельного (физического) диска, хранящего информацию о контрольных суммах, здесь, как и в трех предыдущих уровнях, приводит к тому, что операции считывания, не требующие обращения к этому диску, выполняются с большой скоростью. Однако при каждой операции записи меняется информация на контрольном диске, поэтому схемы RAID 2, RAID 3 и RAID 4 не позволяют проводить параллельные операции записи. RAID 5 лишен этого недостатка, поскольку контрольные суммы записываются на все диски массива, что обеспечивает возможность выполнения нескольких операций считывания или записи одновременно.
Практическая реализация
Для практической реализации RAID-массивов необходимы две составляющие: собственно массив жестких дисков и RAID-контроллер. Контроллер выполняет функции связи с сервером (рабочей станцией), генерации избыточной информации при записи и проверки при чтении, распределения информации по дискам в соответствии с алгоритмом функционирования.
Конструктивно контроллеры бывают как внешние, так и внутренние. Имеются также интегрированные на материнской плате RAID-контроллеры. Кроме того, контроллеры различаются поддерживаемым интерфейсом дисков. Так, SCSI RAID-контроллеры предназначены для использования в серверах, а IDE RAID-контроллеры подходят как для серверов начального уровня, так и для рабочих станций.
Отличительной характеристикой RAID-контроллеров является количество поддерживаемых каналов для подключения жестких дисков. Несмотря на то что к одному каналу контроллера можно подключить несколько SCSI-дисков, общая пропускная способность RAID-массива будет ограничена пропускной способностью одного канала, которая соответствует пропускной способности SCSI-интерфейса. Таким образом, использование нескольких каналов может существенно повысить производительность дисковой подсистемы.
При использовании IDE RAID-контроллеров проблема многоканальности встает еще острее, поскольку два жестких диска, подключенных к одному каналу (большее количество дисков не поддерживается самим интерфейсом), не могут обеспечить параллельную работу — IDE-интерфейс позволяет обращаться в определенный момент времени только к одному диску. Поэтому IDE RAID-контроллеры должны быть как минимум двухканальными. Бывают также четырех- и даже восьмиканальные контроллеры.
Другим различием между IDE RAID- и SCSI RAID-контроллерами является количество поддерживаемых ими уровней. SCSI RAID-контроллеры поддерживают все основные уровни и, как правило, еще несколько комбинированных и фирменных уровней. Набор уровней, поддерживаемых IDE RAID-контроллерами, значительно скромнее. Обычно это нулевой и первый уровни. Кроме того, встречаются контроллеры, поддерживающие пятый уровень и комбинацию первого и нулевого: 0+1. Такой подход вполне закономерен, поскольку IDE RAID-контроллеры предназначены в первую очередь для рабочих станций, поэтому основной упор делается на повышение сохранности данных (уровень 1) или производительности при параллельном вводе-выводе (уровень 0). Схема независимых дисков в данном случае не нужна, так как в рабочих станциях поток запросов на запись/чтение значительно ниже, чем, скажем, в серверах.
Основной функцией RAID-массива является не увеличение емкости дисковой подсистемы (как видно из его устройства, такую же емкость можно получить и за меньшие деньги), а обеспечение надежности сохранности данных и повышение производительности. Для серверов, кроме того, выдвигается требование бесперебойности в работе, даже в случае отказа одного из накопителей. Бесперебойность в работе обеспечивается при помощи горячей замены, то есть извлечения неисправного SCSI-диска и установки нового без выключения питания. Поскольку при одном неисправном накопителе дисковая подсистема продолжает работать (кроме уровня 0), горячая замена обеспечивает восстановление, прозрачное для пользователей. Однако скорость передачи и скорость доступа при одном неработающем диске заметно снижается из-за того, что контроллер должен восстанавливать данные из избыточной информации. Правда, из этого правила есть исключение — RAID-системы уровней 2, 3, 4 при выходе из строя накопителя с избыточной информацией начинают работать быстрее! Это закономерно, поскольку в таком случае уровень «на лету» меняется на нулевой, который обладает великолепными скоростными характеристиками.
До сих пор речь в этой статье шла об аппаратных решениях. Но существует и программное, предложенное, например, фирмой Microsoft для Windows 2000 Server. Однако в этом случае некоторая начальная экономия полностью нейтрализуется добавочной нагрузкой на центральный процессор, который помимо основной своей работы вынужден распределять данные по дискам и производить расчет контрольных сумм. Такое решение может считаться приемлемым только в случае значительного избытка вычислительной мощности и малой загрузки сервера.
Сергей Пахомов
КомпьютерПресс 3’2002
Комментарии
Отзывы о статье RAID-массивы — надежность и производительность
Присоединиться к обсуждению »
Объяснение уровней RAID 0, 1, 4, 5, 6, 10
По мере роста бизнеса возникает потребность в более надежной инфраструктуре, способной поддерживать критически важные системы. Важным компонентом стабильной и масштабируемой инфраструктуры является правильное управление памятью. В этой статье мы рассмотрим RAID, который является аббревиатурой от R избыточных A массивов I независимых (или недорогих) D isks.
Что такое RAID?
RAID — это технология виртуализации хранилища, которая используется для организации нескольких дисков в различные конфигурации для достижения определенных целей, таких как избыточность, скорость и емкость. RAID можно разделить на программный RAID и аппаратный RAID. В программном RAID архитектура памяти управляется операционной системой. В случае аппаратного RAID внутри дисков есть выделенный контроллер и процессор, которые управляют памятью. Существуют различные уровни рейдов, как описано ниже.
RAID 0
RAID 0 основан на чередовании данных. Поток данных делится на несколько сегментов или блоков, и каждый из этих блоков хранится на разных дисках. Таким образом, когда системе нужно прочитать эти данные, она может сделать это одновременно со всех дисков и соединить их вместе для восстановления всего потока данных. Преимущество этого заключается в том, что скорость операций чтения и записи резко возрастает. Это отлично подходит для ситуаций, когда производительность является приоритетом по сравнению с другими аспектами. Кроме того, общая емкость всего тома представляет собой сумму емкостей отдельных дисков. Минус, как вы уже догадались, в том, что избыточности почти нет. Если один из дисков выходит из строя, все данные становятся поврежденными и бесполезными, поскольку их больше нельзя воссоздать.
Преимущества:
- Повышение производительности операций чтения и записи
- Пространство не тратится впустую, так как весь объем отдельных дисков используется для хранения уникальных данных
Недостатки
- Нет избыточности/дублирования данных. Если один из дисков выходит из строя, все данные теряются.
RAID 1
RAID 1 использует концепцию зеркального отображения данных. Данные зеркалируются или клонируются на идентичный набор дисков, так что в случае отказа одного из дисков можно использовать другой. Это также повышает производительность чтения, так как к разным блокам данных можно получить доступ со всех дисков одновременно. Это можно пояснить на диаграмме ниже. Многопоточный процесс может получить доступ к Блоку 1 с Диска 1 и к Блоку 2 с Диска 2 одновременно, тем самым увеличивая скорость чтения, как и в RAID 0. Но в отличие от RAID 0 производительность записи снижается, поскольку все диски должны обновляться всякий раз, когда появляются новые данные. написано. Другим недостатком является то, что пространство тратится впустую для дублирования данных, что увеличивает соотношение стоимости к хранению.
Преимущества
- Возможность восстановления данных в случае отказа диска
- Повышена производительность операции чтения
Недостатки
- Низкая скорость записи
- Пространство тратится впустую из-за дублирования данных, что увеличивает стоимость единицы памяти
RAID 4
RAID 4 распределяет данные по нескольким дискам так же, как и RAID 0. Кроме того, он также хранит информацию о четности всех дисков на отдельном выделенном диске для обеспечения избыточности. На приведенной ниже диаграмме диск 4 служит диском четности с блоками четности A 9.0063 стр. , B стр. , C стр. и D стр. . Таким образом, если один из дисков выходит из строя, данные можно восстановить, используя информацию о четности этого диска. Пространство здесь используется более эффективно по сравнению с RAID 1, поскольку информация о четности занимает гораздо меньше места, чем зеркалирование диска. Скорость записи снижается, поскольку вся информация о четности записывается на один диск, что является узким местом. Эта проблема решена в RAID 5, как мы увидим далее.
Преимущества
- Эффективное резервирование данных с точки зрения затрат на единицу памяти
- Повышение производительности операций чтения за счет удаления данных
Недостатки
- Медленная операция записи
- При сбое выделенного диска четности избыточность данных теряется
RAID 5
RAID 5 очень похож на RAID 4, но здесь информация о четности распределяется по всем дискам, а не хранится на выделенном диске. Это имеет два преимущества — во-первых, исчезает узкое место, поскольку стресс четности выравнивается за счет использования всех дисков для хранения информации о четности, и, во-вторых, исключается возможность потери избыточности данных, поскольку на одном диске не хранится вся информация о четности.
Преимущества
- Все преимущества RAID 4 плюс повышенная скорость записи и лучшая избыточность данных
Недостатки
- Может справиться только с отказом одного диска
RAID 6
В RAID 6 используются блоки с двойной четностью для обеспечения лучшей избыточности данных, чем в RAID 5. Это повышает отказоустойчивость при выходе из строя до двух дисков в массиве. Каждый диск имеет два блока четности, которые хранятся на разных дисках массива. RAID 6 — очень практичная инфраструктура для поддержания систем высокой доступности.
Преимущества
- Повышенная избыточность данных. Может обрабатывать до 2 отказавших дисков
Недостатки
- Большие накладные расходы на контроль четности
RAID 10 (RAID 1+0)
RAID 10 объединяет RAID 1 и RAID 0, размещая их в противоположном порядке. Иногда его также называют «вложенным» или «гибридным» RAID. Это «лучшее из двух подходов», потому что он имеет высокую производительность RAID 0 и избыточность RAID 1. В этой конфигурации несколько блоков RAID 1 связаны друг с другом, чтобы сделать его похожим на RAID 0. Он используется в случаях, когда требуется огромная производительность диска (больше, чем RAID 5 или 6) наряду с избыточностью.
Преимущества
- Очень высокая производительность
- Резервирование и отказоустойчивость
Недостатки
- Стоимость единицы памяти высока, поскольку данные зеркалируются
Внедрение и поддержка RAID
Многие операционные системы имеют встроенную поддержку RAID. В Linux есть инструмент под названием mdadm, который можно использовать для управления и мониторинга устройств RAID. Вся настройка и работа mdadm подробно описаны на вики-странице ядра. Кроме того, такие файловые системы, как ZFS, GPFS, Btrfs и XFS, обеспечивают встроенную поддержку RAID. Что касается аппаратного обеспечения, такие системы, как Intel Matrix RAID, имеют выделенную микросхему контроллера дисков, которая содержит встроенное ПО и драйверы для реализации архитектуры RAID.
Заключение
Понимание уровней RAID очень важно для разработки инфраструктуры хранения, отвечающей потребностям организации. RAID может защитить от сбоев дисков и обеспечить высокую производительность. Однако он не предоставляет никаких средств для защиты от повреждения данных или реализации функций безопасности.
сообщить об этом объявлении
Если вам понравился этот пост, поделитесь им 🙂
Что такое RAID 4 (избыточный массив независимых дисков), особенности…
Вы когда-нибудь встречали слово RAID — может быть, вы думаете, что это название игры или фильма, верно? Существуют разные уровни RAID, но в этой статье основное внимание уделяется объяснению RAID 4 или RAID уровня 4.
Автор: Anthony Ugochukwu Iloh | Обновлено 6 марта 2023 г. | 11 минут чтения
Эта статья состоит из нескольких разделов, первый из которых представляет собой обзор избыточного массива независимых дисков 4. В следующем разделе я буду обсуждать, как работает эта технология хранения.
Это еще не все, в следующем разделе (раздел 3) рассказывается о некоторых особенностях этого уровня RAID. Двигаясь дальше, в четвертом разделе этой статьи обсуждаются некоторые из его плюсов и минусов.
Наконец, последний раздел (5) этой статьи посвящен некоторым часто задаваемым вопросам о RAID 4 и ответам на них.
Обзор тем сообщений
Обзор
Прежде чем перейти к уровню RAID 4, я считаю необходимым дать вам краткий курс по технологии RAID. Как я уже намекал во введении, RAID — это аббревиатура, означающая « R избыточный A массив I независимый D искс».
RAID — это технология хранения данных на нескольких жестких дисках. Основная цель RAID — избежать риска потери данных.
Помимо предотвращения потери данных, RAID также направлен на повышение скорости и производительности.
Существует множество уровней RAID, включая уровни RAID 0, 1, 2, 3, 4, 5, 6 и 10. В этой статье я сосредоточусь на уровне RAID 4 (RAID 4).
Следовательно, RAID 4 — это конфигурация RAID, в которой используется чередование на уровне блоков между двумя или более независимыми дисками с выделенным диском четности. Эта технология хранения похожа на RAID 5 в том смысле, что обе используют чередование на уровне блоков с контролем четности.
Отличие состоит в том, что RAID 4 использует чередование на уровне блоков между несколькими дисками с выделенным диском четности. С другой стороны, RAID 5 также использует чередование на уровне блоков на нескольких дисках, но записывает данные четности на все диски.
Как работает RAID 4?
Если вы читали статью с самого начала, то могли сделать вывод, что RAID 5 предлагает улучшения по сравнению с RAID 4. По этой причине Redundant Array of Independent Disks level 4 сегодня редко реализуется.
Как же тогда работает технология резервного массива независимых дисков уровня 4?
Как я уже намекал ранее, Redundant Array of Independent Disks 4 использует чередование на уровне блоков между двумя или более независимыми дисками с выделенным диском четности. Для ясности, чередование на уровне блоков означает, что данные записываются на каждый диск группой байтов.
Чтобы сделать это более практичным и легким для понимания, давайте рассмотрим следующий пример:
Например, предположим, что у нас есть четыре диска (0, 1, 2 и 3). Если взять диск 3 в качестве диска четности, а диски (0, 1 и 2) — в качестве независимых дисков для чередования на уровне блоков — чередование — это метод разделения данных по нескольким дискам.
Предположим, что данные распределены по первым блокам — 1A, 1B и 1C — информация о четности для данных, разделенных по этим блокам, будет храниться в четности блока 1.
Эта же логика применяется ко всем другим блокам данных.
Для большей ясности RAID 4 использует диск четности для восстановления данных, если какой-либо из дисков (скажем, диск 0) выходит из строя. Это возможно путем получения разницы между диском четности и суммой дисков 1 и 2.
Особенности RAID 4
Я немного рассказал об этой технологии хранения в обзоре и о том, как она работает, в разделах выше. Теперь давайте рассмотрим некоторые функции RAID 4 в следующих подразделах 9.0003
Отказоустойчивость
RAID 4 является отказоустойчивым. Это означает, что при замене вышедшего из строя диска RAID можно восстановить с информацией о четности.
Этот диск четности помогает восстановить/восстановить данные на неисправном диске.
Хорошая производительность при случайном/последовательном чтении
Поскольку RAID 4 разбивает данные на сегменты блоков на нескольких дисках, он обеспечивает хорошую производительность при случайном/последовательном чтении.
Низкая производительность произвольной записи
RAID 4 обеспечивает низкую производительность произвольной записи из-за необходимости записи всех данных четности на один диск. Например, рассмотрим пример в разделе «как это работает», скажем, данные на дисках 0, 1 и 2 должны быть записаны одновременно.
Поскольку информацию о четности необходимо обновить на одном диске, диск 1 Запись будет ожидать завершения записи на диск 0 и так далее. Вот почему Запись выполняется медленнее.
Выделенный диск контроля четности
RAID 4 использует один диск для хранения информации контроля четности. Следовательно, будет узкое место в случаях с большим количеством операций ввода-вывода.
Кроме того, в случае сбоя диска четности восстановление данных на диске невозможно. В отличие от RAID 5, который распределяет данные четности по всем дискам.
Таким образом, если диск выйдет из строя, его данные будут по-прежнему доступны с других дисков.
Низкие накладные расходы на хранение
Накладные расходы на хранение в RAID 4 невелики, в отличие от RAID 5. Например, предположим, что RAID 5 должен распределять свои данные по 3 дискам по 1 ТБ каждый, что в совокупности составляет 3 ТБ пространства.
Общее пространство, которое он (RAID 5) может использовать из 3 ТБ, составит всего 2 ТБ.
Плюсы и минусы RAID 4
Этот раздел состоит из двух подразделов, первый из которых посвящен плюсам этой технологии хранения. Принимая во внимание, что второй подраздел — минусы.
Кроме того, зная плюсы и минусы технологии хранения, вы лучше понимаете, чего от нее ожидать.
Плюсы RAID 4
- Операции чтения выполняются быстро . RAID 4 распределяет данные на сегменты блоков по нескольким дискам. Следовательно, он обеспечивает хорошую производительность случайного/последовательного чтения.
- Низкие затраты на хранение. RAID 4 уменьшает излишки памяти. Фактически, для хранения информации о четности требуется только один диск.
Например, если у вас есть 3 диска, только 1 диск будет использоваться для информации о четности. Следовательно, накладные расходы составляют всего 33% с точки зрения хранения.
- Одновременный запрос ввода/вывода. Резервный массив независимых дисков 4 позволяет выполнять несколько запросов ввода-вывода одновременно.
Это связано с тем, что его приводы работают независимо.
- Нет необходимости в синхронизации дисковых шпинделей . В отличие от RAID 3, RAID 4 не требует синхронизации дисковых шпинделей.
Следовательно, уменьшение задержки диска.
- Отказоустойчивость. В избыточном массиве независимых дисков 4, если какой-либо из независимых дисков выходит из строя, RAID можно восстановить, заменив отказавший диск.
Это связано с тем, что эта технология хранения использует диск четности. Диск четности помогает восстановить/восстановить данные на неисправном диске.
Минусы RAID 4
- Только один диск четности. В отличие от RAID 5, который записывает данные четности на все диски, Raid 4 использует только один диск для записи данных четности.
К сожалению, в случае сбоя диска четности все данные могут быть потеряны.
- Низкая производительность произвольной записи . Поскольку эта технология хранения использует один диск для информации о четности, скорость произвольной записи будет низкой.
Например, для одновременной записи информации с независимых дисков на диск четности. Поскольку диск четности всего один, запись на один независимый диск должна дождаться завершения записи на другой диск.
- Избыточный массив независимых дисков 4 сегодня редко используется в производстве . В настоящее время эта технология хранения практически не используется.
Это связано с тем, что RAID 5 работает лучше. Как я уже упоминал несколько раз, в то время как RAID 4 использует один диск для информации о четности, RAID 5 распределяет информацию о четности по всем дискам.
- RAID 4 вызывает задержку системы и трату времени . Использование RAID 4 для небольшого объема данных было бы не очень хорошей идеей.
Это связано с необходимостью модификации блоков четности для каждого сеанса ввода/вывода. В результате этого непрерывного процесса тратится много времени и может задержаться работа всей системы.
Часто задаваемые вопросы
1. Почему RAID 5 предпочтительнее RAID 4?
По производительности RAID 5 превосходит RAID 4. Это связано с тем, что в RAID 4 имеется только один выделенный диск четности.
В результате один диск четности будет узким местом в случаях большого количества операций ввода-вывода. С другой стороны, RAID 5 распределяет не только свои данные, но и данные четности по всем своим дискам.
Благодаря этому в случае большого количества операций ввода-вывода узких мест не возникает.
2. Является ли RAID 4 отказоустойчивым?
Да, RAID 4 отказоустойчивый. Это связано с тем, что RAID 4 имеет диск четности. Таким образом, в случае отказа диска его информация может быть восстановлена с диска четности.
Для ясности, четность — это метод перестроения/восстановления данных в случае сбоя диска. Однако в RAID 4 для контроля четности используется только один выделенный диск.
Следовательно, в случае отказа диска четности восстановление данных на диске будет невозможно.
3. Для чего используется RAID 4?
Резервный массив независимых дисков 4 используется для чередования на уровне блоков между двумя или более независимыми дисками. Он также имеет специальный диск, используемый для хранения информации о четности.
4. Есть ли RAID 4?
Да, есть RAID 4, пятый по уровню RAID. Однако в настоящее время RAID 4 используется неохотно, так как RAID 5 предлагает некоторые улучшения по сравнению с 4.
5. Что такое RAID?
RAID — это аббревиатура, означающая « R избыточный A массив I независимый D дисков». RAID — это способ хранения одних и тех же данных в разных местах на нескольких жестких дисках.
Основная цель RAID — избежать риска потери данных в результате отказа жесткого диска. RAID также повышает скорость и производительность.
6. Чем RAID 4 отличается от RAID 3?
RAID 4 во многом отличается от RAID 3. Ниже приведены некоторые различия между RAID 4 и RAID 3
1. Избыточный массив независимых дисков 4 использует чередование на уровне блоков, тогда как в избыточном массиве независимых дисков 3 используется чередование на уровне байтов
2. В RAID 4 данные четности генерируются для всего блока данных и хранятся на одном выделенном диске, тогда как в RAID 3 данные четности генерируются для каждого раздела диска и хранятся на другом диске.
3. RAID 4 имеет хорошую производительность произвольного чтения, тогда как RAID 3 имеет худшую производительность чтения.
4. Низкая производительность для RAID 4 в случае файла большого размера, так как одновременно осуществляется доступ только к одному блоку, тогда как в RAID 3 производительность хорошая.
7. Какие важные моменты следует учитывать перед выбором конфигурации RAID?
Прежде чем выбрать конфигурацию RAID, решите, нужна ли вам скорость, избыточность данных или и то, и другое.
8. Что такое RAID на базе Fireware?
RAID на базе Fireware — это тип RAID, хранящийся непосредственно на материнской плате компьютера. Этот тип операции RAID выполняется ЦП компьютера, а не выделенным процессором.
9. Что означает фраза «вложенный RAID»?
Вложенный RAID — это объединение двух или более уровней RAID для повышения производительности и избыточности. Вложенный RAID также можно назвать гибридным RAID.
Результирующий RAID, образованный путем объединения двух или трех уровней RAID, называется в честь объединенных уровней RAID. Например, RAID 01 (чередование и зеркалирование).
10. Что такое четность в RAID?
Контроль четности в RAID — это метод, используемый для воссоздания данных в случае сбоя диска.
Мои последние мысли
RAID 4 — это уровень RAID, в котором используется чередование на уровне блоков на двух или более независимых дисках. Однако в наши дни эта технология хранения не используется.
Это связано с тем, что RAID 5 может работать лучше. Кроме того, RAID 5 также использует чередование на уровне блоков на нескольких дисках.
Между тем, в то время как RAID 4 использует один диск для информации о четности, RAID 5 распределяет информацию о четности по всем дискам.
В результате, если диск четности в RAID 4 выйдет из строя, будет сложно восстановить потерянные данные. Однако в RAID 5 при выходе из строя одного диска восстановить потерянную информацию очень просто.
Следовательно, RAID 5 — лучший выбор, чем RAID 4.
Надеюсь, я смог объяснить RAID 4 и сравнить его с другими типами хранилищ. Я также надеюсь, что статья оказалась для вас полезной и легкой для понимания.
Если да, поделитесь своими мыслями с нашей платформой сообщества на форуме сообщества Itechguides. Вы также можете задать вопросы или оставить отзыв об этой статье на форуме сообщества Itechguides.
Наконец, вы можете найти другие полезные статьи на нашей странице Объяснение технологии хранения и дисков .
Ссылки и дополнительная литература
- phoenixnap.com – Объяснение уровней и типов рейдов: преимущества и недостатки
- techopedia.com — RAID 4
- 24hourdata.com – ЧТО ЛУЧШЕ: RAID 4 ИЛИ 5?
- stellarinfo.co.in — Преимущества и недостатки уровней RAID
- lucidti.com — уровень RAID 4
- open-e.