VM'ler için ağırlık temelli blok IO kontrolü


13

Sanal makinelerimi yönetmek için KVM kullanıyorum. VM'ler için sağlanan kaynakları sınırlamaya çalışıyorum. Libvirt / cgroups kullanarak VM'ler için ayrılan CPU ve belleği sınırlayabiliyorum. Şimdi her bir VM için ayrılan disk süresini bazı ağırlıklar uygulayarak kontrol etmek istiyorum. Gruplardan blkio kontrolüne baktım. VM sadece bir Linux süreci olduğundan, cgroups kullanabileceğim ama asenkron IO için de işe yarayıp yaramayacağından emin değilim. Değilse, birisi iyi bir alternatif çözüm önerebilir mi?

Yanıtlar:


2

Grup terminolojisindeki Blkio , blok cihazlarda I / O'ya erişim anlamına gelir . Yazılım geliştiricilerin I / O ile ilgili amaçlar için eldeki tüm farklı yolları düzenlemekle ilgili gibi görünmüyor.

Yazılımın cihazlara erişme biçiminde değil, çoğunlukla cihazlardaki G / Ç'yi hedefliyor gibi görünüyor . Diğer işlemlerle iops sayısını, bant genişliğini veya ağırlığı başka şeylerle sınırlayabilir. Arabellek yazımı şu anda blockio tarafından desteklenmiyor gibi görünüyor. Bu öyle resmî belgeler :

Şu anda, Blok I / O alt sistemi arabelleğe alınan yazma işlemleri için çalışmıyor. Tamponlanmış okuma işlemleri için çalışmasına rağmen, öncelikle doğrudan G / Ç'yi hedefler.

Eğer bir göz atacak olursak bu sunumda Linda Wang ve sayfada Red Hat, 20+ Bob Kozdemba dışında, grafik değil uyumsuz g / Ç vs engelleme vs rastgele hakkında, VM başına cihaz bant genişliği ile ilgili olduğunu göreceksiniz.

Red Hat tarafından doğrudan virsh'a uygulamak için yakın zamanda yapılmış bir çalışma var gibi görünüyor . Bu edilmiş yayımlanan uyarlanması, libvirt 0.9.9 geçen hafta. Birkaç ay içinde, en sevdiğiniz dağıtımda böyle bir şey yapabilirsiniz:

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

0

İyonice kullanmak isteyebilirsiniz, güzel ama IO için.


1
Gruplardan ionicekullanmaktan daha iyi bir alternatif var mı blkio? OP'nin mevcut çözümünün sağlamadığı bir şey sağlıyor mu? Eşzamansız IO ile nasıl ilişkili olduğunu biliyor musunuz?
Caleb

Caleb, asenkronize IO'nun ne olduğu ve bir işletim sistemine göre senkronize IO'dan nasıl farklı olduğu konusunda bir fikir verebilirseniz harika olacak.
sethu

@Caleb: Yukarıya bakınız.
Faheem Mitha
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.