Linux lsi raid driver

LSI MegaRAID SAS 8208XLP в Debian

Достался мне контроллер LSI 8208XLP. А вместе с ним — задача заставить эту чудо-железку работать под Linux. Никаких встроенных RAID-функций от него не требовалось, достаточно было просто увидеть подключённые к нему диски. Далее в дело вступил бы горячо любимый мной mdadm или чуть менее любимый lvm. Казалось бы, чего проще? Поткнул контроллер, подключил диски — и вперёд. Железка довольно старая, Debian уже не первый год существует, и уж наверное имеет в комплекте нужный драйвер.
Ну, почти.

Проблемы

Начнём с того, что 8208XLP — это софт-рейд. То есть массив средствами имеющегося на нём BIOS собирается, но работать может только после установки драйверов. Однако, в отличие от того же softraid в чипсетах intel, где объёдинённые в массив диски без драйвера отображаются как обычные, в данном случае диски не отображаются вообще. То есть использовать его как «просто ещё 8 SATA-портов» просто так не получится. Даже для того, чтобы увидеть одиночный подключённый диск, без драйвера никак.
И тут возникает проблема №2: на официальном сайте LSI драйвера есть под Windows-системы, под Red Hat 4, 5 и SLES с 9 по 11. Более того, пакет с драйверами использует DKMS, и согласно приложенной инструкции не ставится. Вероятно, помимо бинарников собвственно DKMS, драйвера и исходников текущего ядра для сборки требуется ещё и исходник драйвера. Утверждать это не буду — это предположение основывается на копании в древних ветках различных форумах и сообщениях об ошибках при установке. В инструкции про это ни слова, переписка на эту тему с саппортом LSI всё ещё в процессе.

Что было сделано, но не помогло

Коротко опишу пройденный путь:
Попытка «просто поставить Debian» и увидеть диски, как я уже говорил, провалилась. Установщик дисков не видит, после установки системы на отдельный носитель они, разумеется, волшебным образом появляться отказались.
ls -la /dev/sd* выводил ожидаемый системный хард и более ничего.
Попытка поставить CentOS 6.5 — та же история. Плюс к этому — драйвер с сайта не поставился.
Попытка заставить эту (уже проклинаемую) железку работать на SLES11 SP3 также провалилась. Загрузчик драйвер на флешке не увидел, без него дисков установщик не видит, после установки на отдельный хард — дисков нет, драйвер не ставится, та же история с DKMS и исходниками.
Единственный успешный момент — попытка установки CentOS 5.4. Её установщик скушал драйвер с флешки (megasr-13.15.1218.2009-1-rhel50-u4-all.img) и диски нашёл. Однако оставаться на столь древнем ядре желания особого не было. Одно порадовало — проблема технически решаема, устройство рабочее, решил копать дальше.

Читайте также:  Linux 1080p to 720p
Что в итоге помогло

В процессе раскопок не раз встречал упоминание о волшебно собранном megasr драйвере под Debian, но годы, прошедшие с момента обсуждения, ссылка успела умереть, и в том репозитории ничего подобного мне найти уже не удалось.
В процессе наткнулся на вот этот любопытный коммент в багтрекере hwraid: hwraid.le-vert.net/ticket/4#no2
Получается, что аналогичная карта (8208ELP) работает под драйвером mptsas, который есть в Debian. Осталось понять две вещи — «как это дело заставить работать» и «какой PCI ID у моего контроллера»?
Ответ на первый вопрос был найден в комментах вот тут: weeclemans.livejournal.com/12086.html?thread=310
Фактически достаточно добавить mptsas в /etc/modules и строку вида

echo "0x1000 0x. " >/sys/bus/pci/drivers/mptsas/new_id 

в /etc/rc.local
Устанавливать ОС на диски, подключённые к этому контроллеру, я не планировал изначально, так что если они определятся уже после запуска системы — этот вариант меня вполне устроит.
Теперь осталось только найти PCI ID для моей карты. К сожалению, lspci такой информации не выдал, поэтому нужные значения были взяты отсюда: mirror.szepe.net/siv/pcidevs.txt
Для 8208XLP подошёл вариант 0x1000 0x0055.
После перезагрузки диски, подключённые к контроллеру, корректно определились, даже их SMART доступен.

Источник

fxkraus / debian-install-megacli.md

Works well on Proxmox (based on Debian):

pve-manager/6.3-2/22f57405 (running kernel: 5.4.73-1-pve) (Debian 10.6/Buster)

3b:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08)

/opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll

All I can tell you is it works for me. Here’s my various config options and some sample MegaCli output.
When I first got this server I spent a good while making sure all it’s various firmwares were as recent as possible, including the RAID cards.
I’ve two controllers installed currently and they both work fine.

Читайте также:  Ios и linux различия

Note that the ‘Error Code’ for some MegaCli commands returns the parameter queried as opposed to an actuall error code. (eg AdpCount)

I do have modules loaded to allow passthrough of the cards into a VM, but I’m NOT actually doing that at the moment so Proxmox can use them. Not sure if that would make a difference though.

vfio vfio_iommu_type1 vfio_pci vfio_virqfd 

Additional GRUB kernel parameter in /etc/default/grub

My OS, Firmware & Driver versions.

# pveversion pve-manager/6.3-3/eee5f901 (running kernel: 5.4.78-2-pve) # megacli -h MegaCLI SAS RAID Management Tool Ver 8.07.14 Dec 16, 2013 # lspci -k -s 0e:00 0e:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05) Subsystem: IBM ServeRAID M5025 SAS/SATA Controller Kernel driver in use: megaraid_sas Kernel modules: megaraid_sas # lspci -k -s 09:00 09:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 03) Subsystem: IBM ServeRAID M5015 SAS/SATA Controller Kernel driver in use: megaraid_sas Kernel modules: megaraid_sas # modinfo megaraid_sas | head -n 4 filename: /lib/modules/5.4.78-2-pve/kernel/drivers/scsi/megaraid/megaraid_sas.ko description: Broadcom MegaRAID SAS Driver author: megaraidlinux.pdl@broadcom.com version: 07.713.01.00-rc1 # megacli -adpallinfo -aall | grep -i ver Product Name : ServeRAID M5015 SAS/SATA Controller Image Versions in Flash: FW Version : 2.130.403-6221 BIOS Version : 3.30.02.2_4.16.08.00_0x06060A05 Preboot CLI Version: 04.04-020:#%00009 WebBIOS Version : 6.0-54-e_50-Rel NVDATA Version : 2.09.03-0058 Boot Block Version : 2.02.00.00-0000 BOOT Version : 09.250.01.219 Product Name : ServeRAID M5025 SAS/SATA Controller Image Versions in Flash: FW Version : 2.130.403-6221 BIOS Version : 3.30.02.2_4.16.08.00_0x06060A05 Preboot CLI Version: 04.04-020:#%00009 WebBIOS Version : 6.0-54-e_50-Rel NVDATA Version : 2.09.03-0058 Boot Block Version : 2.02.00.00-0000 BOOT Version : 09.250.01.219 

A few sample MegaCli commands:

# megacli -adpcount Controller Count: 2. Exit Code: 0x02 # megacli -pdgetnum -aall Number of Physical Drives on Adapter 0: 8 Number of Physical Drives on Adapter 1: 48 Exit Code: 0x30 # megacli -ldpdinfo -aall | grep VD_ Name :VD_New_1 Name :VD_Old_1 Name :VD_Old_2 Name :VD_New_2 

I hope there’s something here that might give you an idea.
Good luck!

Читайте также:  Tp link ue200 linux driver

Источник

Оцените статью
Adblock
detector