Microsoft Hyper-V will not boot virtual SCSI devices

There is recent unexpected bad news from Microsoft concerning Hyper-V: Anthony F. Voellm, Principal Software Development Lead of Hyper-V at Microsoft, reveals in his corporate blog that the upcoming hypervisor (named Microsoft Hyper-V, formerly known as “Viridian”) will not boot from virtual SCSI hard drives:

“Each IDE controller can have two devices.  You can not boot from a SCSI controller.  This means an IDE disk will be required.  The boot disk will be IDE controller 0 Device 0.  If you want a CDROM it will consume an IDE device slot.” Source: MSDN Blog

The hypervisor that runs the virtual BIOS does not support booting from a SCSI controller, today, but it does support the following boot devices:

  • CD
  • IDE
  • Legacy Network Adapter
  • Floppy

The root reason is SCSI in a synthetic device and there is no VMBUS until after boot.

One might think that this shouldn’t be a problem, after all, the virtual machines can still boot from regular IDE-based virtual disks. So where’s the catch?

The main problem is related to the fact that in Virtual Server, virtual SCSI controllers have major performance benefits over virtual IDE controllers. In Virtual Server, it is recommended to attach the Virtual Disks to one or more SCSI controllers to improve disk input/output (I/O) performance. IDE is limited to one transaction at a time, regardless of whether the bus is physical or virtual. This means that a virtual machine with two virtual hard disks attached to the IDE adapter is limited to a single transaction for both disks. By contrast, a SCSI controllers allows for multiple simultaneous transactions, which provides better performance than disks attached to the IDE controllers.

This performance bottleneck of virtual IDE and technical limitations of virtual SCSI will oblige customers to have two virtual disks for each VM. A configuration hard to setup in P2V migration scenarios, and hard to manage on large scale deployments.

Note that since Hyper-V is still in Beta phase, all numbers are subject to change as are the behaviors. So there might be hope, after all…

Note: Under Virtual Server 2005, contrary to common sense, the performance of emulated SCSI controllers is slower than that of emulated IDE controllers.  The reason for this is that the SCSI controller is a lot more complicated to emulate than the IDE controller.  However, this changes once you have Virtual Machine Additions installed, because the Virtual Machine Additions install an accelerated SCSI driver.  Once this driver is installed the performance of the emulated SCSI controllers is significantly faster than emulated IDE controllers.


For more virtualization articles, please see the Petri Virtualization knowledgebase.