yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #25300
[Bug 1399706] [NEW] QoS on Juno with RBD backend dont work for VM
Public bug reported:
Hi,
QoS for volume work with RBD but not for VM. So to solve this problem, you need to pass quota:disk_write_bytes_sec etc... extra parameters to VM.
At ligne 645/usr/lib/python2.7/site-
packages/nova/virt/libvirt/imagebackend.py add this at the end on the
«libvirt_info» method add this extra code :
Ex:
def libvirt_info(self, disk_bus, disk_dev, device_type, cache_mode,
extra_specs, hypervisor_version):
...
if auth_enabled:
info.auth_secret_type = 'ceph'
info.auth_secret_uuid = CONF.libvirt.rbd_secret_uuid
+ tune_items = ['disk_read_bytes_sec', 'disk_read_iops_sec',
+ 'disk_write_bytes_sec', 'disk_write_iops_sec',
+ 'disk_total_bytes_sec', 'disk_total_iops_sec']
+ for key, value in extra_specs.iteritems():
+ scope = key.split(':')
+ if len(scope) > 1 and scope[0] == 'quota':
+ if scope[1] in tune_items:
+ setattr(info, scope[1], value)
return info
after this patch, if you «dumpxml VM ID» with virsh you got the missing
<iotune>...</iotune>
Ex:
virsh # dumpxml 2
...
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<auth username='cinder'>
<secret type='ceph' uuid='9b576159-d403-4b1a-8aa2-f18cdcaf4f4b'/>
</auth>
<source protocol='rbd' name='vms/20c50d63-5af1-41a6-bc68-f0a6b9ffd715_disk'>
<host name='192.168.76.120' port='6789'/>
<host name='192.168.76.121' port='6789'/>
<host name='192.168.76.122' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<iotune>
<total_bytes_sec>83886080</total_bytes_sec>
<total_iops_sec>15000</total_iops_sec>
</iotune>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
...
Voilà...
Ivan
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1399706
Title:
QoS on Juno with RBD backend dont work for VM
Status in OpenStack Compute (Nova):
New
Bug description:
Hi,
QoS for volume work with RBD but not for VM. So to solve this problem, you need to pass quota:disk_write_bytes_sec etc... extra parameters to VM.
At ligne 645/usr/lib/python2.7/site-
packages/nova/virt/libvirt/imagebackend.py add this at the end on the
«libvirt_info» method add this extra code :
Ex:
def libvirt_info(self, disk_bus, disk_dev, device_type, cache_mode,
extra_specs, hypervisor_version):
...
if auth_enabled:
info.auth_secret_type = 'ceph'
info.auth_secret_uuid = CONF.libvirt.rbd_secret_uuid
+ tune_items = ['disk_read_bytes_sec', 'disk_read_iops_sec',
+ 'disk_write_bytes_sec', 'disk_write_iops_sec',
+ 'disk_total_bytes_sec', 'disk_total_iops_sec']
+ for key, value in extra_specs.iteritems():
+ scope = key.split(':')
+ if len(scope) > 1 and scope[0] == 'quota':
+ if scope[1] in tune_items:
+ setattr(info, scope[1], value)
return info
after this patch, if you «dumpxml VM ID» with virsh you got the
missing <iotune>...</iotune>
Ex:
virsh # dumpxml 2
...
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<auth username='cinder'>
<secret type='ceph' uuid='9b576159-d403-4b1a-8aa2-f18cdcaf4f4b'/>
</auth>
<source protocol='rbd' name='vms/20c50d63-5af1-41a6-bc68-f0a6b9ffd715_disk'>
<host name='192.168.76.120' port='6789'/>
<host name='192.168.76.121' port='6789'/>
<host name='192.168.76.122' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<iotune>
<total_bytes_sec>83886080</total_bytes_sec>
<total_iops_sec>15000</total_iops_sec>
</iotune>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
...
Voilà...
Ivan
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1399706/+subscriptions
Follow ups
References