Введение в терминологию и концепции RAID

Вступление

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

В этом руководстве мы поговорим об общей терминологии и понятиях RAID. Мы обсудим некоторые преимущества и недостатки организации ваших устройств в RAID-массивы, поговорим о различиях в технологиях реализации и рассмотрим, как различные уровни RAID влияют на вашу среду хранения.

Что такое RAID?

RAID означаетRedundantArrays изIndependentDisks. Комбинируя диски в разных шаблонах, администраторы могут добиться большей производительности или избыточности, чем набор дисков, который может работать при индивидуальной работе. RAID реализован как слой между необработанными дисками или разделами и уровнем файловой системы.

Когда RAID - хорошая идея?

Основные значения, которые обеспечивает RAID - это избыточность данных и повышение производительности.

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

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

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

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

Аппаратный RAID, программный RAID и программно-аппаратный RAID

RAID-массивы могут создаваться и управляться с использованием нескольких различных технологий.

Аппаратный RAID

Выделенное оборудование, называемое RAID-контроллерами или картами RAID, может использоваться для настройки и управления RAID независимо от операционной системы. Это известно какhardware RAID. Настоящие аппаратные RAID-контроллеры будут иметь специальный процессор для управления RAID-устройствами.

Это имеет ряд преимуществ:

  • Performance: подлинным аппаратным RAID-контроллерам не требуется использовать циклы ЦП для управления базовыми дисками. Это означает отсутствие накладных расходов на управление подключенными устройствами хранения. Высококачественные контроллеры также обеспечивают расширенное кэширование, что может оказать огромное влияние на производительность.

  • Abstracting away complexity: Еще одним преимуществом использования RAID-контроллеров является то, что они абстрагируют базовое расположение дисков от операционной системы. Аппаратный RAID может представлять всю группу дисков в виде единой логической единицы хранения. Операционная система не должна понимать расположение RAID; он может просто взаимодействовать с массивом, как если бы это было одно устройство.

  • Availability at boot: Поскольку массив полностью управляется вне программного обеспечения, он будет доступен во время загрузки, что позволяет легко установить корневую файловую систему на массиве RAID.

Аппаратный RAID также имеет несколько существенных недостатков.

  • Vendor lock-in: Поскольку RAID-массив управляется проприетарной прошивкой на самом оборудовании, массив в некоторой степени привязан к оборудованию, используемому для его создания. Если RAID-контроллер умирает, почти во всех случаях он должен быть заменен идентичной или совместимой моделью. Некоторые администраторы рекомендуют приобрести один или несколько контроллеров резервного копирования для использования в случае возникновения проблем на первом.

  • High cost: Качественные аппаратные RAID-контроллеры, как правило, довольно дороги.

Программный RAID

RAID также может быть настроен самой операционной системой. Поскольку взаимосвязь дисков друг с другом определяется операционной системой, а не микропрограммой аппаратного устройства, это называетсяsoftware RAID.

Некоторые преимущества программного RAID:

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

  • Open source: Программные реализации RAID для операционных систем с открытым исходным кодом, таких как Linux и FreeBSD, также являются открытыми. Реализация RAID не скрыта и может быть легко прочитана и реализована в других системах. Например, RAID-массив, созданный на машине с Ubuntu, может быть легко импортирован на сервер CentOS позднее. Существует небольшая вероятность потери доступа к вашим данным из-за различий в программном обеспечении.

  • No additional costs: Программный RAID не требует специального оборудования, поэтому он не добавляет дополнительных затрат на ваш сервер или рабочую станцию.

Некоторые недостатки программного RAID:

  • Implementation-specific: Хотя программный RAID не привязан к конкретному оборудованию, он, как правило, привязан к конкретной программной реализации RAID. Linux используетmdadm, в то время как FreeBSD использует RAID на основе GEOM, а Windows имеет свою собственную версию программного RAID. Хотя реализации с открытым исходным кодом могут портироваться или считываться в некоторых случаях, сам формат, вероятно, не будет совместим с другими реализациями программного RAID.

  • Performance overhead: Исторически программный RAID критиковался за создание дополнительных накладных расходов. Циклы процессора и память требуются для управления массивом, который можно использовать для других целей. Однако такие реализации, какmdadm на современном оборудовании, в значительной степени сводят на нет эти опасения. Загрузка ЦП минимальна и в большинстве случаев незначительна.

Аппаратный программный RAID (Fake RAID)

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

