Содержание | RAID-массивы


RAID-массивы





Имеется множество ситуаций, особенно в сфере бизнеса, когда требования к дисковой памяти невозможно удовлетворить одним накопителем на жестких дисках независимо от его емкости, производительности и качества. Многие организации не могут позволить себе выключить системы даже на час в случае отказа жесткого диска; им нужны подсистемы памяти емкостью в терабайты и максимальная защита от аппаратных отказов. Творческим работникам, использующим мультимедийные файлы, требуются такие скорости передачи данных, которые не могут обеспечить современные накопители. В приведенных ситуациях сложившаяся модель один жесткий диск на систему не удовлетворяет современным требованиям и необходим новый подход - именно им и является технология избыточных массивов недорогих дисков (Redundant Arrays of Inexpensive Disks - RAID). Иногда слово "Inexpensive" (недорогих) заменяется на слово "Independent" (независимых), но именно первый термин был впервые введен исследователями многодисковых систем в Калифорнийском университете в 1987 г.

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

Первоначально RAID-массивы применялись исключительно в сфере крупного бизнеса из-за высокой стоимости аппаратных средств. Однако в последние годы ситуация изменилась и RAID-массивами заинтересовалось множество профессиональных пользователей. Появление недорогих RAID-контроллеров для потребительских накопителей IDE/ATA, в отличие от дорогих дисков SCSI, резко повысило интерес к RAID-технологии. По всей вероятности, эта тенденция сохранится. Многие производители материнских плат будут предлагать поддержку RAID-дисков на платах, а в ближайшие годы разработчики РС предложат системы с дешевыми RAID-массивами как стандартные конфигурации.

Достоинства, ограничения и компромиссы


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

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

Достоинства RAID-массивов


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

  • Повышенная безопасность данных: С помощью избыточности большинство уровней RAID обеспечивает защиту хранимых в массиве данных. Массив может выдержать даже полный отказ одного жесткого диска (иногда нескольких) без потери данных или восстановления данных из резерва. Безопасность данных является ключевым достоинством RAID-массивов и, по-видимому, именно она является движущей силой создания все более емких RAID-массивов. Все уровни RAID, за исключением уровня 0, обеспечивают некоторую степень защиты данных в зависимости от их точной реализации.
  • Отказоустойчивость: Реализации RAID-массивов с избыточностью обеспечивают более надежную общую подсистему памяти по сравнению с одиночным диском. Другими словами, снижается вероятность выхода из строя всей подсистемы памяти из-за аппаратных отказов.
  • Повышенная доступность: Под доступностью (availability) понимается возможность быстрого и непрерывного доступа к данным. Хорошие RAID-массивы повышают доступность, обеспечивая отказоустойчивость и предоставляя специальные средства, позволяющие восстанавливаться из аппаратных отказов без нарушения доступа.
  • Увеличенная емкость: При объединении нескольких накопителей в один массив их емкости суммируются, хотя небольшая часть общей емкости пропадает из-за служебных потерь или избыточности. При этом упрощается разработка приложений, которым требуется большое и непрерывное дисковое пространство, а также упрощается управление дисковым пространством. Предположим, что для большой базы данных требуется дисковое пространство 300 ГБ, но таких накопителей пока нет. Можно объединить в систему пять накопителей по 72 ГБ, но при этом придется разбить базу данных на пять частей, а это значительно усложнит работу с базой данных. С другой стороны, RAID-массив уровня 0 из тех же пяти накопителей по 72 ГБ для операционной системы выглядит как один жесткий диск емкостью 360 ГБ! Все реализации RAID-технологии обеспечивают такое объединение емкостей, но в системе с избыточностью небольшая часть емкости "съедается" избыточной информацией.
  • Повышенная производительность: RAID-массивы повышают производительность, позволяя контроллеру использовать возможности нескольких параллельно работающих дисковых накопителей. Степень повышения производительности зависит от реализации RAID-массива.

Расходы на RAID-массивы


Конечно, многие достоинства RAID-массивов не достаются бесплатно; об этом свидетельствует хотя бы тот факт, что в большинстве РС нет RAID-массивов. Наибольшие расходы приходятся на аппаратные средства, но имеются и другие статьи расходов. Невозможно точно предсказать, сколько будет стоить реализация RAID-массива из-за множества возможных конфигураций. Приведем основные расходы:
  • Планирование и проектирование: Для реализации RAID-системы любого размера необходимо выделить ресурсы на планирование типа системы, определение емкости, выбору аппаратных средств и т.д.
  • Аппаратные средства: К аппаратным средствам относятся жесткие диски, корпуса, блоки питания, средства защиты питания и, возможно, RAID-контроллер. Для большого RAID-массива потребуются все эти средства, но "экономичный" RAID-массив можно реализовать в корпусе РС с использованием блока питания РС и дешевого специального контроллера. В любой реализации RAID-массива емкостью "Х" суммарная емкость накопителей должна быть не менее "Х", а дополнительная емкость зависит от избыточной информации, используемой для повышения надежности.
  • Программное обеспечение: Большинство поставляемых RAID-массивов имеют все необходимое для работы программное обеспечение. При самостоятельной разработке программного обеспечения потребуется операционная система Windows NT или Windows 2000, обеспечивающая такую функциональность.
  • Настройка и обучение: Простые RAID-массивы в отдельных РС не требуют никакого обучения, а настройка их довольно простая. Для настройки и конфигурирования больших RAID-массивов может потребоваться много часов, а для обслуживания их нужен обученный персонал.
  • Сопровождение: RAID-системы масштаба предприятия требуют постоянного сопровождения и профилактических работ.

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

Компромиссы RAID-технологии


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


Этот треугольник показывает взаимосвязь производительности (или емкости), стоимости и отказоустойчивости в мире RAID. В каждом из углов один из показателей максимизируется за счет двух других. Точка "A" представляет собой сбалансированное состояние. Точки "B", "C" и "D" показывают плюсы двух показателей за счет третьего: это и есть точки "выбирай два".

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

Ограничения RAID-технологии


Важно подчеркнуть, что хотя RAID-массив может значительно повысить надежность и производительность подсистемы памяти РС, многое он не может. Очень опасно считать, что сам факт использования RAID-массива образует полностью неуязвимую систему. Некоторые пользователи РС, имеющих RAID-массивы с избыточностью, полагают, что они обеспечивают полную защиту данных, и начинают пренебрегать обычными средствами профилактики, сопровождения и резервирования.

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

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

Нужно ли использовать RAID-массивы?


Ответ на этот вопрос зависит от конкретных обстоятельств. Необходимо тщательно исследовать проблему, взвесить расходы и достигаемые преимущества, сравнить расходы с бюджетом и определить приоритеты. После этого ответ на вопрос об использовании RAID-массивов окажется почти очевидным. Рассмотрим некоторые общие правила:
  • Серверы компаний: Практически все компании должны хранить критические данные в RAID-системе. Данные настолько важны, а прерывания в их доступности ведут к таким негативным последствиям, что расходы отходят на второй план. Даже недорогой и небольшой RAID-массив лучше, чем ничего, и в нем можно хранить наиболее важные данные.
  • Рабочие станции: Занимающиеся редактированием видеофайлов, графическим дизайном, системами автоматизированного проектирования должны рассмотреть возможность организации RAID-массива. Уровень RAID 0 предоставит необходимую в таких работах повышенную производительность. Уровень RAID 10 обеспечить хорошую надежность, но обязательное требование четырех накопителей делает такую систему довольно дорогой. Для рабочей станции вполне подойдет RAID 0 при условии ежедневного резервирования данных.
  • Обычные PC: Для большинства обычных пользователей RAID-массив не нужен и расходы на дополнительные накопители не оправдываются. Некоторые пользователи применяют программное управление RAID-массивами или дешевые контроллеры IDE/ATA для повышения производительности и выбирают уровень RAID 0. К сожалению, этот уровень обычно не обеспечивает такого повышения производительности, какого ожидает типичный пользователь РС. Кроме того, RAID 0 не повышает надежности хранения данных.

Основные принципы RAID-технологии


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

Общие принципы организации RAID-массивов


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

Физические и логические массивы и накопители


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

Разобраться в массивах и накопителях довольно сложно, поскольку RAID-системы могут иметь очень сложную организацию. Поэтому прежде всего рассмотрим ту "иерархию" организации данных в RAID-системе:

  1. Физические накопители: Образующие массив физические накопители на жестких дисках являются основными элементами всех RAID-массивов.
  2. Физические массивы: Один или несколько физических накопителей совместно образуют физический массив. В простых RAID-конфигурациях имеется только один физический массив, но в сложных конфигурациях может быть несколько физических массивов.
  3. Логические массивы: Логические массивы образуются при разбиении или объединении физических массивов. Обычно один логический массив соответствует одному физическому массиву. Однако возможно образовать логический массив, состоящий из нескольких физических массивов (этот прием обычно применяется для организации нескольких уровней RAID). Возможно также образовать два разных логических массива из одного физического массива.
  4. Логические накопители: Один или несколько логических накопителей образуются из одного логического массива, аналогично образованию разделов из одного физического накопителя. Логические накопители выглядят для операционной системы как обычные дисковые тома, а управление базовым массивом осуществляет RAID-контроллер.

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

Как видно, лучшие RAID-контроллеры предоставляют полную свободу в определении массивов. Число подлежащих определению логических массивов и накопителей полностью зависит от используемого уровня RAID. Но, в общем, при определении массивов и накопителей всегда лучше придерживаться правила KISS (Keep It Simple and Stupid - максимальная простота). Для простых применений лучше всего создать один логический массив для каждого физического массива. Если для специальных применений требуется несколько логических массивов, использование для них отдельных физических массивов упрощает управление по сравнению с образованием двух массивов, разделяющих физические массивы и, следовательно, разделяющих физические накопители.

Зеркалирование


Зеркалирование (mirroring) - это один из двух способов введения в RAID-системах избыточных данных (вторым способом является паритет - parity). В RAID-системе с зеркалированием все данные в системе одновременно записываются в два накопителя, что и объясняет принцип "зеркала". Такая 100%-ая избыточность данных обеспечивает полную защиту от отказа любого диска, содержащего задублированные данные. По очевидным причинам в RAID-конфигурациях всегда требуется четкое число накопителей.

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


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

Зеркалирование применяется в RAID 1, а также в многоуровневых RAID-системах с привлечением RAID 1 (RAID 01 или RAID 10). Принцип зеркалирования также поход на дуплексирование (duplexing). В высококачественных RAID-системах применяется даже удаленное зеркалирование (remote mirroring), когда данные записываются в накопители, находящиеся на значительном удалении, для защиты от различных катастроф.

Дуплексирование


Дуплексирование (duplexing) представляет собой расширение зеркалирования, так как опирается на тот же принцип. Как в зеркалировании, все данные дублируются на два физических накопителя. Однако дуплексирование дублирует также все схемы, которые управляют двумя накопителями (или набором накопителей). Для зеркалирования на два жестких диска они оба подключаются к одному хост-адаптеру или RAID-контроллеру. В случае дуплексирования один из накопителей подключается к одному адаптеру, а другой ко второму адаптеру.


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

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

Поскольку аппаратные средства RAID-системы обычно рассчитаны на управление RAID-контроллером всех накопителей в массиве, дуплексирование не поддерживается как вариант в большинстве RAID-продуктов ля РС. Дуплексирование встречается в программных RAID-продуктах, управляемых операционной системой, где операционная система управляет RAID-системой на высоком уровне и может легко распределять данные между двумя хост-адаптерами.

Чередование


Ограничение производительности дисковых накопителей вызывают механические компоненты, используемые для позиционирования и передачи данных. Поскольку RAID-массив содержит несколько накопителей, появляется возможность повышения производительности, используя аппаратные средства во всех накопителях параллельно. Например, при необходимости считать большой файл вместо считывания его с одного накопителя намного быстрее разбить его на части, сохранить эти части на каждом из накопителей массива, а затем использовать все диски для считывания файла. Такой способ называется чередованием (striping - буквально располосованием). Чередование аналогично расслоению (interleaving) памяти, которое повышает скорость подсистемы основной памяти RAM.

Чередование можно выполнить на байтовом или блоковом уровне. Чередование на байтовом уровне означает, что файл разбивается на байтовые "кусочки". Первый байт файла посылается в первый накопитель, второй байт - во второй накопитель и т.д. (подробнее см. RAID 3). Иногда чередование на байтовом уровне выполняется в виде сектора из 512 байтов. Чередование на блоковом уровне означает, что файл разбивается на блоки определенного размера, которые распределяются между накопителями. Используемый размер блока (block size) называется также размером полосы (stripe size) и определяется при настройке массива.


На рисунке представлена блок-схема RAID-конфигурации с чередованием. Один контроллер (аппаратный или программный) разбивает файлы на блоки или байты и распределяет их по нескольким жестким дискам. Размер блока определяет, на сколько "частей" разбиваются файлы. В приведенном примере первый блок файла 1 посылается на диск #1, затем второй блок на диск #2 и т.д. Когда все четыре диска имеют по одному блоку файла 1, пятый блок направляется на диск #1 и процесс продолжается до окончания файла. Отметим, что файл 3 находится только на одном диске; это означает, что размер файла меньше размера блока.

