[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
Re: [qemu-web PATCH v2] Add virtio-blk and virtio-scsi configuration post
Mon, 18 Jan 2021 18:14:38 +0100
On 01/18/21 18:03, Stefan Hajnoczi wrote:
> 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@example.com>
>>> * 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
>>> * 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
>>> 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
>>> +in this series introduced QEMU storage concepts. Now we move on to look at
>>> +two most popular emulated storage controllers for virtualization:
>>> +and virtio-scsi.
>>> +This post provides recommendations for configuring virtio-blk and
>>> +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
>>> +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
>>> +are generally the most performant and fully-featured storage controllers in
>>> +Unlike emulations of hardware storage controllers, virtio-blk and
>>> +are specifically designed and optimized for virtualization. The details of
>>> +they work are published for driver and device implementors in the [VIRTIO
>>> +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
>>> +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
>>> +* Prefer virtio-blk in performance-critical use cases.
>>> +* With virtio-scsi, use scsi-block for SCSI passthrough and otherwise use
>>> +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
>>> +before virtio-scsi and is the most widely deployed virtio storage
>>> +The virtio-blk device offers high performance thanks to a thin software
>>> +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 :).
(I wonder now if my understanding has been muddled by Windows guest
support... But even the Windows guest driver has commit 335d13682a56
("[viostor] add preliminary support for discard (unmap) command",