CentOS5.4でvirtioに切り替える
- 環境
# uname -a Linux mio 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux ゲストはrawファイルのCentOS5.4 ホストはubuntu10.4 2.6.32-23-generic
- 変更前 hdparm -t /dev/hda
/dev/hda: Timing buffered disk reads: 202 MB in 3.02 seconds = 66.93 MB/sec
- 変更方法
// -------- // GUESTへ // -------- // おもむろに追加.alias scsi_hostadapter ata_piixは書いてあった。 # echo "alias scsi_hostadapter1 virtio_blk" >> /etc/modprobe.conf // そういえばモジュールあるの? # find /lib/modules/`uname -r` -name "virtio_blk*" /lib/modules/2.6.18-164.el5/kernel/drivers/block/virtio_blk.ko // なんのパッケージに属するの? -> かーねるだったか # rpm -qf /lib/modules/2.6.18-164.el5/kernel/drivers/block/virtio_blk.ko kernel-2.6.18-164.el5 // コピー # cp -a initrd-$(uname -r).img{,.org} // コマンド確認 # echo "mkinitrd --with=virtio_pci --with=virtio_blk -v -f initrd-$(uname -r).img $(uname -r)" mkinitrd --with=virtio_pci --with=virtio_blk -v -f initrd-2.6.18-164.el5.img 2.6.18-164.el5 # mkinitrd --with=virtio_pci --with=virtio_blk -v -f initrd-$(uname -r).img $(uname -r) ... Adding module dm-log Adding module dm-mirror Adding module dm-zero Adding module dm-snapshot Adding module dm-mem-cache Adding module dm-region_hash Adding module dm-message Adding module dm-raid45 Adding module virtio_ring Adding module virtio_pci // どうやらうまくいったみたい。 # echo $? 0 // -------- // HOSTへ // -------- # cd /etc/libvirt/qemu/ # diff -Naur mio.xml{.o,} --- mio.xml.o 2010-01-17 17:45:16.503831412 +0900 +++ mio.xml 2010-07-07 19:26:46.241525705 +0900 @@ -21,7 +21,7 @@ <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <source file='/home2/centos.img'/> - <target dev='hda' bus='ide'/> + <target dev='vda' bus='virtio'/> </disk> # virsh shutdown mio // 設定反映 # service libvirt-bin stop libvirt-bin stop/waiting # service libvirt-bin status libvirt-bin stop/waiting # service libvirt-bin start libvirt-bin start/running, process 2846 // GUEST 起動 # virsh start mio // デバイスファイルが hda -> vda になってたら成功
- 変更後 hdparm -t /dev/vda
/dev/vda: Timing buffered disk reads: 310 MB in 3.00 seconds = 103.29 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device
・66.93 MB/sec -> 103.29 MB/sec 早くなった!