Kontrol IO blok berbasis berat untuk VM

13

Saya menggunakan KVM untuk mengelola mesin virtual saya. Saya mencoba membatasi sumber daya yang disediakan untuk VM. Saya dapat membatasi CPU dan memori yang dialokasikan untuk VM menggunakan libvirt / cgroups. Sekarang saya ingin mengontrol waktu disk yang diberikan untuk setiap VM dengan menerapkan beberapa bobot. Saya melihat kontrol blkio dari cgroups. Karena VM hanyalah sebuah proses Linux, saya akan dapat menggunakan cgroups tetapi saya tidak yakin apakah itu akan berfungsi untuk IO juga tidak sinkron. Jika tidak, bisakah seseorang menyarankan solusi alternatif yang baik?

sethu
sumber

Jawaban:

2

Blkio dalam terminologi cgroup adalah singkatan dari akses ke I / O pada perangkat blok . Tampaknya bukan tentang mengatur semua cara yang berbeda yang dimiliki pengembang perangkat lunak untuk tujuan terkait I / O.

Tampaknya ditargetkan terutama untuk I / O pada perangkat , bukan pada cara perangkat lunak memiliki akses ke perangkat. Dapat membatasi jumlah iops, bandwidth atau berat dengan proses lain, dalam hal lain. Tampaknya penulisan buffer tidak didukung oleh blockio saat ini. Ada dalam dokumentasi resmi :

Saat ini, subsistem Blok I / O tidak berfungsi untuk operasi penulisan buffered. Ini terutama ditargetkan pada I / O langsung, meskipun berfungsi untuk operasi baca yang disangga.

Jika Anda melihat presentasi ini dari Linda Wang dan Bob Kozdemba dari Red Hat, di halaman 20+, Anda akan melihat bahwa grafik adalah tentang bandwidth perangkat per VM, bukan tentang pemblokiran vs acak vs I / O asinkron.

Tampaknya ada pekerjaan baru-baru ini oleh Red Hat untuk mengimplementasikannya langsung ke dalam bahasa Inggris. Telah dirilis minggu lalu di libvirt 0.9.9. Dalam beberapa bulan, Anda akan dapat melakukan hal seperti ini di distribusi favorit Anda:

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

Anda mungkin ingin menggunakan ionice, rasanya menyenangkan tapi untuk IO.

Fer Enaf
sumber
1
Apakah ionicealternatif yang lebih baik daripada menggunakan blkiodari cgroup? Apakah ini memberikan sesuatu yang tidak dimiliki solusi OP saat ini? Apakah Anda tahu kaitannya dengan IO asinkron?
Caleb
Caleb akan lebih bagus jika Anda bisa memberikan intisari tentang apa itu IO sinkron dan bagaimana perbedaannya dari IO sinkron sehubungan dengan sistem operasi.
sethu
@ Caleb: Lihat di atas.
Faheem Mitha