Чередование применяется при реализации базовых одноуровневых RAID (и, по расширению, в многоуровневых RAID, которые используют такие одноуровневые RAID. Однако фактические настройка и использование чередования значительно варьируется от уровня к уровню. Например, RAID 0 использует чередование на блоковом уровне без паритета, RAID 3 и RAID 7 используют чередование на байтовом уровне с паритетом, а RAID 4, RAID 5 и RAID 6 используют чередование на блоковом уровне с паритетом. Отметим различие между чередованием с паритетом и без паритета: само по себе чередование не вносит избыточности и не обеспечивает защиты данных. Отметим также, что в RAID 2 применяется странное чередование на битовом уровне с определением кода с исправлением ошибок (Error Correcting Code - ECC).

Примечание: Иногда вместо термина чередование используется термин перекрытие (spanning).

Паритет


Зеркалирование используется в некоторых уровнях RAID, например RAID 1, для защиты данных в RAID-массиве. Несмотря на то, что зеркалирование имеет определенные достоинства и хорошо подходит для некоторых реализаций, у него имеются и недостатки. Главный недостаток - высокая стоимость, так как 50% накопителей в массиве зарезервированы только для дублирования данных; кроме того, зеркалирование не повышает производительность, как это делает чередование. Поэтому как альтернатива зеркалированию разработан другой способ защиты данных, который опирается на использовании информации о паритете. Эта информация представляет собой избыточную информацию, которая вычисляется из фактических значений данных.

Используемый в RAID-массивах паритет очень похож на паритет для памяти RAM. Принцип паритета довольно простой: нужно взять "N" фрагментов данных и по ним вычислить дополнительный фрагмент. Затем нужно взять "N+1" фрагментов данных и сохранить их в "N+1" накопителях. Если потерян любой один из "N+1" фрагментов данных, его можно восстановить из оставшихся "N" фрагментов независимо от того, какой фрагмент потерян. Защита по паритету применяется в RAID с чередованием и "N" фрагментов данных обычно являются блоками или байтами, распределяемыми по накопителям массива. Информацию о паритете можно хранить в отдельном выделенном накопителе или смешать с данными во всех накопителях массива.

Вход

Выход

#1

#2

"OR"

"XOR"

0

0

0

0

0

1

1

1

1

0

1

1

1

1

1

0

   

Паритет обычно вычисляется с помощью логической операции исключающего ИЛИ (exclusive OR или XOR). Напомним, что оператор XOR дает истинное значение (true), если только один из операндов имеет истинное значение. Приведенные слева таблицы истинности показывают операторы включающего ИЛИ (inclusive OR) и исключающего ИЛИ (exclusive OR).

Операция "XOR" интересна тем, что при выполнении два раза подряд она "отменяет саму себя". Если вычислить "A XOR B", а затем взять результат и выполнить с ним еще одну операцию "XOR B", то в результате получится первоначальное значение A. Другими словами, "A XOR B XOR B = A". Именно это свойство и используется при вычислении паритета в RAID-системе. Если имеются четыре элемента данных D1, D2, D3 и D4, можно вычислить данные паритета "DP" как "D1 XOR D2 XOR D3 XOR D4". После этого, зная любые четыре элемента D1, D2, D3, D4 и DP, можно выполнить для этих четырех элементов операцию XOR и получить отсутствующий элемент.

Приведем наглядный пример. Предположим, что имеются четыре байта данных D1=10100101, D2=11110000, D3=00111100 и D4=10111001. Выполняем над ними операцию "XOR" (действуя попарно):

D1 XOR D2 XOR D3 XOR D4
= ( (D1 XOR D2) XOR D3) XOR D4
= ( (10100101 XOR 11110000) XOR 00111100) XOR 10111001
= (01010101 XOR 00111100) XOR 10111001
= 01101001 XOR 10111001
= 11010000

Результат "11010000" становится байтом паритета DP. Теперь, предположим, что пять значений сохранены в пяти накопителях и накопитель #3, содержащий значение "00111100", вышел из строя. Можно восстановить отсутствующий байт, выполняя операцию "XOR" над тремя байтами исходных данных и вычисленным байтом паритета:

D1 XOR D2 XOR D4 XOR DP
= ( (D1 XOR D2) XOR D4) XOR DP
= ( (10100101 XOR 11110000) XOR 10111001) XOR 11010000
= (01010101 XOR 10111001) XOR 11010000
= 11101100 XOR 11010000
= 00111100

В результате получилось отсутствующее значение D3. Конечно, операцию "XOR" можно выполнять над любым числом битов. Отметим, что эта операция довольно проста, а это важно, потому что ее необходимо выполнять для каждого бита, хранящегося в RAID-массиве с паритетом.

По сравнению с зеркалированием паритет (используемый совместно с чередованием) имеет достоинства и недостатки. Наиболее очевидное его преимущество состоит в том, что паритет защищает данные от отказа любого одного накопителя в массиве, не требуя 50% потерь при зеркалировании; только один из "N+1" содержит избыточную информацию. Потери при паритете равны (100/N)%, где N - общее число накопителей в массиве. Чередование с паритетом обеспечивает также выигрыш в производительности. Основные недостатки чередования с паритетом относятся к сложности: все байты паритета необходимо вычислять (миллионы байтов в секунду!), а для этого требуется вычислительная мощность. Следовательно, для достижения высокой производительности нужен аппаратный контроллер, поскольку при реализации программного RAID-массива с чередованием и паритетом системный процессор просто "захлебнется" в вычислениях. Кроме того, по сравнению с зералированием усложняется восстановление при отказе накопителя.

Все уровни RAID от RAID 3 до RAID 7 используют паритет; наиболее популярным сейчас является RAID 5. В RAID 2 применяется принцип, аналогичный паритету, но несколько другой.

Производительность RAID-систем


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

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

Здесь мы рассмотрим только базовые принципы, влияющие на общую производительность массива, а конкретные сведения приведены для каждого уровня RAID. Мы попытаемся также точнее определить, что означает производительность в контексте RAID-массивов.

Производительность считывания и записи


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

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

  • Зеркалирование: Производительность считывания при зеркалировании намного выше производительности записи. Предположим, что в системе RAID 1 зеркалируются два накопителя. Каждый фрагмент данных дублируется и сохраняется в обоих накопителях. Следовательно, каждый сохраняемый байт необходимо записать в обоих накопителях, поэтому производительность записи в RAID 1 несколько медленнее по сравнению с использованием одного накопителя. При считывании совсем не нужно обращаться к двум накопителям; достаточно "интеллектуальный" контроллер будет запрашивать данные только из одного накопителя, а второй накопитель может удовлетворять другой запрос. В результате RAID-массив по считыванию значительно быстрее одиночного накопителя.
  • Чередование без паритета: Массив RAID 0 имеет примерно одинаковую производительность считывания и записи. Разбиение данных без вычисления паритета означает, что при считывании необходимо обращаться к такому же числу накопителей, что и при записи.
  • Чередование с паритетом: Как и при зеркалировании, производительность записи при чередовании с паритетом (уровни RAID от 3 до 5) хуже производительности считывания, но в отличие от зеркалирования "прокол" записи при чередовании с паритетом намного важнее. Вот как происходят различные обращения:
    • Операции считывания при чередовании с паритетом могут быть быстрее, чем при чередовании без паритета. Информацию о паритете считывать не нужно, поэтому в операциях считывания массив действует аналогично массиву RAID 0 за исключением того, что данные распределены на один дополнительный накопитель, несколько улучшая параллелизм.
    • В последовательных записях появляются потери на вычисление паритета и записи на дополнительный диск для сохранения информации о паритете. Следовательно, последовательные записи оказываются медленнее, чем при чередовании без паритета.
    • Наибольшее расхождение для этого способа проявляется между произвольными (случайными) записями и произвольными записями. Произвольные считывания, которые требуют фрагменты полосы из одного или двух дисков, можно выполнять параллельно с другими произвольными считываниями, в которых требуются только фрагменты полос на разных дисках. Теоретически произвольные записи могли бы быть такими же, но за исключением одной проблемы: при всяком изменении любого блока в полосе необходимо повторно вычислять паритет для данной полосы, а это требует двух записей плюс считывание всех остальных фрагментов полосы! Рассмотрим массив RAID 5 из пяти дисков и конкретную полосу на этих дисках, данные которой содержатся в накопителях #3, #4, #5 и #1 и блок паритета в накопителе #2. Необходимо выполнить небольшую "произвольную запись", которая изменяет только блок в полосе, содержащийся в накопителе #3. Без паритета контроллер может просто записать в накопитель #3 и все сделано. Однако с паритетом изменение в накопителе #3 повлияет на информацию о паритете для всей полосы. Следовательно, данная единственная запись требует считывания из накопителей #4, #5 и #1, вычисления паритета, а затем запись в накопитель #3 (данные) и накопитель #2 (вновь вычисленная информация о паритете). Вот почему чередование с паритетом имеет плохую производительность произвольной записи. (Именно поэтому программные реализации RAID 5 не рекомендуются, если нужна высокая производительность.)
    • Еще один "прокол" производительности записи появляется из-за выделенного накопителя для паритета, который применяется в некоторых реализациях чередования с паритетом (в частности, в уровнях RAID 3 и 4). Поскольку только один накопитель содержит информацию о паритете, при каждой записи приходится записывать в этот накопитель, что превращает его в "узкое место" производительности. В реализациях с распределенным паритетом, например RAID 5, все накопители содержат данные и информацию о паритете. Поэтому нет одного накопителя, представляющего собой "узкое место"; служебные потери просто приходятся на каждый накопитель.

Примечание: Снижение производительности записи при чередовании с паритетом имеет еще одну причину. Контроллер должен быть уверенным в том, что при изменении данных и ассоциированного с ними паритета все изменения происходят одновременно; если процесс прерывается посередине, например после изменения данных, но не паритета, целостность массива нарушается. Для предотвращения этого необходимо использовать специальный процесс, называемый двухфазной записью данных (two-phase commit). Аналогичные способы применяются в базах данных; например, при переводе денег с одного счета на другой необходимо гарантировать обязательные операции вычитания на одном счете и суммирования на другом.

Таким образом, различие производительностей считывания и записи приводит к тому, что многие уровни RAID, особенно использующие чередование с паритетом, обеспечивают лучшую производительность для таких приложений, в которых преобладают операции считывания. Некоторые приложения выполняют мало операций записей относительно общего числа обращений; наглядным примером служит Web-сервер. Для таких приложений идеально подходит уровень RAID 5. В других приложениях, например в интерактивной базе данных, процент операций записи гораздо выше. Для них более подходит уровень RAID 01 или 10 даже с учетом более дорогой настройки.

Примечание: Некоторые контроллеры используют кэширование записи для повышения производительности в операциях записи.

Производительность позиционирования и передачи данных


Аналогично тому, как различные реализации RAID отличаются способами повышения производительности считывания и записи, они отличаются способами обращения к данным по считыванию и и записи. Обращение к данным в одном жестком диске состоит из двух дискретных этапов: вначале головки перемещаются точно на то место, где находятся данные (этот этап называется позиционированием - positioning), а затем происходит передача (transfer) данных на диски или с дисков. Производительность жесткого диска зависит от обоих этапов, а значимость каждого этапа полностью зависит от типов используемых данных и организации данных на диске.

Использование нескольких жестких дисков в RAID-системе означает, что иногда производительность позиционирования и/или передачи можно улучшить. Уровни RAID часто различаются по степени повышения производительности позиционирования или передачи по сравнению с другими уровнями, что следует учитывать при выборе уровня RAID для конкретного применения. Важно понимать, что относительная производительность позиционирования и передачи зависит также от выполняемых операций считывания или записи; часто операции записи требуют выполнения дополнительных служебных действий, которые могут значительно снизить производительность произвольных записей.

Приведем общие различия основных способов хранения данных в RAID-массивах применительно к производительности позиционирования и передачи в операциях записи и считывания:

  • Зеркалирование: При считывании обычно происходит обращение только к одному накопителю, но контроллер может использовать оба накопителя для выполнения двух независимых обращений. Следовательно, зеркалирование повышает производительность позиционирования. Однако после нахождения данных контроллер считывает только из одного накопителя и зеркалирование не улучшает производительности последовательных обращений. При записи используются оба накопителя и производительность, в общем, хуже, чем в случае одного накопителя.
  • Чередование: Большие файлы, которые разбиваются на блоки, которые помещаются на все накопители массива, требуют, чтобы каждый накопитель позиционировался на определенное место, поэтому производительность позиционирования не улучшается. Однако после того, как все головки приведены в нужную позицию, данные считываются со всех накопителей сразу, что значительно повышает производительность передачи. В операциях считывания небольшие файлы, которые не требуют считывания со всех дисков в массиве, могут разрешить интеллектуальному контроллеру производить несколько обращений параллельно. При этом повышается производительность позиционирования и передачи, но увеличение производительности передачи относительно невелико. Повышение производительности в среде с чередованием зависит также от размера полосы (stripe size) и ширины полосы (stripe width). Выполнение произвольных записей часто замедляется из-за необходимости считывать все данные в полосе для вычисления паритета; в этом случае произвольная запись разбивается на достаточно большое число действий и начинает напоминать последовательную операцию.

Так что же важнее - позиционирование или передача? На этот спорный вопрос однозначно ответить невозможно. Все зависит от особенностей конкретного применения. Простейшее правило гласит, что чем больше рабочие файлы, тем важнее производительность передачи, а чем меньше файлы, тем важнее позиционирование.

Ширина полосы и размер полосы


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

Первым ключевым параметром является ширина полосы (stripe width) массива. Ширина полосы показывает число параллельных полос, которые можно записать или считать одновременно. Конечно, это число равно числу накопителей в массиве. Например, четырехдисковый массив имеет ширину полосы, равную четырем. Производительность считывания и записи массива с чередованием повышается при увеличении ширины полосы. Действительно, добавление в массив больше накопителей увеличивает параллелизм массива, обеспечивая одновременное обращение к большему числу накопителей. Например, при прочих одинаковых условиях производительность передачи массива из восьми накопителей по 18 ГБ выше, чем в массиве из четырех накопителей по 36 ГБ. Конечно, стоимость восьми накопителей по 18 ГБ больше стоимости четырех накопителей по 36 ГБ; аналогичные соображения относятся и к потребляемой мощности.

Вторым важным параметром является размер полосы (stripe size), иногда называемый размером блока (block size, длиной полосы (stripe length) и даже гранулярностью (granularity). Этот параметр определяет размер полос, записываемых на каждый диск. RAID-массивы с чередованием блоками обычно позволяют выбирать размеры полос от 2 КБ до 512 КБ (и даже больше), являющиеся степенями двух. Чередование с байтовым уровнем (в RAID 3) использует размер полосы в один байт или в некоторое небольшое число, например 512, и этот размер обычно выбирать не разрешается.

Влияние размера полосы на производительность количественно оценить сложнее, чем влияние ширины полосы:

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

Очевидно единственного оптимального размера полосы не существует; она зависит от требований производительности, типов используемых приложений и даже от характеристик накопителей. (Вот почему производители контролеров резервируют размер полосы как определяемое пользователем значение.) Имеется много простых правил выбора размера полосы, но все они, в лучшем случае, сверхупрощены. Например, рекомендуется соотнести размер полосы с размером кластера логических томов файловой системы с таблицей размещения файлов (File Allocation Table - FAT). Теоретически при этом можно разместить целый кластер в одной полосе. Это выглядит привлекательно, но на практике нельзя обеспечить, чтобы каждая полоса содержала точно один кластер. Даже если бы это было возможно, такая оптимизация имеет смысл, если производительность позиционирования важнее производительности передачи; однако многие пользователи применяют чередование специально для повышения производительности передачи.



На рисунке показано сравнение различных размеров полос. Слева приведен четырехдисковый массив RAID 0 с размером полосы 4 КБ; справа тот же массив с теми же данными, но с размером полосы 64 КБ. На диаграммах разным цветом показаны четыре файла: красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ и сиреневый файл - 500 КБ. Файлы показаны в масштабе, чтобы наглядно представить, какое пространство они занимают в массиве (один вертикальный пиксел представляет собой 1 КБ). Видно, как сильно отличаются файлы "среднего размера" при изменении размера полосы. Файл 4 КБ занимает только один блок на диске в обоих массивах, а файл 500 КБ распределяется по всем четырем дискам в обоих массивах. Но при использовании большого размера полосы синий файл появляется только на одном диске вместо всех четырех, а зеленый файл - на двух вместо четырех. При этом улучшается произвольное позиционирование на эти файлы. В обоих случаях ширина полосы (stripe width) равна, конечно, четырем. Вид этого же массива с "промежуточным" размером полосы 16 КБ см. в материале по уровню RAID 0.

Как же определить размер полосы? Лучше всего проверить различные значения экспериментально. Не следует и переоценивать различия в производительности для разных размеров полос. Оно может быть значительным, особенно если проверить предельные значения, например к КБ и 256 КБ, но при более близких значениях различие невелико. На практике следует придерживаться такого простого правила: для транзакционной среды с большим числом малых операций считывания и записи лучше подходит большой размер полосы, а в применениях с небольшим числом огромных файлов, которые необходимо быстро считывать, следует выбрать малый размер полосы. При необходимости балансировать между этими крайностями нужно выбрать средний размер полосы.

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

Деградированная работа и перестройка


Все обсуждения о производительности RAID-массива опираются на предположение о том, что массив работает нормально и все накопители функционируют. RAID-системы с избыточностью позволяют системе продолжать работать даже при отказе одного из накопителей. Однако при отказе производительность снижается; говорят, что в этом случае массив работает в деградированном состоянии (degraded state), которое иногда называется критическим состоянием (critical state). Влияние на производительность зависит от типа RAID, используемого массивом, а также реакции RAID-контроллера на отказ накопителя.

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

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

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

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

Примечание: Ни одно из приведенных ранее положений не относится к массиву с чередованием без паритета (RAID 0). Когда накопитель в массиве RAID 0 отказывает, производительность не ухудшается, а становится равной нулю! В массиве RAID 0 нет избыточности, поэтому отказ любого накопителя означает, что все хранившиеся в нем данные теряются.

Надежность RAID-систем


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

Чтобы разобраться в том, как RAID-массив реально влияет на надежность, необходимо вначале отчетливо понять различные аспекты несколько расплывчатого понятия надежности. Например, часто употребляемая фраза "RAID повышает надежность жесткого диска" не совсем точна. Истина в некоторой степени зависит от определения надежности: идет ли речь о надежности отдельных накопителей или всей системы? Понимается ли здесь надежность данных или аппаратных средств? Кроме того, не все RAID-реализации улучшают надежность.

Далее рассмотрены основные вопросы надежности RAID-систем и влияние надежности компонентов на надежность системы в целом, а также резервирование и восстановление данных.

Надежность


На вопрос о причинах использования RAID-массивов часто отвечают, что они "повышают надежность". Однако такой ответ и правилен, и неправилен одновременно.

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

Надежность системы зависит от надежности ее компонентов. Чем больше компонентов в систем, тем ниже надежность системы в целом. Собственно, именно поэтому сложные машины обычно отказывают чаще, чем простые. Простой численной характеристикой надежности многих компонентов, включая жесткие диски, является среднее время между отказами (Mean Time Between Failures - MTBF). Если значения MTBF компонентов системы обозначить как MTBF1, MTBF2, и т.д. до MTBFN, то надежность системы можно вычислить следующим образом:

MTBF системы = 1 / (1/MTBF1 + 1/MTBF2 + ... + 1/MTBFN)

Если значения MTBF всех компонентов равны, т.е. MTBF1 = MTBF2 = ... = MTBFN, то выражение значительно упрощается:

MTBF системы = MTBF компонента / N

Следствия полученных выкладок очевидны. Если образовать RAID-массив с четырьмя накопителями, каждый из которых имеет MTBF 500 000 часов, то MTBF массива составит всего 125 000 часов! Фактически ситуация еще хуже, так как при использовании аппаратного RAID-массива необходимо учесть MTBF контроллера, который без функциональности RAID не нужен. Предположим, что MTBF карты контроллера равно 300 000 часам. Тогда MTBF подсистемы памяти составит:

MTBF системы = 1 / ( 1/MTBF1 + 1/MTBF2 + ... + 1/MTBFN)
= 1 / ( 1/500000 + 1/500000 + 1/500000 + 1/500000 + 1/300000)
= 88 235

Таким образом, "надежность" фактически уменьшилась на 82%. Правильны ли наши выкладки? И если они правильны, зачем вообще связываться с RAID-массивами? Оказывается, имеется и вторая сторона надежности. Несмотря на то, что надежность аппаратных средств массива снижается, при включении избыточной информации с помощью зеркалирования или паритета обеспечивается отказоустойчивость, т.е. способность выдерживать отказы. Благодаря этому возникающие отказы не вызывают нарушения работы массива и разрушения данных - RAID-массив обеспечивает защиту данных. Таким образом, говоря о том, что RAID повышает надежность, большинство людей понимают повышенную отказоустойчивость, а не улучшенную надежность аппаратных средств.

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

Отказоустойчивость


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

Способность массива выдерживать отказы жесткого диска полностью зависит от реализованного уровня RAID. Например, RAID 0, который не имеет избыточной информации, не обладает и отказоустойчивостью - если отказывает любой накопитель, массив становится неработоспособным. Уровни RAID 1, 2, 3, 4, 5 и 7 могут допустить отказ одного накопителя, а RAID 6 - двух накопителей. Множественные уровни RAID часто могут допустить отказ нескольких накопителей в зависимости от их позиции и конфигурации массива. Если, например, массив RAID 10 состоит из двух пар зеркалированных накопителей, которые объединены в массив с чередованием, массив может допустить отказы двух из четырех накопителей, если они не находятся в одной паре.

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

Доступность


С надежностью и отказоустойчивостью связано еще одно понятие - доступность (availability), которое просто означает возможность доступа пользователей к данным. Для многих бизнесменов доступность является основной причиной реализации RAID-массивов. Для некоторых организаций расходы из-за потери доступа к данным на один час могут превысить стоимость всей RAID-системы. Доступность массива зависит от нескольких факторов:
  • Надежность аппаратных средств: Чем выше надежность аппаратных средств в массиве, тем меньше вероятность отказа и тем выше доступность данных. Надежность вспомогательного оборудования столь же важна, как и надежность накопителей в массиве.
  • Отказоустойчивость: RAID-массивы и реализации с высокой отказоустойчивостью обеспечивают лучшую доступность данных.
  • Горячая замена: RAID-массивы со средствами горячей замены накопителей устраняют необходимость выключения системы в случае аппаратного отказа.
  • Автоматическая перестройка: Если система работает круглосуточно, очень важна способность автоматической перестройки накопителя, чтобы массив продолжал работать.
  • Обслуживание: Если массив выходит из строя, доступность отсутствует до устранения отказа. Поэтому важное значение имеет быстрое обслуживание массива.

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

Надежность других компонентов системы


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

Один ненадежный компонент может сильно снизить общую надежность системы, потому что MTBF системы всегда ниже MTBF самого ненадежного компонента. Напомним формулу надежности системы:

MTBF системы = 1 / ( 1/MTBF1 + 1/MTBF2 + ... + 1/MTBFN)

Напомним также, что при равенстве значений MTBF всех компонентов получается:

MTBF системы= MTBF компонента / N

Например, при наличии в системе четырех компонентов с MTBF равным 1 000 000 часов каждый значение MTBF системы составит 250 000 часов. Если же в системе с четырьмя компонентами три компонента имеют MTBF в 1 000 000 часов, а четвертый имеет MTBF в 100 000 часов, то MTBF системы составит всего 77 000 часов.

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

Для повышения надежности РС в целом системы с RAID-массивами обычно проектируются из высоконадежных компонентов. Однако во многих системах обеспечивается отказоустойчивость ключевых компонентов, которые часто отказывают. Поскольку многие проблемы РС связаны с питанием и без блока питания работа РС невозможна, во многих RAID-системах оснащаются избыточными блоками питания. В корпусе таких блоков обычно находятся два блока питания и РС может работать от каждого из них. Во многих блоках питания предусматривается также горячая замена. Конечно, очень важно оснастить RAID-систему бесперебойным источником питания (Uninterruptible Power Supply - UPS).

А как быть с такими компонентами, как процессоры, материнские платы, системная память и др.? Конечно, они также являются критичными компонентами, но обеспечить их отказоустойчивость очень сложно. Если требуется защита от отказов всех компонентов системы, необходимо рассмотреть возможность установки избыточных компьютеров.

Важность резервирования данных


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

При использовании зеркалирования самого по себе или в комбинации с другим способом вероятность потери данных из-за аппаратного отказа значительно снижается, но все же не равна нулю. Имеется множество других проблем, которые могут привести к потере данных:

  • Неожиданные отказы жесткого диска: Одновременный отказ двух зеркальных накопителей маловероятен, особенно если они от одного производителя и из одной партии. Однако иногда из-за особенностей технологического процесса выпускаются партии накопителей с более высокой вероятностью отказа.
  • Отказы вспомогательных аппаратных средств: Могут отказать компоненты, от которых зависит работа всего массива, например блоки питания, материнские платы (например, из-за перегрева) или микросхемы памяти. При этом массив либо сразу перестает работать, либо иногда работает с постепенным искажением данных.
  • Физическое повреждение: Аппаратура может быть повреждена из-за природных катастроф, небрежности или саботажа. Такие повреждения могут повлиять на все или большинство накопителей в массиве.
  • Программные проблемы: В программах, даже операционных системах, имеются ошибки, которые могут вызвать потерю данных.
  • Вирусы: Вирус может уничтожить отдельные файлы или даже дисковые тома на системном уровне; в этом случае не помогает никакая форма RAID.
  • Ошибки персонала: Это одна из главных причин потери данных и RAID не защищает от случайного удаления файлов, форматирования, неправильной организации разделов и др.

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

Восстановление данных


При обычных обстоятельствах отказ жесткого диска приводит к недоступности данных. Однако большинство отказов, особенно механических, не вызывают стирания данных на поверхностях дисков. С помощью специальных процедур можно считать большую часть и даже все данные с жесткого диска. Этот процесс называется восстановлением данных (data recovery).

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

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

Уровни RAID


Имеется много способов реализации RAID-массива с использованием некоторой комбинации способов зеркалирования, чередования, дуплексирования и паритета. В исследованиях 1988 г. было определено несколько стандартных методов, которые были названы неудачным термином уровни (levels). Слово "уровень" подразумевает иерархию и можно посчитать, что уровни RAID как-то "построены друг на друге", но это не так. Некоторые могут посчитать, что "RAID уровня N+1" лучше "RAID уровня N", хотя различные уровни независимы и различны, поэтому сравнивать RAID-массивы по номерам уровней нельзя. Конкретный уровень RAID может быть "лучшим" для одного пользователя, но оказаться "худшим" для другого.

В первоначальной работе были определены уровни RAID от 1 до 5, а затем были добавлены одиночные уровни 0 и 6; появились и расширения, например фирменный уровень RAID 7. Были определены также множественные (multiple) уровни RAID, которые используют комбинацию из нескольких одиночных уровней для создания новых типов массивов с новыми возможностями (и ограничениями). В современных системах используется большинство уровней RAID, но некоторые полностью исчезли с рынка, так как время показало их неприемлемость.

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

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

Предупреждение: Иногда производители неправильно идентифицируют предлагаемые ими уровни RAID. Наблюдательный Совет по RAID (RAID Advisory Board - http://www.raid-advisory.com) поддерживает стандарты RAID и сертифицирует выпускаемую аппаратуру.

Технические факторы, определяющие уровни RAID


Наличие множества уровней RAID объясняется многочисленными способами конфигурирования набора жестких дисков и различными потребностями пользователей RAID. Иногда трудно разобраться в отличиях уровней RAID, так как многие уровни похожи на другие. Более того, незначительные различия могут иметь огромное влияние на характеристики массивов и те приложения, для которых подходят массивы.

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

Избыточность: зеркалирование и паритет


Главной отличительной чертой уровней RAID является способ (или способы) введения избыточности. В большинстве уровней RAID избыточность обеспечивается с помощью зеркалирования или паритета (паритет реализуется при чередовании):
  • Зеркалирование: Зеркалирование для введения избыточности используют одиночный уровень RAID 1 и множественные уровни RAID 0+1 и 1+0 ("RAID 10"). Один из вариантов RAID 1 включает наряду с зеркалированием жесткого диска и зеркалирование контроллера, которое называется дуплексированием.
  • Чередование с паритетом: Этот способ введения избыточности применяется в одиночных уровнях RAID от 2 до 7, а также во множественных уровнях RAID 0+3 (или "53"), 3+0, 0+5 и 5+0.
  • Отсутствие зеркалирования и паритета: Уровень RAID 0 представляет собой чередование без паритета и в нем избыточность отсутствует.
  • Зеркалирование и чередование с паритетом: Множественные уровни RAID 1+5 и 5+1 являются лучшими в части защиты с помощью избыточности.

Точный способ реализации чередования с паритетом зависит также от особенностей уровня. Некоторые уровни используют чередование отдельных байтов или секторов, а в других применяются большие блоки; во втором случае размером блоков управляет размер полосы массива. Уровень RAID 2 использует специальную форму чередования с паритетом, которая более похожа на код с исправлением ошибок (Error Correcting Code - ECC). Способ введения избыточности влияет почти на все остальные характеристики массива - производительность, отказоустойчивость, перестройка, эффективность памяти, стоимость и др.

Требования к контроллеру


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

К простейшим уровням RAID, для которых достаточно программного или простого аппаратного контроллера, относятся RAID 0, RAID 1 и RAID 0+1 или 1+0. Некоторые простые контроллеры поддерживают популярный уровень RAID 5; его же поддерживают и программные реализации, но за счет значительного снижения производительности. Для более сложных уровней RAID 3, 4, 6 и 7, а также RAID 53 и RAID 30 обычно требуются более интеллектуальные контроллеры. Для уровня RAID 2 требуются специальные аппаратные средства; собственно, поэтому этот уровень исчез с рынка.

Требования к жестким дискам


Разные уровни RAID предъявляют различные требования к жестким дискам массива. Наиболее важное отличие касается минимального числа накопителей в массиве, которое полностью определяется тем, как уровень RAID реализует зеркалирование, чередование и паритет. Простое чередование (RAID 0) требует два и более накопителей; зеркалирование (RAID 1) требует два накопителя; чередование с паритетом требует минимум три накопителя (два для полос данных и один для паритета). Чередование с двойным паритетом (RAID 6) требует минимум четыре накопителя. Множественные уровни RAID обычно требуют число накопителей, равное произведению минимального числа накопителей образующих их одиночных уровней. Например, уровень RAID 10 требует минимум четыре накопителя (и должен иметь четное число накопителей), а уровень RAID 50 требует минимум шесть накопителей.

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

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

Емкость массива и эффективность хранения


Емкость (capacity) RAID-массива определяется умножением емкости накопителей в массиве на число неизбыточных накопителей, т.е. накопителей, используемых для хранения данных, а не информации паритета или зеркальных данных. Чем больше избыточности в массиве, тем меньше емкость массива при конкретном числе накопителей. Например, шесть накопителей по 40 ГБ в массиве RAID 0 обеспечивают общую емкость 240 ГБ; в конфигурации RAID 5 тот же массив имеет полезную емкость 200 ГБ, а в конфигурации RAID 1+0 - всего 120 ГБ. Общая емкость массива зависит от уровня RAID, а также емкости и числа используемых накопителей.

Под эффективностью хранения (storage efficiency) массива понимается процент общей емкости массива, который можно использовать для хранения пользовательских данных. Этот показатель удобнее для сравнения уровней RAID, так как он не зависит от емкости накопителей в массиве. Эффективность хранения находится путем деления общей полезной емкости массива на на сумму емкостей всех накопителей массива. Для некоторых уровней RAID эффективность хранения постоянна, а для других зависит от числа накопителей в массиве. Например, эффективность хранения в RAID 0 всегда равна 100%, а в RAID 1 и RAID 1+0 всегда равна 50%. Для уровней, использующих чередование с паритетом, эффективность хранения повышается при увеличении числа накопителей, так как число накопителей для информации паритета постоянно.

Правило определения эффективности хранения путем умножения числа содержащих данные накопителей на емкость накопителей предполагает, что все накопители имеют одинаковую емкость (это идеальная ситуация для настройки RAID-массива). На практике емкость любого RAID-массива ограничивается накопителем с наименьшей емкостью; именно эту емкость необходимо привлекать при определении емкости. Например, емкость массива RAID 5, содержащего четыре накопителя 20 ГБ, 30 ГБ, 40 ГБ и 45 ГБ, составит 60 ГБ (она вычислена при умножении 4-1 на 20 ГБ - минимальную емкость накопителя). Если реализовать массив из приведенных накопителей, то дисковое пространство 55 ГБ будет потеряно в так называемом "пропавшем накопителе" (drive waste). Если в массиве появляется пропавший накопитель из-за неодинаковой емкости накопителей, снижается эффективность хранения: в приведенном примере массив RAID 5 имеет эффективность хранения (60 / 135) = 44% вместо 75% для накопителей одинаковой емкости.

Отказоустойчивость и доступность


Конечно, уровни RAID сильно варьируются по способности реагировать на отказы (обычно подразумеваются отказы накопителей) и поддерживать высокую доступность данных. Требование отказоустойчивости диктует выбор уровня RAID сильнее любого другого требования. Чем больше избыточности в массиве, тем выше отказоустойчивость и доступность данных, но важен и способ объединения накопителей. У каждого уровня имеются рассматриваемые далее свои особенности решения проблем повышения надежности.

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

Деградирование и перестройка


Отказоустойчивый (избыточны) массив может продолжать работать после отказа одного (иногда нескольких) накопителя. В этом случае массив переходит в деградированое состояние (degraded state) до замены отказавшего накопителя и перестройки (rebuilding) его содержания. Работа в деградированном состоянии влияет на производительность и последующую отказоустойчивость массива.

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

Производительность


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

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

Рассмотрим подробнее различные показатели производительности:

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

Примечания о показателях производительности уровней RAID и их сравнении ("очень хорошая", "хорошая", "плохая" и т.д.):

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

Несколько массивов


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

Рассмотрим небольшую организацию, имеющую 100 сотрудников, в которой необходимо выбрать и реализовать RAID-массив, имея ограниченный бюджет. Главное приложение - экономическая система, для которой требуются высокая производительность и некоторая отказоустойчивость. Однако инженерный отдел работает с огромными файлами и его сотрудникам требуется высокая скорость. Бухгалтерский отдел настаивает на зеркалировании данных, которое должно обеспечить максимальную целостность данных. Можно реализовать массив RAID 5 и предоставить его всем работникам. Он обеспечит отказоустойчивость и хорошую производительность, но инженеры и бухгалтеры, по-видимому, будут недовольны. Поэтому можно реализовать массив RAID 5 и еще один массив RAID 0 или массив RAID 1 для удовлетворения желаний хотя бы одной их "специальных" групп. Наконец, можно реализовать RAID 5 для общего использования, RAID 0 для инженеров и RAID 1 для бухгалтеров, но при этом увеличится объем административной работы.

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

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

Одиночные уровни RAID


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

Уровень RAID 0


Название: RAID 0.
Используемый способ: Чередование (без паритета).
Описание: Простейший уровень RAID 0 точнее назвать "AID", так как в нем нет избыточности (redundancy). Файлы разбиваются на полосы, размер которых определяется пользователем, и полосы направляются на каждый диск в массиве. Отсутствие избыточности обеспечивает этому уровню RAID лучшую производительность среди всех одиночных уровней, а стоимость относительно невелика. В силу этого уровень RAID 0 очень популярен среди пользователей, которым требуется высокая производительность при умеренной стоимости.


На диаграмме слева показано распределение файлов разных размеров в массиве RAID 0 с четырьмя дисками и размером полосы 16 КБ. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ и сиреневый файл - 500 КБ. Файлы приведены в масштабе, чтобы показать, сколько места они занимают в массиве - один вертикальный пиксел представляет 1 КБ.

Требования к контроллеру: Поддерживается всеми аппаратными контроллерами SCSI и IDE/ATA, а также большинством программных RAID.
Требования к жестким дискам: Минимум два жестких диска; максимум определяется контроллером. Можно использовать любой тип, но для достижения лучшей производительность накопители должны быть идентичного типа и иметь одинаковую емкость.
Емкость массива: (Емкость наименьшего накопителя * число накопителей).
Эффективность хранения: 100%, если используются идентичные накопители.
Отказоустойчивость: Отсутствует. Отказ любого накопителя вызывает потерю всех данных.
Доступность: Низшая из всех уровней RAID. Отсутствие отказоустойчивость означает невозможность быстрого восстановления из отказов. Отказ любого накопителя приводит к выходу из строя всего массива и немедленный простой до перестройки массива и возвращения данных из резерва.
Деградирование и перестройка: Не применимы.
Производительность произвольного считывания: Очень хорошая; лучше при использовании большого размера полосы, если контроллер поддерживает независимые считывания из различных дисков в массиве.
Производительность произвольной записи: Очень хорошая; лучше при использовании большого размера полосы, если контроллер поддерживает независимые операции записи в различные диски в массиве.
Производительность последовательного считывания: От очень хорошей до превосходной.
Производительность последовательной записи: Очень хорошая.
Стоимость: Низшая среди всех уровней RAID.
Особенности: Использование массива RAID требует резервирования любых изменений в данных минимум ежедневно.
Рекомендуемые применения: Некритичные данные (или данные, которые изменяются редко и регулярно резервируются), требующие высокой скорости, особенно скорости записи, и дешевая реализация. Редактирование аудио и видео; Web-серверы; графический дизайн; сложные игры; временные или "рабочие" диски на больших компьютерах.

Уровень RAID 1


Названия: RAID 1; RAID 1 с дуплексированием.
Используемые способы: Зеркалирование или дуплексирование.

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

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

Требования к контроллеру: Поддерживается всеми аппаратными контроллерами SCSI и IDE/ATA, а также большинством программных RAID.
Требования к жестким дискам: Точно два жестких диска. Можно использовать накопители любого типа, но они должны быть абсолютно идентичными.
Емкость массива: Емкость меньшего накопителя.
Эффективность хранения: 50%, если используются накопители одинаковой емкости; в противном случае (Емкость меньшего накопителя / (Емкость меньшего накопителя + Емкость большего накопителя)).
Отказоустойчивость: Очень хорошая; у дуплексирования даже лучше.
Доступность: Очень хорошая. Большинство RAID-контроллеров, даже самые дешевые, поддерживают горячее резервирование и автоматическую перестройку массивов RAID 1.
Деградирование и перестройка: Небольшое ухудшение производительности считывания; производительность записи фактически повышается. Перестройка относительно быстрая.
Производительность произвольного считывания: Хорошая. Лучше, чем в одиночном накопителе, но хуже, чем во многих других уровнях RAID.
Производительность произвольной записи: Хорошая. Хуже, чем в одиночном накопителе, но лучше, чем во многих других уровнях RAID.
Производительность последовательного считывания: Неплохая; примерно такая же, как в одиночном накопителе.
Производительность последовательной записи: Хорошая; лучше, чем чем во многих других уровнях RAID.
Стоимость: Относительно высока из-за избыточных накопителей; меньшая эффективность хранения среди одиночных уровней RAID. Дуплексирование еще дороже из-за избыточных контроллеров. С другой стороны, не нужен дорогой контроллер, массовые накопители сейчас недорогие, что делает RAID 1 подходящим для индивидуальных систем.
Особенности: Массивы RAID 1 ограничены емкостью накопителей, используемых в массиве. При необходимости большей памяти, можно реализовать несколько массивов RAID 1, но в этой ситуации привлекательнее выглядит RAID 1+0. Производительность может снизиться при использовании программного, а не аппаратного, контроллера; дуплексирование может потребовать программного RAID и производительность может быть ниже, чем при зеркалировании.

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

Уровень RAID 2


Название: RAID 2.
Используемые способы: Чередование на уровне битов с кодом Хэмминга для исправления ошибок (Error Correcting Code - ECC).
Описание: Это единственный уровень RAID, в котором не используются "стандартные" способы зеркалирования, чередования и/или паритета. RAID 2 использует нечто аналогичное чередованию с паритетом, но не то же самое, что применяется в уровнях RAID от 3 до 7. Он реализуется разбиением данных на битовом уровне и распределению их по нескольким дискам данных и нескольким дискам избыточности. Избыточные биты вычисляются на основе кодов Хэмминга - одной из разновидностей кодов с исправлением ошибок ECC. При каждой записи в массив эти коды вычисляются и записываются вместе с данными на выделенные диски ECC; при считывании данных эти коды ECC также считываются для проверки отсутствия ошибок после записи данных. Однобитовые ошибки исправляются "на лету". Такой способ применяется в накопителях на жестких дисках и в системной памяти.

Уровень RAID 2 является единственным уровнем, определенным в оригинальной работе по RAID, который сейчас не применяется по нескольким причинам. Он оказывается дорогим и часто требует много накопителей (см. далее). Нужен сложный и дорогой контроллер. Производительность RAID 2 в транзакционной среде невысока из-за чередования на битовом уровне. По существу, RAID 2 реализует то, что уже имеется во всех жестких дисках, а другие уровни RAID обеспечивают защиту сверх ECC.

Требования к контроллеру: Требуется специализированный контроллер.
Требования к жестким дискам: Зависят от точной реализации, но в типичной конфигурации требуются 10 дисков данных и 4 диска ЕСС, а всего 14, или 32 диска данных и 7 дисков ЕСС, а всего 39 дисков! Вращение дисков необходимо синхронизировать.
Емкость массива: Зависит от точной реализации, но с современными накопителями может быть очень большой.
Эффективность хранения: Зависит от числа дисков данных и дисков ЕСС; например, для конфигурации 10+4 эффективность равна 71%, а для конфигурации 32+7 эффективность равна 82%.
Отказоустойчивость: Только неплохая; с учетом всех избыточных накопителей отказоустойчивость невысокая: может отказывать и восстанавливаться на лету может только один накопитель.
Доступность: Очень хорошая благодаря исправлению ошибок "на лету".
Деградирование и перестройка: Теоретически деградирование из-за отказа одного накопителя должно быть небольшим.
Производительность случайного считывания: Неплохая. Чередование на битовом уровне делает множественные обращения невозможными.
Производительность случайной записи: Плохая из-за потерь времени на чередование и вычисление ЕСС.
Производительность последовательного считывания: Очень хорошая благодаря параллелизму многих накопителей.
Производительность последовательной записи: От неплохой до хорошей.
Стоимость: Очень дорогой.
Особенности: В современных системах не применяется.
Рекомендуемые применения: В современных системах не применяется.

Уровень RAID 3


Название: RAID 3 (некоторые компании объявляют свои реализации как RAID 3, хотя на самом деле они являются RAID 4).
Используемые способы: Чередование байтов с выделенным паритетом.
Описание: В RAID 3 данные чередуются по нескольким дискам на уровне байтов; точное число байтов в каждой полосе варьируется, но обычно находится около 1024. Информация паритета посылается на выделенный диск паритета, но допускается отказ любого диска в системе. Выделенный диск паритета обычно оказывается узким местом для производительности, особенно для произвольных записей, так как к нему необходимо обращаться при каждой записи в массив. Такого нет в уровнях с распределенным паритетом, например RAID 5, который повышает производительность записи, используя распределенный паритет. RAID 3 отличается от RAID 4 только размером полос, посылаемых в различные диски.

На диаграмме слева показано, как файлы разных размеров распределяются в четырехдисковом массиве RAID 3 с чередованием байтов. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Один вертикальный пиксел соответствует 1 КБ. Отметим, что файлы равномерно распределены по трем накопителям, а четвертый содержит информацию паритета (темносерый цвет). Так как блоки очень малы в RAID 3, отдельные границы между полосами видеть невозможно. Сравните этот рисунок с диаграммой для RAID 4.

Требования к контроллеру: Обычно требуется средняя или сложная карта RAID-контроллера.
Требования к жестким дискам: Минимум три стандартных жестких диска; максимум определяется контроллером. Диски должны иметь идентичные типы и емкости.
Емкость массива: (Размер меньшего накопителя) * (Число накопителей - 1).
Эффективность хранения: Для всех накопителей одинаковой емкости ((Число накопителей - 1) / Число накопителей).
Отказоустойчивость: Хорошая. Допускается отказ одного накопителя.
Доступность: Очень хорошая. Контроллеры RAID 3 обычно поддерживают горячие резервы и автоматическую перестройку.
Деградирование и перестройка: Относительно небольшое деградирование производительности при отказе накопителя. Перестройка может длиться много часов.
Производительность случайного считывания: Хорошая, но не очень из-за чередования на уровне байтов.
Производительность случайной записи: Плохая из-за чередования на уровне байтов, вычисления паритета и узкого места выделенного накопителя для паритета.
Производительность произвольного считывания: Очень хорошая.
Производительность последовательной записи: Неплохая до хорошей.
Стоимость: Умеренная. Обычно требуется аппаратный контроллер и минимум три накопителя.

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

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

Уровень RAID 4


Название: RAID 4 (иногда ошибочно называется RAID 3).
Используемые способы: Чередование на уровне блоков с выделенным паритетом.
Описание: RAID 4 повышает производительность, чередуя данные по многим дискам блоками, и обеспечивает отказоустойчивость с помощью выделенного диска паритета. Он оказывается средним уровнем в семействе близких уровней RAID 3, 4 и 5. RAID 4 похож на RAID 3, но использует для чередования блоки вместо байтов, и похож на RAID 5, но использует выделенный паритет вместо распределенного паритета. Переход к чередованию блоков вместо байтов повышает производительность произвольных обращений по сравнению с RAID 3, но выделенный диск паритета остается узким местом, особенно для производительности произвольной записи. Отказоустойчивость, эффективность хранения и многие другие показатели такие же, как у уровней RAID 3 и RAID 5.

На диаграмме слева показано распределение файлов разного размера в четырехдисковом массиве RAID 4 с использованием размера полосы 16 КБ. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Каждый вертикальный пиксел соответствует 1 КБ. Отметим, что, как и в массиве RAID 3, файлы равномерно распределены по трем накопителям, а четвертый содержит информацию паритета (серый цвет). Сравните эту диаграмму с диаграммой для уровня RAID 3 (она очень похожа, но блоки столь малы, что их нельзя увидеть) и с диаграммой для уровня RAID 5 (где блоки паритета распределены по всем четырем накопителям).

Требования к контроллеру: Обычно требуется средняя или сложная карта RAID-контроллера.
Требования к жестким дискам: Минимум три стандартных жестких диска; максимум определяется контроллером. Диски должны иметь одинаковые типы и емкости.
Емкость массива: (Размер меньшего накопителя) * (Число накопителей - 1).
Эффективность хранения: Для всех накопителей одинаковой емкости (Число накопителей - 1) / Число накопителей).
Отказоустойчивость: Хорошая. Допускается отказ одного накопителя.
Доступность: Очень хорошая. Обычно поддерживаются горячие резервы и автоматическая перестройка.
Деградирование и перестройка: Умеренное деградирование при отказе накопителя; потенциально очень продолжительные перестройки.
Производительность случайного считывания: Очень хорошая.
Производительность случайной записи: От плохой до неплохой из-за вычисления паритета и узкого места выделенного накопителя паритета.
Производительность произвольного считывания: От хорошей до очень хорошей.
Производительность последовательной записи: От неплохой до хорошей.
Стоимость: Умеренная. Обычно требуются аппаратный контроллер, а также минимум три накопителя.
Особенности: Производительность в некоторой степени зависит от выбранного размера полосы.
Рекомендуемые применения: RAID 4 применяется не столь широко, как RAID 3 и RAID 5, так как он оказывается "компромиссным" между ними и не имеет целевого рынка.

Уровень RAID 5


Название: RAID 5.
Используемые способы: Чередование на уровне блоков с распределенным паритетом.
Описание: Этот один из самых популярных уровней чередует данные и информацию паритета по трем или более накопителям. Он аналогичен RAID 4, но заменяет выделенный накопитель паритета на алгоритм распределенного паритета, записывая блоки данных и паритета во все накопители массива. Этот прием устраняет узкое место выделенного накопителя паритета, несколько повышая производительность записи и допуская лучший параллелизм в среде с множественными транзакциями, но потери на вычисление паритета замедляет операции записи. Отказоустойчивость обеспечивается тем, что информация паритета для любого блока данных помещается в накопитель, отдельный от тех, которые используются для хранения самих данных. Производительность массива RAID 5 можно "настроить", проверяя различные размеры полосы до определения такого размера, который хорошо соответствует приложению.

На диаграмме слева показано распределение файлов разных размеров в четырехдисковом массиве RAID 5 с использованием размера полосы 16 КБ. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Каждый вертикальный пиксел представляет 1 КБ. Сравните эту диаграмму с диаграммой для массива RAID 4, которая очень похожа, но данные находятся только в трех накопителях, а информация паритета (серый цвет) находится только в четвертом накопителе.
Требования к контроллеру: Требуется хорошая карта контроллера для аппаратного RAID; поддерживается некоторыми операционными системами для реализации программного RAID, но со значительным снижением производительности.
Требования к жестким дискам: Минимум три стандартных жестких диска; максимум определяется контроллером. Диски должны иметь одинаковые типы и емкости.
Емкость массива: (Размер меньшего накопителя) * (Число накопителей - 1).
Эффективность хранения: Для всех накопителей одинаковой емкости (Число накопителей - 1) / Число накопителей).
Отказоустойчивость: Хорошая. Допускается отказ одного накопителя.
Доступность: От хорошей до очень хорошей. Аппаратные RAID-контроллеры обычно поддерживают горячие резервы и автоматическую перестройку (программный RAID 5 требует выключения).
Деградирование и перестройка: Из-за распределенного паритета деградирование может быть значительным после отказа и в процессе перестройки.
Производительность случайного считывания: От очень хорошей до превосходной; обычно лучше при больших размерах полосы. Может быть лучше, чем в RAID 0, так как данные распределяются по одному дополнительному накопителю, а при обычных считываниях информация паритета не нужна.
Производительность случайной записи: Только неплохая из-за потерь на вычисление паритета; они несколько меньше по сравнению с RAID 3 и RAID 4, так как нет выделенного накопителя паритета.
Производительность произвольного считывания: От хорошей до очень хорошей; обычно лучше при малых размерах полосы.
Производительность последовательной записи: От неплохой до хорошей.
Стоимость: Умеренная, но часто меньше стоимости RAID 3 или RAID 4 благодаря большей популярности и особенно при программной реализации.
Особенности: Из-за необходимости вычисления паритета программный RAID 5 может значительно замедлять систему. Производительность в некоторой степени зависит от выбранного размера полосы.
Рекомендуемые применения: Многие считают RAID 5 идеальной комбинацией хорошей производительности, хорошей отказоустойчивости и высоких емкости и эффективности хранения. Этот уровень хорошо подходит для обработки транзакций и часто используется для приложений реляционных баз данных, планирования ресурсов и других экономических систем. Однако производительность RAID 5 существенно снижается в среде с интенсивными операциями записи и здесь лучше подходят уровни RAID 1 или RAID 1+0.

Уровень RAID 6


Название: RAID 6. Некоторые компании используют название "RAID 6" для обозначения своих фирменных расширений RAID 5.
Используемые способы: Чередование на уровне блоков с двойным распределенным паритетом.
Описание: RAID 6 можно считать улучшенным уровнем RAID 5. Он чередует блоки данных и паритет по массиву накопителей, как и RAID 5, но при этом вычисляются два набора информации паритета для каждого пакета данных. Цель такого дублирования заключается в повышении отказоустойчивости; RAID 6 может справиться с отказами двух накопителей в массиве, а другие одиночные уровни RAID допускают отказ максимум одного накопителя. По производительности записи RAID 6 несколько хуже RAID 5 из-за больших вычислений паритета, но несколько быстрее при произвольном считывании благодаря распределению данных по нескольким дискам. Как и в уровнях RAID 4 и 5 производительность можно повысить экспериментально, проверяя полосы различного размера.

На диаграмме слева показано распределение файлов разного размера в четырехдисковом массиве RAID 6 с использованием размера полосы 16 КБ. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Каждый вертикальный пиксел представляет 1 КБ. Эта диаграмма аналогична диаграмме для RAID 5, но имеется вдвое больше информации паритета (серый цвет), поэтому для одних и тех же данных расходуется большее пространство по сравнению с другими уровнями, которые используют чередование.

Требования к контроллеру: Требуется специализированный (и дорого) аппаратный контроллер.
Требования к жестким дискам: Минимум четыре стандартных жестких диска; максимум определяется контроллером. Диски должны иметь одинаковые типы и емкости.
Емкость массива: (Размер меньшего накопителя) * (Число накопителей - 2).
Эффективность хранения: Для всех накопителей одинаковой емкости (Число накопителей - 2) / Число накопителей).
Отказоустойчивость: От очень хорошей до превосходной. Допускается отказ любых двух накопителей в массиве.
Доступность: Превосходная.
Деградирование и перестройка: Из-за сложностей двойного распределенного паритета деградирование может быть значительным после отказа и во время перестройки. Двойная избыточность позволяет отложить перестройку, чтобы не снижать производительность.
Производительность случайного считывания: От очень хорошей до превосходной; обычно лучше при больших размерах полосы.
Производительность случайной записи: Плохая из-за потерь на вычисления двойного паритета и сложности.
Производительность произвольного считывания: От хорошей до очень хорошей; обычно лучше при малых размерах полосы.
Производительность последовательной записи: Неплохая.
Стоимость: Высокая.
Особенности: Требует специальной реализации; применяется редко.
Рекомендуемые применения: Теоретически RAID 6 идеально подходит для тех же применений, что и RAID 5, но в ситуациях, где требуется повышенная отказоустойчивость. На практике RAID 6 применяется редко, так как многие считают неоправданными дополнительные расходы на случай очень редкого события - одновременного отказа двух накопителей.

Уровень RAID 7


Название: RAID 7.
Используемые способы: Асинхронное кэшированное чередование с выделенным паритетом.
Описание: В отличие от других уровней уровень RAID 7 не является открытым промышленным стандартом, а используется как торговая марка компанией Storage Computer Corporation для описания фирменной RAID-системы. RAID 7 опирается на принципы, используемые в уровнях RAID 3 и 4, но значительно улучшает некоторые показатели этих уровней. Здесь имеются большой кэш, организованный в несколько уровней, и специализированный процессор для асинхронного управления массивом. Аппаратная поддержка, и особенно кэш, позволяет массиву одновременно выполнять несколько операций, повышая производительность всех видов и обеспечивая отказоустойчивость. В частности, RAID 7 повышает производительность произвольных считывания и записи по сравнению с RAID 3 или RAID 4, так как дополнительные аппаратные средства резко снижают зависимость от выделенного диска паритета. Конечно, повышенная производительность достигается значительным повышением стоимости.
Требования к контроллеру: Требуется специализированный, дорогой, фирменный контроллер.
Требования к жестким дискам: Зависит от реализации.
Емкость массива: Зависит от реализации.
Эффективность хранения: Зависит от реализации.
Отказоустойчивость: Очень хорошая.
Доступность: Превосходная благодаря нескольким горячим резервам.
Деградирование и перестройка: Лучше, чем во многих уровнях RAID благодаря аппаратной поддержке при вычислении паритета и нескольким уровням кэша.
Производительность случайного считывания: От очень хорошей до превосходной. Дополнительный кэш при считывании часто предоставляет данные без обращения к накопителям массива.
Производительность случайной записи: Очень хорошая; значительно лучше по сравнению с другими одиночными уровнями RAID, использующими чередование с паритетом.
Производительность произвольного считывания: От очень хорошей до превосходной.
Производительность последовательной записи: Очень хорошая.
Стоимость: Очень высокая.
Особенности: RAID 7 является фирменным продуктом одной компании. Наличие кэша создает опасности при аварийном отключении электросети, что требует обязательного применения бесперебойных источников питания (Uninterruptible Power Supply - UPS).
Рекомендуемые применения: Специализированные применения, требующие максимальной производительности. Для большинства пользователей приемлемое по производительности и более дешевое решение обеспечивает множественный уровень RAID 1+0.

