Ответ
Плюсы программного RAID (mdadm, ZFS, LVM):
- Экономия: Не требуется покупка специализированного аппаратного контроллера.
- Гибкость: Можно собрать массив из любых дисков, подключенных к системе, включая диски разных производителей и размеров (с ограничениями).
- Переносимость: Массив не привязан к конкретному контроллеру. Диски можно перенести на другую машину, и массив соберется, если в системе есть поддержка того же ПО (например,
mdadm). - Расширенные функции: Некоторые реализации (ZFS, Btrfs) предоставляют дополнительные возможности, такие как самовосстановление, контрольные суммы данных (checksumming) и снапшоты.
Минусы программного RAID:
- Нагрузка на CPU: Все вычисления четности (для RAID 5/6) и управление массивом ложатся на центральный процессор, что может быть критично для высоконагруженных систем.
- Производительность: Как правило, медленнее аппаратного решения с собственным процессором и кэшем, особенно для операций записи в RAID 5/6.
- Отсутствие аппаратного кэша: Нет защищенного от сбоев питания (BBU) кэша записи, который есть в серьезных аппаратных контроллерах. Это может приводить к значительным потерям производительности при записи, если не использовать журналируемые ФС или другие методы.
- Сложность диагностики: Сбои могут быть сложнее для диагностики, так как они связаны с драйверами и ПО ядра, а не с отдельным аппаратным устройством.
Пример создания RAID 1 (зеркало) с помощью mdadm:
# Создание массива
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb /dev/sdc
# Создание файловой системы
mkfs.ext4 /dev/md0
# Монтирование
mount /dev/md0 /mnt/raid