І знову про CentOS Linux 7
Зібрання нотаток про інформаційні технології
Вже після того, як раніше був описаний спосіб використання драйвера cciss для контролера HPSmart Array P400i у процесі встановленняCentOS 7.2, мені вдалося з'ясувати трохи більше інформації щодо підтримки старих моделей контролерів Smart Array у RHEL/CentOS v7. У нотатках до випуску 7.0 Release Notes компанією RedHat було оголошено про зняття з підтримкиcciss -сумісних контролерів. З цього моменту підтримка контролерів Smart Array забезпечувалася лише драйверомhpsa.
Список контролерів, що знімаються з підтримки, виявився таким:
- Smart Array 5300
- Smart Array 5i
- Smart Array 532
- Smart Array 5312
- Smart Array 641
- Smart Array 642
- Smart Array 6400
- Smart Array 6400 EM
- Smart Array 6i
- Smart Array P600
- Smart Array P800
- Smart Array P400
- Smart Array P400i
- Smart Array E200i
- Smart Array E200
- Smart Array E500
- Smart Array P700M
У цьому ж документі можна знайти інформацію про те, що в драйверіhpsa, який прийшов у RHEL/CentOS v7 на замінуcciss, є підтримка додаткового параметраhpsa_allow_any=1, що дозволяє драйверу виконувати виявлення старих контролерів Smart Array.
Якщо hpsa_allow_any option is used, the hpsa driver дозволяє використовувати PCI-ідентифікації, які не розташовуються в driver's pci-id table. Це, карти, які помітили, коли ця функція використовується, вона не підтримується в Red Hat Enterprise Linux 7
Відштовхуючись від можливості використання цього параметра, наведу конкретний приклад того, як немаючи на руках драйвераcciss, але маючи лише драйверhpsa, що поставляється у складі CentOS 7, змусити побачити в процесі установки ОС диски, підключені до контролераHP Smart Array P400i.
У процесі завантаження інсталятора ОС дочекаємося появи завантажувального меню і натиснемо будь-яку клавішу, щоб зупинити автоматичне завантаження (наприклад, можна натиснути клавішу стрілок праворуч/ліворуч).

Після того, як таймер внизу екрана зупиниться, виберемо в меню пунктInstall CentOS 7 і натиснітьTab. Внизу екрана з'явиться рядок параметрів завантаження системи, до якого через пробіл ми повинні додати текст:hpsa.hpsa_allow_any=1

Після цього тиснемоEnter для продовження завантаження системи, і коли програма установки CentOS 7 буде завантажена, зможемо переконатися в тому, що RAID-том з контролера HP Smart Array P400i тепер видно і на нього можна встановити ОС.

Після того, як установка CentOS 7 буде виконана, потрібно буде виконати перезавантаження сервера. У процесі завантаження встановленої системи нам знову потрібно буде передати необхідний параметр драйверуhpsa, що завантажується, інакше встановлена система просто не завантажиться. Для цього, під час завантаження, при появі завантажувального меню, виберемо основне ядро, що завантажується, і натиснемо кнопку «e » для виправлення параметрів завантаження

Відкриється екран редагування запису завантажувача, перемістимося в самий низ, знайдемо рядок, що починається зlinux16 /vmlinuz …, перемістимося курсором до кінця цього рядка, зробимо пробіл і допишемо параметр завантаженняhpsa.hpsa_allow_any=1.

Після цього натисніть клавішіCtrl + x і система успішно завантажиться завдяки доданому параметру.
Для того, щоб завантажувач системи використовував вищеописаний параметр драйвера при кожному завантаженні, додамо його в кінець файлу /etc/modprobe.d/modprobe.conf з подальшим перескладання образаinitramfs
Перебираємо образinitramfs. Для цього спочатку зробимо резервну копію поточного образа, що використовується, потім викличемо команду його збірки (з урахуванням доданого нами файлу modprobe.conf для поточної версії ядра):
Після того, як остання команда відпрацює, перезавантажуємо сервер і переконуємось у тому, що система успішно завантажується із зазначеним нами параметром:
Тепер постає резонне питання. Який драйвер правильніше використовувати? В інтернеті мені не вдалося знайти явних свідчень за або проти використанняcciss абоhpsa для старих контролерів Smart Array. Хіба що варто згадати про коротку замітку Goodbye cciss, welcome hpsa! , де можна знайти думку про те, що у певному сценарії новий драйверhpsa працює стабільніше. Правда в тій замітці йдеться про більш новий контролерP410, який нативно підтримуєтьсяhpsa, тому підвищення стабільності в даному випадку напевно показник закономірний.
hpsa - це SCSI драйвер і створювані ним в системі дискові пристрої називаються як /dev/sd[*] , тоді якcciss - це блоковий драйвер і в Він створює блокові пристрої /dev/cciss/c[*]d[*] . Більш подібну інформацію про технічні відмінності між драйверами cciss і hpsa можна знайти в документі 'hpsa' – A SCSI-based Linux driver for HP Smart Array Controllers, 2nd edition (c02677069.pdf) .
В рамках однієї системи можуть співіснувати обидва драйвери (наприклад, коли в одному сервері використовується і новий і старийконтролер Smart Array одночасно), але, можливо, при цьому потрібно буде врахувати ряд нюансів щодо правильного налаштування параметрів завантаження цих драйверів, про що детально розписано на сторінці HP Smart Array CCISS driver .
На даний момент я поки зупинився на тій думці, що для застарілих моделей контролерів Smart Array, перерахованих у раніше позначеному списку, все ж таки правильнішим буде використання драйвера cciss, і перехід на hpsa варто виконувати тільки в тому випадку, якщо на це є вагомі причини . Було б цікаво почути аргументовані заперечення з цього приводу.
Додаткові джерела інформації :