RAID


БизнесБас. Предлагаем недорогую услугу: аренда автомобиля с водителем в москве и области.

Одно из важнейших требований, предъявляемых к любой серьезной системе хранения данных, — это наличие RAID, или Redundant Array of Independent Disks (массив независимых дисковых накопителей с избыточностью). Раньше символ I в аббревиатуре RAID означал Inexpensive (недорогой), но это определение относительно. Массив RAID емкостью в один петабайт стоит намного меньше отдельного диска емкостью в один петабайт, тем не менее, он очень дорог. Системы RAID распределяют данные между дисками для улучшения производительности и надежности. Существуют программные и аппаратные реализации RAID.

Сравнение программных и аппаратных RAID

FreeBSD поддерживает аппаратные и программные RAID. Аппаратным массивом RAID управляет контроллер SCSI, а хост-адаптеры, способные обслуживать RAID, называются RAID-контроллерами. В аппаратной реализации все вычисления, связанные с размещением данных на жестких дисках, выполняет сам RAID-контроллер. Большинство аппаратных RAID очень надежны, а аппаратный контроллер — бесспорно, лучший способ обслуживания RAID.

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

Программными RAID управляет операционная система. Именно ОС приходится управлять распределением данных по дискам. В сравнении с аппаратными RAID этот метод увеличивает нагрузку на систему, однако обходится дешевле аппаратного. Кроме того, вы не рискуете потерять данные, как в случае с аппаратным RAID, когда оказывается невозможным приобрести RAID-контроллер того же типа.

Применять аппаратный RAID намного легче, чем программный, поскольку обычно в первом случае достаточно следовать инструкциям из документации. Как правило, в аппаратных RAID есть BIOS, управляемая меню. BIOS позволяет назначать размеры виртуальных дисков, восстанавливать поврежденные диски и конфигурировать виртуальные диски. С другой стороны, применение программных RAID подразумевает, что системные администраторы отдают себе отчет в своих действиях. Если вы хотите получить больше информации об аппаратном RAID, прочитайте руководство по вашему RAID-контроллеру, поскольку здесь мы рассматриваем программные RAID. Многие особенности RAID, поддерживаемые операционной системой FreeBSD, реализованы и в аппаратных RAID.

Многие производители RAID поставляют программные инструменты управления своими контроллерами из операционной системы. Контролировать и настраивать массивы amr(4) можно с помощью megarc (/usr/ports/sysutils/megarc), массивы mfi(4) — с помощью MegaCli (/usr/ports/sysutils/linux-megacli), а массивы aac(4) arrays — с помощью aaccli (/usr/ports/sysutils/aaccli). Компания 3Ware поставляет программное обеспечение для управления контроллерами twe(4) и twa(4), а компания Areca — для управления контроллерами arcmsr(4).

GEOM RAID и размер диска

Все жесткие диски в RAID-системе должны иметь одинаковый размер, или хотя бы следует использовать одинаковый объем дискового пространства на каждом диске. Если RAID-массив состоит из 10 дисков по 500 Гбайт и один из них выходит из строя, то в случае установки нового диска размером 700 Гбайт на нем будет использовано только 500 Гбайт. Вам не удастся использовать эти оставшиеся 200 Гбайт без потери производительности всего массива.

Далее считаем, что все диски или участки, используемые для создания программного RAID, имеют одинаковые размеры. Если у вас несколько дисков, проверьте их размеры с помощью fdisk(8). Если размеры некоторых дисков отличаются, даже всего на пару сотен секторов, GEOM использует размер наименьшего диска в качестве ограничения.

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

Контроль четности и размер чередующейся области

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

Похожим образом на уровнях RAID, где происходит распределение данных между несколькими дисками, могут использоваться чередующиеся области различных размеров. Размер чередующейся области* (stripe size) — это размер части файла, записываемой на один диск. Например, если файл имеет размер 512 Кбайт, а размер чередующейся области составляет 128 Кбайт, то этот файл окажется записанным в четыре чередующиеся области, разбросанные по дискам. Вам попадутся на глаза руководства, утверждающие, что по тем или иным причинам наиболее оптимальным является тот или иной размер области. Аргументы, которые там приводятся, могут даже быть истинными, но для определенных видов рабочих нагрузок. Если у вас появится желание поэкспериментировать с размерами чередующихся областей, проводите испытания на своем аппаратном окружении при типичной рабочей нагрузке. Вы можете получить некоторый прирост производительности, но, скорее всего, он будет не очень велик. В примерах мы будем использовать значение по умолчанию, равное 128 Кбайт, если явно не указано другое. Размер 128 Кбайт оптимален для большинства видов рабочих нагрузок.