Преимущества аппаратного программного RAID:

  • Multi-operating system support: поскольку RAID-массив запускается во время ранней загрузки, а затем передается операционной системе, несколько операционных систем могут использовать один и тот же массив, что может быть невозможно с программным RAID.

Недостатки аппаратного программного RAID:

  • Limited RAID support: Обычно доступны только RAID 0 или RAID 1.

  • Requires specific hardware: Подобно аппаратному RAID, программный RAID с аппаратной поддержкой привязан к оборудованию, используемому для его создания и управления. Эта проблема еще более проблематична при включении в материнскую плату, поскольку сбой контроллера RAID может означать, что вам придется заменить всю материнскую плату, чтобы снова получить доступ к данным.

  • Performance overhead: Как и в случае программного RAID, ЦП не предназначен для управления RAID. Обработка должна быть разделена с остальной частью операционной системы.

Большинство администраторов держатся подальше от аппаратного программного RAID, поскольку он страдает от комбинации ошибок двух других реализаций.

терминология

Знакомство с некоторыми общими понятиями поможет вам лучше понять RAID. Ниже приведены некоторые общие термины, с которыми вы можете столкнуться:

  • RAID level: Уровень RAID массива относится к отношениям, налагаемым на компонентные устройства хранения. Диски можно настраивать различными способами, что приводит к разным показателям избыточности данных и производительности. См. Раздел оRAID levels для получения дополнительной информации.

  • Striping: Чередование - это процесс разделения записей в массив на несколько базовых дисков. Эта стратегия используется на нескольких различных уровнях RAID (подробнее см.next section). Когда данные распределяются по массиву, они разделяются на части, и каждый кусок записывается как минимум на одно из базовых устройств.

  • Chunk Size: при чередовании данных размер блока определяет объем данных, который будет содержать каждый блок. Регулировка размера чанка в соответствии с ожидаемыми характеристиками ввода-вывода может помочь повлиять на относительную производительность массива.

  • Parity: Четность - это механизм целостности данных, реализованный путем вычисления информации из блоков данных, записанных в массив. Информация о четности может использоваться для восстановления данных в случае отказа диска. Рассчитанная четность размещается на отдельном устройстве, а не на данных, из которых оно рассчитывается, и в большинстве конфигураций распределяется по доступным дискам для повышения производительности и избыточности.

  • Degraded Arrays: Массивы с избыточностью могут иметь различные типы сбоев дисков без потери данных. Когда массив теряет устройство, но все еще работает, говорят, что он находится в ухудшенном режиме. Разрушенные массивы могут быть восстановлены до полностью работоспособного состояния после замены неисправного оборудования, но могут пострадать от снижения производительности в промежуточный период.

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

  • Nested Arrays: группы RAID-массивов можно объединять в более крупные массивы. Обычно это делается для использования возможностей двух или более различных уровней RAID. Обычно массивы с избыточностью (например, RAID 1 или RAID 5) используются в качестве компонентов для создания массива RAID 0 для повышения производительности.

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

    • В определенных контекстах «span» может означать объединение двух или более дисков друг с другом в одно целое и представление их как одного логического устройства без повышения производительности или избыточности. Это также известно как линейное расположение при работе с реализациейmdadmв Linux.

    • «Диапазон» может также относиться к нижнему уровню массивов, которые объединяются для формирования следующего уровня при обсуждении вложенных уровней RAID, например RAID 10.

  • Scrubbing: очистка или проверка - это процесс чтения каждого блока в массиве, чтобы убедиться, что нет ошибок согласованности. Это помогает гарантировать, что данные одинаковы на всех устройствах хранения, и предотвращает ситуации, когда тихие ошибки могут привести к повреждению, особенно во время чувствительных процедур, таких как восстановление.

Уровни RAID

Характеристики массива определяются конфигурацией и соотношением дисков, известным как егоRAID level. Наиболее распространенные уровни RAID:

RAID 0

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

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

RAID 1

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

Эта конфигурация также имеет некоторые штрафы. Как и RAID 0, теоретическая скорость чтения все еще может быть рассчитана путем умножения скорости чтения отдельного диска на количество дисков. Однако для операций записи теоретическая максимальная производительность будет самой низкой скоростью в массиве. Это связано с тем, что весь кусок данных должен быть записан на каждый из дисков в массиве. Кроме того, общая емкость массива будет равна емкости самого маленького диска. Таким образом, массив RAID 1 с двумя устройствами одинакового размера будет иметь полезную емкость одного диска. Добавление дополнительных дисков может увеличить количество избыточных копий данных, но не увеличит объем доступной емкости.

