Control de E / S en bloque basado en el peso para máquinas virtuales

13

Yo uso KVM para administrar mis máquinas virtuales. Estoy tratando de limitar los recursos proporcionados para las máquinas virtuales. Puedo limitar la CPU y la memoria asignada para las máquinas virtuales usando libvirt / cgroups. Ahora quiero controlar el tiempo de disco asignado para cada VM aplicando algunos pesos. Miré el control blkio de cgroups. Dado que VM es solo un proceso de Linux, podré usar cgroups pero no estoy seguro de si funcionará también para IO asíncrono. Si no, ¿alguien puede sugerir una buena solución alternativa?

sethu
fuente

Respuestas:

2

Blkio en terminología de cgroup significa acceso a E / S en dispositivos de bloque . No parece tratarse de regular todas las diferentes formas en que los desarrolladores de software tienen a mano para fines relacionados con E / S.

Parece estar dirigido principalmente a E / S en dispositivos , no en la forma en que el software tiene acceso a los dispositivos. Puede limitar la cantidad de iops, el ancho de banda o un peso con otros procesos, en otras cosas. Parece que blockio no está soportado por blockio en este momento. Está en la documentación oficial :

Actualmente, el subsistema Block I / O no funciona para operaciones de escritura en búfer. Está dirigido principalmente a E / S directa, aunque funciona para operaciones de lectura almacenadas en búfer.

Si echas un vistazo a esta presentación de Linda Wang y Bob Kozdemba de Red Hat, en la página 20+, verás que el gráfico es sobre el ancho de banda del dispositivo por VM, no sobre aleatorio vs bloqueo vs E / S asíncrono.

Parece que ha habido un trabajo reciente de Red Hat para implementarlo directamente en virsh. Se lanzó la semana pasada en libvirt 0.9.9. En unos meses, podrá hacer algo como esto en su distribución favorita:

virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750
Coren
fuente
0

Es posible que desee utilizar ionice, es agradable pero para IO.

Fer Enaf
fuente
1
¿Es ioniceuna mejor alternativa que usar blkiode cgroups? ¿Proporciona algo que no ofrece la solución actual del OP? ¿Sabes cómo se relaciona con la E / S asíncrona?
Caleb
Caleb, será genial si puedes dar una idea de lo que es una E / S asíncrona y cómo se diferencia de la E / S sincrónica con respecto a un sistema operativo.
Sethu
@Caleb: Ver arriba.
Faheem Mitha