Множественные (вложенные) уровни RAID


Одиночные уровни RAID имеют свои достоинства и недостатки, поэтому они применяются в различных сферах в соответствии с требованиями применений. Инженеры вскоре стали искать возможности объединения достоинств нескольких уровней RAID, разрабатывая массивы, использующие комбинации различных способов. Такие уровни называются множественными (multiple), или вложенными (nested). Иногда их называют двумерными (two-dimensional) из-за двумерных схем, используемых для представления применения двух уровней RAID к набору дисков.

Множественные уровни RAID наиболее часто применяются для повышения производительности. Обычно вложенные уровни RAID обеспечивают лучшие показатели производительности по сравнению с одиночными уровнями RAID, из которых они состоят. Наиболее часто комбинируется уровень RAID 0, который смешивается с избыточными уровнями RAID 1, 3 или 5 для повышения отказоустойчивости с использованием хорошей производительности RAID 0. Конечно, множественные уровни оказываются сложнее, в них требуется больше накопителей, усложняются управление и эксплуатация, а для некоторых нужен сложный RAID-контроллер.

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

Далее рассмотрены наиболее известные множественные уровни RAID, некоторые из которых применяются часто, а другие редко. В частности, ради полноты рассматриваются обе конфигурации "X+Y" и "Y+X" каждого множественного уровня, хотя иногда предлагается реализация только одной из них.

