VMの重みベースのブロックIO制御


13

KVMを使用して仮想マシンを管理しています。VMに提供されるリソースを制限しようとしています。libvirt / cgroupsを使用して、VMに割り当てられるCPUとメモリを制限できます。次に、いくつかの重みを適用して、各VMに割り当てられるディスク時間を制御します。私はcgroupsからのblkioコントロールを見ました。VMは単なるLinuxプロセスなので、cgroupを使用できますが、非同期IOでも動作するかどうかはわかりません。そうでない場合、誰かが良い代替ソリューションを提案できますか?

回答:


2

cgroupの用語での Blkioは、ブロックデバイス上のI / Oへのアクセスを表します。I / O関連の目的のためにソフトウェア開発者が手にするさまざまな方法をすべて規制することではないようです。

ソフトウェアがデバイスにアクセスする方法ではなく、主にデバイス上のI / Oをターゲットにしているようです。他のプロセスで、iopsの数、帯域幅、または重みを制限できます。現時点では、バッファ書き込みはblockioでサポートされていないようです。それは公式ドキュメント

現在、ブロックI / Oサブシステムは、バッファリングされた書き込み操作に対して機能しません。主に直接I / Oを対象としていますが、バッファリングされた読み取り操作には有効です。

あなたが見てみると 、このプレゼンテーション 20+ページで、リンダ王とRed HatのボブKozdembaから、あなたはグラフがVMあたりのデバイスの帯域幅について、いない非同期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
cgroupsからionice使用するよりも優れた選択肢はありblkioますか?OPの現在のソリューションにはない何かを提供しますか?非同期IOにどのように関連するか知っていますか?
カレブ

Caleb非同期IOとは何か、オペレーティングシステムに関して同期IOとどのように違うのかを簡単に説明できれば素晴らしいでしょう。
セトゥー

@カレブ:上記を参照してください。
ファヒムミサ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.