dynamic block storage should use virtio

Bug #588410 reported by Dustin Kirkland 
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Eucalyptus
Fix Released
Undecided
Ye Wen
eucalyptus (Ubuntu)
Fix Released
High
Dave Walker
Maverick
Fix Released
High
Dave Walker

Bug Description

This new bug is closely related to Bug #432154. Back in Karmic, we learned that libvirt/qemu-kvm had sort of broken hot add of scsi devices. This is somewhat intentional, from upstream qemu's perspective, as they content that scsi devices should not be hot-added any more. In fact, the newest libvirt (whose merge is pending for Maverick) will in fact deprecate this behavior.

At this point, Eucalyptus EBS volumes will be broken in Maverick.

Instead, Eucalyptus needs to learn to use the virtio driver model for hot-adding of block devices. As an added benefit, performance should increase significantly.

The pertinent code should be in:
 * ./node/handlers_kvm.c

Look for code like this:
  <disk type='block'><driver name='phy'/><source dev='%s'/><target dev='%s'/></disk>

The name='phy' should be changed to name='virtio'. It's possible that upstream may want to make this a configurable parameter, at which point we should be able to take their changes and set model=virtio in our configuration file.

In the mean time, we should make the change in Maverick, and start testing it ASAP.

Tags: patch
Changed in eucalyptus (Ubuntu):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Dave Walker (davewalker)
assignee: Dave Walker (davewalker) → nobody
milestone: none → maverick-alpha-2
assignee: nobody → Dave Walker (davewalker)
Revision history for this message
Scott Moser (smoser) wrote :

I'm attaching a patch that I tested, which generally seems to work. ebs attached volumes are then attached as virtio devices.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

Dave,

Could you go ahead an prepare a Eucalyptus upload for Maverick with this patch, and ask for sponsorship? Scott or I should be able to help with that.

Thanks.

Revision history for this message
Dmitrii Zagorodnov (dmitrii) wrote :

Dustin et al,

Just FYI, we're definitely adding virtio support, for both network and disk, in the next release (Ye is working on it right now). It will be an option that can be turned on by default on Ubuntu.

Dmitrii

Revision history for this message
Neil Soman (neilsoman) wrote :

Just as a warning, we have seen cases where enabling virtio for disks actually degrades performance when compared to scsi for dynamically attached disks. We will be enabling virtio for the next release, but it important (from the upstream's point of view) that it be an option.

Revision history for this message
Jamie Strandboge (jdstrand) wrote :

Maverick has libvirt 0.8.1 now, so support for dynamically attaching of scsi devices is deprecated.

Revision history for this message
Dustin Kirkland  (kirkland) wrote : Re: [Bug 588410] Re: dynamic block storage should use virtio

On Fri, Jun 18, 2010 at 7:50 AM, Jamie Strandboge <email address hidden> wrote:
> Maverick has libvirt 0.8.1 now, so support for dynamically attaching of
> scsi devices is deprecated.

Right, as Jamie says, any distro that includes libvirt >= 0.8.1 will
not work with scsi for hot attach. If upstream Eucalyptus would like
to see scsi supported for hot attach, they should perhaps open
(another) discussion with upstream libvirt and qemu.

Dustin

Revision history for this message
Neil Soman (neilsoman) wrote :

Yes, I understand. I was replying to this part: "As an added benefit, performance should increase significantly." This is not necessarily true, and in some cases, we have seen > 10% performance degradation by moving to virtio.

It will be a while until all distros move to libvirt 0.8.1. From an upstream point of view, we intend to support both options until dynamic attach for scsi is dropped from all distros that Eucalyptus runs on.

tags: added: patch
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package eucalyptus - 1.6.2+bzr1230-0ubuntu3

---------------
eucalyptus (1.6.2+bzr1230-0ubuntu3) maverick; urgency=low

  * debian/eucalyptus-java-common.links: Changed symlink for groovy, point to
    groovy.all.jar, making compatiable with groovy versions >1.7. (LP: #595421)
  * debian/control: Build Depend & Depend for eucalyptus-java-common on groovy
    >=1.7, as we now require that version or above.
  * debian/patches/22-ebs-virtio.patch: New patch, changing dynamic block storage
    to use virtio. (LP: #588410)
 -- Dave Walker (Daviey) <email address hidden> Tue, 29 Jun 2010 23:47:12 +0100

Changed in eucalyptus (Ubuntu Maverick):
status: Triaged → Fix Released
Changed in eucalyptus:
assignee: nobody → Ye Wen (wenye)
Changed in eucalyptus:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.