RAID X+Y и RAID Y+X


До рассмотрения конкретных множественных уровней RAID покажем, как создаются множественные уровни RAID. Обычно множественный уровень RAID создается путем разделением нескольких дисков на наборы. Внутри каждого набора создается одиночный уровень RAID с образованием нескольких массивов. Затем к этим массивам применяется второй уровень RAID для создания массива более высокого уровня. Именно поэтому они иногда называются вложенными массивами.

Поскольку имеется два уровня, появляются два способа их объединения. Выбор того, какой уровень применяется первым, а какой вторым, влияет на некоторые важные характеристики массива. Рассмотрим пример множественного RAID, использующего уровни RAID 0 и RAID 1 для создания массива из 10 дисков. Аналогично определению 10 в виде 2*5 или 5*2 можно создать множественный RAID-массив двумя способами:

  • RAID 0, затем RAID 1: Разделим десять дисков на два набора по пять дисков. Превратим каждый набор в массив RAID 0, содержащий пять дисков, а затем зеркалируем два массива (иногда эта конфигурация называется "зеркалом полос").
  • RAID 1, затем RAID 0: Разделим десять дисков на пять наборов по два диска. Превратим каждый набор в массив RAID 1, а затем чередуем по пяти зеркалированным наборам (получается конфигурация "полосы зеркал").

Стандартных соглашений об именовании множественных уровней RAID нет. Обычно полагают, что если уровень RAID X применяется первым, а затем поверх него применяется уровень RAID Y, то получается RAID "X+Y", что обозначается также как "RAID XY" или "RAID X/Y". К сожалению, некоторые компании меняют местами номера и могут назвать способ RAID 0 и затем RAID 1 как "RAID 1/0" или "RAID 10" (возможно, боясь, что пользователи примут "RAID 01" и "RAID 1" за одно и то же). Некоторые разработчики считают "RAID 01" и "RAID 10" синонимичными. Поэтому нельзя доверять этикеткам и обязательно точно разобраться в том, какая реализация предлагается поставщиком.

А зачем нужно во всем этом разбираться. Не все ли равно, как выстроить десять шариков - в пять столбцов и две строки или в два столбца и пять строк? Ведь десять дисков в массиве остаются массивом из десяти дисков, не так ли? Оказывается, ответ - "нет".

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

Поясним сказанное простым примером. По-прежнему рассмотрим десять накопителей и сравним конфигурации RAID 0+1 и RAID 1+0:

  • RAID 0+1: Мы чередуем совместно накопители 1, 2, 3, 4 и 5 в RAID 0 набор с чередованием "A", а накопители 6, 7, 8, 9 и 10 в RAID 0 набор с чередованием "B". Затем мы зеркалируем A и B, используя RAID 1. Если отказывает один накопитель, например накопитель #2, то весь набор с чередованием "A" теряется, так как RAID 0 не имеет избыточности. Массив RAID 0+1 продолжает работать, так как весь набор с чередованием "B" все еще функционирует. Однако при этом до восстановления накопителя #2 вы ограничены простым массивом RAID 0. Если в это время отказывает накопитель #9, то теряется весь массив.
  • RAID 1+0: Мы зеркалируем накопители 1 и 2 с образованием RAID 1 зеркального набора "A"; 3 и 4 становятся "B"; 5 и 6 становятся "C"; 7 и 8 становятся "D"; 9 и 10 становятся "E". Затем мы осуществляем чередование RAID 0 по наборам от A до E. Если теперь отказывает накопитель #2, это влияет только на зеркальный набор "A"; накопитель #1 в нем работает и массив RAID 1+0 продолжает функционировать. Если до замены накопителя #2 выходит из строя накопитель #9, массив продолжает работать, так как накопитель #9 находится в другой зеркальной паре, чем #2. Только два отказа в одном и том же зеркальном наборе вызывают отказ всего массива, поэтому теоретически из строя могут выйти пять накопителей (если они в разных наборах), но массив будет продолжать функционировать.

Очевидно, что RAID 1+0 оказывается более живучим по сравнению с RAID 0+1. Если контроллер массива RAID 0+1 достаточно "интеллектуальный", при отказе накопителя #2 он может продолжать чередовать на остальные четыре накопителя в наборе с чередованием "А", а впоследствии при отказе накопителя #9 должен "понять", что может использовать вместо него накопитель #4, так как он должен содержать те же данные. Такая функциональность должна теоретически сделать массив RAID 0+1 таким же отказоустойчивым, как и массив RAID 1+0. К сожалению, большинство контроллеров не обладают таким "интеллектом". Необходимо специально узнавать, каким образом реализация множественного массива RAID реагирует на отказы нескольких накопителей, но, в общем, контроллер не заменяет накопители между компонентами подмассивов, если производитель контроллера специально не оговаривает этого.

Сказанное об отказоустойчивости применимо и к перестройке. Вновь рассмотрим приведенный ранее пример. В массиве RAID 0+1, если отказывает накопитель #2, данные на пяти пяти жестких дисках необходимо перестраивать, так как весь набор с чередованием "А" будет разрушен. В массиве RAID 1+0 необходимо перестраивать только накопитель #2. В этом отношении массив RAID 1+0 также лучше.

Некоторые контроллеры предоставляют выбор выбор "порядка" построения множественного RAID-массива - пользователю допускается определить RAID X+Y или RAID Y+X. Другие же контроллеры разрешают применять только одну из двух конфигураций. Необходимо обязательно ознакомиться с возможностями конкретного контроллера.

Уровни RAID 0+1 (01) и 1+0 (10)


Названия: RAID 0+1, 01, 0/1, "зеркальные полосы", "зеркало полос"; RAID 1+0, 10, 1/0, "полосовые зеркала", "полоса зеркал". Названия часто используются неверно, поэтому необходимо узнать про детали реализации, если различие между 0+1 и 1+0 является важным.
Используемые способы: Зеркалирование и чередование без паритета.
Описание: Самые популярные из множественных уровней RAID 01 и 10 объединяют достоинства чередования и зеркалирования, предоставляя большие массивы с высокой производительностью в большинстве случаев и превосходной отказоустойчивостью. RAID 01 - это зеркалированная конфигурация двух наборов с чередованием; RAID 10 представляет собой чередование по нескольким зеркалированным наборам. RAID 10 и 01 приобрели широкую популярность, когда жесткие диски стали дешевле и требуемый минимум в четыре накопителя перестал быть препятствием. RAID 10 обеспечивает лучшую отказоустойчивость и производительность перестройки по сравнению с RAID 01. Оба типа массивов предоставляют очень хорошую и даже превосходную общую производительность, объединяя скорость RAID 0 с избыточностью RAID 1, не требуя вычисления паритета.

На диаграмме слева показано распределение файлов разного размера в восьмидисковом массиве RAID 0+1 с использованием размера полосы 16 КБ для массива RAID 0. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Каждый вертикальный пиксел соответствует 1 КБ. Большие прямоугольники представляют собой два "подмассива" RAID 0, которые зеркалируются с помощью RAID 1 для создания уровня RAID 0+1. Содержание наборов с чередованием идентично. Диаграмма для уровня RAID 1+0 должна быть такой же за исключением группирования: вместо двух больших прямоугольников, разделяющих накопители по горизонтали, должно быть четыре больших прямоугольника, разделяющих накопители по вертикали в зеркалированные пары. Затем эти пары должны чередоваться для образования уровня 1+0. Сравните эту диаграмму с диаграммами для RAID 0 и RAID 1.
Требования к контроллеру: Почти все аппаратные контроллеры поддерживают одну из конфигураций RAID 10 или RAID 01, но часто не обе вместе. Даже дешевые карты контроллеров поддерживают этот множественный уровень, обычно RAID 01. Высококачественные карты поддерживают обе конфигурации 01 и 10.
Требования к жестким дискам: Четное число накопителей с минимальным числом четыре; максимум зависит от контроллера. Все накопители должны быть идентичными.
Емкость массива: (Емкость меньшего накопителя) * (Число накопителей) / 2.
Эффективность хранения: 50%, если все накопители имеют одинаковую емкость.
Отказоустойчивость: Очень хорошая для RAID 01; превосходная для RAID 10.
Доступность: Очень хорошая для RAID 01; превосходная для RAID 10.
Деградирование и перестройка: Относительно небольшая для RAID 10; может быть значительной для RAID 01.
Производительность случайного считывания: От очень хорошей до превосходной.
Производительность случайной записи: От хорошей до очень хорошей.
Производительность произвольного считывания: ОТ очень хорошей до превосходной.
Производительность последовательной записи: ОТ хорошей до очень хорошей.
Стоимость: Относительно высокая из-за большого числа требуемых накопителей и низкой эффективности хранения (50%).
Особенности: Низкая эффективность хранения ограничивает потенциальную емкость массива.
Рекомендуемые применения: Применения, требующие производительности и надежности и способные пожертвовать емкостью ради получения их. Сюда относятся серверы организаций, базы данных среднего размера, а также отдельные пользователи, имеющие большие накопители IDE/ATA. Часто применяются вместо RAID 1 или RAID 5 там, где требуется повышенная производительность; можно использовать вместо RAID 1 в приложениях, требующих большую емкость.

Уровни RAID 0+3 (03 или 53) и 3+0 (30)


Названия: Самые запутанные названия среди всех уровней RAID. В идеальном случае этот уровень следует называть RAID 0+3 (или 03) или RAID 3+0 (30). Вместо этого часто используется число 53 вместо 03 по неизвестным причинам и, что хуже, 53 часто фактически реализуется как 30, а не как 03. Рекомендуется внимательно проверить подробности реализации, чтобы точно узнать ее возможности.
Используемые способы: Чередование байтов с выделенным паритетом, объединенное с чередованием блоков.
Описание: Уровни RAID 03 и 30 (часто называемый 53) объединяют чередование байтов, паритет и чередование блоков для создания больших массивов. RAID 03 образуется помещением массива RAID 3 в несколько массивов RAID 0 с чередованием; RAID 30 более распространен и образуется чередованием по нескольким подмассивам RAID 3. Объединение паритета, чередования малых блоков и чередование больших блоков затрудняет теоретический анализ производительности этого уровня. В общем, он обеспечивает лучшую производительность по сравнению с RAID 3 благодаря введению чередования RAID 0, но по общей скорости, особенно по записи, ближе к RAID 3, чем в RAID 0. Уровень RAID 30 обеспечивает лучшую отказоустойчивость и производительность перестройки, чем RAID 03, но оба зависят от "ширины" размерности RAID 3 относительно размерности RAID 0: чем больше накопителей паритета, тем ниже емкость и эффективность хранения, но выше отказоустойчивость. Большинство характеристик RAID 0+3 и 3+0 аналогичны характеристикам RAID 0+5 и 5+0. Уровни RAID 30 и 03 оказываются лучше для больших файлов по сравнению с RAID 50 и 05.
Требования к контроллеру: Обычно требуется сложный аппаратный контроллер.
Требования к жестким дискам: Число накопителей должно быть кратно двум целым, одно из которых должно быть 2 или больше, а второе 3 или больше. Например, можно образовать массив RAID 30 из 10 накопителей, но не из 11. Минимальное число накопителей равно шести, а максимальное определяется контроллером.
Емкость массива: Для RAID 03: (Емкость меньшего накопителя) * (Число накопителей в каждом наборе RAID 0) * (Число наборов RAID 0 - 1).
Для RAID 30: (Емкость меньшего накопителя) * (Число накопителей в каждом наборе RAID 3 - 1) * (Число наборов RAID 3).
Например, емкость массива RAID 03, образованного из 15 накопителей емкостью 18 ГБ, организованного как три набора RAID 0 из пяти накопителей, будет равна 18 ГБ * 5 * (3-1) = 180 ГБ. Емкость массива RAID 30, образованного из 21 накопителя емкостью по 18 ГБ, организованного как три набора RAID 3 из семи накопителей, будет равна 18 ГБ * (7-1) * 3 = 324 ГБ. Эти же 21 накопителей, организованных в семь наборов RAID 3 из трех накопителей, обеспечивают емкость 18 GB * (3-1) * 7 = 252 ГБ.
Эффективность хранения: Для RAID 03: (Число наборов RAID 0 - 1) / Число наборов RAID 0).
Для RAID 30: (Число накопителей в каждом наборе RAID 3 - 1) / Число накопителей в каждом наборе RAID 3).
Для приведенного примера массив RAID 03 из 15 накопителей будет иметь эффективность хранения (3-1)/3 = 67%. Первый массив RAID 30, конфигурированный как три набора RAID 3 по семь накопителей, имеет эффективность хранения (7-1)/7 = 86%, а второй массив RAID 30 имеет эффективность хранения (3-1)/3 = 67%.
Отказоустойчивость: От хорошей до очень хорошей в зависимости от RAID 03 или 30 и числа накопителей паритета относительно общего числа накопителей. RAID 30 обеспечивает лучшую отказоустойчивость, чем RAID 03.
Рассмотрим два разных массива RAID 30 из 21 накопителя, приведенные ранее. Первый (три набора RAID 3 по семь накопителей) имеет более высокие емкость и эффективность хранения, но допускает отказы максимум трех накопителей. Второй (семь наборов RAID 3 по три накопителя) имеет меньшие емкость и эффективность хранения, но допускает отказы до семи накопителей, если они находятся в разных наборах RAID 3. Конечно, очень мало применений потребуют выдерживания отказов семи накопителей. Кроме того, если 21 накопитель организован в массив RAID 03, отказ второго накопителя после отказа одного и выключения одного из подмассивов RAID 0 приводит к неработоспособности всего массива.
Доступность: От очень хорошей до превосходной.
Деградирование и перестройка: Относительно невелика для RAID 30 (хотя больше, чем в RAID 10); может быть более значительной в RAID 03.
Производительность случайного считывания: Очень хорошая в предположении, что размер полосы RAID 0 приемлемо большой.
Производительность случайной записи: Неплохая.
Производительность произвольного считывания: От очень хорошей до превосходной.
Производительность последовательной записи: Хорошая. Стоимость: Относительно высокая из-за требования аппаратного контроллера и большого числа накопителей; однако эффективность хранения лучше, чем у RAID 10, и не хуже, чем в любом другом уровне RAID, который имеет избыточность.
Особенности: Сложный и дорогой в реализации уровень RAID.
Рекомендуемые применения: Распространен не так широко, как многие другие уровни RAID. Применяется для мультимедийных данных и больших баз данных или файловых серверов. Иногда используется вместо RAID 3 для повышения емкости и производительности.

