![](https://habrastorage.org/files/7c4/ed2/034/7c4ed203491948b5a650e2c4fd331916.jpg)
Дисковый массив с нотками ретро.
На плечах RAID-контроллеров лежит ответственная задача — управление дисковой подсистемой, то есть всей информацией, хранимой на сервере. Именно они отвечают за работу дисковых массивов, позволяя повысить производительность сервера или надёжность хранения данных. Поэтому давайте поговорим о RAID-контроллерах, установленных в серверы вендоров «большой тройки», об их возможностях и особенностях.
Что такое RAID-контроллер?
Чаще всего задачи, выполняемые серверами, требуют высокой скорости чтения/записи данных и/или необходимость сохранить данные при выходе из строя самих накопителей. Поэтому установка в сервер единственного диска редко имеет смысл. Этот вариант можно рассматривать, если нагрузка будет совсем небольшой, а сохранность данных не волнует вовсе. Да и объёмы информации, которыми оперируют серверы, часто требуют куда больше пространства для хранения, чем может дать один диск. А чем больше накопителей, тем выше вероятность выхода из строя, особенно при высокой нагрузке.
Проблемы производительности и отказоустойчивости дисковой подсистемы решаются с помощью создания массивов: логических структур, в которые с помощью RAID-контроллера объединяется несколько накопителей — жёстких дисков и SSD. При этом массив выглядит для системы единым пространством для хранения данных.
Существует много видов массивов, отличающихся производительностью, надёжностью хранения данных и минимально необходимым количеством дисков. Выбор конкретного вида зависит от ваших задач и потребностей, а также от возможностей самого RAID-контроллера.
RAID-контроллеры делятся на:
- Программные. Вся нагрузка по управлению массивом ложится на центральный процессор. Наименее производительное и отказоустойчивое решение.
- Интегрированные. Встроены в материнскую плату. Отдельный чип выполняет часть задач по управлению, но всё же тоже задействует центральный процессор. Интегрированные контроллеры могут иметь собственную кэш-память. По сравнению с программными, поддерживают больше видов массивов, работают куда быстрее и надёжнее.
- Аппаратные. Выполнены в виде плат расширения или отдельных устройств, размещаемых вне сервера (внешние, или мостовые контроллеры). Оснащены собственным процессором, выполняющим все необходимые вычисления, и, как правило, кэш-памятью. Модульные контроллеры могут иметь внешние и внутренние порты:
- Внутренние — предназначены для подключения накопителей, установленных в сам сервер.
- Внешние — используются для подключения внешних дисковых хранилищ.
Даже если ваш сервер оснащён интегрированным RAID-контроллером, то при необходимости можно будет установить и модульный, если имеющихся возможностей, скорости и надёжности вам будет недостаточно.
Если на борту RAID-контроллера есть кэш-память, то она может использоваться для промежуточного хранения записываемых или считываемых данных. Это позволяет эффективнее управлять операциями ввода/вывода.
Чтобы при сбое питания не потерять данные, находящиеся в кэше, используется два разных подхода:
- контроллер оснащается собственной батарейкой (BBU — Battery Backup Unit), позволяющей хранить данные в памяти до 3 суток,
- либо дополнительной флэш-памятью, питаемой от ёмкого конденсатора. При сбое питания в неё выгружает содержимое кэша. А поскольку флэш-память потребляет очень мало энергии, то и данные в ней сохраняются месяцами. Обратите внимание, что флэш-память используется только при сбое питания.
И как только сервер заработает, контроллер первым делом скидывает содержимое кэша на диск. При наличии батарейки можно активировать режим WriteBack: при записи на диск контроллер сообщит об успешном выполнении операции уже в тот момент, когда данные попадут в кэш, а затем в «фоновом» режиме скинет их на диски. Поэтому другие процессы проведут меньше времени в ожидании подтверждения.
Некоторые RAID-контроллеры позволяют увеличить объём кэш-памяти и установить батарейку, если они её не имеют. Чем больше размер кэша контроллера, тем выше производительность RAID-массивов.
RAID-контроллеры в серверах «большой тройки»
Чтобы не превращать статью в археологическое исследование, ограничимся только теми контроллерами, что используются в поколениях серверов начиная с 2009-2010:
HP: Gen7, Gen8, Gen9
Dell: Gen11, Gen12, Gen13
IBM: M3, M4, M5
Дальше идут громоздкие и скучные таблицы.
HP
![](https://habrastorage.org/files/e71/c50/d31/e71c50d31fea4e2eb4ba28601d2f2bb0.png)
![](https://habrastorage.org/files/122/bca/1c7/122bca1c725346a294d1d59292ff68a8.png)
Dell
![](https://habrastorage.org/files/416/10c/e3c/41610ce3c9a342aea7555b066cad2abf.png)
![](https://habrastorage.org/files/e2b/0ed/281/e2b0ed2819b34cb0b582fecb3e007292.png)
IBM
![](https://habrastorage.org/files/f74/ee8/94c/f74ee894c12b41009fa02c17361a9d25.png)
![](https://habrastorage.org/files/181/d5f/d43/181d5fd43a024839b5034defc9b31a7c.png)
Большинство RAID-контроллеров HP и Dell изначально поддерживают все основные виды массивов. У IBM таких моделей — по пальцам пересчитать, почти в каждом случае придётся устанавливать на контроллер 1-2 дополнительных модуля апгрейда, что не слишком удобно.
Другая интересная особенность RAID-контроллеров IBM — большинство из них применяются в серверах нескольких поколений. У HP и Dell другая склонность — с выпуском нового поколения серверов они обычно выпускают и новое поколение контроллеров.
Как выбрать подходящий контроллер?
Если вы решили апгрейдить сервер и озаботились выбором RAID-контроллера, то в первую очередь исходите из ваших потребностей.
Вам нужна хорошая производительность, но не волнует сохранность данных? Или хочется с небольшими усилиями повысить отказоустойчивость, поступившись скоростью? Понадобился простенький веб-сервер для нужд разработки? Достаточно выбрать недорогой контроллер и создать RAID 0 или 1. Можно даже без кэш-памяти.
При желании сэкономить на накопителях или выжать всю возможную ёмкость из имеющихся, рассмотрите вариант с RAID 5 или 50. Это вполне годное решение для создания архивов. Для таких задач достаточно взять контроллер с поддержкой нужного вида RAID и кэш-памятью среднего объёма.
При создании высокоскоростных и надёжных массивов под базы данных, или больших хранилищ под файловые серверы, нужны производительные контроллеры с большим объёмом кэш-памяти и высокой пропускной способностью. Это тот случай, когда экономия на одном устройстве может свести на нет все ваши усилия.