VM에 대한 가중치 기반 블록 IO 제어


13

KVM을 사용하여 가상 머신을 관리합니다. VM에 제공되는 리소스를 제한하려고합니다. libvirt / cgroup을 사용하여 VM에 할당 된 CPU 및 메모리를 제한 할 수 있습니다. 이제 가중치를 적용하여 각 VM에 할당 된 디스크 시간을 제어하려고합니다. 나는 cgroup에서 blkio control을 보았습니다. VM은 Linux 프로세스 일 뿐이므로 cgroup을 사용할 수는 있지만 비동기 IO에서도 작동하는지 확실하지 않습니다. 그렇지 않다면 누군가 좋은 대안 솔루션을 제안 할 수 있습니까?

답변:


2

cgroup 용어의 Blkio는 블록 장치의 I / O에 대한 액세스를 나타냅니다 . 소프트웨어 개발자가 I / O 관련 목적으로 사용하는 모든 다른 방식을 규제하는 것은 아닙니다.

소프트웨어가 장치에 액세스하는 방식이 아니라 주로 장치의 I / O를 대상으로하는 것 같습니다 . 다른 프로세스의 iops 수, 대역폭 또는 가중치를 제한 할 수 있습니다. 현재 blockio는 버퍼 쓰기를 지원하지 않는 것 같습니다. 그것은에서의 공식 문서 :

현재 블록 I / O 하위 시스템은 버퍼 된 쓰기 작업에 작동하지 않습니다. 버퍼링 된 읽기 작업에 적합하지만 주로 직접 I / O를 대상으로합니다.

당신이 한 번 봐 걸릴 경우 이 프레젠테이션 린다 왕과 페이지 레드햇, 20 + 밥 Kozdemba에서를, 당신은 그래프가되지 비동기 I / O 대 차단 대 임의 대해, VM 당 장치 대역폭에 대한 것을 볼 수 있습니다.

거기 것 같다 최근 작업 virsh를에 직접 구현하기에 Red Hat. 지난 주 libvirt 0.9.9에서 발표 되었습니다 . 몇 개월 후에, 좋아하는 배포판에서 다음과 같은 작업을 수행 할 수 있습니다.

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

0

ionice를 사용하고 싶을 수도 있지만 IO와 비슷합니다.


1
ionice사용하는 것보다 더 나은 대안 blkio을 cgroup에서는? OP의 현재 솔루션이 제공하지 않는 것을 제공합니까? 비동기 IO와 어떤 관련이 있는지 알고 있습니까?
Caleb

Caleb 비동기 IO가 무엇인지, 운영 체제와 관련하여 동기 IO와 어떻게 다른지 간단히 설명 할 수 있다면 좋을 것입니다.
sethu

@ Caleb : 위를 참조하십시오.
Faheem Mitha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.