Уровни RAID 0+5 (05) и 5+0 (50)


Названия: RAID 0+5 или 05; RAID 5+0 или 50. Как и для других множественных уровней, необходимо проверить точную реализацию, а не полагаться на этикетку.
Используемые способы: Чередование блоков с распределенным паритетом, объединенное с чередованием блоков.
Описание: Уровни RAID 05 и 50 образуют большие массивы, объединяя чередование блоков и паритет RAID 5 с простым чередованием блоков RAID 0. Уровень RAID 05 есть массив RAID 5, состоящий из нескольких массивов RAID 0 с чередованием; он встречается реже уровня RAID 50, который представляет собой массив RAID 0 с чередованием по элементам RAID 5. Уровни RAID 50 и 05 улучшают производительность RAID 5, особенно в операциях записи, с помощью добавления RAID 0. Они также обеспечивают лучшую отказоустойчивость, чем одиночный уровень RAID, особенно в конфигурации RAID 50.
Большинство характеристик RAID 05 и 50 аналогичны показателям RAID 03 и 30. Уровни RAID 50 и 05 предпочтительнее 03 и 30 для транзакционной среды.

На диаграмме слева показано распределение файлов разного размера в восьмидисковом массиве RAID 5+0 с использованием размера полосы 16 КБ. Красный файл имеет размер 4 КБ; синий файл - 20 КБ; зеленый файл - 100 КБ; сиреневый файл - 500 КБ. Каждый вертикальный пиксел представляет 1 КБ. Каждый из больших прямоугольников представляет собой четырехдисковый массив RAID 5. Данные равномерно чередуются между этими двумя массивами RAID 5 с помощью RAID 0. Затем внутри каждого массива RAID 5 данные сохраняются с использованием чередования с паритетом. Поэтому первый небольшой файл и 12 КБ второго файла посылаются в верхний массив RAID 5; остальные 8 КБ второго файла и первые 8 КБ файла размером 100 КБ посылаются в нижний массив RAID 5; затем следующие 16 КБ файла размером 100 КБ подаются в верхний массив и т.д. Внутри каждого массива RAID 5 данные чередуются и паритет вычисляется так же, как в обычном массиве RAID 5; каждый массив просто делает это с половиной числа блоков. Сравните эту диаграмму с диаграммами для RAID 0 и RAID 5.
Требования к контроллеру: Обычно требуется сложный аппаратный контроллер.
Требования к жестким дискам: Число накопителей должно быть кратно двум целым, одно из которых должно быть 2 или больше, а второе 3 или больше. Например, можно образовать массив RAID 50 из шести накопителей, но не из семи. Минимальное число накопителей равно шести, а максимальное определяется контроллером.
Емкость массива: Такая же, как для уровней RAID 03 и 30. Для RAID 05: (Размер меньшего накопителя) * (Число накопителей в каждом наборе RAID 0) * (Число наборов RAID 0 - 1).
Для RAID 50: (Размер меньшего накопителя) * (Число накопителей в каждом наборе RAID 5 - 1) * (Число наборов RAID 5).
Например, емкость массива RAID 05, образованного из 15 накопителей емкостью 18 ГБ, организованного как три набора RAID 0 из пяти накопителей, будет равна 18 ГБ * 5 * (3-1) = 180 ГБ. Емкость массива RAID 50, образованного из 21 накопителя емкостью по 18 ГБ, организованного как три набора RAID 3 из семи накопителей, будет равна 18 ГБ * (7-1) * 3 = 324 ГБ. Эти же 21 накопителей, организованных в семь наборов RAID 3 из трех накопителей, обеспечивают емкость 18 GB * (3-1) * 7 = 252 ГБ.
Эффективность хранения: Такая же, как для RAID 03 и 30. Для RAID 05: (Число наборов RAID 0 - 1) / Число наборов RAID 0).
Для RAID 50: (Число накопителей в каждом наборе RAID 5 - 1) / Число накопителей в каждом наборе RAID 5).
Для приведенного примера массив RAID 05 из 15 накопителей будет иметь эффективность хранения (3-1)/3 = 67%. Первый массив RAID 50, конфигурированный как три набора RAID 5 по семь накопителей, имеет эффективность хранения (7-1)/7 = 86%, а второй массив RAID 50 имеет эффективность хранения (3-1)/3 = 67%.
Отказоустойчивость: Такая же, как в RAID 03 и 30. От хорошей до очень хорошей в зависимости от RAID 05 или 50 и числа накопителей паритета относительно общего числа накопителей. RAID 50 обеспечивает лучшую отказоустойчивость, чем RAID 05.
Рассмотрим два разных массива RAID 50 из 21 накопителя, приведенные ранее. Первый (три набора RAID 5 по семь накопителей) имеет более высокие емкость и эффективность хранения, но допускает отказы максимум трех накопителей. Второй (семь наборов RAID 5 по три накопителя) имеет меньшие емкость и эффективность хранения, но допускает отказы до семи накопителей, если они находятся в разных наборах RAID 5. Конечно, очень мало применений потребуют выдерживания отказов семи накопителей. Кроме того, если 21 накопитель организован в массив RAID 05, отказ второго накопителя после отказа одного и выключения одного из подмассивов RAID 0 приводит к неработоспособности всего массива.
Доступность: От очень хорошей до превосходной.
Деградирование и перестройка: Умеренная для RAID 50; хуже для RAID 05.
Производительность случайного считывания: От очень хорошей до превосходной.
Производительность случайной записи: Хорошая.
Производительность произвольного считывания: Очень хорошая.
Производительность последовательной записи: Хорошая.
Стоимость: Относительно высокая из-за требования аппаратного контроллера и большого числа накопителей. Эффективность хранения лучше, чем у RAID 10, и не хуже, чем в других уровнях RAID, которые имеют избыточность.
Особенности: Сложные и дорогие в реализации.
Рекомендуемые применения: Приложения, которые требуют высокой отказоустойчивости, большой емкости и производительности позиционирования. Применяются реже других уровней RAID. Иногда применяются вместо RAID 5 для повышения емкости, а также для больших баз данных.

Уровни RAID 1+5 (15) и 5+1 (51)


Названия: RAID 1+5 или 15; RAID 5+1 или 51. Эти уровни применяются реже всех остальных, поэтому необходимо внимательно изучить особенности конкретной реализации.
Используемые способы: Зеркалирование (или дуплексирование), объединенное с чередованием блоков и распределенным паритетом.
Описание: Это единственные конфигурации, которые используют оба метода избыточности - зеркалирование и паритет - и призваны обеспечить максимум отказоустойчивости и доступности за счет практически всего остального. Массив RAID 15 образуется созданием массива чередования с паритетом, используя как компоненты несколько зеркалированных пар; в принципе это аналогично RAID 10, но чередование осуществляется с паритетом. Массив RAID 51 создается зеркалированием целых массивов RAID 5 и аналогичен RAID 01, но наборы являются RAID 5, а не RAID 0, и обеспечивают защиту по паритету. Производительность этих массивов хорошая, но не слишком высока для повышенных расходов и по сравнению с другими множественными уровнями RAID.
Отказоустойчивость этих уровней RAID просто удивительна; массив RAID 15 из восьми накопителей может допустить отказы трех любых накопителей одновременно. Массив RAID 51 из восьми накопителей также может выдержать отказы трех накопителей и даже пяти накопителей, если минимум один из зеркалированных наборов RAID 5 имеет не более одного отказа. Ценой за такую живучесть оказываются сложность и дороговизна реализации, а также очень низкая эффективность хранения.
Компонент RAID 1 этого вложенного уровня может фактически использовать дуплексирование вместо зеркалирования для дальнейшего повышения отказоустойчивости.
Требования к контроллеру: Как минимум, требуется сложный контроллер; могут потребоваться специализированные системные аппаратные и/или программные средства. Уровень RAID 51 иногда реализуется как "гибрид" аппаратного и программного RAID, путем реализации программного зеркалирования на уровне операционной системы с парой контроллеров RAID 5, реализуя дуплексирование для повышения отказоустойчивости.
Требования к жестким дискам: Четное число накопителей; минимум шесть накопителей, а максимум определяется контроллером. Все накопители должны быть идентичными.
Емкость массива: (Емкость меньшего накопителя) * (Число накопителей / 2) - 1). Например, массив из десяти накопителей емкостью по 18 ГБ будет иметь емкость всего 18 ГБ * ( (10/2) - 1 ) = 72 ГБ.
Эффективность хранения: Для накопителей одинаковой емкости эффективность хранения равна (Число накопителей / 2) - 1 ) / (Число накопителей). В приведенном примере эффективность хранения равна 40%. Такая эффективность хранения оказывается хуже любого уровня RAID. Массив RAID 15 или 51 с шестью накопителями имеет эффективность памяти всего 33%! Отказоустойчивость: Превосходная; намного лучше любого другого уровня.
Доступность: Превосходная.
Деградирование и перестройка: Могут быть значительными.
Производительность случайного считывания: Очень хорошая.
Производительность случайной записи: Хорошая.
Производительность произвольного считывания: Очень хорошая.
Производительность последовательной записи: Хорошая.
Стоимость: Очень высокая. Мало применяемая конфигурация, требующая много накопителей для достижения невысокой емкости. Обычно требуются дополнительные аппаратные и/или программные средства.
Особенности: Сложные и дорогие в реализации.
Рекомендуемые применения: Критические приложения, требующие очень высокой отказоустойчивости. Реализуется редко.

Группа дисков


Что делать, если в системе есть несколько накопителей, которые нежелательно конфигурировать в RAID-массив? Традиционно они действуют как независимые тома и сейчас множество пользователей имеет в РС два, три или более накопителей. Однако для некоторых приложений удобно использовать диски как один том. Такая организация называется охватом (spanning), но в противовес "избыточному массиву дешевых дисков" (RAID) ее называют просто группа дисков (Just A Bunch Of Disks - JBOD).

Фактически JBOD совсем не является RAID, но все же это "отдаленный родственник" RAID. Организацию JBOD можно считать противоположностью организации разделов: если разделы разбивают одиночные накопители на меньшие логические тома, то JBOD объединяет накопители в большие логические тома. Группа JBOD не обеспечивает отказоустойчивости и повышения производительности по сравнению с независимым использованием ее накопителей.

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

  • Отсутствие пропавшей емкости: При наличии накопителей разной емкости JBOD позволяет объединить их в одно устройство без потери емкости: накопители 10 ГБ и 30 ГБ объединяются в один JBOD-том емкостью 40 ГБ, а массив RAID 0 обеспечивает емкость только 10 ГБ. Однако при дешевизне современных дисков это преимущество оказывается несущественным.
  • Простое восстановление после катастрофы: Если отказывает диск в томе RAID 0, данные на каждом диске в массиве разрушены, так как все файлы чередуются. Если же отказывает диск в группе JBOD, данные в других накопителях восстановить проще (но это зависит от того, как операционная система управляет файлами). Поскольку необходимо всегда производить регулярное резервирование и даже в JBOD восстановление может оказаться трудным, это достоинство также не слишком серьезное.

Сравнение уровней RAID


В следующей таблице приведены основные характеристики различных уровней RAID.

Примечания к таблице:

  • Для числа дисков приведены несколько первых допустимых значений. Минимальное число дисков определяет первое число, а максимальное число определяется контроллером. Уровни RAID 01/10 и RAID 15/51 должны иметь четное число накопителей и минимальное значение равно 6. Для уровней RAID 03/30 и 05/50 число дисков должно быть кратным двум целым и минимальное значение равно 6.
  • Для емкости и эффективности хранения буква "S" обозначает емкость наименьшего накопителя в массиве, а буква "N" показывает число накопителей в массиве. Для уровней RAID 03 и 30 обозначение "N0" показывает ширину RAID 0 массива, а "N3" - ширину RAID 3. Например, 12-дисковый массив RAID 30, полученный созданием трех четырехдисковых массивов RAID 3 и последующим чередование их, будет иметь N3=4 и N0=3. Это же относится и к обозначению "N5" в строке для RAID 05/50.
  • Эффективность хранения предполагает, что все накопители имеют одинаковую емкость. В противном случае необходимо использовать универсальное вычисление (емкость массива делится на сумму емкостей всех накопителей).
  • Показатели производительности являются приближенными.
  • Цена (стоимость), конечно же, является относительной и приближенной. На практике она зависит от множества факторов; число звездочек просто показывает общую оценку.

Уровень RAID

Число дисков

Емкость

Эфф. хранения

Оказоуст.

Доступн.

Поизв. произв. сч.

Произв. произв. записи

Произв. посл. сч.

Произв. посл. записи

Цена

0

2,3,4,... S*N 100% Нет 1 * 4 * 4 * 4.5 * 4 * 1 *

1

2 S*N/2 50% 4 * 4 * 3 * 3 * 2 * 3 * 2 *

2

Много Большая ~ 70-80% 2 * 4 * 2 * 1 * 4 * 2.5 * 5 *

3

3,4,5,... S*(N-1) (N-1)/N 3 * 4 * 3 * 1 * 4 * 2.5 * 2 *

4

3,4,5,... S*(N-1) (N-1)/N 3 * 4 * 4 * 1.5 * 3 * 2 * 2 *

5

3,4,5,... S*(N-1) (N-1)/N 3 * 4 * 4.5 * 2 * 3.5 * 2.5 * 2 *

6

4,5,6,... S*(N-2) (N-2)/N 4.5 * 5 * 4.5 * 1 * 3.5 * 2 * 3 *

7

Перем. Перем. Перем. 3 * 4 * 4.5 * 4 * 4.5 * 4 * 5 *

01/10

4,6,8,... S*N/2 50% 4 * 4.5 * 4.5 * 3.5 * 4.5 * 3.5 * 3 *

03/30

6,8,9,10,... S*N0*(N3-1) (N3-1)/N3 3.5 * 4 * 4 * 2 * 4.5 * 3 * 4 *

05/50

6,8,9,10,... S*N0*(N5-1) (N5-1)/N5 3.5 * 4 * 4.5 * 3 * 4 * 3 * 4 *

15/51

6,8,10,... S*((N/2)-1) ((N/2)-1)/N 5 * 5 * 4 * 3 * 4 * 3 * 5 *

Конфигурирование и реализация RAID


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

RAID-контроллеры


Часто при рассмотрении уровней RAID-массивов и их накопителей уделяется мало внимания RAID-контроллерам. Такой подход неверен, так как варианты реализации RAID-массива зависят от используемого типа контроллера. Контроллер и другие аппаратные средства сильно влияют на емкость и производительность массива.

Аппаратные RAID


В большинстве "серьезных" реализаций применяется так называемый аппаратный RAID (hardware RAID), что подразумевает использование специальных схем для управления массивом в отличие от программного управления массивом. Хорошие аппаратные контроллеры во многих отношениях похожи на миниатюрные компьютеры со специализированными процессорами, вычислительная мощность которых больше чем у процессоров самих РС, применявшихся всего несколько лет назад.

Имеются два основных типа аппаратных RAID, отличающихся, в основном, интерфейсом массива и системы:

  • Аппаратный RAID с картой контроллера (или шинный контроллер): Это самый обычный тип аппаратного RAID, который широко применяется, особенно в низкопроизводительных системах. Специализированный RAID-контроллер устанавливается в РС или сервер, а к нему подключаются накопители массива. Фактически он заменяет хост-адаптер SCSI или контроллер IDE/ATA, которые обычно применяются для интерфейса между системой и жесткими дисками. RAID-контроллер подключается к накопителям с помощью SCSI или IDE/ATA и передает данные в РС по системной шине, обычно PCI. Некоторые материнские платы, особенно предназначенные для серверов, поставляются с интегрированным RAID-контроллером. он встроен в материнскую плату, но функционирует точно так же, как контроллер на шинной карте. Интегрированные контроллеры несколько снижают стоимость, но оказываются менее гибкими.
  • Интеллектуальный внешний RAID-контроллер: В этом варианте RAID-контроллер конструктивно находится в отдельном корпусе. Этот контроллер управляет накопителями массива, обычно с использованием интерфейса SCSI, а затем представляет логические накопители массива по стандартному интерфейсу (по-прежнему, обычно по одному из вариантов интерфейса SCSI) серверу, использующему массив. Сервер "видит" массив или массивы точно также как один или несколько очень быстрых дисков; RAID полностью скрыт от компьютера. По существу, RAID-контроллер сам по себе оказывается законченным компьютером со специализированный процессором, который управляет RAID-массивом и действует как посредник между сервером и массивом.


