Boot from SCSI in Virtual Server vs. Boot from IDE in Windows Server virtualization (Hyper-V)


Update: 26th June 2008. Hyper-V RTM is now available. This post refers to pre-release software for Hyper-V, formerly known as Windows Server virtualization. However, there is no difference in the guidance provided in this post.

Following on from my post last week, I had some good questions asking about the difference between the SCSI adapter in Virtual Server and the SCSI controller in Windows Server virtualization. In Virtual Server 2005, the best practice is to configure Virtual Machines to boot from the SCSI adapter for performance reasons. This is not the case in Windows Server virtualization. This post takes a dip into explaining why.

To start with, let’s take a look at the SCSI adapter in Virtual Server

  • In common with all devices in Virtual Server, including the IDE controller, the SCSI adapter is an emulated device. It emulates a real-world counterpart, a parallel SCSI adapter with the Adaptec 7870 chip set. It can support up to 7 storage devices (Virtual Hard Disks).

    You may be asking – if both the IDE controller and the SCSI adapter in Virtual Server are emulated, why should the SCSI adapter perform better. The answer is simple. It’s due to a driver that is installed when the Virtual Machine Additions are installed inside a virtual machine. We have an optimized driver – if you take a look under device manager in a VM after the additions are installed, you’ll see that the driver is msvmscsi.sys.

  • The SCSI adapter in Virtual Server has another advantage over the IDE controller in Virtual Server. The IDE controller can have VHDs connected up to 127GB in size. The SCSI adapter can have VHDs connected up to 2040GB in size (8GB short of 2TB). The IDE controller is not 48-bit LBA aware (http://www.48bitlba.com/) so the maximum theoretical capacity (if we allowed it) would be 137.4GB. The SCSI adapter has a boot BIOS which enables virtual machines to boot directly from VHDs connected to it after control has been passed from the virtual machine BIOS.

So keeping that in mind, let’s compare and contrast the above with the IDE and SCSI controllers in Windows Server virtualization.

  • The IDE controller remains an emulated device, but with a couple of differences to the IDE controller in Virtual Server. It is now 48-bit LBA capable . This allows you to connect large VHDs up to 2040GB to it. The second difference is a filter driver we insert into the storage stack inside the guest which effectively bypasses the emulation path for IDE, making it much higher performance. In fact, for I/O paths, the IDE controller with the filter driver performs equivalently to the SCSI controller in Windows Server virtualization. You can also attach pass-through disk storage to IDE, which was not possible in Virtual Server.

  • The SCSI controller in Windows Server virtualization is not an emulated device. Instead, it is a “synthetic” device. It has no real world counterpart – it is a virtual controller. You can’t go to a store to buy one for a physical machine. The controller allows up to 255 VHDs or pass-through storage devices per controller, while gaining improved performance over the emulated adapter in virtual server. (The why for this is architectural – I’ll cover that another day). As a “synthetic” device, it is not currently possible to boot directly from it until an operating system is available with a loader capable of reading from the drives/device. BIOS changes would also required. That’s definitely a topic for another day though.

 

Hopefully that gives a bit more insight into why the best practice recommendation of booting from SCSI in Virtual Server no longer applies in Windows Server virtualization and why booting from IDE does not incur the same performance overhead as in Virtual Server.

Cheers,
John.


Comments (23)

  1. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  2. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  3. Anonymous says:

    Technorati Tags: Microsoft , Windows , Virtualization , Hyper-V Ultimamente è nato in rete un dibattito

  4. Anonymous says:

    Like some of you know, whenever you created a superiority new Virtual Machine with Virtual Server 2005

  5. Anonymous says:

    (updated 9/26/08) My current project involves being the only dedicated technical resource on the Virtualization

  6. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  7. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  8. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  9. Anonymous says:

    Very informative post here. The most interesting for WSv/Viridian/Hypervisor in Windows 2008, is the fact that the IDE virtual driver is "better" than the SCSI counterpart, which is the opposite of what the case was with Virtual Server. The part of

  10. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  11. Christophe – move the SCSI system drive on VS to IDE 0:0 on Hyper-V. It will "just work" and boot fine.

    Thanks,

    John.

  12. Cannedsoda – you can only boot from IDE. For data, use either IDE or SCSI. For I/O path throughput, it will make no difference.

    Cheers,

    John.

  13. Anonymous says:

    (updated 6/4/08) My current project involves being the only dedicated technical resource on the Virtualization

  14. Anonymous says:

    Windows Server 2008’s Hyper-V has been in public beta for a while now and lots of people have been experimenting

  15. Anonymous says:

    Like some of you know, whenever you created a new Virtual Machine with Virtual Server 2005 and selected

  16. Anonymous says:

    I had a really nice mail over new year from an influential IT Pros with more than a passing interest

  17. Anonymous says:

    Virtualization terminology Before we start, I wanted to define some terms commonly used in virtualization

  18. Anonymous says:

    Jose Barreto’s wrote a great article on the Storage Options for Windows Server 2008 and Hyper-V. Its

  19. Carlos – you have no choice but to use the IDE controller in Hyper-V as it’s not possible to boot from a VHD connected to a SCSI drive in a VM configuration.

    Thanks,

    John.

  20. cannedsoda says:

    So boot with IDE.  Use SCSI for other drives?

  21. Martin Volkart says:

    Ok, ok, but there seem to be some propblem when migrating Virtual Machines from a Virtual Server to Hyper-V. SCVMM2007 can’t access to Hyper-V and VMM2008 don0’t realy work. When you change the disk to the ide-controller, there is a blue screen, Virtual machine isn’t startung about a Controller issue! any idea?

    thx

  22. christophe says:

    Very interesting article, but i’ve a question…How do we do now to migrate VM created with en SCSI system drive to Hyper-V ?

    if someone knows the answer, it would be glad to share 😀

  23. Carlos Martins says:

    Hi John,

    I’ve been studing Hyper-v and I didn’t find any real advantage for using IDE Controller. In most cases SCSI Controller is the better option. When YOU use IDE Controllers?

    Tks,

    Carlos