04 October 2007

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.

 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Aaron Tiensivu's Blog said:

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

05 October 07 at 11:27 AM
# Augusto Alvarez said:

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

10 October 07 at 6:11 PM
# Augusto Alvarez said:

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

10 October 07 at 6:30 PM
# cannedsoda said:

So boot with IDE.  Use SCSI for other drives?

23 October 07 at 12:04 AM
# jhoward said:

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.

25 October 07 at 10:24 PM
# ZenIT Blog said:

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

08 January 08 at 10:21 AM
# James O'Neill's blog said:

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

17 January 08 at 11:58 AM
# Jose Barreto's Blog said:

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

06 February 08 at 1:04 PM
# Jose Barreto's Blog said:

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

06 February 08 at 2:00 PM
# Jose Barreto's Blog said:

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

06 February 08 at 6:10 PM
# Jose Barreto's Blog said:

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

07 February 08 at 8:49 AM
# Jose Barreto's Blog said:

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

14 February 08 at 11:55 AM
# Jose Barreto's Blog said:

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

14 February 08 at 12:53 PM
# The World Simplified is a Virtual World said:

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

16 February 08 at 9:08 AM
# Jose Barreto's Blog said:

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

25 February 08 at 4:20 PM
# Adam Fazio said:

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

04 June 08 at 12:51 PM

Leave a Comment

Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.

(required) 
(optional)
(required) 
Page view tracker