On 05/30/2013 05:47 PM, Wei ZHOU wrote:
Hi,
I would like to merge disk_io_stat branch into master.
If nobody object, I will merge into master in 48 hours.
First of all, awesome work! I created the ticket but never came around
implementing it.
I took a quick look at the code and saw this in LibvirtComputingResource:
for (DiskDef disk : disks) {
DomainBlockStats blockStats = dm.blockStats(disk.getDiskLabel());
String path = disk.getDiskPath(); // for example, path =
/mnt/pool_uuid/disk_path/
String diskPath = null;
if (path != null) {
..
}
This will break with disks like RBD block devices running on Ceph. Since
this are virtual disks they don't have a "path" element.
Their XML in libvirt:
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source protocol='rbd' name='rbd/mydisk:rbd_cache=1'>
<host name='monitor.domain.lan' port='6789'/>
</source>
<auth username='libvirt'>
<secret type='ceph' uuid='<uuid>'/>
</auth>
<target dev='vda' bus='virtio'/>
</disk>
Qemu/libvirt however counts the IOps, so I'm not sure why you completely
rely on the path element for that.
Have you tested this with RBD?
Wido
The feature includes
(1) Add disk I/O polling for instances to CloudStack.
(2) Add it to the instance vm disk statistics table.
(3) and add it to the usage database for optional billing in public clouds.
JIRA ticket: https://issues.apache.org/jira/browse/CLOUDSTACK-1192
FS (I will update later) :
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Disk+IO+statistics+for+instances
Merge check list :-
* Did you check the branch's RAT execution success?
Yes
* Are there new dependencies introduced?
No
* What automated testing (unit and integration) is included in the new
feature?
Unit tests (UsageManagerTest) are added.
* What testing has been done to check for potential regressions?
(1) CloudStack UI display the bytes rate and IO rate.
(2) VM operations, including
deploy, stop, start, reboot, destroy, expunge. migrate, restore
(3) Volume operations, including
Attach, Detach
* Existing issue
(1)For XenServer/XCP, xepapi returns bytes per seconds instead of total I/O.
To review the code, you can try
git diff 7fb6eaa0ca5f0f58b23ab6af812db6366743717a
c30057635d04a2396f84c588127d7ebe42e503a7
Best regards,
Wei
[1]
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Disk+IO+statistics+for+instances
[2] refs/heads/disk_io_stat
[3]
https://issues.apache.org/jira/browse/CLOUDSTACK-1192<https://issues.apache.org/jira/browse/CLOUDSTACK-2071>(CLOUDSTACK-
*1192* - Add disk I/O statistics of instances)