Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Created attachment 946266[details]
/var/log/messages and /var/log/vdsm/vdsm.log
Description of problem:
I tried to limit the writing to a virtual disk on a rhev hypervisor using virsh.
The limitation doesn't seem to be enforced.
Version-Release number of selected component (if applicable):
RHEL7
libvirt-daemon-1.2.8-4.el7.x86_64
vdsm-4.16.6-1.el7.x86_64
qemu-kvm-rhev-1.5.3-60.el7_0.10.x86_64
How reproducible:
Always
Steps to Reproduce:
1. Start a VM via RHEVM on a RHEV hypervisor (VDSM installed on RHEL7). Install RHEL OS on the VM
2. Attach a second disk to the VM. Crate a FS on the disk and mount it
3. Perform a base-line test. In the guest, write out a large file and see the IO rate:
# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
4. Limit the write troughput:
# virsh blkdeviotune 1 vda --write_bytes_sec $(expr 1024 \* 1024 \* 10)
# virsh blkdeviotune 1 vda
5. Now test the throughput, execute the same 'dd' test from step3:
# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
Actual results:
Without the limitation and with it, the troughput reamins the same, even though it is supposed to be limited:
Before limitation configured (step3):
[root@localhost ~]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
122707+0 records in
122706+0 records out
1005207552 bytes (1.0 GB) copied, 77.1332 s, 13.0 MB/s
Limitation is configured (step5):
# virsh blkdeviotune 1 vdc --write_bytes_sec $(expr 1024 \* 1024 \* 1)
virsh # blkdeviotune 1 vdc
Please enter your authentication name: elad
Please enter your password:
total_bytes_sec: 0
read_bytes_sec : 0
write_bytes_sec: 1048576
total_iops_sec : 0
read_iops_sec : 0
write_iops_sec : 0
[root@localhost ~]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
122707+0 records in
122706+0 records out
1005207552 bytes (1.0 GB) copied, 77.0214 s, 13.1 MB/s
Expected results:
Limitation should be enforced
Additional info:
/var/log/messages and /var/log/vdsm/vdsm.log
(Can't find more logs of libvirt under /var/log/libvirt/)
I can't reliably reproduce this, but the one time it happened dd of=/dev/vdb was unable to open the device with oflag=direct. Copying to a file on a filesystem created on the hotplugged disk was reported to happen at about 500 MB/s in the guest, but it didn't go over the 1 MB/s limit in the host. It seems to me libvirt did everything right there.
Are you able to use oflag=direct on the hotplugged disk?
What is the XML of the attached disk?
(In reply to Doron Fediuck from comment #1)
> Elad, is this relevant for rhel 6.6 as well?
It seems that using RHEL6.6, the blkdeviotune lomitation is enforced:
Before setting the limitation, wrote to the device:
[root@localhost elad]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
131072+0 records in
131072+0 records out
1073741824 bytes (1.1 GB) copied, 114.7 s, 9.4 MB/s
I set the limitation:
virsh blkdeviotune vm_1 vdb --write_bytes_sec $(expr 1024 \* 1024 \* 1)
Now limitation for writting to the device is enforced:
[root@localhost elad]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072
^C85275+0 records in
85275+0 records out
698572800 bytes (699 MB) copied, 693.119 s, 1.0 MB/s
I'm using a RHEL6.6 host:
libvirt-0.10.2-46.el6_6.1.x86_64
qemu-kvm-rhev-0.12.1.2-2.448.el6.x86_64
vdsm-4.16.7.1-1.el6ev.x86_64
Doron,
As this issue doesn't reproduce, we thought maybe it is related to libvirt version ...
anyway we can close as worksforme unless you find something while investigating
Up to you.
(In reply to Aharon Canan from comment #6)
> Doron,
>
> As this issue doesn't reproduce, we thought maybe it is related to libvirt
> version ...
>
> anyway we can close as worksforme unless you find something while
> investigating
>
> Up to you.
Go ahead and close.
We'll re-open if needed.
Created attachment 946266 [details] /var/log/messages and /var/log/vdsm/vdsm.log Description of problem: I tried to limit the writing to a virtual disk on a rhev hypervisor using virsh. The limitation doesn't seem to be enforced. Version-Release number of selected component (if applicable): RHEL7 libvirt-daemon-1.2.8-4.el7.x86_64 vdsm-4.16.6-1.el7.x86_64 qemu-kvm-rhev-1.5.3-60.el7_0.10.x86_64 How reproducible: Always Steps to Reproduce: 1. Start a VM via RHEVM on a RHEV hypervisor (VDSM installed on RHEL7). Install RHEL OS on the VM 2. Attach a second disk to the VM. Crate a FS on the disk and mount it 3. Perform a base-line test. In the guest, write out a large file and see the IO rate: # dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072 4. Limit the write troughput: # virsh blkdeviotune 1 vda --write_bytes_sec $(expr 1024 \* 1024 \* 10) # virsh blkdeviotune 1 vda 5. Now test the throughput, execute the same 'dd' test from step3: # dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072 Actual results: Without the limitation and with it, the troughput reamins the same, even though it is supposed to be limited: Before limitation configured (step3): [root@localhost ~]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072 122707+0 records in 122706+0 records out 1005207552 bytes (1.0 GB) copied, 77.1332 s, 13.0 MB/s Limitation is configured (step5): # virsh blkdeviotune 1 vdc --write_bytes_sec $(expr 1024 \* 1024 \* 1) virsh # blkdeviotune 1 vdc Please enter your authentication name: elad Please enter your password: total_bytes_sec: 0 read_bytes_sec : 0 write_bytes_sec: 1048576 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 [root@localhost ~]# dd if=/dev/zero of=/elad/1 oflag=direct bs=8K count=131072 122707+0 records in 122706+0 records out 1005207552 bytes (1.0 GB) copied, 77.0214 s, 13.1 MB/s Expected results: Limitation should be enforced Additional info: /var/log/messages and /var/log/vdsm/vdsm.log (Can't find more logs of libvirt under /var/log/libvirt/)