At the place where I work, we run several SUSE Linux Enterprise Server (SLES) 9.3 VMs on VMWare ESX 3.0.2 servers. When running the LSI Logic driver that ships with SLES 9.3, if there is an interrupt to the disk the disks on the VM can go read-only. This interrupt can be due to SAN fail-over, high I/O, or other issues. This bug has been fixed and doesn't exist in SLES 10.1 or later.
Because of this, we have had the need to switch these from using the LSI Logic driver to use the BusLogic driver. The problem is that the original initial ram disk (initrd) is built with the LSI Logic driver and must be changed. I decided to document the steps required to do this. If you don't take these steps, the server will encounter a kernel panic on reboot after changing the VM to use the BusLogic HBA.
1) Update /etc/sysconfig/kernel with the BusLogic driver. Change the line that reads:
INITRD_MODULES="mptspi reiserfs dm_mod"
to read:
INITRD_MODULES="BusLogic reiserfs dm_mod"
2) Make a backup copy of the initrd file that is currently in use.
cp initrd-2.6.5.77-default initrd-2.6.5.77-default.preBusLogic
3) Rebuild the initial ram disk file to incorporate the changes made to /etc/sysconfig/kernel by running mkinitrd as root.
mkinitrd
Note: You can pass additional options to the mkinitrd command to use a specific kernel. By default it will build an initrd for all the kernel versions in /boot. This is sufficient for the servers in my environment.
4) Update the virtual machine to use the BusLogic HBA
Use the VirtualCenter Client
- Shutdown the VM
- Right click on the VM and select Edit Settings
- Select SCSI Controller 0 and click the Change Type button
- Select the BusLogic radio button and click OK
- Click OK to exit the Virtual Machine Properties
- Power on the VM
- Answer the "change the adapter type for scsi0:0 disk" by selecting the Yes radio button and clicking OK
Friday, March 7, 2008
Subscribe to:
Posts (Atom)