Программный RAID в Linux в бюджетном секторе решений задач хранения важных данных является более надежным чем модные ныне SATA контроллеры, и более дешевым чем дорогие SCSI и пр. аппаратные RAID. Таким образом программный Linux RAID является золотой серединой в решении по хранению данных в RAID и лучшим по соотношению цена/качество.
Linux RAID vs SATA RAID.
Чем же так плох SATA RAID, который сейчас идет в поставке практически всех современных материнских плат? Да тем что он в большинстве бюджетных решений не является аппаратным RAID-ом, а является так называемым «программно-зависимым». Подробнее:
То есть управление данными происходит не на уровне самого «железа», а на уровне микрокода BIOS через драйвер ОС. От сюда и такие понятия как «драйвера» на SATA-RAID (без которых RAID видится как отдельные диски), от сюда и проблемы.
Во-первых это несовместимость – сгорела материнская плата, и ищи такую же плату целиком (не контроллер), нужна идентичная плата чтобы добыть свои ценные данные. Хорошо если они еще выпускаются, а если это произойдет лет через 5-10? Linux RAID лишен этой проблемы, т.к. находится на таком уровне абстракции, что ваш RAID будет «виден» на любой материнской плате и на любом дистрибутиве Linux (в разумных рамках естественно).
Во-вторых SATA RAID это доверие своих данных какому-то чужому микрокоду, который мало того что не свободен от ошибок, так еще и закрыт. В отличии от Linux RAID, открытого, испытанного уже десятилетиями и вылизанного тысячами программистов, с доступными спецификациями и исходными кодами. Плюс – беспроблемное свободное перемещение дисковых томов на различные материнские платы, долгосрочная поддержка (всем сообществом, а не отдельным конечным вендором), не требует аппаратных апгрейдов, легкость обновления, и многое другое. Подробнее:
Linux RAID vs SATA и пр. аппаратный RAID
Тут в плане быстродействия конечно же выиграет аппаратный RAID. Минусы опять же – если летит контроллер, то нужен именно такой же, на котором стояли жесткие диски. Второй минус для бюджетных решений – высокая цена хорошего аппаратного RAID.
Итак, мы выбрали Linux Software RAID в качестве решения для хранения данных. Теперь опишем пример создания RAID с «зеркалированием» (mirror) на программном Linux RAID-е.
Шаг 1. cfdisk /fdisk
Мы имеем 2 жестких диска которые будут у нас представлять RAID1 с зеркалированием данных. Создаем на этих дисках разделы к примеру sdb1 и sdc1 одинакового размера под будущий RAID. Для этих целей можно использовать к примеру утилиты fdisk или cfdisk. Выставляем типы этих партиций как FD (Linux raid autodetection)
Шаг 2. Создаем RAID1
Создаем RAID1 из этих разделов:
mdadm --create /dev/md0 --verbose -a -l 1 -n 2 /dev/sdb1 /dev/sdc1
Для этого нам как видно понадобилась утилита mdadm, подробнее о параметрах можно прочесть в справке по этой утилите. В данной команде -l 1 это тип RAID ( RAID1 зеркало), -n 2 – количество дисков в массиве.
Шаг 3. Детали о созданном RAID
Посмотреть детали о только что созданном RAID можно командой:
mdadm --detail /dev/md0