qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-web PATCH v2] Add virtio-blk and virtio-scsi configuration pos


From: Stefan Hajnoczi
Subject: Re: [qemu-web PATCH v2] Add virtio-blk and virtio-scsi configuration post
Date: Mon, 18 Jan 2021 17:03:25 +0000

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 <stefanha@redhat.com>
> > ---
> > 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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]