RHEL9 仮想マシンのディスク I/O スロットリングを有効にする方法

環境
RHEL9.2

概要

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影
響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト
マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影 響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。
複数の仮想マシンが同時に実行する場合は、過剰なディスク I/O により、システムパフォーマンスに影
響が及ぶ可能性があります。KVM 仮想化のディスク I/O スロットリングでは、仮想マシンからホスト
マシンに送られるディスク I/O 要求に制限を設定する機能を利用できます。

操作方法
1. virsh domblklist コマンドを使用して、指定された仮想マシン上のすべてのディスクデバイス
の名前をリスト表示します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# virsh domblklist rollin-coal
Target Source------------------------------------------------
vda /var/lib/libvirt/images/rollin-coal.qcow2
sda
sdb /home/horridly-demanding-processes.iso
# virsh domblklist rollin-coal Target Source------------------------------------------------ vda /var/lib/libvirt/images/rollin-coal.qcow2 sda sdb /home/horridly-demanding-processes.iso
# virsh domblklist rollin-coal
 Target     Source------------------------------------------------
 vda        /var/lib/libvirt/images/rollin-coal.qcow2
 sda        
 sdb        /home/horridly-demanding-processes.iso

2. スロットルする仮想ディスクがマウントされているホストブロックデバイスを見つけます。
sdb 仮想ディスクをスロットリングする場合は、以下の出力では、ディスクが /dev/nvme0n1p3 パーティションにマウントされていることを示しています。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ lsblk
NAME
zram0
nvme0n1
├─nvme0n1p1
├─nvme0n1p2
└─nvme0n1p3
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
252:0 0 4G 0 disk [SWAP]
259:0 0 238.5G 0 disk
259:1 0 600M 0 part /boot/efi
259:2 0 1G 0 part /boot
259:3 0 236.9G 0 part
└─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /home
$ lsblk NAME zram0 nvme0n1 ├─nvme0n1p1 ├─nvme0n1p2 └─nvme0n1p3 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 252:0 0 4G 0 disk [SWAP] 259:0 0 238.5G 0 disk 259:1 0 600M 0 part /boot/efi 259:2 0 1G 0 part /boot 259:3 0 236.9G 0 part └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0 0 236.9G 0 crypt /home
$ lsblk
NAME                                          
zram0                                         
nvme0n1                                       
├─nvme0n1p1                                   
├─nvme0n1p2                                   
└─nvme0n1p3                                   
MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
 252:0    0     4G  0 disk  [SWAP]
 259:0    0 238.5G  0 disk
 259:1    0   600M  0 part  /boot/efi
 259:2    0     1G  0 part  /boot
 259:3    0 236.9G  0 part
 └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0    0 236.9G  0 crypt /home

3. virsh blkiotune コマンドを使用して、ブロックデバイスの I/O 制限を設定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# virsh blkiotune VM-name --parameter device,limit
# virsh blkiotune VM-name --parameter device,limit
# virsh blkiotune VM-name --parameter device,limit

以下の例は、rollin-coal 仮想マシン上の sdb ディスクを毎秒 1000 の読み書き操作にスロット
リングし、毎秒 50 MB の読み書きスループットにスロットリングします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# virsh blkiotune rollin-coal --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
# virsh blkiotune rollin-coal --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
# virsh blkiotune rollin-coal --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

 

IT

Posted by arkgame