การควบคุม IO แบบบล็อกตามน้ำหนักสำหรับ VMs


13

ฉันใช้ KVM เพื่อจัดการเครื่องเสมือนของฉัน ฉันพยายาม จำกัด ทรัพยากรที่มีให้สำหรับ VMs ฉันสามารถ จำกัด CPU และหน่วยความจำที่จัดสรรสำหรับ VMs โดยใช้ libvirt / cgroups ตอนนี้ฉันต้องการควบคุมเวลาดิสก์ที่จัดสรรให้กับ VM แต่ละเครื่องโดยใช้น้ำหนักบางอย่าง ฉันดูการควบคุม blkio จากกลุ่ม cg เนื่องจาก VM เป็นเพียงกระบวนการลีนุกซ์ฉันจะสามารถใช้กลุ่ม cg ได้ แต่ฉันไม่แน่ใจว่ามันจะทำงานกับ IO แบบอะซิงโครนัสหรือไม่ ถ้าไม่มีใครสามารถแนะนำทางเลือกที่ดีได้หรือไม่?

คำตอบ:


2

Blkio ในคำศัพท์ cgroupยืนสำหรับการเข้าถึง I / O ในอุปกรณ์ป้องกัน ดูเหมือนจะไม่เกี่ยวกับการควบคุมวิธีการที่แตกต่างกันทั้งหมดที่นักพัฒนาซอฟต์แวร์มีไว้เพื่อวัตถุประสงค์เกี่ยวกับ I / O

ดูเหมือนว่าจะมีการกำหนดเป้าหมายหลักเป็น I / O บนอุปกรณ์ไม่ใช่วิธีการที่ซอฟต์แวร์เข้าถึงอุปกรณ์ได้ มันสามารถ จำกัด จำนวนไอโอพแบนด์วิดท์หรือน้ำหนักกับกระบวนการอื่น ๆ ในสิ่งอื่น ๆ ดูเหมือนว่าขณะนี้ blockio ไม่รองรับการเขียนบัฟเฟอร์ มันอยู่ในเอกสารอย่างเป็นทางการ :

ปัจจุบันระบบย่อย Block I / O ไม่สามารถใช้งานได้สำหรับการดำเนินการเขียนบัฟเฟอร์ เป็นเป้าหมายหลักที่ direct I / O แม้ว่าจะเหมาะสำหรับการดำเนินการอ่านบัฟเฟอร์

หากคุณดูที่การนำเสนอนี้จาก Linda Wang และ Bob Kozdemba ของ Red Hat ในหน้า 20+ คุณจะเห็นว่ากราฟเกี่ยวกับแบนด์วิดท์ของอุปกรณ์ต่อ VM ไม่ใช่การสุ่มเทียบกับการบล็อก vs asynchronous I / O

ดูเหมือนว่าจะมีงานเมื่อเร็ว ๆ นี้ โดย Red Hat ที่จะนำมันไปใช้กับ virsh โดยตรง มันได้รับการปล่อยตัวออกมาเมื่อสัปดาห์ที่แล้วใน 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จาก cgroups? มันให้บางสิ่งบางอย่างที่ทางออกปัจจุบันของ OP ไม่ใช่หรือไม่? คุณรู้หรือไม่ว่าเกี่ยวข้องกับอะซิงโครนัส IO อย่างไร
คาเลบ

Caleb จะดีมากหากคุณสามารถให้สาระสำคัญกับอะซิงโครนัส IO อะไรและมันแตกต่างจาก synchronous IO อย่างไรกับระบบปฏิบัติการ
sethu

@Caleb: ดูด้านบน
Faheem Mitha
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.