apache / apache/cloudstack

Allow limiting IO operation size (KVM)

Abierto
#8,384 2 comentarios 1 reacción 0 asignados Ver en GitHub
component:primary-storage component:storage type:new-feature
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
6 d 19 h
PR fusionados (30 d)
32

Descripción

##### 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

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience en plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java alrededor de las líneas 1173-1207, donde el issue indica que se definen las opciones de KVM IO. Lea la documentación enlazada sobre la limitación de QEMU y la referencia de libvirt para size_iops_sec; después, haga que la opción esté disponible para la configuración KVM de CloudStack y verifique que el ajuste generado use el tamaño de IO solicitado para la contabilidad.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
cloud, infrastructure
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
62/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.