terça-feira, 4 de janeiro de 2011

Changing modules load order on Debian Linux

On a server farm is common to see servers attached to storage (directly or through SAN).

I'm playing with vmware server 2 (free edition) and I have some storages on my farm. The first idea is all the virtual machines have to be stored on storages. So if I have some hardware failure, another machine will be able to play the "orphan" VM.

All servers have SCSI controllers and HBA (Qlogic and Emulex). Everything is working fine, but for any reason(doesn't matter the reason) the machine needs to be rebooted. At the load of the kernel the HBA is loaded first, and after it, the SCSI controller. So the LUN's of the storage will be sda and we'll have problem on mouting root filesystem. First idea change root on lilo (or grub), works until you create more LUN's and the problem come back again.

So we have four good ways to solve it, here they go:

1- Use label on your partitions and configure the system to mount the labels.
Comments: Not a very good idea, will work on fstab but may not on mouting root file system

2- Use udev to change the sda to be the local hard disk.
Comments: Works, but some tools, like fdisk, consults the kernel directly so you will have a inconsistence of informations. On two serves no problem, but on a farm it is very dangerous. And udev needs the model of the disk, if you change the disk, you'll be in trouble.

3- Use UUID
Comments: UUID are not user friendly, but until this moment is the best choice. But I need something that will work on all my servers, and if i need change disks between them, I want to have no problems.

4- Change your initrd. Wait, don't be scared. It's easier and will be the best option. (at least for me).

  • Enter on the initrd config directory
  • cd /etc/initramfs-tools
  • edit the modules file:
  • vi (gotcha!) modules
  • And add the modules in order. Ex:

aic7xxx
lpfc

Don't forget to dpkg-reconfigure your-kernel

And now you can reboot your machine without problems.

PS: It's old, but gold ;)
PS2: Sorry about my poor english

Nenhum comentário: