![](https://habrastorage.org/webt/jh/06/un/jh06un3cpda1hialv0k83c0zanq.png)
Организация единого дискового пространства — задача, легко решаемая с помощью аппаратного RAID-контроллера. Однако следует вначале ознакомиться с особенностями использования и управления таким контроллером. Об этом сегодня расскажем в нашей статье.
Надежность и скорость работы дисковых накопителей — вопрос, волнующий каждого системного администратора. Несмотря на заверения производителей о качестве собственных устройств — HDD и SSD продолжают выходить из строя в самое неподходящее время, теряя драгоценные данные. Технология S.M.A.R.T. в большинстве случаев дает возможность оценить «здоровье» накопителя, но это не гарантирует того, что диск будет продолжать беспроблемно работать.
Предсказать выход диска из строя со 100%-ой точностью невозможно, поэтому следует предусмотреть вариант, при котором это не станет проблемой или причиной остановки сервисов. Использование RAID-массивов решает эту задачу. Рассмотрим три основных подхода, применяющихся для этой задачи:
- Программный RAID — наименее затратный вариант, но и наименее производительный. Массив создается средствами операционной системы, вся нагрузка по обработке данных «ложится на плечи» центрального процессора.
- Интегрированный аппаратный RAID (еще его часто называют Fake-RAID) — микрочип, установленный на материнскую плату, который берет на себя часть функционала аппаратного RAID-контроллера, работая в паре с центральным процессором. Этот подход работает чуть быстрее, чем программный RAID, но надежность у такого массива оставляет желать лучшего.
- Аппаратный RAID — это отдельный контроллер с собственным процессором и кэширующей памятью, полностью забирающий на себя выполнение всех дисковых операций. Наиболее затратный, однако, самый производительный и надежный вариант для использования.
Давайте рассмотрим аппаратный RAID детально.
Внешний вид
Мы выбрали решения Adaptec от компании Microsemi. Это RAID-контроллеры, зарекомендовавшие себя удобством использования и высокой производительностью. Их мы устанавливаем, если наш клиент решил заказать сервер произвольной или фиксированной конфигурации.
![RAID-контроллеры форм-фактора PCI-E](https://habrastorage.org/webt/05/gz/mx/05gzmxwy2avoxpglj3wphp6rk7o.png)
Для подключения дисков используются специальные интерфейсные кабели. Со стороны контроллера используются разъемы SFF8643. Каждый кабель позволяет подключить до 4-х дисков SAS или SATA (в зависимости от модели). Помимо этого интерфейсный кабель еще имеет восьмипиновый разъем SFF-8485 для шины SGPIO, о назначении которой поговорим чуть позже.
Помимо самого RAID-контроллера существует еще два дополнительных устройства, позволяющих увеличить надежность:
- BBU (Battery Backup Unit) — модуль расширения с литий-ионной батареей, позволяющий поддерживать напряжение на энергозависимой микросхеме кэша. В случае внезапного обесточивания сервера его использование позволяет временно сохранить содержимое кэша, которое еще не было записано на диски.
Как только электропитание сервера будет восстановлено — содержимое кэша будет записано на диски в штатном режиме. По заявлениям производителя полностью заряженная батарея способна хранить данные кэша в течение 72 часов. - ZMCP (Zero-Maintenance Cache Protection) — специальный модуль расширения для RAID-контроллера, имеющий собственную энергонезависимую память и суперконденсатор. В случае возникновения сбоя сервера по электропитанию, суперконденсатор обеспечивает микросхемы электроэнергией, которой достаточно для записи содержимого энергозависимой памяти кэша в NAND-память ZMCP.
После того, как электропитание сервера восстановлено, содержимое кэша автоматически будет записано на диски. Именно такие модули устанавливаются в наши серверы с аппаратным RAID-контроллером и Cache Protection.
![ZMCP-модуль AFM-700 c суперконденсатором](https://habrastorage.org/webt/4d/4f/so/4d4fsotqhdxi5wp7rbm7wfk3ujo.png)
Это особенно важно, когда включен режим отложенной записи кэша (Writeback). При пропадании электропитания содержимое кэша не будет сброшено на диски, что приведет к потере данных и, как следствие, штатная работа дискового массива будет нарушена.
Технические характеристики
Температура
Вначале хотелось бы затронуть такую важную вещь, как температурный режим аппаратных RAID-контроллеров Adaptec. Все они оснащены небольшими пассивными радиаторами, что может вызвать ложное представление о небольшом тепловыделении.
Производитель контроллера приводит в качестве рекомендуемого значения воздушного потока — 200 LFM (linear feet per minute), что соответствует показателю 8,24 литра в секунду (или 1,02 метра в секунду). Рассчитаны такие контроллеры исключительно на установку в rackmount-корпусы, где такой воздушный поток создается скоростными штатными кулерами.
От 0°C до 40-55°C — рабочая температура большинства RAID-контроллеров Adaptec (в зависимости от наличия установленных модулей), рекомендованная производителем. Максимальная рабочая температура чипа составляет 100°C. Функционирование контроллера при повышенной температуре (более 85°C) может вывести его из строя. Удобства ради приводим под спойлером табличку рекомендуемых температур для разных серий контроллеров Adaptec.
Рекомендуемые температуры
Series 2 (2405, 2045, 2805) and 2405Q | 55°C без модулей |
Series 5 (5405, 5445, 5085, 5805, 51245, 51645, 52445) | 55°C без батарейного модуля, 40°C с батарейным модулем ABM-800 |
Series 5Z (5405Z, 5445Z, 5805Z, 5805ZQ) | 50°C с модулем ZMCP |
Series 5Q (5805Q) | 55°C без батарейного модуля, 40°C с батарейным модулем ABM-800 |
Series 6E (6405E, 6805E) | 55°C без модулей |
Series 6/6T (6405, 6445, 6805, 6405T, 6805T) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-600 |
Series 6Q (6805Q, 6805TQ) | 50°C с ZMCP модулем AFM-600 |
Series 7E (71605E) | 55°C без модулей |
Series 7 (7805, 71605, 71685, 78165, 72405) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-700 |
Series 7Q (7805Q, 71605Q) | 50°C с ZMCP модулем AFM-700 |
Series 8E (8405E, 8805E) | 55°C без модулей |
Series 8 (8405, 8805, 8885) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-700 |
Series 8Q (8885Q, 81605Z, 81605ZQ) | 50°C с ZMCP модулем AFM-700 |
Нашим клиентам не приходится беспокоиться о перегреве контроллеров, поскольку в наших дата-центрах поддерживается постоянный температурный режим, а сборка серверов произвольной конфигурации происходит с учетом особенностей таких комплектующих (о чем мы упоминали в нашей предыдущей статье).
Скорость работы
Для того чтобы продемонстрировать, как наличие аппаратного RAID-контроллера способствует увеличению скорости работы сервера, мы решили собрать тестовый стенд со следующей конфигурацией:
- CPU Intel Xeon E3-1230v5;
- RAM 16 Gb DDR4 2133 ECC;
- 4 HDD емкостью по 1 ТБ.
В качестве операционной системы будет установлена CentOS 7. Роль серверного приложения возьмет на себя 1C Bitrix24. Вначале мы соберем программный RAID-массив с помощью mdadm и измерим производительность с помощью встроенного в Bitrix24 теста. Каких-либо изменений или дополнительных настроек в систему специально не вносим — устанавливается демо-конфигурация с настройками по-умолчанию.
Затем в этот же стенд поставим RAID-контроллер Adaptec ASR 7805 с модулем защиты кэша AFM-700, подключим к нему эти же жесткие диски и выполним точно такое же тестирование.
С программным RAID
Несомненное преимущество программного RAID — простота использования. Массив в ОС Linux создается с помощью штатной утилиты mdadm. При установке операционной системы чаще всего создание массива предусмотрено непосредственно из установщика. В случае, когда такой возможности установщик не предоставляет, достаточно всего лишь перейти в соседнюю консоль с помощью сочетания клавиш Ctrl+Alt+F2 (где номер функциональной клавиши — это номер вызываемой tty).
Создать массив очень просто. Командой fdisk -l смотрим, какие диски присутствуют в системе. В нашем случае это 4 диска:
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
Проверяем, чтобы на дисках не было метаданных, например, от предыдущего массива:
mdadm --examine /dev/sda /dev/sdb /dev/sdc /dev/sdd
На всех 4-х дисках должно быть сообщение:
mdadm: No md superblock detected
В случае, если на одном или нескольких дисках будут метаданные, удалить их можно следующим образом (где sdX — требуемый диск):
mdadm --zero-superblock /dev/sdX
Создадим на каждом диске разделы для будущего массива c помощью fdisk. В качестве типа раздела следует указать fd (Linux RAID autodetect).
fdisk /dev/sdX
Собираем массив RAID 10 из созданных разделов с помощью команды:
mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Сразу после этого будет создан массив /dev/md0 и будет запущен процесс перестроения данных на дисках. Для отслеживания текущего статуса процесса введите:
cat /proc/mdstat
![](https://habrastorage.org/webt/-6/rj/s-/-6rjs-hsnkbkptvzdwgk7ardejy.png)
Пока процесс перестроения данных не будет завершен, скорость работы дискового массива будет снижена.
После установки операционной системы и Bitrix24 на созданный массив мы запустили стандартный тест и получили следующие результаты:
![](https://habrastorage.org/webt/bl/qa/7f/blqa7fjfrkqslyyzi3lexegdhnq.png)
С аппаратным RAID
Прежде чем сервер сможет использовать единое дисковое пространство RAID-массива, необходимо выполнить базовую настройку контроллера и логических дисков. Сделать это можно двумя способами:
- при помощи внутренней утилиты контроллера,
- утилитой из операционной системы.
Первый способ идеально подходит для первоначальной настройки. Вход в утилиту в режиме Legacy (режим для наших серверов по умолчанию) осуществляется с помощью сочетания клавиш CTRL + A при появлении уведомления в процессе инициализации POST.
![Внешний вид утилиты](https://habrastorage.org/webt/jt/gr/vz/jtgrvzns9e-ujvr-eaewomemay4.png)
Утилита позволяет не только управлять настройками контроллера, но и логическими устройствами. Инициализируем физические диски (вся информация на дисках при инициализации будет уничтожена) и создадим массив RAID-10 с помощью раздела Create Array. При создании система запросит желаемый размер страйпа, то есть размер блока данных за одну I/O-операцию:
- больший размер страйпа идеален для работы с файлами большого размера;
- меньший размер страйпа подойдет для обработки большого количества файлов небольшого размера.
Важно — размер страйпа задается только один раз (при создании массива) и это значение в дальнейшем изменить нельзя.
![Процесс создания массива](https://habrastorage.org/webt/qd/-f/mz/qd-fmzospnooj904jcb7f_tvyou.png)
Сразу после того, как контроллеру отдана команда создания массива, также, как и с программным RAID, начинается процесс перестроения данных на дисках. Этот процесс работает в фоновом режиме, при этом логический диск становится сразу доступен для BIOS. Производительность дисковой подсистемы будет также снижена до завершения процесса. В случае, если было создано несколько массивов, то необходимо определить загрузочный массив с помощью сочетания клавиш Ctrl + B.
После того как статус массива изменился на Optimal, мы установили Bitrix24 и провели точно такой же тест. Результат теста:
![](https://habrastorage.org/webt/zi/xv/z1/zixvz1s3z80ja5m4itotafjloiw.png)
Сразу становится понятно, что аппаратный RAID-контроллер ускоряет операции чтения и записи на дисковый носитель за счет использования кэша, что позволяет быстрее обрабатывать массовые обращения пользователей.
Управление контроллером
Непосредственно из операционной системы управление контроллером производится с помощью программного обеспечения, доступного для скачивания с сайта производителя. Доступны варианты для большинства операционных систем и гипервизоров:
- Debian,
- Ubuntu,
- Red Hat Linux,
- Fedora,
- SuSE Linux,
- FreeBSD,
- Solaris,
- Microsoft Windows,
- Citrix XenServer,
- VMware ESXi.
Пользователям других дистрибутивов Linux также доступны исходные коды драйверов. Помимо драйверов и консольной утилиты ARCCONF производитель также предлагает программу с графическим интерфейсом для удобного управления контроллером — maxView Storage Manager.
С помощью указанных утилит можно, не прерывая работу сервера, легко управлять логическими и физическими дисками. Также можно задействовать такой полезный функционал, как «подсветка диска». Мы уже упоминали про пятый кабель для подключения SGPIO — этот кабель подключается напрямую в бэкплейн (от англ. backplane — соединительная плата для накопителей сервера) и позволяет RAID-контроллеру полностью управлять световой индикацей каждого диска.
Следует помнить, что бэкплэйны поддерживают не только SGPIO, но и I2C. Переключение между этими режимами осуществляется чаще всего с помощью джамперов на самом бэкплэйне.
Каждому устройству, подключенному к аппаратному RAID-контроллеру Adaptec, присваивается идентификатор, состоящий из номера канала и номера физического диска. Номера каналов соответствуют номерам портов на контроллере.
Замена диска — штатная операция, впрочем, требующая однозначной идентификации. Если допустить ошибку при этой операции, можно потерять данные и прервать работу сервера. С аппаратным RAID-контроллером такая ошибка является редкостью.
Делается это очень просто:
- Запрашивается список подключенных дисков к контроллеру:
arcconf getconfig 1
- Находится диск, требующий замены, и записываются его «координаты» (параметр Reported Channel,Device(T:L)).
- Диск «подсвечивается» командой:
arcconf identify 1 device 0 0
Например, на платформах Supermicro штатная работа диска — зеленый или синий цвет, а «подсвеченный» диск будет моргать красным. Перепутать диски в этом случае невозможно, что позволит избежать ошибки из-за человеческого фактора.
![«Подсвеченный» диск](https://habrastorage.org/webt/qk/qm/qc/qkqmqcpu-l5vxdprey8jcidomcw.png)
Настройка кэширования
Теперь пару слов о вариантах работы кэша на запись. Вариант Write Through означает, что контроллер сообщает операционной системе об успешном выполнении операции записи только после того, как данные будут фактически записаны на диски. Это повышает надежность сохранности данных, но никак не увеличивает производительность.
Чтобы достичь максимальной скорости работы, необходимо использовать вариант Write Back. При такой схеме работы контроллер будет сообщать операционной системе об успешной IO-операции сразу после того, как данные поступят в кэш.
Важно — при использовании Write Back настоятельно рекомендуется использовать BBU или ZMCP-модуль, поскольку без него при внезапном отключении электричества часть данных может быть утеряна.
Настройка мониторинга
Вопрос мониторинга статуса работы оборудования и возможности оповещения стоит достаточно остро для любого системного администратора. Для того чтобы настроить «связку» из Zabbix и RAID-контроллера Adaptec рекомендуем воспользоваться перечисленными решениями.
Зачастую требуется отслеживать состояние контроллера напрямую из гипервизора, например, VMware ESXi. Задача решается с помощью установки CIM-провайдера с помощью инструкции Microsemi.
Прошивка
Необходимость прошивки RAID-контроллера возникает чаще всего для исправления выявленных производителем проблем с работой устройства. Несмотря на то, что прошивки доступны для самостоятельного обновления, к этой операции следует подойти очень ответственно, особенно если процедура выполняется на «боевой» системе.
Если нашему клиенту требуется сменить версию прошивки контроллера, то ему достаточно создать тикет в нашей панели управления. Системные инженеры выполнят перепрошивку RAID-контроллера до требуемой версии в указанное время и сделают это максимально корректно.
Важно — не следует выполнять перепрошивку самостоятельно, поскольку любая ошибка может привести к потере данных!
Заключение
Использование аппаратного RAID-контроллера оправдано в большинстве случаев, когда требуется высокая скорость и надежность работы дисковой подсистемы.
Системные инженеры Selectel бесплатно выполнят базовую настройку дискового массива на аппаратном RAID-контроллере при заказе сервера произвольной конфигурации. В случае, если потребуется дополнительная помощь с настройкой, мы будем рады помочь в рамках нашей услуги администрирования. Также мы подготовили для наших читателей небольшую памятку по командам утилиты arcconf.
Используете ли вы аппаратные RAID-контроллеры? Ждем вас в комментариях.