18.5.2. 仮想マシンにおけるディスク I/O スロットリングの設定
複数の仮想マシン (VM) が同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影響が及ぶ可能性があります。これを防ぐには、ディスク I/O スロットリングを使用します。
ディスク I/O スロットリングを使用すると、仮想マシンからホストマシンに送信されるディスク I/O 要求に制限を設定できます。これにより、仮想マシンが共有リソースを過剰に使用して、他の仮想マシンのパフォーマンスに影響を与えることを防ぐことができます。
ディスク I/O スロットリングは、異なる顧客に属する仮想マシンが同じホストで実行されている場合や、異なる仮想マシンに QoS 保証が提供されている場合など、さまざまな状況で役立ちます。ディスク I/O スロットリングは、低速なディスクをシミュレートするために使用することもできます。
ディスク I/O スロットリングを有効にするには、仮想マシンに割り当てられた各ブロックデバイスからホストマシンに送られるディスク I/O 要求に制限を設定します。
I/O スロットリングは、仮想マシンに割り当てられた各ブロックデバイスに個別に適用でき、スループットおよび I/O 操作の制限に対応します。
手順
virsh domblklistコマンドを使用して、指定された仮想マシン上のすべてのディスクデバイスの名前をリスト表示します。# virsh domblklist testguest1 Target Source ------------------------------------------------ vda /var/lib/libvirt/images/testguest1.qcow2 sda - sdb /home/sample-disk.isoスロットルする仮想ディスクがマウントされているホストブロックデバイスを見つけます。
たとえば、前の手順の
sdb仮想ディスクをスロットリングする場合は、以下の出力では、ディスクが/dev/nvme0n1p3パーティションにマウントされていることを示しています。$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT zram0 252:0 0 4G 0 disk [SWAP] nvme0n1 259:0 0 238.5G 0 disk ├─nvme0n1p1 259:1 0 600M 0 part /boot/efi ├─nvme0n1p2 259:2 0 1G 0 part /boot └─nvme0n1p3 259:3 0 236.9G 0 part └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /homevirsh blkiotuneコマンドを使用して、ブロックデバイスの I/O 制限を設定します。# virsh blkiotune VM-name --parameter device,limit次の例では、
testguest1仮想マシン上のsdbディスクを、毎秒 1000 回の読み書き I/O 操作と、毎秒 50 MB の読み書きスループットに制限します。# virsh blkiotune testguest1 --device-read-iops-sec /dev/nvme0n1p3,1000 --device-write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800重要Red Hat は、
virsh blkdeviotuneコマンドを使用した仮想マシンでの I/O スロットリングの設定はサポートしていません。+ RHEL 10 を仮想マシンホストとして使用する場合にサポートされない機能の詳細は、RHEL 10 の仮想化でサポートされていない機能 を参照してください。