A new storage architecture for KVM based on SCSI.
- Name: Paolo Bonzini
- Email: email@example.com
- Targeted release: Fedora 17
- Last updated: 2011-02-07
- Percentage of completion: 90%
virtio-scsi improves the storage stack in terms of scalability (easily overcomes the current limit of ~30 freely hot-pluggable/unpluggable storage devices), flexibility (support features such as SCSI passthrough or persistent reservations), extensibility (exposing new features to the guest does not require updating drivers in both the host and the guest).
Benefit to Fedora
Fedora users will be able to use an industry-standard storage stack for their virtual machines.
The guest driver will be included as part of the distribution's kernel and as part of the seabios ROMs installed together with QEMU. The host drivers will be included in the qemu package. Management tools based on libvirt should support this too.
How To Test
- Install the qemu-kvm package.
- Download an install image for this release of Fedora (network or DVD).
- Prepare a large file to be used as the disk for a Fedora virtual machine.
- Use the following command to install Fedora:
qemu-kvm -drive if=none,id=hd,file=/path/to/test.img -device virtio-scsi-pci,id=scsi --enable-kvm -device scsi-hd,drive=hd -cdrom /path/to/boot.iso.
- Reboot and test that the virtual machine can boot from the virtio-scsi hard disk.
- Use the following command to (re)install Fedora:
qemu-kvm -drive if=none,id=cd,file=/path/to/boot.iso -device scsi-cd,drive=cd,bootindex=0 -drive if=none,id=hd,file=/path/to/test.img -device virtio-scsi-pci,id=scsi --enable-kvm -device scsi-hd,drive=hd. The virtual machine will boot from the virtio-scsi image.
Each piece (kernel, qemu, libvirt) can be included separately, so there is no need to revert partial changes.
Documentation will be included as part of the changes to libvirt.
KVM and libvirt support a new advanced SCSI-based storage stack, virtio-scsi. Right now, virtio-scsi can be used on guests running Fedora 17. It should be included in the mainline kernel starting at release 3.4.