На фотографии слева показан популярный RAID-контроллер FastTrak 66 компании Promise. Контроллер рассчитан на шину PCI и жесткие диски IDE/ATA. Он поддерживает уровни RAID 0, 1 и 01.

Шинные RAID-контроллеры дешевле и реализовать их намного проще, чем внешние RAID-контроллеры, которые предоставляют множество возможностей. Системы с внешними RAID-контроллерами дороже, но они обеспечивают большую расширяемость и позволяют реализовать массивы емкостью в терабайты; кроме того, производительность их выше. Однако значительная стоимость препятствует использованию их типичному пользователю РС.

Примечание: Внешние RAID-контроллеры нельзя путать с внешними RAID-стойками. Такие стойки обеспечивают питание и физическую инфраструктуру для накопителей в RAID-массиве, но они не обладают "интеллектом" контроллера. Стойки функционируют как большой системный корпус РС. Внешний RAID-контроллер можно считать объединением такой стойки и высокопроизводительного интеллектуального контроллера.

В большинстве случаев решение о применении аппаратного RAID принимается по экономическим соображениям: аппаратный RAID превосходит программный RAID почти во всех отношениях, но только дороже. Для экзотических уровней RAID, например RAID 3 или RAID 1+0, обязательно нужен аппаратный RAID, так как программной поддержки таких уровней просто не существует. При необходимости получения высокой производительности при использовании уровня RAID с большим объемом вычислений, например RAID 5, аппаратный RAID также оказывается почти обязательным, так как программный RAID значительно снизит производительность системы.

Программные RAID-массивы


Программный RAID функционирует также, как аппаратный RAID, но им управляет программа. Вместо использования специализированного аппаратного контроллера для выполнения различных функций, необходимых для реализации RAID-массива, эти функции выполняет системный процессор, привлекая специальные программные процедуры. Поскольку управление массивом должно производиться на нижнем уровне, "под" другими программами, обычно программный RAID реализуется на уровне операционной системы. Программная поддержка некоторых уровней RAID имеется в операционных системах Windows NT и Windows 2000, а также в различных версиях UNIX.

Остановимся вначале на достоинствах программного RAID:

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

Приведем также недостатки программного RAID:

  • Производительность: Самый известный недостаток программного RAID - большее снижение общей производительности системы по сравнению с аппаратным RAID. Причина этого очевидна: у процессора "крадутся" циклы для управления RAID-массивом. На практике такое замедление для простых уровней RAID, например RAID 1, не очень заметно, но оно может быть значительным для любого уровня RAID, основанного на чередовании с паритетом, например RAID 5.
  • Ограничения загрузочного тома: Так как операционная система для управления массивом должна работать, ее нельзя загрузить из RAID-массива! Для нее придется создать отдельный раздел, не входящий в RAID-массив, что снижает производительность системы и замедляет загрузку.
  • Поддержка уровня: Программные RAID обычно ограничиваются уровнями RAID 0, 1 и 5, а для более "интересных" уровней требуется аппаратный RAID.
  • Поддержка расширенных возможностей: Программные RAID обычно не поддерживают такие возможности, как горячие резервы и замена накопителей, которые повышают доступность данных.
  • Проблемы совместимости операционной системы: Если RAID настроен с помощью конкретной операционной системы, обычно к массиву может обращаться только эта операционная система. При переходе на другую операционную систему она не сможет обратиться к массиву. Возникают проблемы среды с несколькими операционными системами, которых нет в аппаратных RAID.
  • Проблемы программной совместимости: Некоторые системные утилиты, например утилиты организации разделов, могут конфликтовать с программными RAID-массивами. По-прежнему, аппаратный RAID более "прозрачен" и в нем такие проблемы отсутствуют.
  • Вопросы надежности: Некоторые пользователи избегают RAID, боясь потенциальных ошибок в операционной системе, которые могут повлиять на целостность и надежность массива.

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

BIOS контроллера


На материнской плате РС имеется системный BIOS (Basic Input/Output System - базовая система ввода-вывода) - набор процедур нижнего уровня, которые управляют чипсетом и другими ключевыми компонентами РС. Аналогично этому на картах RAID-контроллеров имеется свой BIOS - код, который выполняет контроллер, управляя RAID-массивом.

Со временем производитель RAID-контроллера может изменить код BIOS, например для устранения небольши проблем в карте контроллера, но иногда для введения новых возможностей. Кроме того, такая модернизация просто необходима для поддержки той аппаратуры, которой просто не существовало в процессе разработки и производства контроллера. Обычно BIOS RAID-контроллера находится во флэш-памяти (flash memory) и для модернизации требуется загрузить новый BIOS с Web-сайта производителя и записать в микросхему флэш-памяти.

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

Совсем необязательно производить обновление BIOS при каждом объявлении производителем нового кода. Если в новой версии нет важных изменений, которые повлияют на работу контроллера, можно не производить модернизацию BIOS.

Для программного RAID нет "BIOS контроллера", так как массивом управляет операционная система. Аналогом модернизации BIOS контроллера являются "заплаты" операционной системы (operating system patch), о которых знает большинство пользователей РС. В операционной системе редко возникают такие проблемы с RAID, которые потребуют программной "заплаты".

Интерфейсы RAID


Для RAID-массивов применяются два основных интерфейса. Традиционно RAID-массивы реализовались на мощных компьютерах и использовали дорогой интерфейс SCSI. Впоследствии появились и приобрели широкую популярность карты аппаратного RAID, рассчитанные на более простой и дешевый интерфейс IDE/ATA. При проектировании системы с RAID-массивом необходимо выбрать правильный интерфейс.

Сравнение интерфейсов SCSI и IDE во многом похоже на сравнение аппаратного RAID и программного RAID - приходится учитывать стоимость и возможности. IDE/ATA RAID намного дешевле SCSI RAID, но более ограничен буквально во всем: емкость массива меньше, так как можно применять меньше накопителей; производительность по всем показателям ниже; поддержка более сложных уровней RAID отсутствует; многих расширенных возможностей нет.

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

Несколько каналов и проблемы производительности


Внешняя скорость передачи данных является одной из самых недооцениваемых спецификаций жесткого диска. Сейчас нет жестких дисков, способных считывать или записывать данные с максимальной скоростью современных интерфейсов. Они могут работать с максимальной скоростью интерфейса только короткими пакетами. Для накопителя не так важен интерфейс Ultra ATA/100, способный передавать 100 МБ/с, если сам накопитель может обеспечить скорость потока дисков всего 40 МБ/с. Со скоростью 100 МБ/с будет передаваться лишь небольшой блок данных, находящийся в дисковом кэше. Это же замечание относится и к одиночному накопителю на скоростной шине SCSI.

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

Возьмем для примера накопитель Quantum Atlas 10K II, который имеет максимальную продолжительную скорость передачи (Sustained Transfer Rate - STR) 40 МБ/с. Для достижения идеальной производительности интерфейс должен предоставить минимум такую скорость. Очевидно, при подключении накопителя к шине Ultra160 SCSI никаких проблем не возникнет, так так теоретическая максимальная скорость шины составляет 160 МБ/с (на самом деле она несколько ниже из-за служебных потерь). Теперь предположим, что для скоростного редактирования мультимедиа нужен массив RAID 0 с четырьмя накопителями. В этом случае приходится учитывать скорость шины: мы собираемся использовать всю ее скорость, так как при редактировании огромных файлов будут одновременно работать все четыре накопителя. На практике скорость будет ниже максимума из-за служебных потерь, но достаточно близко к нему. При этом нужно учесть, что значение STR 40 МБ/с достигается только на внешних дорожках накопителя, где имеется максимальное число секторов на дорожке.

При необходимости создать массив из восьми накопителей возникает проблема. Даже если принять среднее значение STR, равное 32 МБ/с, потребуется скорость 256 МБ/с, которая намного выше скорости шины Ultra160. Для решения этой проблемы сложные SCSI RAID-контроллеры поддерживают несколько каналов. Такой контроллер имеет не одну шину SCSI, к которой подключаются все накопители массива, а две или более, например некоторые карты имеют четыре канала. Каждый из каналов поддерживает теоретическую скорость 160 МБ/с, а в сумме получается огромная скорость в 640 МБ/с, которой вполне достаточно для массива из восьми накопителей. Нужно только подключить по два накопителя к каждому из четырех каналов. Использование нескольких каналов несколько повышает производительность, так как устраняется конкуренция за шину SCSI. Разумеется, многоканальные RAID-контроллеры дороже обычных контроллеров.

Еще одна проблема, возникающая при очень высокой скорости передачи, связана с пропускной способностью самой шины. Стандартная шина PCI в обычных РС имеет ширину 32 бита и работает на частоте 33 МГц, поэтому теоретическая пропускная способность составляет 127 МБ/с. Этой скорости недостаточно для работы с многоканальным SCSI RAID-контроллером. В высокопроизводительных многоканальных картах часто применяется улучшенная шина PCI шириной 64 бита, работающая на частоте 66 МГц. Теоретическая пропускная способность этой версии шины PCI составляет более 500 МБ/с, но, конечно, для нее требуется специальный слот на серверной материнской плате.

Требования к жестким дискам в RAID


Буква "I" в аббревиатуре "RAID" означает Inexpensive (дешевый) несколько удивляет, так как только недавно RAID-массивы стали выполняться на дешевых жестких дисках IDE/ATA, но все же основными накопителями для RAID-массивов остаются более дорогие и быстрые диски SCSI. Появление слова Inexpensive объясняется тем, что RAID-массивы рассчитаны на обычные диски, а не на какие-то специальные накопители. Ранее для достижения высоких производительности и отказоустойчивости приходилось приобретать специализированные и очень дорогие накопители. Дешевизна массовых жестких дисков стимулирует все более широкое применение RAID-массивов.

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

Число накопителей


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

Число накопителей в массиве прямо влияет на следующие характеристики массива:

  • Емкость и эффективность хранения: Емкость массива зависит от реализуемого уровня RAID и числа накопителей в массиве, а также, разумеется, от емкости каждого накопителя. Эффективность хранения также зависит от числа накопителей для всех уровней RAID, которые используют чередование с паритетом; число накопителей для паритета фиксировано, поэтому при добавлении накопителей эффективность хранения повышается.
  • Производительность: Для RAID-массивов с чередованием ширина полосы (stripe width), но не размер полосы (stripe size), равна числу дисков в массиве. Добавление накопителей повышает производительность последовательных и произвольных операций; производительность последовательных операций теоретическая пропускная способность примерно пропорциональна числу накопителей в массиве, а ситуация с производительностью произвольных операций сложнее.
  • Стоимость: Расходы на большее число накопителей оказываются выше, даже если емкость массива не повышается. Например, десять накопителей по 20 ГБ обеспечивают емкость 200 ГБ, но дороже пяти накопителей по 40 ГБ. Кроме того, при увеличении числа накопителей требуется больше места, больше мощности и часто большего охлаждения. Кроме того, при большом числе накопителей может потребоваться приобрести специальную стойку.
  • Надежность: При увеличении числа накопителей надежность системы снижается.

Первый вопрос о числе накопителей для массива звучит примерно так: "Следует использовать три накопителя по 36 ГБ или шесть накопителей по 18 ГБ?" Конечно, ответ зависит от конкретной ситуации. Если главным оказывается максимизация производительности, ответом будет шесть накопителей по 18 ГБ. Однако в этом случае стоимость накопителей будет выше. Число поддерживаемых накопителей часто ограничивает контроллер.

Размер накопителей


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

Накопители с большей емкостью при прочих равных условиях, конечно, обеспечивают большую общую емкость массива. Поэтому по возможности RAID-массивы создаются из накопителей большей мощности. Это тем более важно, что удельная стоимость накопителей снижается при повышении емкости. Важно также, чтобы все накопители в массиве имели одинаковую емкость, так как "лишняя" емкость накопителей большей емкости пропадает.

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

Физический размер связан с форм-фактором (form factor) накопителей. Стандартные жесткие диски для RAID-массивов имеют форм-фактор 3.5", который определяет ширину и глубину корпуса. Однако для накопителей с форм-фактором 3.5" существуют два значения высоты. Стандартная высота в 1", называемая плоской (slimline или low-profile), используется для всех стандартных накопителей IDE/ATA и большинства накопителей SCSI небольшой емкости. Однако накопители SCSI большой емкости имеют от 6 до 12 дисков (platters) и не помещаются в корпус высотой 1", поэтому высота их составляет 1.6". Она называется половинной высотой (half-height); половина берется от полной высоты 3.2" старого отсека для первого жесткого диска "древних" РС.

Большинство обычных РС не воспринимают накопители с большей высотой, так как их дисковые отсеки рассчитаны на стандартную высоту 1". При необходимости использовать накопители с половинной высотой требуется специальный серверный корпус. Этот же корпус обычно имеет хорошие системы питания и охлаждения.

Критерии выбора накопителей


В заключение приведем подробный перечень тех моментов, которые необходимо учитывать при выборе накопителей для RAID-массивов:
  • Интерфейс: Необходимо приобретать накопители, соответствующие интерфейсу контроллера.
  • Емкость: Следует выбрать накопители максимальной емкости, которые позволяют бюджет и физические размеры системы или стойки.
  • Физический размер: Не рекомендуются накопители половинной высоты, если для них нет специального корпуса или стойки.
  • Производительность: Следует выбрать самые быстрые накопители, которые позволяет бюджет. К сожалению, имеется очень много показателей быстродействия накопителей. Поэтому здесь можно дать только общие рекомендации. Если требуется максимальная производительность для произвольных обращений, следует поискать накопители с минимальным временем обращения, а если наиболее важна скорость передачи, следует приобрести накопители с максимальной продолжительной скоростью передачи (Sustained Transfer Rates - STR).
  • Качество: Разумеется, рекомендуется приобрести высококачественные и надежные накопители.
  • Поставщик: Готовый RAID-массив следует приобретать у производителя с надежной репутацией. Создавая свой массив, нужно всегда покупать накопители у авторизованного дилера. Это обеспечивает обязательные гарантийные обязательства и техническую поддержку.
  • Однородность: Для достижения лучшей производительности и высокой эффективности хранения накопители должны иметь одинаковую емкость и быть одной модели.

Стойки


Большинство корпусов РС спроектировано с расчетом на обычные РС. Обычно в них предусматривается место для одного, двух или трех накопителей. Иногда в корпусе можно разместить четыре накопителя, а с помощью адаптеров дисковых отсеков число накопителей можно увеличить. Таким образом, обычный корпус РС допускает создание небольших RAID-массивов из 2, 3 или 4 накопителей и такой вариант самый дешевый. Именно так и реализуются дешевые RAID-массивы с накопителями IDE/ATA.

Однако для "серьезного RAID" с множеством накопителей и интерфейсом SCSI такое решение не подходит. Часто требуется больше накопителей, а замена накопителей (drive swapping) становится все более настоятельным требованием. В этой ситуации приходится отказываться от обычных корпусов РС.


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

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

Кабельные соединения и питание


Аналогично тому, как множеству накопителей больших RAID-массивов не хватает места в обычном корпусе РС, для них не хватает и мощности системного блока питания. Обычно напряжения питания +12 В типичного блока питания достаточно только максимум для четырех накопителей, а некоторые дешевые блоки питания рассчитаны всего на два накопителя. Практически нет обычного блока питания РС, который бы обеспечил достаточную мощность для 8, 10 или 12 накопителей, особенно при учете пикового потребления мощности при запуске.

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

Еще одну проблему для массивов с большим числом накопителей ставят кабельные соединения. Прокладка четырех больших кабелей SCSI к десятку жестких дисков и кабелей питания доставляет мало удовольствия. Отдельные кабели могут затруднить или сделать невозможной замену накопителей. Большие корпуса упрощают решение проблемы кабельных соединений. Однако лучшим решением, которое сейчас применяется во многих серверных корпусах, оказывается вариант SCSI, называемый одноразъемным соединением (Single Connector Attachment - SCA).


В системе SCA отдельные кабели данных и питания, которые обычно подключаются в каждому накопителю, заменяются одним 80-контактным разъемом, который находится на корпусе накопителя. Специальные объединительные платы (backplanes) монтируются в серверном корпусе и накопители подключаются к разъемам на объединительных платах примерно так же, как подключается кабель принтера к параллельному порту. Благодаря наличию улучшенных контактов заземления накопители можно вставлять, не выключая питания. Сейчас подключение SCA широко применяется в стойках RAID-массивов и серверных корпусах.

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

Управление RAID-массивами


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

Управляющая программа


