9.1 Массивы RAID
9.1 Массивы RAID
Аббревиатура RAID расшифровывается как. Redundant Лггау of independent Disks – избыточный массив независимых дисков. Массивы RAID были разработаны в Калифорнийском университете и описаны в знаменитом документе The Berkeley Paper в 1988 году. Сейчас системы RAID предлагаются многими производителями. В 1993 году организация RAID Advisory Group сформировала программу RAID Conformance, которая позволяла производителям тестировать аппаратное обеспечение для прохождения сертификации RAID Advisory Board. После успешной сертификации производитель получал возможность использовать официальный логотип RAID. Разные версии RAID предоставляют различные уровни производительности и защиты данных, поэтому реализация выбирается в зависимости от конкретных требований.
Практически для всех реализаций массивов RAID общей является идея чередования (striping). Чередование состоит из определения базовой единицы ввода-вывода (обычно она имеет размер от 512 байт до 4 или 8 Мбайт)[21]и метода физического размещения этих единиц на различных дисках. Таким образом, формируются логические блоки для кластеров более высокого уровня. Первая единица может находиться на диске 1, вторая – на диске 2 и т.д.
Массив RAID может быть реализован аппаратно или программно:
в программном обеспечении узла (сервера);
в адаптере шины, подключенном к узлу (серверу);
в устройстве хранения.
В некоторых случаях используется сразу несколько методов, например реализация массива RAID как для узла, так и для устройств хранения.
Диспетчер логических дисков (LDM) в Windows NT служит одним из примеров программной реализации массива RAID. Массив RAID, реализованный на узле (host-based RAID), иногда называетсяпрограммным RAID и обладает преимуществами, описанными ниже.
Стоимость аппаратного обеспечения ниже, так как устройствам хранения не требуется высокоэффективная аппаратная логика.
Существует возможность использования дисков от различных поставщиков.
При реализации системы, аналогичной диспетчеру томов, предоставленные службы виртуализации используются для преодоления ограничений аппаратного обеспечения; например, несколько небольших дисков могут комбинироваться для формирования большого логического тома.
Программный массив RAID обладает гибкой конфигурацией; например, может обеспечивать зеркальное отражение с помощью двух независимых систем RAID, объединять несколько номеров LUN в один более крупный номер LUN или разделить один LUN на несколько меньших логических томов.
В то же время программному массиву RAID присущи определенные недостатки.
Вычисление четности и других данных, необходимых для работы массива, требует значительных затрат времени центрального процессора. Для некоторых приложений Microsoft не рекомендуется использование
программного массива RAID, который чрезмерно нагружает ресурсы процессора.
Для каждой операции записи по шине ввода-вывода передается две операции записи, одна для данных, вторая для четности.
При использовании программных массивов RAID два уровня абстракции могут значительно повысить сложность и накладные расходы.
Файловая система добавляет уровень абстракции, осуществляя преобразование данных файлового ввода-вывода в данные блочного ввод-вывода на уровне тома.
Диспетчер тома (внедряющий программный массив RAID) добавляет, еще один уровень абстракции, выполняя преобразование блоков тома в дисковые блоки. В контексте распределенной файловой системы (DFS) это означает необходимость получения двухуровневых блокировок – физических или виртуальных (т.е. файл, открытый в эксклюзивном режиме, может обрабатываться как виртуально заблокированный).
Существует несколько типов реализаций массива RAID, которые рассматриваются в разделах 9.1.1–9.1.7.
9.1.1 Массив RAID 0
В массиве RAID 0 данные расслаиваются на несколько жестких дисков. Таким образом, массив RAID 0 выигрывает в производительности, но не предоставляет избыточности или защиты данных.
Как показано на рис. 9.1, при использовании массива RAID 0 данные по очереди записываются на разные диски. Приложение выдает несколько запросов на запись. В данном случае предполагается, что приложение всегда выдает запрос на запись с фиксированным буфером и размер буфера совпадает с размером единицы записи в массиве RAID. Данные на рис. 9.1 распределены по нескольким дискам поочередно (каждое число в прямоугольнике представляет собой запрос на запись).
Массив RAID 0 особенно эффективен в аспекте производительности операций ввода-вывода, так как чтение и запись на разные диски может выполняться параллельно. Однако самый большой недостаток RAID 0 – это отсутствие устойчивости к ошибкам. Если окажется неисправным один диск в массиве RAID 0, данные будут утрачены и на других дисках, следуя правилу «потерял один – потеряли все».
Более того, чередование может повысить быстродействие, но при чрезмерном использовании или в неподходящий момент ситуация фактически
Рис. 9.1. Массив RAID 0
становится прямо противоположной и быстродействие снижается. Приложения, ориентированные на транзакции, обычно выполняют ввод-вывод небольшими блоками размером 1 Кбайт и меньше. Приложения, обрабатывающие поточные данные, обычно осуществляют ввод-вывод гораздо большими блоками. Несмотря на это, устройства хранения достигают наивысшей пропускной способности, когда ввод-вывод выполняется блоками намного большего размера, например до 512 Кбайт. Если в такой ситуации воспользоваться восьмикратным чередованием, то размер блока данных для каждого диска составит 64 Кбайт, что приведет к снижению общей производительности.
9.1.2 Массив RAID 1
В массиве RAID 1 операция записи зеркально отражается на первичный и вторичный накопители. На рис. 9.2 показана конфигурация массива RAID 1. Приложение выдает запрос на запись буфера, обозначенного как буфер 1. Данные буфера 1 записываются на два отдельных физических диска. Точно так же приложение выдает запрос на запись буфера 2. Эти данные также записываются не на один, а на два жестких диска.
В идеальных условиях основной и вторичный диски могут быть идентичными. Это означает эффективное выполнение операций чтения в том случае, если они распределены между первичным и вторичным диском. Массив RAID 1 обеспечивает наилучшую скорость чтения среди всех массивов RAID. К его недостаткам относится требование к свободному дисковому простран-
Рис. 9.2. Массив RAID 1
ству: для RAID 1 требуется, как минимум, вдвое больший объем дискового пространства, чем для других массивов. Снижение стоимости жестких дисков несколько уменьшает значимость этого недостатка. Существенное преимущество RAID 1 состоит в мгновенной доступности данных на вторичном диске в случае неисправности первичного диска. Массив RAID 1 – идеальный выбор при использовании в массиве только двух дисков.
9.1.3 Массив RAID 2
Массив RAID 2 больше не используется. В массиве вычисляется код коррекции ошибок (error correction code – ЕСС) для чередующихся записей, однако современные жесткие диски и без того содержат подобную информацию.
9.1.4 Массив RAID 3
Массив RAID 3 обеспечивает чередование с выделенной четностью. При этом информация о четности всегда хранится на определенном выделенном диске, а данные распределены по нескольким дискам.
На рис. 9.3 показана конфигурация массива RAID 3. Приложение выдает один запрос записи, который содержит буфера 1, 2 и 3. Эти данные размещаются на разных дисках. Кроме того, массив RAID 3 вычисляет информацию о четности (Pi), охватывающую все три буфера. Информация о четности записывается на отдельный диск, отличный от дисков, на которые были записаны данные буферов 1, 2 и 3. Точно так же буфера данных 4, 5 и б записываются на различнее диски, а информация о четности для этих буферов
Рис. 9.3. Массив RAID 3
называется Р2; буфера 7, 8 и 9 аналогичным образом записываются на разные диски, данные о четности этих буферов называются РЗ и т.д. Обратите внимание, что информация о четности записывается на один и тот же диск.
Массив RAID 3 обычно требует участия всех дисков массива в операции чтения или записи. Если диск оказывается неисправным, в массив добавляется новый диск и данные с потерянного диска восстанавливаются на основе данных других дисков и информации о четности. Хотя массив RAID 3 имеет слабую поддержку в мире персональных компьютеров (например, не поддерживается контроллерами Adaptec), подобные ему часто применяются в высокопроизводительных суперкомпьютерах.
9.1.5 Массив RAID 4
Массив RAID 4 напоминает массив RAID 3, но при чередовании используются ббльшие единицы записи. Операции чтения распределяются между несколькими дисками, а операции записи выполняются последовательно. Массив RAID 4 также практически не поддерживается производителями, например контроллерами Adaptec.
9.1.6 Массив RAID 5
Массив RAID 5 обеспечивает чередование с распределенной четностью и представляет собой наиболее эффективную реализацию концепции чередо-
вания данных в массивах RAID. Единственное техническое отличие от массива RAID 3 состоит в хранении информации о четности на всех дисках массива.
На рис. 9.4 показана конфигурация массива RAID 5. Приложение выдает единственный запрос на запись данных из буферов 1, 2 и 3. Эти данные размещаются на разных дисках. Кроме того, массив RAID 5 вычисляет четность для всех трех буферов, и эта информация о четности (Р1) записывается на диск, отличный от дисков, на которые были записаны данные из буферов 1, 2 и 3. Точно так же буфера 4. 5 и 6 записываются на разные диски, а информация о четности для этих буферов называется Р2; буфера 7, 8 и 9 аналогичным образом записываются на разные диски, и данные о четности для этих буферов называются РЗ. Обратите внимание: в отличие от массива RAID 3, информация о четности распределена по всем дискам, а не хранится только на одном из них.
Массив RAID 5 обеспечивает баланс между производительностью и защитой данных. В массиве операции чтения могут обрабатываться параллельно несколькими дисками. Операции записи обычно требуют использования, как минимум, двух дисков: одного для данных и одного для четности. RAID 5 – наиболее популярный массив, требующий применения, как минимум, трех дисков. Кроме того, операция восстановления массива при отказе одного из дисков остается весьма трудоемкой.
9.1.7 Двухуровневый массив RAID
Двухуровневый массив RAID (Dual-level RAID) иногда называютгибридным массивом RAID. В двухуровневых схемах RAID различным образом комбинируются базовые реализации массива RAID с сохранением их преимуществ и сокращением влияния некоторых недостатков. В этом разделе вкратце рассматриваются массивы RAID 10, RAID 30 и RAID 50.
Как показано на рис. 9.5, массив RAID 10 комбинирует возможности массивов RAID 0 и RAID 1. Данные записываются на два различных диска, каждый из которых зеркально отражается. Массив RAID 10 обеспечивает чередование зеркальных массивов на базе, как минимум, четырех дисков; при этом даже отказ в работе двух дисков не приведет к нарушению доступа к данным. Массив RAID 10 довольно популярен, так как позволяет реализовать избыточность данных и повышенное быстродействие при относительно несложной реализации.
Массив RAID 30 – это комбинация возможностей массивов RAID 0 и RAID 3 (рис. 9.6). При использовании массива RAID 30 данные записываются на несколько дисков (RAID 0) и выделенный диск четности. Этот массив обеспечиваетчередование с выделенной четност. ью. Для реализации массива RAID 30 требуется, как минимум, шесть дисков, причем допускается отказ в работе до двух дисков (по одному диску на массив). Массив RAID 30
Рис. 9.5. Массив RAID 10
Рис. 9.6. Массив RAID 30
обычно используется в том случае, когда данные включают в себя большие файлы с последовательным доступом, например поточное видео.
Как показано на рис. 9.7, в массиве RAID 50 комбинируются возможности массивов RAID 0 и RAID 5. При использовании массива RAID 50 данные записываются на несколько дисков, как в массиве RAID 0, и на все диски поочередно записывается информация о четности, как в массиве RAID 5. Этот массив основан на чередовании с невыделенной или распределенной четностью. Для реализации RAID 50 требуется, как минимум, шесть дисков и возможен отказ в работе до двух дисков (по одному на каждый массив). В отличие от RAID 30, массив RAID 50 эффективен при работе с относительно небольшими файлами.
Некоторые контроллеры RAID поддерживают несколько идентификаторов SCSI. Кроме того, контроллеры RAID допускают использование нескольких LUN на одно устройство SCSI (так называемаяподдержка множественных номеров LUN).
Рис. 9.7. Массив RAID 50