Понадобилось на днях установить старенький CentOS 7 на старенький ProLiant 360e Gen8. Задача уже экзотическая, но мало ли - вдруг кому пригодится, Maintenance updates для 7-ки обещаны еще до июня 2024, и gen8 еще могут послужить. Сперва опишу проблему, далее будет пошаговое руководство.
Intro
Итак, имеем CentOS/RHEL 7 и ProLiant Gen8 с Dynamic Smart Array B120i/B320i SATA RAID Controller. B120i и B320i очень похожи, отличаются количеством поддерживаемых физических дисков (6 и 8 соответственно) и опциональной поддержкой SAS дисков с дополнительной лицензией в B320i. Контроллеры являются "облегченными" и без проприетарного драйвера не работают, в отличие от полноценных Smart Array (без Dynamic). Руководство применимо ко всем моделям с этим контроллером.
Проблема описана на в статье Is the HP Smart Array B320i, B140i, B120i, B110i controller supported by RHEL or RHELOSP сайте Red Hat. В руководстве по установке можно посмотреть подробнее о параметрах загрузчика.
Issue: Some of the HP Gen8 and Gen9 systems are shipping with either a Smart Array B320i, B140i, B120i, B110i, or other Bxxxi controller that requires a closed source driver to make RAID functionality available to the OS.
Выхода здесь два:
переключить контроллер в SATA режим и собрать массив программно средствами ОС;
предоставить драйвер программе установки ОС.
Подробности есть в документе HP Dynamic Smart Array B120i and B320i Controllers - Driver Support and Configuration на сайте HPE, здесь же есть о переключении режима контроллера. Документация - QuickSpecs и User Guide для Dynamic Smart Array Controllers.
Нам же интересен 2-й вариант. Контроллер есть, уже куплен - надо использовать! Из очевидных плюсов - простота, никаких дополнительных шагов для загрузчика, boot раздела и т.д.
Предупреждение: не забывайте делать архив машины, т.к. при выходе контроллера из строя данные с дисков будет получить сложнее, чем с программного массива.
Пошаговое руководство.
Загрузить тот самый драйвер. HPE Dynamic Smart Array B120i/B320i SATA RAID Controller Driver for Red Hat Enterprise Linux 7 (64-bit).
Перейти в папку с загруженным файлом, распаковать его и изменить расширение на iso:
$ gunzip hpvsa-1.2.16-136.rhel7u8.x86_64.dd.gz && \
mv hpvsa-1.2.16-136.rhel7u8.x86_64.dd hpvsa-1.2.16-136.rhel7u8.x86_64.isoСоздать образ флоппи-диска (шаг можно пропустить при наличии физического доступа к машине, записав iso-файл на отформатированный в fat32 USB-накопитель):
$ mkfs.msdos -C hpvsa.rhel7.floppy.img 1440
$ mkdir /tmp/hpvsa.rhel7.floppy
$ sudo mount -o loop hpvsa.rhel7.floppy.img /tmp/hpvsa.rhel7.floppy
$ sudo cp hpvsa-1.2.16-136.rhel7u8.x86_64.iso /tmp/hpvsa.rhel7.floppy
$ sudo umount /tmp/hpvsa.rhel7.floppy
$ rm -r /tmp/hpvsa.rhel7.floppyПодключаем в iLO Remote Console образы дистрибутива и флоппи-диска с драйвером, загружаемся с загрузочного диска, F11 Boot Menu.
В параметры загрузчика дописываем (по нажатию Tab):
(Прим.: в 5 и 6 было linux dd blacklist=ahci с добавлением vmalloc=384M для 32-битных ядер)modprobe.blacklist=ahci inst.dd
Выбираем драйвер:
Продолжаем обычную установку.
На этом все. К сожалению, не удалось найти действующий репозиторий с модулями ядра, чтобы автоматически поддерживать его актуальность. Последний в репозиториях - старый rhel7u5.
Дополнение
Для работы с контроллером и массивом непосредственно из ОС можно установить программу Command Line Smart Storage Administrator - ssacli.
Импортируем публичный ключ HPE:
rpm --import https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub
Создаем репозиторий
vim /etc/yum.repos.d/mcp.repo
[mcp] name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/centos/$releasever/$basearch/current/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcpУстановка:
yum install amsd ssacli
Использование:
ssacli help
BobbieZi
Этот раид контроллер и так и так программный. что на уровне ОС ради делать, что на уровне драйвера. только во втором случае программный слой будет скрыт от ОС.
В таком случае, делать раид средствами ОС даже предпочтительнее, т.к. обладает бОльшей управляемость и предсказуемостью в случае выхода из строя диска
Demosfen
Очень верно подмечено. Плюс залипнуть на одной версии ядра. Мне в свое время хватило печального опыта с подобными контроллерами, которые достались на серваках с боевыми системами, когда нужен был апгрейд, но фигушки.
Хотя справедливости ради, стоит отметить, что в том же EL8 редхаты выпилили поддержку кучи аппаратных контроллеров, которые еще вполне себе актуальны и пользуются спросом на вторичке типа lsi 2x08.
imichael Автор
Обратите внимание, драйвер rhel7u8 спокойно работает в текущей CentOS 7.9. И в 6-ке конкретно на этой машине пройдено не мало апдейтов, все ровно. Благо, она в парке всего одна с таким адаптером. Год лежала без дела, дождалась, нашлось ей применение. )
На грабли можно наступить и с отказом вполне надежных настоящих аппаратных и Адаптеков и LSI — через это тоже проходили.
Выпилили старье — и не надо держаться за это «наследие». Оно тянет назад. Нет смысла поддерживать его во всем многообразии везде и всюду. Ядро будет несоразмерно распухшим. Старому железу — старые ОС, 7-ка еще до 2024 поддерживается.
imichael Автор
Да, он по сути программный. Однако управляется нормально, причем единообразно и в M$ Окнах, и в Linux, и в ESXi (который, будучи энтерпрайзным продуктом, чисто программные массивы не поддерживает вообще). Об управлении из ОС есть раздел в статье.
После замены диска контроллер сам соберет массив без каких либо дополнительных настроек со стороны ОС.
О потенциальной опасности этого (как, впрочем, и любого другого с железной составляющей) контроллера против программного массива есть предупреждение. Но надо помнить, что идеальная надежность — штука почти не достижимая и надо понимать, против каких рисков какие меры следует применять.