Все RAID-контроллеры поставляются с программой, которая предназначена для управления контроллером и подключенными к нему массивами и накопителями. Программа варьируется от очень простой до очень сложной в зависимости от типа контроллера и числа поддерживаемых им возможностей. Большинство аппаратных контроллеров поставляется с двумя различными программными компонентами:
  • Программа настройки BIOS контроллера: Эта программа, которую можно запустить во время загрузки, работает точно так же, как программа настройки BIOS материнской платы. При нажатии определенной клавиши в подходящее время при загрузке на экране обычно в текстовом режиме появляется специальная программа из микросхемы ROM на карте контроллера и позволяет выполнить различные функции. Программа управляет набором данных в контроллере, которые использует BIOS контроллера. Такая программа особенна важна для аппаратного RAID, так как до загрузки любой операционной системы необходимо настроить и конфигурировать массивы.
  • Утилита управления операционной системы: Эта программная утилита работает после загрузки операционной системы и управляет массивом. Она обладает многими возможностями программы настройки, но ориентирована на контроль состояния массива и изменения различных параметров, которые управляют ее работой. Эта утилита работает совместно с программой настройки и обычно обеспечивает выполнение операций при нормальной работе массива, например перестройку в отказоустойчивом массиве.

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

  • Конфигурирование контроллера: Конфигурирование контроллера и его возможностей на аппаратном уровне. Примерами служит настройка внутреннего кэша; управление оповещающими сигналами; выбор автоматической или ручной перестройки для отказавших накопителей; запрещение BIOS при необходимости и др.
  • Конфигурирование массива: Определение и конфигурирование RAID-массивов, распределение накопителей по массивам и т.д.
  • Физическое управление накопителями: Проверка состояния накопителей, подключенных к контроллеру, форматирование накопителей, определение накопителей для горячего резерва и др.
  • Логическое управление накопителями: Создание из массива томов логических накопителей, форматирование логического тома и др.
  • Управление каналом SCSI: Для карт SCSI управляет различными настройками и параметрами, используемыми для настройки и управления каналами SCSI в RAID-контроллере.

Совет: RAID-контроллеры обычно поставляются с обширной документацией. Обычно можно найти руководства для большинства изделий RAID в загружаемой форме на Web-сайте производителя. Изучение руководства по программе для контроллера позволит составить намного более точную картину возможностей и ограничений контроллера по сравнению с бестолковыми рекламными проспектами.

В программном RAID также необходима программа управления всеми средствами RAID. Конечно, здесь нет программы настройки BIOS, так как здесь нет BIOS контроллера, и все выполняется на уровне операционной системы. Функциональность управления RAID для Windows NT и Windows 2000 встроена в Disk Administrator, который используется для управления дисковыми томами.

Удаленное управление


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

Для решения проблемы централизованного администрирования несколькими RAID-массивами на различных компьютерах, в некоторых мощных RAID-системах предусматривается поддержка удаленного управления (remote management). Такая поддержка позволяет администратору контролировать работу и состояние RAID-массива сервера или рабочей станции без необходимости физического присутствия. Обычно это осуществляется через локальную сеть при наличии поддержки RAID-контроллера. Более того, некоторые современные RAID-контроллеры поддерживают даже возможность управления через Internet!

Организация разделов


Организация разделов (partitioning) заключается в разбиении жесткого диска на части, которые можно считать логическими дисковыми томами. В RAID массивы рассматриваются как "виртуальные жесткие диски" и в них разделы образуются точно так же, как на любом обычном жестком диске.

Теоретически аппаратные RAID-массивы должны быть полностью прозрачными для любой программы, включая и операционные системы, инсталлированной на них. Для карты контроллера может потребоваться драйвер операционной системы. Поскольку он должен быть прозрачным, должно быть возможным применять любую программу организации разделов, начиная от простой FDISK до более сложных программ, например Partition Magic. Однако некоторые производители контроллеров специально запрещают использовать с их изделиями программы организации разделов третьих компаний. Несмотря на это, многие пользователи применяют их без всяких проблем. Неясно, имеются ли действительно проблемы с программами третьих компаний для этих (обычно простых) контроллеров или производители просто снижают расходы на поддержку, запрещая "использовать все, кроме FDISK". В любом случае, с более дорогими такая проблема не возникает.

Реальная проблема RAID и программы организации разделов связана с емкостью. По мере повышения емкости накопителей программы организации разделов медленно переделываются или обновляются для более емких накопителей. К сожалению, некоторые из программ не готовы к значительно большим "виртуальным дискам", которые RAID-система может представить им как одиночные диски. Применение новейших версий операционных систем позволит справиться с этой проблемой. При работе с большими массивами файловые системы NTFS или UNIX предпочтительнее различных вариантов систем с таблицей размещения файлов (File Allocation Table - FAT).

Оповещения и предупреждения


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

Поэтому обычно контроллеры программируются на формирование оповещений (alarms) и предупреждений (warnings) при возникновении проблем в контроллере или массиве. В лучших контроллерах генерируются звуковые сигналы, что обычно обеспечивает немедленное привлечение внимания. Иногда формируются различные сигналы в зависимости от серьезности проблемы.

Условия выдачи предупреждения варьируются в разных контроллерах, но обычно контроллер сообщает о следующем:

  • Отказ массива: Подключенный к контроллеру массив вышел из строя из-за аппаратного отказа. Предупреждение выдается при выходе из строя такого числа накопителей, которого достаточно для краха массива: один отказ для RAID 0, два для RAID 1, 3, 4 или 5 и т.д. Для множественного уровня RAID отказ компонента "подмассива" обычно запускает оповещение, даже если "супермассив" продолжает работать.
  • Работа в деградированном режиме: Подключенный к контроллеру массив работает в деградированном состоянии из-за аппаратного отказа. Такая ситуация возникает в избыточном уровне RAID, когда отказало несколько накопителей, но этого недостаточно для выхода из строя массива. Массив продолжает работать, но производительность снижается до устранения отказа и перестройки отказавшего накопителя. Данное предупреждение оказывается одним из наиболее важных, так как иначе трудно узнать, что массив работает в деградированном состоянии.
  • Завершение перестройки: Если выполняется автоматическая перестройка деградированного массива, контроллер может сигнализировать, когда перестройка закончена. Теперь массив не находится больше в деградированном режиме, а об этом важно знать, если, например, отказал накопитель и вместо него перестроен горячий резерв в отсутствии администратора (теперь ему необходимо заменить отказавший накопитель).
  • Отказ контроллера: Контроллер обнаружил внутренние отказ или проблему. Например, некоторые контроллеры контролируют рабочую температуру и сигнализируют, когда она превышает заданный уровень.

Помимо звуковых сигналов оповещения о важных событиях можно обычно послать администратору через локальную сеть. Контроллеры, поддерживающие удаленное управление, конечно, допускают и удаленное оповещение. Кроме того, современные контроллеры поддерживают также SMART-технологию и сообщают о предупреждениях SMART, сформированных жесткими дисками.

Обслуживание и профилактика


Обсуждение управления аппаратной системы будет неполной без рассмотрения вопросов обслуживания и профилактики. Рассмотрим эти вопросы применительно к RAID-массивам.

RAID-массивы обычно не требуют интенсивной профилактики. Нужно просто поддерживать работоспособное состояние сервера, частью которого является RAID-массив: никакой специальной профилактики для RAID-контроллеров и накопителей не требуется. С то же время многие высококачественные контроллеры предлагают удобные средства сопровождения и профилактики:

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

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

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

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

Новые возможности RAID-систем


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

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

Кэширование


Кэширование (caching) представляет собой способ сглаживания различий в производительности различных аппаратных компонентов. Кэширование часто применяется в РС: кэш имеется в процессорах, на материнских платах, в самих жестких дисках и во многих других местах. Однако везде цель кэширования одна и та же: обеспечить временную память, которая позволяет более быстрому устройству работать, не ожидая медленного устройства.

Большинство высокопроизводительных контроллеров имеют внутренний кэш, который действует аналогично кэшу жесткого диска: он несколько повышает производительность, сохраняя недавно использованную информацию или информацию, которая, про "мнению" контроллера потребуется в ближайшем будущем. Эту информацию он может предоставить системе с высокой скоростью, не обращаясь к медленному жесткому диску. Поскольку RAID-контроллер превращает массив жестких дисков в "виртуальный жесткий диск", вполне естественно разместить кэш именно в контроллере. Обычно для этого в контроллере предусматривается слот, в который вставляется стандартный модуль памяти РС; некоторые контроллеры имеют кэш, емкость которого превышает общую системную память большинства обычных РС. Конечно, кэш повышает производительность, но как и емкостью кэша жесткого диска, не следует переоценивать влияние емкости кэша на производительность..

Однако значительно влияет на производительность кэширование записи, называемое также кэшированием с обратной записью (write-back caching). Когда оно разрешено, контроллер сообщает об окончании записи, как только данные оказываются в кэше контроллера; впоследствии контроллер записывает данные в накопители. Конечно, при этом производительность заметно повышается, но появляется риск потери или несогласованности данных, если, например, аварийно отключается питание системы до того, как данные будут записаны из кэша в накопители.

Совет: Чтобы устранить проблемы, связанные с авариями питания и кэширование с обратной записью, в некоторых контроллерах предусматривается резервная батарея. Батарея позволяет сохранить в кэше все незаписанные данные до восстановления питания. Конечно, это удобная возможность, но если сервер подключен к бесперебойному источнику питания (Uninterruptible Power Supply - UPS), как должно быть в любом случае, наличие батареи становится дискуссионным.

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

Замена накопителя


В прошлом отказоустойчивость RAID-массивов обеспечивалась с помощью избыточности, но возникала проблема доступности: как быть, если накопитель отказывает в системе, которая работает 24 часа в сутки и семь дней в неделю? Или даже в системе, которая работает 12 часов в сутки, а накопитель выходит из строя утром? Избыточность позволяет массиву продолжать функционировать, но в деградированном состоянии (degraded state). Накопители установлены глубоко в корпусе сервера, поэтому для доступа к отказавшему накопителю и замены его приходится открывать корпус. Более того, необходимо выключать продолжающие работать накопители, прерывая доступ к системе всех пользователей. Конечно, должен существовать и более лучший способ выхода из такой ситуации и он есть.

Важным средством поддержания высокой степени готовности при отказе накопителя и необходимости его замещения является замена накопителя (drive swapping). Конечно, замену накопителя можно выполнить в любой системе, но применительно к RAID-массивам речь идет о горячей замене (hot swapping), т.е. о замене накопителя без выключения системы и открывания корпуса. В поддерживающей горячую замену системе можно легко удалить отказавший накопитель, заменить его на новый и заставить систему немедленно подключить замедленный накопитель. Пользователи системы даже и не узнают о произведенной замене.

К сожалению, термин "горячая замена" трактуется по-разному, часто приводя к путанице. Фактически имеется иерархия различных "температур" замены, которая описывает состояние системы во время замены накопителя:

  • Горячая замена (hot swap): Истинно горячая замена определяется как такая замена, когда накопитель можно заменить, а остальная система остается совершенно непрерываемой. Это означает, что система продолжает функционировать, по шине передаются данные, а замена накопителя полностью прозрачна.
  • Теплая замена (warn swap): При так называемой "теплой замене" питание не выключается и операционная система продолжает функционировать, но необходимо приостановить все действия на шине, к которой подключено устройство. Конечно, теплая замена хуже горячей, но все же лучше холодной замены.
  • Холодная замена (cold swap): До замены накопителя питание системы необходимо выключать.

Общепринято считать систему допускающей горячую замену, когда в действительности можно выполнять только теплые замены. Истинно горячая замена требует поддержки от всех компонентов системы: RAID-контроллера, шины (обычно SCSI), конструкции (которая должна иметь открытые отсеки для накопителей, обеспечивающие доступ к накопителям спереди корпуса) и интерфейса. Для этого требуются специальные разъемы, которые гарантируют земляные соединения между накопителем и шиной на все время подачи питания на устройство. Это означает, что при удалении устройства соединение питания должно разрываться раньше земляного соединения, а при вставке устройства земляное соединение должно устанавливаться раньше соединения питания. Обычно для этого применяются разъемы, в которых земляные штырьки несколько длиннее остальных штырьков. Именно такая конструкция применяется в одноразъемном подключении (Single Connector Attachment - SCA) интерфейса SCSI, который наиболее широко применяется в RAID-массивах с горячей заменой.

В мире накопителей IDE/ATA лучшее, что можно реализовать - это теплая замена с использованием лотков накопителей, которые "преобразуют" обычные накопители IDE/ATA в форму, работай которой в принципе аналогична конструкции SCA, хотя это не одно и то же. Все же это не горячая замена, так как до удаления накопителей систему необходимо останавливать.

В системе, которая не поддерживает горячей и теплой замены, можно использовать горячие резервы (hot spares). Если система допускает только холодную замену, то рано или поздно придется выключать систему для замены отказавшего компонента. Но при наличии горячего резерва можно немедленно восстановить полное функционирование массива, отложив выключение его на более удобное время. Фактически наличие горячего резервирования желательно даже если в системе предусмотрена горячая замена.

Горячие резервы


Если в RAID--массиве с избыточностью (т.е. за исключением RAID 0) отказывает накопитель, желательно сразу же заменить его, чтобы массив вернулся к своей обычной работе. Для этого имеются две причины - отказоустойчивость и производительность. Если до замены отказавший накопитель работает в деградированном режиме, то до замены накопителя большинство уровней RAID-массивов работают без всякой отказоустойчивости: массив RAID 1 сводится к одному накопителю, а массивы RAID 3 или RAID 5 в части отказоустойчивости становятся эквивалентными массиву RAID 0. В то же время снижается и иногда значительно производительность массива.

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

Конечно, естественно возникает вопрос о том, зачем при наличии возможности горячей замены требуются и горячие резервы? Ведь можно просто заменить отказавший накопитель. Да, это так, но основное преимущество горячего резерва на горячей заменой заключается в том, что поддерживающий горячие резервы контроллер выполняет перестройку автоматически. Когда контроллер обнаруживает, что накопитель отказал, он запрещает его и немедленно перестраивает данные на горячий резерв. Это преимущество оказывается очень важным в случае больших массивов, а также систем, работающих без обслуживающего персонала.

Горячее резервирование и горячая замена независимы друг от друга: можно иметь любое одно из этих средств или оба, что используется довольно часто. Однако резервирование особенно важно при отсутствии горячей (или теплой) замены. Благодаря горячему резерву быстро восстанавливается обычный режим работы системы, позволяя отложить время выключения на более удобный срок. Конечно, в этом интервале возможность горячего резерва теряется; после замены отказавшего накопителя новый накопитель становится новым горячим резервом.

Совет: Горячие резервы могут месяцами работать невостребованными. Рекомендуется периодически проверять правильную работу резервного накопителя. В некоторых контроллерах для этого предусматривается специальная профилактическая утилита, а некоторые контроллеры тестируют резервы автоматически.

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

Расширение массива


Одно из самых удивительных явлений в мире памяти заключается в увеличении емкости жестких дисков. Всего в 1998 г. казалось, что огромного диска 4 ГБ хватит на всю жизнь, а буквально через полтора года оказывалось, что на этом "крохотном диске не хватает места". Приходится устанавливать диск емкостью 40 ГБ и удивляться, как это можно было обходиться всего 4 ГБ. Примерно то же происходит и с RAID-массивами причем даже чаще, чем с отдельными накопителями, поскольку RAID-массивы разделяет множество пользователей. Следовательно, иногда требуется произвести расширение массива (array expansion), т.е. добавления емкости в существующий RAID-массив. Процессу расширения массива препятствуют некоторые трудности.

В расширении массива возникают две основные проблемы:

  • Физическое расширение: Необходимо иметь возможность физически вводить накопители в систему.
  • Логическое расширение: Необходимо заставить контроллер добавить новые накопители в массив, чтобы увеличить общий размер массива.

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

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

Даже если контроллер поддерживает логическое расширение и имеется место для накопителей, необходимо дважды продумать вопрос о расширении в силу следующих причин:

  • Соответствие размера и емкости: За небольшим исключением все RAID-массивы ограничены размером наименьшего накопителя (или накопителей) в системе - все накопители, большие этой величины, не используют их дополнительную емкость. Если, например, имеется массив с пятью накопителями емкость 9 ГБ и к нему добавляется новый накопитель 36 ГБ, то 75% емкости этого накопителя просто пропадает.
  • Производительность: Старые накопители, емкость которых меньше нового, оказываются и медленнее нового. В этом случае теряется преимущество нового накопителя, если его включить в массив с набором меньших накопителей.
  • Надежность: Если существующие накопители оказались небольшими, вероятно, они близки к окончанию срока гарантийного обслуживания. Это означает, что вероятность их отказа повышается.

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

Если вы не хотите расширять существующий массив, но и не хотите заменять его, можно просто создать еще один новый массив. Если имеется место в сервере, добавьте накопители и создайте из них новый отдельный массив. Затем используйте старый массив как резервный или для хранения второстепенных данных. Еще один вариант состоит в настройке нового массива на другом компьютере. Поскольку серверы объединены в сеть для доступа многих пользователей, этот вариант позволит использовать новую емкость все работающим в сети без необходимости внесения изменений в существующую систему. Отметим, что при этом несколько повышается надежность системы. Однако недостатки этого варианта очевидны: придется приобретать новый компьютер (если его нет) и новую аппаратуру, а также настраивать новый массив.






Наверх