Chris, 

We ran into this a few months ago and didn't want to use the 'Other PV' option 
either, so I created a couple of really simple patches to provide a Windows 
2008 R2 Virtio OS template. You can apply these these on top of the 4.0 source, 
and then recompile the rpms or debs. 


Patches are attached. 


- Si 

----- Original Message -----

From: "Chris Sears" <chris.x.se...@sungard.com> 
To: cloudstack-dev@incubator.apache.org 
Sent: Sunday, January 13, 2013 8:58:28 PM 
Subject: Enabling Virtio for Windows guests on KVM 

Greetings, 

A question came up a couple days ago on the users list about provisioning 
Windows VMs with Virtio enabled on KVM: 
http://markmail.org/thread/g42vr63dolaa56yv 

The workaround mentioned was to set the OS Type to "Other PV". This seems 
non-optimal. Is there a better solution? Or is this a bug/enhancement? 

Looking around at the source, isGuestPVEnabled() seems to have a hard coded 
list of guest OS which will get virtio provisioned by default. No Windows 
OS's are in the list, presumably because the virtio drivers don't ship 
natively with Windows. Is there some other way to control what type of 
virtual NIC and disk controller hardware gets provisioned on a per-VM or 
per-template basis? 

Regards, 

- Chris 

*** incubator-cloudstack/setup/db/templates.kvm.sql	2012-10-15 10:35:25.817521222 -0500
--- ../cloudstackrepo_old/incubator-cloudstack/setup/db/templates.kvm.sql	2012-10-15 10:01:23.735521112 -0500
***************
*** 62,67 ****
--- 62,68 ----
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows 7', 'Windows 7');
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows Server 2003', 'Windows Server 2003');
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows Server 2008', 'Windows Server 2008');
+ INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows Server 2008 R2 (virtio)', 'Windows Server 2008 R2 (virtio)');
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows 2000 SP4', 'Windows 2000 SP4');
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows Vista', 'Windows Vista');
  INSERT INTO `cloud`.`guest_os` (category_id, name, display_name) VALUES (7, 'Windows XP SP2', 'Windows XP SP2');
*** incubator-cloudstack/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java	2012-10-15 10:35:25.541521324 -0500
--- ../cloudstackrepo_old/incubator-cloudstack/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java	2012-10-15 10:01:22.005592979 -0500
***************
*** 3883,3888 ****
--- 3882,3888 ----
                  || guestOSName.startsWith("Red Hat Enterprise Linux 5.4")
                  || guestOSName.startsWith("Red Hat Enterprise Linux 5.5")
                  || guestOSName.startsWith("Red Hat Enterprise Linux 6")
+                 || guestOS.startsWith("Windows Server 2008 R2 (virtio)")
                  || guestOS.startsWith("Debian GNU/Linux")
                  || guestOSName.startsWith("Other PV")) {
              return true;

Reply via email to