Allow limiting IO operation size (KVM)
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.4k
- Ø Merge
- 6 T. 19 Std.
- Gemergte PRs (30 T.)
- 32
Beschreibung
##### ISSUE TYPE
* Improvement Request
##### COMPONENT NAME
~~~
KVM hypervisor
~~~
##### CLOUDSTACK VERSION
~~~
4.18 or latest
~~~
##### SUMMARY
The [qemu documentation](https://github.com/qemu/qemu/blob/master/docs/throttle.txt#L142) explains why this is important:
> When applying IOPS limits all I/O operations are treated equally
regardless of their size. This means that the user can take advantage
of this in order to circumvent the limits and submit one huge I/O
request instead of several smaller ones.
>
> QEMU provides a setting called throttling.iops-size to prevent this
from happening. This setting specifies the size (in bytes) of an I/O
request for accounting purposes. Larger requests will be counted
proportionally to this size.
In libvirt this option is called `size_iops_sec` inside the `` section ([ref](https://libvirt.org/formatdomain.html)).
Other big clouds such as AWS also use this mechanism to fairly allocate IOPS.
##### STEPS TO REPRODUCE
Checking the CloudStack code shows that this option is currently not supported:
https://github.com/apache/cloudstack/blob/1411da1a22bc6aa26634f3038475e3d5fbbcd6bb/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java#L1173-L1207
Beitragsleitfaden
Rechercherichtung
Beginnen Sie in plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java etwa bei den Zeilen 1173-1207, wo im Issue steht, dass die KVM IO-Optionen definiert sind. Lesen Sie die verknüpfte Dokumentation zur QEMU-Drosselung und die Referenz zu size_iops_sec von libvirt, machen Sie die Option anschließend für die KVM-Konfiguration von CloudStack verfügbar und überprüfen Sie, dass die generierte Einstellung die angeforderte IO-Größe für die Abrechnung verwendet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- cloud, infrastructure
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 62/100