If there is anyone among you getting bored during christmas holiday, I am open for any tips or help in the following.
Taking advice to (upgrade…) to H700 from H200 to have easier import en RAID possibilities, I bought a card on ebay. And guess what, it already arrived. Very quickly transport from Germany. Why I need help? Well, in the last similar project some years ago I exchanged a hardware controller by a H200 which wasn’t supported natively by Almalinux 8. The pre-installed almalinux8 system fell in rescue mode dos. And by the luck of great support by a man known here as Jlehtone, in the end I managed to import a driver from an usb stick by very skilled chrooting technique by Jlehtone and others. Luckily I was able to restore my pre installed almalinux system in the end.
All of that, happened it the above linked post.
So, experiencing that, I am more careful now. The retired linux machine has a modest task here locally and I do not look forward to a mess that will create several problems in chain. So I decided to wait with trying the new H700 perc. Right now the old H200 in initialising a new RAID and that takes 10 days or so… I thought chances are better I let that finish before trying to import this raid at the H700 card.
Most important is to exchange this H700 the easiest way with the least of trouble possible.
The way I was thinking (not a pro Linux admin) I have certain possibilities:
I could take out the H200 ,build in the H700 with all wires, build all drives over and startup the server. Most expected result will be I think , it falls in rescue mode and I need to run a Almalinux 8 live usb, chroot in the drives (if possible) and give a command from there to install the H700 driver on this pre-installed system.
I could insert the H700 on a free PCI board, build new drives in, and reboot the server. Hopefully it can still start the os by the old H200 controller and I would be able to open a bash terminal and give commands to install the right H700 driver. This way I would be able to use the Epel repo which is installed on the system.
The truth, I have no idea if it is possible to boot a linux system with 2 RAID controllers, would they get in a major conflict with each other, performing and try like this?
I exchange the cards, run live usb almalinux 8, install the epel repo in the live session and I chroot in the server system to install the driver from there? This idea could only work if Almalinux 8 live can see the drives on the H700, in other words, it already sees the drives before installation of the driver.
So if I understood right, I should first update to 8.5 to have the H700 driver available?
Is there anyone having experience with this migration of a H700 card on a pre-installed system alma 8 system? I thought to ask this before opening this rabbithole…
Most important what is the right command to install teh H700 driver and remove the H200 afterwards? I know I need to give a lspci -nn command to list the id of the card first. Again all tips welcome.
Thanks, have good coming days in what is left of this year.
Thanks Steve, very sharp. clumsy me. Yes, it is 8.10 indeed. So no updates that could mean any change then. Other questions remain. Is 8.10 with or without a native driver in the kernel? What is the best procedure…
Most drivers are kernel modules, rather than in the vmlinuz-file. The kernel detects device ID and loads the module that claims to support that ID. (There can be more than one, e.g. both nouveau and NVidia’s proprietary support NVidia’s GPUs, and one driver usually supports multiple IDs.)
If system can boot without device, then it is ok to load the driver later, on need.
However, if kernel needs the driver in order to complete the boot, then it has to be in the initramfs image.
The kernel and initramfs files are typically in the /boot/. The BIOS/UEFI loads bootloader, and the bootloader loads these two files. The initramfs is a compressed filesystem from which kernel loads initial set of modules. (How BIOS&bootloader can load from RAID array that kernel cannot trivially see is part of the deep magic that I occasionally wonder.)
The initramfs is generated when a kernel is installed. Only used/necessary modules are packed into it by dracut. (The installer has special initramfs that has all included drivers. When that is not enough, one has to resort to “Driver Update Disks”.)
You have installed (latest) kernel on system that does not have H700. Hence, its initramfs does not have driver for H700, unless one of the already included drivers supports also the H700.
The initramfs can be recreated with dracut and told to include the kernel module that supports H700. Alas, I don’t know the syntax for that.
Well jlehtone, thanks anyway again for this explanation for which you took some effort to compose it. I am a bit disappointed there is no H700 driver in the kernel. That changes everything and I wonder it is worth the trouble.
I tried a search for "centos 8 dracut install perc H700 controller"just to find a similar forum item, but no impossible to find a manual or so.
Would be great if you could preinstall a driver on the system before exchanging the card on the board., so it could find the right driver after reboot and bootup.
Science-fiction and wishfull thinking talk I suppose.
I really need a detailed procedure to try this succesfully, otherwise I will end up with a corrupt o.s. I will wait with this for now. Thanks again. wish good days for everyone.
The answer to that is “yes”.
One can install additional package that brings kernel module. That does not require device in the system.
One can force the module to be added to the initramfs. That does not require device in the system either. As said, I have not had a need to learn that syntax (yet).
That is not a problem. Example:
# lspci -nn | grep SAS
3b:00.0 RAID bus controller [0104]: Broadcom / LSI MegaRAID Tri-Mode SAS3508 [1000:0016] (rev 01)
3c:00.0 RAID bus controller [0104]: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] [1000:005d] (rev 02)
# cat /sys/class/block/sd?/device/model | sort -u
PERC H730P Mini
PERC H840 Adp
That is Dell server with internal disks connected to the H730P and external MD “shelf” on the H840.
In other words, adding the H700, loading its driver, installing an another version of kernel, checking whether module gets into initramfs of that kernel and loads when that kernel is booted ought to be relatively easy and safe approach.
Wow Jlehtone, you keep surprising me obviously. Thanks again for this outstanding insight. I had no idea that was possible. That way I could leave the os. running on the source it is, and do an experiment to add the “new” H700 on an empty pci slot and see if I can manage to get it to work safely. I don’t know about the length for the mini sas cables yet when setup on a different position, but I can fix that.
First care is to find the syntax for your idea. I will try to find some resource. I know there is ofcourse the official documentation. But I have difficulty in translate those in practical commands in order. By the way, seen in your listing the megaraid_sas driver for both of these cards and your explanation, does it mean this one also supports the H700 card? How would I add a driver to initramfs? I can’t really remember we did this 2 years ago, I need to read in to the initramfs first, how that works. However, would I still need that if I connect the H700 as a second card? That way I still have to o.s. and all repo’s available right? Maybe I ask ignorant questions here, sorry if so…