RAID контроллеры и RAID массивы.
Данная статья представляет из себя краткий обзор типов RAID контроллеров и существующих разновидностей RAID массивов.
Классификация RAID контроллеров
Software RAID контроллер. Представляет из себя виртуальный RAID контроллер(программу эмулирующую физический адаптер). RAID функционал на материнских платах Intel относится к данному классу. Данный тип использует ресурсы вашего PC или сервера – вычислительную мощь CPU немного оперативки и.т.д. . Обычно данный тип контроллеров не поддерживает PARITY рейды(RAID 5,50,6,60…). Для некоторых software RAID существует проблема с драйверами. Так, например, некоторые RAID контроллеры работают только под Windows.
Второй тип это аппаратный RAID(физическая плата) без специальной микросхемы для расчета хэш сумм. Эти контроллеры обычно реализуют базовый функционал(поддержку RAID 0,1,10) и даже если поддерживают parity raid то скорость записи бывает катастрофической(10, 15 мегабайт в секунду). Иногда под аппаратным рейд(pure hardware RAID) подразумевают именно наличие специальной микросхемы, реализующей рейд функционал такой как расчет хеш сумм для parity типов рейд.
Третий тип это аппаратный RAID контроллер с ускорителем расчета хэш сумм. Именно в этом сегменте обитают высококлассные рейд контроллеры. Только такие контроллеры можно рекомендовать для parity RAID (RAID 5,50,6,60…).
Ограничения аппаратных рейд контроллеров. Даже лучшие представители аппаратных рейд контролеров имеют ряд ограничений.
Пропускная способность шины, к которой он подключен. Скажем если контроллер поддерживает подключение до 128-ти дисков каждый со средней скоростью чтения 150МБ/с, то максимальная пропускная способность не составит 128х150МБ/с а упрется в пропускную способность шины. Допустим контроллер имеет интерфейс подключения PCIe 8x спецификации 2.0, то теоретически достижимая максимальная скорость не превысит 4000MB(8x500MB), даже если подключить контроллер к более скоростной шине. Если подключить такой контроллер к PCIe шине версии 1 максимальная пропускная способность составит 2000МБ в секунду(8x250MB).
Производительность самого рейд контроллера. Если вы используете большое количество SSD то далеко не всякий рейд контроллер способен обеспечить необходимый IOPS в результате бутылочным горлышком может стать сам контроллер. Сказанное выше относится также и к parity RAID. Даже контроллеры с микросхемой не все одинаково эффективны в расчете хеш сумм.
Типы RAID массивов.
Что такое RAID(Redundant Array Of Independent/Inexpensive Drives) для начала рассмотрим расшифровку самой аббревиатуры – Избыточный Массив Недорогих(по другим источникам Независимых) Дисков. Таким образом это способ объединения физических HDD в массив с целью получить от одно до всех из следующих преимуществ
1) Увеличение емкости
2) Увеличение производительности
3) Повышенная отказоустойчивость
Типов RAID массивов существует огромное множество, некоторые практически не применяются, некоторые применяются только в специфических средах. Цель данной статьи – кратко рассмотреть основные типы.
Изложение предполагает, что все HDD объединяемые в массив имеют равную емкость и схожие скоростные характеристики.
- RAID 0 – Наиболее простой из типов рейд емкость массива равна произведению количества объединяемых HDD на емкость одного HDD, примерно также масштабируется скорость чтения и записи. Данные при записи делятся на количество HDD в массиве и равными порциями записываются на каждый из них. Этот тип массива абсолютно не подходит для корпоративных сред(разве что для тестовых целей) так как напрочь лишен избыточности. Таким образом отказ любого из HDD приведет к неработоспособности массива и потере данных. Преимущества данного типа рейд максимальная емкость и скорость. Недостаток отсутствие отказоустойчивости. Рассмотрим простейший пример – объединим 4ре терабайтных винчестера в RAID 0 средняя скорость чтения и записи одного винчестера 165МБс получим результирующий массив емкостью 4ТБ и в идеале среднюю скорость чтения и записи 660МБс.
- RAID 1 – Так называемый зеркальный рейд: данные дублируются на оба винчестера в случае отказа одного из винчестеров массив остается полностью работоспособным. Минимальное и максимальное количество HDD для создания данного типа рейд 2. Данный тип рейд типично не имеет преимуществ по скорости чтения и записи они равны скорости одного HDD, емкость тоже равна емкости одного HDD(половина суммарной емкости). RAID 1 часто применяется в корпоративных средах и если у вас всего 2 HDD и нужна избыточность – то выбор невелик. Как я раньше говорил данный тип типично не дает скоростных преимуществ, однако следует упомянуть что некоторые аппаратные рейд контроллеры позволят вам получить максимум отдачи от данного типа рейд. Итак, мы имеем две идентичные копии данных и если запись проходит одновременно и получить ощутимых преимуществ по записи практически невозможно, то при считывании можно считать половину с одного HDD а другую половину со второго. Таким образом на некоторых контроллерах на считывании можно получить практически скорость считывания сравнимую с суммарной скоростью обоих HDD(примерно 1,7хскорость одного HDD). Рассмотрим типичный пример RAID1 – объединим 2 терабайтных винчестера в RAID 1 средняя скорость чтения и записи одного винчестера 165МБс получим результирующий массив емкостью 1ТБ и в идеале среднюю скорость чтения и записи 165МБс.
- RAID 10 – Это комбинация RAID 0 + RAID 1 (дублированный RAID 0 массив). Для создания данного типа RAID необходимо четное количество HDD – 4ре и более. Максимальное количество HDD поддерживаемых в данном типе массива зависит от вашего рейд контроллера(сильно увлекаться количеством не имеет смысла так как в случае отказа одного из HDD мы будем иметь один большой RAID 0 массив с N-ным количеством дисков). Данный тип рейд обеспечивает хорошую производительность и неплохую отказоустойчивость, однако мы имеем только половину возможного объёма и линейной скорости чтения и записи. Этот уровень рейд наиболее часто используется в корпоративных средах особенно для баз данных и любых сред где важен высокий IOPS(для мелких данных скажем если запись идет блоками по 4ре килобайта принято измерять не мегабайты в секунду а количество операций ввода вывода), время ребилда массива также намного короче, чем для parity типов рейд, а также выше скорость работы в режиме degraded. RAID 10 сохранит работоспособность в случае одновременного одного или более HDD в массиве(как уже говорилось каждый HDD в массиве имеет своего дублера и одновременный отказ обоих приведет к потере всего массива).
- RAID 5 – Является типом parity RAID данные четности распределяются по всем дискам массива. Для RAID 5 рекомендуется хороший аппаратный рейд контроллер. RAID 5 допускает отказ любого одного диска в массиве. Емкость массива равна (n-1)xSingle HDD size. Таким образом теряется объём всего лишь одного HDD в массиве скорость чтения в идеале также приближается к (n-1)xSingle HDD speed, скорость записи уже похуже(насколько конкретно зависит уже от вашего контроллера). Следует упомянуть что RAID 5 является нерекомендуемым(однако часто используемым типом RAID) это связано с аспектами отказоустойчивости и производительности операций записи. Следует избегать включения слишком большого количества HDD в RAID5 массив. Часто отказ втoрого HDD происходит во время самой операции ребилда массива, что приводит к потере данных. Даже при использовании корпоративных HDD не самого большого объёма уже при общем количестве 12 и более HDD в массиве, вероятность отказа второго HDD во время операции ребилда практически приближается к 1. Также если во время операции ребилда на одном из HDD окажется нечитаемый сектор или произойдет другая ошибка, то весь массив будет потерян. Время ребилда для рейд 5 значительно дольше чем для рейд 10, также ниже производительность в режиме degraded. Если у вас нормальный рейд контроллер, поддерживающий рейд 6 и количество дисков от 6 то лучше использовать именно рейд 6. Если же поддержки рейд 6 нет или, контроллер плохо вытягивает этот режим, то при большом количестве HDD лучше рассмотреть вариант RAID 50.
- RAID 50 Это объединение двух RAID 5 массивов в RAID 0. Минимально необходимое количество HDD для создания данного типа рейд равняется 6, количество HDD в массиве должно быть четным. По сравнению с RAID 5 обеспечивает лучшие скорости(особенно на запись), лучшую надежность(отказ до двух HDD – не более одного в каждом RAID 5 массиве) и меньшее время ребилда(требуется воссоздать только одну цепочку RAID 5). При организации данного типа рейд теряется емкость 2х HDD. Если у вас большое количесво HDD скажем 8 и более и ваш контроллер не поддерживает рейд 6/60 либо плохо справляется с ними, то рекомендуется использовать именно RAID 50 а не RAID 5.
- RAID 6 / ADG(advanced data guarding) – Сама расшифровка означает – продвинутая защита данных. RAID 6 фактически разработан чтобы усовершенствовать технологию примененную в RAID 5 и устраняет ряд ее недостатков особенно в плане надежности. Массив RAID 6 сохранит работоспособность при одновременном отказе любых 2х винчестеров в массиве. Для организации RAID 6 необходимо минимум 4ре HDD. Теряется емкость 2х винчестеров(по формуле (n-2)xSingle HDD size). RAID 6 является double parity RAID и требует большей вычислительной мощности от ROC – данные четности пишутся 2мя порциями и хеш суммы расчитываются 2 раза. Скорость записи ниже(на слабом контроллере ощутимо ниже) чем у RAID 5, скорость чтения тоже может несколько уступать, время ребилда и скорость работы в режиме degraded так же хуже чем у RAID 5. Как и в случае с RAID 5 сама процедура ребилда или начальной инициализации четности является нагрузкой для винчестеров в массиве и во время их осуществления возможен выход из строя и другого винчестера. Из-за вышеперечисленного RAID 6 не рекомендуют для баз данных и сред где необходим высокий IOPS. Однако все зависит от вашего конкретного применения. По личному опыту при наличии хорошего контроллера и правильной организации применение RAID 6 либо RAID 60, совсем не лишено смысла даже для баз данных и других сред где важен IOPS. Некоторые из наших клиентов удачно используют RAID 6 на виртуализированных серверах где крутятся несколько виртуалок с базами данных и еще много чего и при этом вполне довольны производительностью. Конечно если у вас одновременно проходят сотни или тысячи операций на запись, то возможно вам не следует использовать RAID 6. Могу привести пример типичного Армянского офиса где скажем из 30 работников одновременно к базе данных могут обратиться не более 15 человек, при этом 10ти потребуется прочитать что-либо из базы, а 5ти записать что-то. Так какая нагрузка будет – возможно пару мегабайт на чтение и несколько сот килобайт на запись? Мы не рекомендуем использование слишком емких тем более потребительских SATA HDD в RAID 6 массивах. Кроме того, что скорость вращения шпинделя у потребительских HDD заметно ниже у них так же ниже надежность. Если для потребительских HDD типично допускается невосстановимая ошибка чтения на каждые 10^15 степени бит прочитанных данных, то для корпоративных этот порог типично выше в 10 раз(10^16). Сравним два случая. В первом у вас 8 HDD SAS 10k по 600GB каждый, организованных в массив RAID 6 а в другом у нас по 8 HDD SATA 7.2k по 6TB каждый. Теперь допустим, что в каждом массиве у нас отказал один HDD который мы заменили. Контроллеру потребуется осуществить rebuild массивов до успешного завершения которого массивы будут находиться в режиме degraded плюс сама операция ребилда будет расходовать часть мощности контроллера. В случае с корпоративными HDD сама процедура займет скажем 6 часов в течении которых сам массив будет работать ощутимо медленнее обычного, но намного лучше, чем в случае с 7.2k HDD, при этом вероятность успешного завершения выше примерно в 100раз чем в случае с 7.2k HDD. Во втором случае ребилд может занять от недели и более, в течении этого промежутка времени массив будет сильно тормозить, а сама вероятность возникновения ошибки выше раз во 100.
- RAID 60 Это объединение двух RAID 6 массивов в RAID 0. Скорость чтения и особенно записи лучше, чем у RAID 6. Для создания необходимо минимум 8 HDD. Результирующая емкость равна (n-4)xSingle HDD size. Массив может выдержать отказ двух HDD в каждой цепочке суммарно по обоим массивам не более 4х. Время ребилда ниже чем при рейд 6. В целом если у вас большое количество HDD скажем 12 то имеет прямой смысл использовать RAID 60.
- ADM(Advanced Data Mirroring) Это оптимизированная по отказоустойчивости разновидности зеркального массива(RAID 1, RAID 10). Одновременно записывается 3 копии данных. Результирующая емкость равна 1/3 суммарного объёма включенных HDD. Для создания требуется минимально 3 HDD. Из-за высокой стоимости реализации рекомендовать его использование несколько сложно. Разве что для сред где повышенная избыточность сохранности данных важнее всего остального.
Спасибо за прочтение и <<Да пребудет с Вами Вычислительная Мощь!>>