Hyper-V will not boot virtual SCSI devices

An unexpected bad news closes the year: from its corporate blog Anthony F. Voellm, Principal Software Development Lead of Hyper-V at Microsoft, reveals that the upcoming hypervisor will not boot from virtual SCSI hard drives.

There are two types of disk controllers that Hyper-V supports: SCSI and IDE. There are two IDE controllers and four SCSI controllers available.

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…

It wouldn’t be a problem if only virtual SCSI would provide no benefits over virtual IDE. But it’s quite the opposite:

…The IDE controller implements a well-known IDE controller and this means there is extra processing before the I/O is sent to the disk. This processing occurs in vmwp.exe (a user mode process that exists for each started VM. More on this in a later post). Once the IDE emulation is complete the I/O is sent into the Root Partition’s I/O Stack. I/O completion requires a trip back to vmwp.exe.

The SCSI controller is not emulated. The SCSI controller uses VMBUS (Virtual Machine BUS. More on this in a later post). The I/O’s pass from the Child (aka Guest) Partition to the root over VMBUS and enter the I/O stack. You can already see one less process/machine context switch is required because vmwp.exe does not get invoked. Once and I/O completes its completion is sent over VMBUS…

So 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.