kvm与virtio scsi和rbd

我目前正在使用virtio-blk,但是我想改变为新的virtio-scsi,特别是因为它支持trim / discard。 主机是一个Ubuntu的量子系统(内核3.5.0,QEMU 1.2.0)。

这是我如何开始我的客人:

kvm -cpu kvm64 -smp sockets=1,cores=2 -cpu kvm64 -m 1024 -device virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5 -drive file=rbd:data/disk-1,if=none,id=drive-scsi1,cache=writeback,aio=native -device scsi-hd,drive=drive-scsi1,id=scsi1,bus=scsihw0.0,channel=0,scsi-id=0,lun=1,bootindex=100 -device virtio-net-pci,netdev=net0,bus=pci.0,addr=0x12,id=net0,mac=62:79:D8:1E:E0:BF,bootindex=200 -netdev type=tap,id=net0,vhost=on -enable-kvm -nodefaults -boot menu=on -vga cirrus -cdrom rbd:data/ubuntu-12.10-server.iso 

虚拟机启动罚款,我可以连接使用控制台和VNC。

控制台上的info block显示两个驱动器在那里:

 drive-scsi1: removable=0 io-status=ok file=rbd:data/disk-1 ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 ide1-cd0: removable=1 locked=1 tray-open=0 io-status=ok file=rbd:data/ubuntu-12.10-server.iso ro=1 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 

如何从vm内部以任何方式访问磁盘:

  1. 该磁盘不显示在BIOS启动菜单中。 只有cdrom和网卡(pxe)。

  2. 当我从cdrom启动ubuntu quantal(内核3.5.0)时,它不检测磁盘,尽pipe我在某处读取virtio-scsi设备应该支持从内核3.4.0开始。

我在做什么错,如何让它工作? 🙂

要validation您的qemu版本是否支持virtio-scsi设备,请在您的Linux主机上运行以下命令:

 kvm -device ? 2>&1|grep virtio 

请参阅以下输出:

 name "virtio-scsi-pci", bus PCI, alias "virtio-scsi"