web-dev-qa-db-ja.com

仮想マシンゲストのディスクアクセス帯域幅を制限するにはどうすればよいですか?

Ubuntu(ホスト)には、WindowsゲストOSをほとんど提供しないVirtualboxがあります。
実行中のWindows仮想マシンがディスクへの大規模なアクセスを開始し、ホスト環境でブロックされることがあります。物理ハードディスクへのデータアクセスの読み取り/書き込みを制限したいと思います。

どうすればいいですか?

8
yossile

バージョン4.0以降、ディスクイメージへのアクセス用の仮想ボックス帯域幅を制限できます(詳細については、 仮想ボックスマニュアル を参照してください)

最初に帯域幅グループを作成する必要があります(以下の例では、20 MB/sの「制限」という名前が付けられています)。

VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M
VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd
                                   --medium disk1.vdi --bandwidthgroup Limit
VBoxManage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd
                                   --medium disk2.vdi --bandwidthgroup Limit

このエラーが発生した場合:

VBoxManage: error: Cannot register the hard disk '.../foo.vdi' {...} because a hard disk '.../foo.vdi' with UUID {...} already exists

次に、{}を含むエラーで指定されたUUID(両方が同じである必要があります)でディスクイメージへのパスを置き換えます

ディスクアクセスをさらに10 MB/sに制限するには、次を発行します。

VBoxManage bandwidthctl "VM name" set Limit --limit 10M 

これは実行時にも実行できます。

9
Takkat