On Thu, Jan 14, 2021 at 09:17:55PM +0100, Laszlo Ersek wrote: > On 01/05/21 11:49, Stefan Hajnoczi wrote: > > The second post in the storage series covers virtio-blk and virtio-scsi. > > It compares the two and offers recommendations that users and tools > > using QEMU can use as a starting point. Graphs are included comparing > > the performance of various options. > > > > Signed-off-by: Stefan Hajnoczi <[email protected]> > > --- > > v2: > > * Mention default storage controllers for non-x86 [danpb] > > * Remove statement about read-only ISO virtio-blk devices, both Rich > > Jones and Daniel Berrange commented about this at different times so > > I decided to drop it completely [danpb] > > * Clarify PCI slot limits and multi-function discussion for virtio-blk > > [danpb] > > * Mention multiple virtio-scsi devices for NUMA tuning and that > > emulated LUNs can be HDDs or CD-ROMs [danpb] > > --- > > ...020-12-17-virtio-blk-scsi-configuration.md | 115 ++++++++++++++++++ > > screenshots/2020-09-15-scsi-devices.svg | 1 + > > screenshots/2020-09-15-virtio-blk-vs-scsi.svg | 1 + > > 3 files changed, 117 insertions(+) > > create mode 100644 _posts/2020-12-17-virtio-blk-scsi-configuration.md > > create mode 100644 screenshots/2020-09-15-scsi-devices.svg > > create mode 100644 screenshots/2020-09-15-virtio-blk-vs-scsi.svg > > > > diff --git a/_posts/2020-12-17-virtio-blk-scsi-configuration.md > > b/_posts/2020-12-17-virtio-blk-scsi-configuration.md > > new file mode 100644 > > index 0000000..b4361f5 > > --- /dev/null > > +++ b/_posts/2020-12-17-virtio-blk-scsi-configuration.md > > @@ -0,0 +1,115 @@ > > +--- > > +layout: post > > +title: "Configuring virtio-blk and virtio-scsi Devices" > > +date: 2021-01-05 07:00:00 +0000 > > +author: Stefan Hajnoczi and Sergio Lopez > > +categories: [storage] > > +--- > > +The [previous > > article](https://www.qemu.org/2020/09/14/qemu-storage-overview/) > > +in this series introduced QEMU storage concepts. Now we move on to look at > > the > > +two most popular emulated storage controllers for virtualization: > > virtio-blk > > +and virtio-scsi. > > + > > +This post provides recommendations for configuring virtio-blk and > > virtio-scsi > > +and how to choose between the two devices. The recommendations provide good > > +performance in a wide range of use cases and are suitable as default > > settings > > +in tools that use QEMU. > > + > > +## Virtio storage devices > > +### Key points > > +* Prefer virtio storage devices over other emulated storage controllers. > > +* Use the latest virtio drivers. > > + > > +Virtio devices are recommended over other emulated storage controllers as > > they > > +are generally the most performant and fully-featured storage controllers in > > +QEMU. > > + > > +Unlike emulations of hardware storage controllers, virtio-blk and > > virtio-scsi > > +are specifically designed and optimized for virtualization. The details of > > how > > +they work are published for driver and device implementors in the [VIRTIO > > +specification](https://docs.oasis-open.org/virtio/virtio/v1.1/virtio-v1.1.html). > > + > > +Virtio drivers are available for both Linux and Windows virtual machines. > > +Installing the latest version is recommended for the latest bug fixes and > > +performance enhancements. > > + > > +If virtio drivers are not available, the AHCI (SATA) device is widely > > supported > > +by modern x86 operating systems and can be used as a fallback. On non-x86 > > +guests the default storage controller can be used as a fallback. > > + > > +## Comparing virtio-blk and virtio-scsi > > +### Key points > > +* Prefer virtio-scsi for attaching more than 28 disks or for full SCSI > > support. > > +* Prefer virtio-blk in performance-critical use cases. > > +* With virtio-scsi, use scsi-block for SCSI passthrough and otherwise use > > scsi-hd. > > + > > +Two virtio storage controllers are available: virtio-blk and virtio-scsi. > > + > > +### virtio-blk > > +The virtio-blk device presents a block device to the virtual machine. Each > > +virtio-blk device appears as a disk inside the guest. virtio-blk was > > available > > +before virtio-scsi and is the most widely deployed virtio storage > > controller. > > + > > +The virtio-blk device offers high performance thanks to a thin software > > stack > > +and is therefore a good choice when performance is a priority. > > + > > +Applications that send SCSI commands are better served by the virtio-scsi > > +device, which has full SCSI support. SCSI passthrough was removed from the > > +Linux virtio-blk driver in v5.6 in favor of using virtio-scsi. > > Is "discard=unmap" worth mentioning specifically? For me, that was the > reason for switching practically all my domains to virtio-scsi from > virtio-blk. ("Delete files in the guest, recover space on the host.")
virtio-blk supports discard since Linux commit
1f23816b8eb8fdc39990abe166c10a18c16f6b21 ("virtio_blk: add discard and
write zeroes support"). The feature was added in 2018 so you now have
the choice between virtio-blk or virtio-scsi again :).
Stefan
signature.asc
Description: PGP signature
