Дисковый массив с нотками ретро.
На плечах 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
Dell
IBM
Большинство RAID-контроллеров HP и Dell изначально поддерживают все основные виды массивов. У IBM таких моделей — по пальцам пересчитать, почти в каждом случае придётся устанавливать на контроллер 1-2 дополнительных модуля апгрейда, что не слишком удобно.
Другая интересная особенность RAID-контроллеров IBM — большинство из них применяются в серверах нескольких поколений. У HP и Dell другая склонность — с выпуском нового поколения серверов они обычно выпускают и новое поколение контроллеров.
Как выбрать подходящий контроллер?
Если вы решили апгрейдить сервер и озаботились выбором RAID-контроллера, то в первую очередь исходите из ваших потребностей.
Вам нужна хорошая производительность, но не волнует сохранность данных? Или хочется с небольшими усилиями повысить отказоустойчивость, поступившись скоростью? Понадобился простенький веб-сервер для нужд разработки? Достаточно выбрать недорогой контроллер и создать RAID 0 или 1. Можно даже без кэш-памяти.
При желании сэкономить на накопителях или выжать всю возможную ёмкость из имеющихся, рассмотрите вариант с RAID 5 или 50. Это вполне годное решение для создания архивов. Для таких задач достаточно взять контроллер с поддержкой нужного вида RAID и кэш-памятью среднего объёма.
При создании высокоскоростных и надёжных массивов под базы данных, или больших хранилищ под файловые серверы, нужны производительные контроллеры с большим объёмом кэш-памяти и высокой пропускной способностью. Это тот случай, когда экономия на одном устройстве может свести на нет все ваши усилия.