Вкратце: если вы используете низкоуровневую карту RAID (без кеша), сделайте себе одолжение и переключитесь на программный RAID. Если используется карта среднего и высокого класса (с BBU или NVRAM), то аппаратное обеспечение часто (но не всегда! См. Ниже) является хорошим выбором.
Длинный ответ: когда вычислительная мощность была ограничена, аппаратные карты RAID имели существенное преимущество в расчете четности / синдрома разгрузки для задействованных схем RAID (RAID 3/4/5, RAID6, ecc).
Однако с постоянно растущей производительностью ЦП это преимущество в основном исчезло: даже старый процессор моего ноутбука (Core i5 M 520, поколение Westmere) имеет производительность XOR более 4 ГБ / с и производительность RAID-6 с синдромом выше 3 ГБ / с по сравнению с одно ядро исполнения .
Преимущество, которое поддерживает аппаратный RAID сегодня, заключается в наличии защищенного кэш-памяти DRAM в виде BBU или NVRAM. Этот защищенный кэш обеспечивает очень низкую задержку для произвольного доступа к записи (и чтения, которые обращаются) и в основном преобразует случайные записи в последовательные записи. RAID-контроллер без такого кеша практически бесполезен . Более того, некоторые низкоуровневые RAID-контроллеры не только не имеют кеша, но и принудительно отключают частный кэш DRAM диска, что приводит к более низкой производительности, чем вообще без платы RAID. Примером являются карты DELL PERC H200 и H300: если новая прошивка не изменила это, они полностью отключают частный кэш диска (и его нельзя повторно включить, пока диски подключены к RAID-контроллеру). Сделай одолжение себе и сделайникогда, никогда не покупайте такие контроллеры. Хотя даже контроллеры более высокого уровня часто отключают частный кэш диска, они, по крайней мере, имеют собственный защищенный кэш, что делает частный кэш жесткого диска (но не SSD!) Несколько избыточным.
Это еще не конец. Даже способные контроллеры (те, которые имеют кэш BBU или NVRAM) могут давать противоречивые результаты при использовании с SSD, в основном потому, что SSD действительно нужен быстрый частный кэш для эффективного программирования / стирания страниц FLASH. И хотя некоторые (большинство?) Контроллеры позволяют вам повторно включить частный кэш диска (например, PERC H700 / 710 / 710P позволяют пользователю повторно включить его), если этот частный кэш не защищен от записи, вы рискуете потерять данные в случае потери мощности. Точное поведение в действительности зависит от контроллера и встроенного программного обеспечения (например, на DELL S6 / i с 256 МБ кэш-памяти WB и включенным кешем диска , у меня не было потерь при многократном плановом тестировании потери мощности), что вызывает неопределенность и большую озабоченность.
Программные RAID с открытым исходным кодом, с другой стороны, являются гораздо более управляемыми зверями - их программное обеспечение не включено в проприетарную прошивку и имеет четко определенные шаблоны метаданных и поведение. Программный RAID делает (правильное) предположение, что частный кэш-память DRAM диска не защищен, но в то же время он критичен для приемлемой производительности - поэтому они обычно не отключают его, а используют команды ATA FLUSH / FUA, чтобы быть уверенными, что критические Данные земли на стабильном хранении. Поскольку они часто работают от портов SATA, подключенных к чипсету SB, их пропускная способность очень хорошая, а поддержка драйверов - отличная.
Однако при использовании с механическими жесткими дисками синхронизированная схема произвольного доступа для записи (например, базы данных, виртуальные машины) сильно пострадает по сравнению с аппаратным RAID-контроллером с кэш-памятью WB. С другой стороны, при использовании с корпоративными твердотельными накопителями (т. Е. С защищенным от потери данных кэшем записи) программный RAID часто превосходит и дает результаты даже выше, чем достижимые с помощью аппаратных карт RAID. Тем не менее, вы должны помнить, что потребительские твердотельные накопители (читай: с незащищенным кешем обратной записи), хотя они очень хороши при чтении и асинхронной записи, обеспечивают очень низкий IOPS в синхронизированных рабочих нагрузках записи.
Также учтите, что программные RAID не все созданы равными. Программный RAID-массив Windows имеет плохую репутацию, с точки зрения производительности, и даже объем дискового пространства не слишком отличается. Linux MD Raid исключительно быстр и универсален, но стек ввода-вывода Linux состоит из нескольких независимых частей, которые необходимо тщательно понять, чтобы извлечь максимальную производительность. RAID с четностью ZFS (ZRAID) чрезвычайно продвинут, но, если он не настроен правильно, может дать вам очень плохие IOP; зеркалирование + чередование, с другой стороны, работает довольно хорошо. В любом случае, для работы с синхронной записью (ZIL) требуется быстрое устройство SLOG.
Нижняя линия:
- если ваши рабочие нагрузки не синхронизированы с случайной записью, вам не нужна карта RAID
- если вам нужна карта RAID, не покупайте контроллер RAID без кеша WB
- если вы планируете использовать программное обеспечение SSD, предпочтительным является RAID, но имейте в виду, что для высокосинхронизированных случайных записей вам нужен SSD с защитой от потери мощности (т. е. Intel S4600, Samsung PM / SM863 и т. д.). Для чистой производительности лучшим выбором, вероятно, является Linux MD Raid, но в настоящее время я обычно использую чередующиеся зеркала ZFS. Если вы не можете позволить себе потерять половину пространства из-за зеркал и вам нужны расширенные функции ZFS, используйте ZRAID, но внимательно подумайте о настройке VDEV.
- если вам, даже при использовании SSD, действительно нужна аппаратная карта RAID, используйте SSD с кэшем, защищенным от записи (Micron M500 / 550/600 имеет частичную защиту - не совсем достаточно, но лучше, чем ничего), в то время как Intel DC и S серии полностью теряют мощность защита, и то же самое можно сказать для корпоративных твердотельных накопителей Samsung)
- Если вам нужен RAID6 и вы будете использовать обычные механические жесткие диски, подумайте о покупке быстрой карты RAID с 512 МБ (или более) кэш-памяти WB. RAID6 имеет высокую производительность записи, и кэш WB надлежащего размера может по крайней мере обеспечить быстрое промежуточное хранилище для небольших синхронных записей (например, журнал файловой системы).
- Если вам нужен RAID6 с жесткими дисками, но вы не можете / не хотите покупать аппаратную карту RAID, внимательно подумайте о настройке программного RAID. Например, возможное решение для Linux MD Raid состоит в использовании двух массивов: небольшого массива RAID10 для записей журнала / журналов БД и массива RAID6 для необработанного хранилища (в качестве файлового сервера). С другой стороны, программный RAID5 / 6 с твердотельными накопителями очень быстр, поэтому вам, вероятно, не понадобится карта RAID для установки полностью твердотельных накопителей.