RAID 5

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

Это имеет несколько важных преимуществ. Как и другие массивы с чередованием, производительность чтения выигрывает от возможности чтения с нескольких дисков одновременно. Массивы RAID 5 обрабатывают потерю любого диска в массиве. Блоки четности позволяют полностью восстановить данные, если это произойдет. Поскольку четность распределена (некоторые менее распространенные уровни RAID используют выделенный диск четности), каждый диск имеет сбалансированный объем информации о четности. Хотя емкость массива RAID 1 ограничена размером одного диска (все диски имеют идентичные копии данных), при четности RAID 5 уровень избыточности может быть достигнут за счет стоимости только одного диска. пространство. Таким образом, четыре 100-гигабайтных диска в массиве RAID 5 дадут 300 ГБ полезного пространства (остальные 100 ГБ будут заняты распределенной информацией о четности).

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

RAID 6

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

Что касается недостатков, RAID 6 оплачивает дополнительный двойной контроль четности с помощью емкости дополнительного диска. Это означает, что общая емкость массива представляет собой объединенное пространство задействованных дисков, минус два диска. Расчет для определения четности данных для RAID 6 является более сложным, чем RAID 5, что может привести к ухудшению производительности записи по сравнению с RAID 5. RAID 6 страдает от некоторых тех же проблем деградации, что и RAID 5, но избыточность дополнительного диска защищает от вероятности дополнительных сбоев, уничтожающих данные во время операций восстановления.

RAID 10

RAID 10 может быть реализован несколькими различными способами, что влияет на его общие характеристики:

  • Вложенный RAID 1 + 0

Традиционно RAID 10 относится к вложенному RAID, который создается вначале путем установки двух или более зеркал RAID 1, а затем их использования в качестве компонентов для построения на них чередующегося массива RAID 0. Это иногда теперь называют RAID 1 + 0, чтобы быть более ясным об этих отношениях. Из-за этой конструкции для формирования массива RAID 1 + 0 требуется минимум четыре диска (RAID 0 распределяется по двум массивам RAID 1, состоящим из двух устройств каждый).

Массивы RAID 1 + 0 обладают высокими характеристиками производительности массива RAID 0, но вместо использования отдельных дисков для каждого компонента полосы используется зеркальный массив, обеспечивающий избыточность. Конфигурация такого типа может обрабатывать сбои диска в любом из его зеркальных наборов RAID 1, если хотя бы один диск в каждом RAID 1 остается доступным. Весь массив является устойчивым к сбоям в несбалансированном виде, что означает, что он может обрабатывать различное количество отказов в зависимости от того, где они происходят.

Поскольку RAID 1 + 0 обеспечивает как избыточность, так и высокую производительность, обычно это очень хороший вариант, если количество требуемых дисков не является чрезмерным.

  • RAID 10 от mdadm

Linuxmdadm предлагает свою собственную версию RAID 10, которая передает дух и преимущества RAID 1 + 0, но изменяет фактическую реализацию, делая ее более гибкой и предлагая некоторые дополнительные преимущества.

Как и RAID 1 + 0,mdadm RAID 10 допускает множественные копии и чередование данных. Однако устройства не расположены в виде зеркальных пар. Вместо этого администратор принимает решение о количестве копий, которые будут записаны для массива. Данные разбиваются на части и записываются по всему массиву в несколько копий, обеспечивая, чтобы каждая копия порции записывалась на разные физические устройства. Конечным результатом является то, что существует такое же количество копий, но массив не так сильно ограничен основной вложенностью.

Эта концепция RAID 10 имеет некоторые заметные преимущества по сравнению с вложенным RAID 1 + 0. Поскольку он не использует массивы в качестве строительных блоков, он может использовать нечетное количество дисков и имеет меньшее минимальное количество дисков (требуется только 3 устройства). Количество сохраняемых копий также настраивается. Управление упрощено, так как вам нужно только обратиться к одному массиву и можно выделить запасные части, которые можно использовать для любого диска в массиве, а не только для одного массива компонентов.

Заключение

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

Чтобы узнать больше об использовании Linux-инструментаmdadm для настройки RAID-массивов, следуйте нашему руководству поcreating arrays with mdadm on Ubuntu 16.04. После этого было бы неплохо следовать нашему руководству поhow to manage mdadm arrays on Ubuntu 16.04, чтобы узнать, как управлять существующими массивами.

Related