Часть III
Немного теории: как в серверах, так и в NAS'ах (которые суть сервера, только очень специализированные) независимые диски могут быть объединены в массив разными способами, и способы эти принято называть RAID#, где цифра указывает как именно они объединены.
JBOD – обычно под этим названием понимают простое объединение дисков. Минимальное количество дисков – 2. Суммарный объём равен сумме всех входящих в массив дисков. Обычно логика работы такова: для небольших файлов каждый следующий файл пишется на следующий диск массива. Большие файлы разбиваются на блоки, которые также последовательно пишутся на все диски массива, равномерно их заполняя.
При отказе одного диска в массиве теряются файлы, записанные конкретно на этой диске а также те из крупных файлов, чьи фрагменты на нём хранились. Поскольку пользователь не имеет возможности влиять на размещение файлов по дискам, что пропадёт – это всегда "русская рулетка".
RAID0 (он же Stiping) – метод при котором любые файлы нарезаются на небольшие блоки и пишутся равномерно на все диски массива. Минимальное количество дисков – 2. Суммарная ёмкость равна сумме емкостей всех дисков. Отказ одного из дисков влечёт потерю всего содержимого. (Метод был придуман в те времена, когда отдельные диски были маленькими и медленными, а нужно было писать быстро и много. Не хранить, а обрабатывать.)
RAID1 (он же Mirror или "Зеркало") – обычно используется в системах из двух дисков. Суть метода в том, что совершенно одинаковые данные одновременно пишутся на оба диска массива. При отказе одного диска есть его точная копия.
Чтобы не путать между собой RAID0 и RAID1 есть простой вопрос: “Сколько шансов восстановить данные при отказе?”
Пропускаем всякие не прижившиеся методы и сразу переходим к:
RAID5 – массив с чётностью и чередованием. Минимальное необходимое количество дисков – 3. Суммарная ёмкость N–1 (минус один диск от суммарной емкости всех входящих). Суть метода: все файлы разбиваются на одинаковые блоки. Для каждых двух A и B блоков вычисляется третий блок С=A+B. Суть вычисления в том, что при утрате любого из исходных блоков A или B, они могут быть вычислены с помощью C (A=C–B или B=С–A). Дальше блоки пишутся на диски "каруселью", по кругу с тем расчётом, чтобы на каждом диске массива было равное количество блоков A, B и C. В результате при отказе одного любого диска массива есть возможность прочитать любые данные. А при замене неисправного диска – автоматически восстановить целостность массива.
Неявный недостаток: сейчас емкости дисков стали таковы, что полное восстановление массива может выполнятся несколько суток. Всё это время массив фактически представляет собой RAID0 и отказ ещё одного диска в процессе восстановления легко угробит все данные.
RAID6 – массив с двойной чётностью и чередованием. Минимальное необходимое количество дисков – 4. Суммарная ёмкость N–2 (минус два диска от суммарной емкости всех входящих). Суть метода как и в RAID5, только блоков чётности вычисляется одновременно два. Массив обеспечивает доступ к данным при отказе любых двух дисков. Естественно, что для работы такого массива требуются значительные "накладные расходы" – ресурсы процессора.
Для RAID1/5/6 существует понятие Hot-Spare – диска "горячей замены". Например, мы имеем 8-ти дисковый массив в котором 6 дисков объединены в RAID6 (6–2=4, то есть суммарная ёмкость массива равна ёмкости 4'х дисков), а два диска в статусе "горячей замены" (в резерве). В случае отказа любого из 6 дисков массива NAS сам, автоматически его отключает и начинает восстановление используя один из резервных.