Tome's Land of IT

IT Notes from the Powertoe – Tome Tanasovski

Migrating a VM SCSI controller from Bus Logic to LSI Logic

This is an old topic, but it’s something that I get asked all the time from my colleagues who are trying to make heads or tails of the options available for SCSI controllers in virtual machines running on a VMWare ESX server.  For the most part when you create a new vm, and specify the proper guest OS it will provide you with the most suitable controller, but that is not always the case.  When creating a VM from scratch the client will choose the most recent controller that your OS has a driver for on the installation media i.e. Windows 2000 will be installed with a bus logic driver because that driver is on the CD.  The bus logic driver, however, is not the optimal driver for any Windows OS.

The following is the recommended best practice for SCSI controllers:

ESX 3.X – All versions of Windows should use the LSI Logic controller

ESX 4

Windows 2000, XP, 2003 – LSI Logic Parallel

Windows 2008 – LSI Logic SAS

With the latest patch, ESX 4 update 1, you can now use a VMWare Paravirtual controller (PVSCSI) on your boot disk.  If you are using a SAN or iSCSI you will definitely want to explore this option.  The benchmarks being released are showing huge gains.  According to page 6 of the VSphere Performance Enhancements White Paper, “Efficiency gains from PVSCSI can result in additional 2X CPU savings for Fibre Channel (FC), up to 30 percent CPU savings for iSCSI”.  If you are using DAS you will see no benefit.  I currently have a post in the VMWare forum to find out if there are any gains with NFS storage.  I’ll make sure to update this post/site once I have an answer.

In the meantime this post will focus on converting your VMs to the LSILogic controller.  This is not as easy as it should be, but it’s not that difficult once you understand the steps.  The problem is that if you change your primary adapter from one type to another you will blue screen on boot up since the driver is not yet installed.  The below procedure will add a second SCSI adapter of the type you are changing to so that the driver will be installed when you change the primary controller.  Unfortunately, you cannot add the second controller through VCenter so you will need to modify the .vmx file directly.  This can easily be done through vcenter by browsing the datastore to the file and using download and upload to modify the contents.  You can just as easily do this through a shell, but for our purposes I will document it the VCenter way in case you are using ESXi or don’t have credentials to log in to a shell.

  1. Log onto the VM with your credentials or the local administrator.  This is done to ensure that you have a profile available on the system.  Later you will lose network connectivity so you need to make sure you can logon first.
  2. If this is a Windows 2000 server you will also need to upload the lsi logic driver to the system at this time.  You can get this driver on the lsi website.  The driver you are looking for is LSI20320.
  3. Shut down the VM
  4. Browse the data store and folder where the vmx file is located for the VM.
  5. Download the vmx file and make an extra copy of the file somewhere on your system for backup purposes.
  6. Edit the vmx file in word pad or some other text editor besides notepad:
    1. Find the line:
      1. scsi0.present = “true”
    2. Add two lines underneath that one (location doesn’t matter, but it’s easier to find it later if you always use the same place):
      1. scsi1.present = “true”
      2. scsi1.virtualdev = “lsilogic”
    3. Save the .vmx file.
  7. Upload the saved file over the existing one for the VM.
  8. Power on the VM and log on.
  9. If this is Windows 2000 you will be asked to supply the driver.  Otherwise the driver will be installed automatically.
  10. Shut down the VM
  11. Through Vcenter edit the settings of the VM and highlight your SCSI controller that is currently configured for buslogic.
    1. Click Change Type and specify the appropriate LSI logic controller type for the OS (as discussed above).
  12. Power on the VM and log in.
    1. If prompted to change the disks say yes to all prompts.  Sometimes you will not notice this popup, but you will see a message if you look at the summary page of the VM in VCenter.
  13. Shut down the VM again.
  14. Download the vmx file again and remove the two lines you added in step 6-2.  Save, and upload the vmx file.
  15. Power on one final time.
Advertisements

One response to “Migrating a VM SCSI controller from Bus Logic to LSI Logic

  1. Zoly November 9, 2014 at 12:50 am

    This post is quite old, but I just recently run into the same situation with a windows 2000 server on a VMWare ESX server, and found an alternative solution without the need to modify the vmx file.

    After step 2, I opened the Device manager and under the SCSI section used the “Update driver” option to upload the downloaded driver files into the operating system. After that, I followed step 10,11, 12. In this stage, the system having the inf file in the system cache and knowing where can find the drivers, it boots normally and it’s just a formality to go through step 9 for a finishing touch.

    Hope this still helps somebody.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: