RAID - добро пожаловать на кластер

Unforgiven (unfogi@sanet.ru)

Спецвыпуск Xakep, номер #012, стр. 012-094-3


RAID-1. Для гонщиков-параноиков

Этот тип более известен как "Mirroring" ("Зеркалирование") - это пара хардов, содержащих одинаковую инфу и составляющих один логический диск. Запись на диски в массиве производится следующим образом: на первый винт один блок данных, на второй винт точно такой же блок данных. То есть система как бы бэкапит (backup) один хард на другой. Уровень RAID-1 избыточен на 100%. Поэтому при поломке одного винта система автоматически юзает инфу с другого, и файло в полном порядке. Запись в данном RAID-уровне остается на прежней скорости, так как записывается все по-прежнему, а вот считывание информации может идти с Х2-скоростью за счет того, что один и тот же файл может скачиваться с твоих винтов параллельно. Советую данный массив поставить параноикам, трясущимся над своей инфой, потому что практически backup будет выполнять сама система, на чем можно сэкономить немало времени и нервишек.

Для RAID-1 нужно минимум два диска или более, но четное количество, то есть если у тебя их будет три, то один просто окажется ненужным, а если у тебя их будет четыре, то получится "тельняшка", только двойная. То есть блок №1 на 1-й и 2-й винты, блок №2 на 3-й и 4-й и так далее. Такая мулька еще обозначается как RAID-0 + RAID-1, или просто RAID-10 и дает сочетание «надежность плюс скорость».

Надежность сервантам!

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

RAID-2,3,4,5: паранойя с вариациями

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

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

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

Назад на стр. 012-094-2  Содержание  Вперед на стр. 012-094-4