Hardware RAID vs Software RAID
Hardware RAID
Аппаратный RAID сейчас имеется практические на любом сервере и даже некоторые материнские платы для обычных ПК поддерживают работу с RAID массивами. Также RAID контроллеры можно приобрести отдельно для установки на материнскую плату. Вообще аппаратный RAID хорош тем, что он имеет свой чип для обработки данных. Таким образом снижается нагрузка на процессор и память, а более дорогие модели так и вообще имеют дополнительную flash память для кэширования данных, что ускоряет операции чтения и записи. Встречаются и контроллеры с батареей на случай, если во время записи произойдет сбой в подаче электроэнергии. Тогда батарея позволит корректно завершить транзакцию и предотвратит ошибки как в работе самого массива, так и в файловой системе.
Проблемой контроллеров является то, что метаданные хранятся и обрабатываются разными способами и соответственно, если контроллер выйдет из строя, то надо его заменить точно таким же контроллером иначе потеря данных гарантирована. Также раньше у контроллеров была такая проблема, что если отключил шины с дисков, то надо было их обратно подключать в той же последовательности, что было до отключения. Не в курсе есть ли такая проблема у современных контроллеров, но проверять не охота. Очень сложно бывает найти точно такие же контроллеры поскольку они обычно работают дольше гарантийного срока и пока они поломаются их просто успевают снять с продажи. Потому если брать их, то сразу две и более штук. Другой проблемой является их проприетарность. Например, контроллеры PERC наверняка нигде не заведутся, кроме как на серверах DELL.
Software RAID
Программный RAID создает нагрузку на процессор и на память так, что ее производительность напрямую зависит от мощности сервера. От резкого отключения электроэнергии имеется защита в виде журналов и при следующем запуске не отработанные до конца транзакции удаляются. Можно ускорить их работу за счет кэширования на flash или SSD. Отличительной особенностью является не зависимость от операционной системы и железа т.е. можно спокойно переустановить ОС, отсканировать наличие пулов на старых дисках и примонтировать как обычный раздел (тоже самое если сдохнет контроллер дисков). Лидерами, насколько я знаю, являются ZFS, BTRFS и Microsoft Storage Spaces. Позволяют держать до нескольких экзобайтов данных и не имеют ограничения по количеству дисков.
BTRFS или ZFS
Сразу скажу, что опыта использования Microsoft Storage Spaces нет, но можете почитать здесь. Если сравнить надежность BTRFS и ZFS, то они примерно на одинаковом уровне. Управление тоже примерно одинаковое (замена дисков, snapshots и т.д.). По затратности ресурсов BTRFS сильно опережает ZFS, поскольку практически не потребляет память, когда как ZFS отжирает львиную долю, зато работает в разы быстрее. Также есть у BTRFS проблемы с дедупликацией и ребалансировкой данных. Во-первых, дедупликация выполняется с помощью сторонней утилиты. Во-вторых, если у вас хранятся терабайты данных, то ребалансировка может занять несколько дней, а без нее освободить пространство после удаления данных не получится. Изначально я выбрал именно BTRFS по соображениям экономии ресурсов и сильно пожалел. Сейчас уже потихоньку переползаю на ZFS.
Заключение
Аппаратный RAID настраивается на этапе настройки сервера, а операционная система устанавливается прямо на RAID и получается один логический диск. Программный же RAID требует дополнительный диск под операционную систему, из под которой и будет настраиваться. Также выяснили, что аппаратный RAID работает быстрее при меньших затратах системных ресурсов в отличии от программной реализации. Для серверов внутреннего назначения вроде файловых серверов, хостинга для внутренних ресурсов и т.д. я выбираю программный RAID как наиболее безопасный и менее геморройный. Если это облако или какой-то стек виртуальных машин с высокой доступностью, то я бы сделал ставки именно на аппаратный RAID, поскольку там особо спасать ничего не надо, а быстродействие только приветствуется.