Типы RAID

Есть разные типы RAID. Большинство аппаратных реализаций поддерживают RAID-0, RAID-1 и RAID-5. Но есть и другие типы. В частности, FreeBSD поддерживает удобный в некоторых случаях тип RAID-3. Можно также встретить RAID 0+1 и RAID-10, и очень редко — RAID 50 и RAID 6.

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

Тип RAID-1 называют зеркалированием (mirroring). Содержимое одного диска дублируется на другом. Это хороший метод, недорогой и предоставляющий надежную схему хранения данных. Я применяю зеркалирование на всех своих серверах. Зеркалирование может обеспечить дополнительную защиту данных даже для сервера, созданного на базе настольного персонального компьютера. Объем дискового массива RAID-1 равен объему наименьшего из жестких дисков в массиве.

Тип RAID-3, или разбивка на чередующиеся области с выделенным диском для хранения контрольных сумм (striping with a dedicated parity disk), использует запасной жесткий диск для хранения контрольных сумм и обеспечения целостности данных, чередующихся по остальным жестким дискам. Это означает, что выход одного жесткого диска из строя не приведет к потере данных. Чтобы использовать дисковые массивы типа RAID-3, у вас должно быть нечетное число дисков, но не меньше трех. В некоторых случаях наличие выделенного диска для хранения контрольных сумм позволяет увеличить производительность. Однако в каждый конкретный момент времени массив RAID-3 может удовлетворить только один запрос на выполнение операции ввода-вывода. Если вы последовательно загружаете большие файлы, то стоит обдумать вариант с применением RAID-3. Объем дискового массива RAID-3 равен сумме объемов жестких дисков, из которых он собран, за исключением одного.

Тип RAID-5, или разбивка на чередующиеся области с хранением контрольных сумм на всех дисках (striping with parity shared across all drives), — это текущий промышленный стандарт обеспечения избыточности. Как и RAID-3, этот тип применяет контроль по четности, обеспечивающий избыточность данных; потеря одного диска не приведет к уничтожению данных. В отличие от RAID-3, пространство для хранения контрольных сумм распределяется между всеми жесткими дисками. Пропускная способность самая обычная, но массив RAID-5 может обслуживать сразу несколько операций ввода-вывода. Объем дискового массива RAID-5 равен сумме объемов жестких дисков, из которых он собран, за исключением одного. К сожалению, у FreeBSD 7 нет стабильной программной реализации RAID-5. Вам может встретиться упоминание о gvinum(8) — это «порт» менеджера томов Vinum, основанный на GEOM и включающий поддержку RAID-5, — но это программное обеспечение еще не гарантирует полную надежность. Другие реализации находятся на стадии разработки и в настоящее время недоступны.

Тип RAID 0+1 — зеркалирование дисков, разбитых на чередующиеся области (mirror of striped disks). Для организации дискового массива этого типа вам потребуется четное количество дисков, но не меньше четырех. Суть в том, чтобы сначала создать дисковый массив типа RAID 0, получив один большой виртуальный диск, а затем выполнить зеркалирование всего массива на идентичный набор жестких дисков. Объем дискового массива RAID 0+1 равен половине суммы объемов жестких дисков. Массив RAID 0+1 не обеспечивает отказоустойчивость, как RAID-10, и потому используется довольно редко. Мы не будем обсуждать этот тип.

Тип RAID-10 — разбивка на чередующиеся области зеркалированных дисков (stripe of mirrored disks). Для реализации такой схемы требуется как минимум четыре диска. Количество дисков должно быть четным, для полной надежности нужны два отдельных контроллера дисков. Диски объединяются в зеркальные пары, а затем данные записываются в чередующиеся области, распределенные по зеркалам. Поскольку при такой реализации контрольные суммы не вычисляются, она обладает самой высокой производительностью. Объем дискового массива RAID-10 равен половине суммы объемов жестких дисков.

Инфраструктура GEOM может предоставить программную реализацию всех этих типов RAID.

Комментарии запрещены.