К словарю | К разделу Fundamentals
RAID (Redundant Array of Independent Disks) — технология объединения
нескольких физических HDD или SSD в логический массив. В зависимости от уровня
RAID массив позволяет повысить производительность, отказоустойчивость или
доступный объём хранилища.
Операционная система обычно работает с массивом как с одним логическим
устройством, а распределением данных между физическими дисками управляет
RAID-контроллер или программный слой операционной системы.
Основные уровни RAID
Уровень RAID определяет, как данные и избыточная информация распределяются
между дисками.
| Уровень | Принцип | Минимум дисков | Преимущества | Ограничения | Типичное применение |
|---|---|---|---|---|---|
| RAID 0 | Striping | 2 | Высокая скорость и использование всей ёмкости | Нет отказоустойчивости: отказ одного диска разрушает массив | Временные данные и задачи, где важна скорость, а потеря допустима |
| RAID 1 | Mirroring | 2 | Простота и сохранение данных при отказе одного диска | Для хранения доступна половина суммарной ёмкости | ОС, небольшие серверы и важные данные |
| RAID 5 | Striping с распределённой чётностью | 3 | Баланс ёмкости, скорости чтения и защиты от отказа одного диска | Запись и восстановление массива создают дополнительную нагрузку | NAS и файловые серверы |
| RAID 6 | Striping с двойной распределённой чётностью | 4 | Допускает отказ любых двух дисков | Более дорогая запись и меньшая полезная ёмкость | Массивы с большим числом дисков и повышенными требованиями к доступности |
| RAID 10 | Stripe поверх зеркальных пар | 4 | Высокая скорость, быстрое восстановление и отказоустойчивость | Для хранения доступна половина суммарной ёмкости | Нагруженные серверы и базы данных |
RAID 10 может пережить отказ нескольких дисков, если они находятся в разных
зеркальных парах. Одновременный отказ обоих дисков одной пары приведёт к потере
массива.
Зачем нужен RAID
RAID применяют для решения трёх основных задач:
- отказоустойчивость — система продолжает работать после отказа допустимого
для выбранного уровня количества дисков; - производительность — операции могут выполняться параллельно на нескольких
дисках; - объединение ёмкости — несколько накопителей предоставляются системе как
единое логическое хранилище.
RAID 0 даёт производительность и объединение ёмкости, но не обеспечивает
отказоустойчивость.
Аппаратный и программный RAID
Аппаратный RAID управляется отдельным контроллером с собственным процессором,
памятью и иногда защищённым кешем записи. Он разгружает основной CPU, но создаёт
зависимость от контроллера и может усложнить восстановление при его отказе.
Программный RAID реализуется операционной системой, например Linux mdadm
или Windows Storage Spaces. Он использует ресурсы основной системы, но не
требует специализированного контроллера и часто проще переносится между
совместимыми машинами.
Существуют также firmware- и host-based-решения, которые используют возможности
материнской платы, но часть работы выполняют драйвером на основном CPU.
Что происходит при отказе
После отказа диска отказоустойчивый массив переходит в degraded-состояние и
продолжает работать с меньшим запасом надёжности. После замены накопителя
начинается rebuild — восстановление данных или чётности на новом диске.
Во время rebuild:
- растёт нагрузка на оставшиеся диски;
- может снижаться производительность;
- повышается риск потери массива при следующем отказе;
- большие массивы могут восстанавливаться продолжительное время.
Поэтому важны мониторинг состояния дисков, оповещения об отказах, наличие
совместимых запасных накопителей и регулярная проверка процедуры восстановления.
RAID не заменяет резервное копирование
RAID защищает прежде всего от отказа отдельных дисков. Он не защищает от:
- случайного удаления или перезаписи данных;
- логического повреждения файловой системы;
- вируса-шифровальщика;
- ошибок приложения или администратора;
- кражи или уничтожения сервера;
- отказа RAID-контроллера, питания или всего дата-центра.
Изменение или удаление данных обычно сразу отражается на всём массиве. Поэтому
RAID должен дополняться независимыми резервными копиями и проверкой их
восстановления.
Ответ на собеседовании
RAID объединяет несколько физических дисков в логический массив и в
зависимости от уровня даёт производительность, полезную ёмкость или
устойчивость к отказу дисков. RAID 0 использует striping без защиты, RAID 1
зеркалирует данные, RAID 5 и RAID 6 используют распределённую чётность, а
RAID 10 объединяет зеркалирование и striping. При выборе уровня я учитываю
профиль чтения и записи, допустимое время восстановления, полезную ёмкость и
число отказов, которые система должна выдержать. При этом RAID не является
резервной копией и не защищает от удаления, повреждения или шифрования данных.