From: Stefan Hajnoczi <stefanha@redhat.com>
To: Kirill Tkhai <kirill.tkhai@openvz.org>
Cc: qemu-devel@nongnu.org, dm-devel@redhat.com,
linux-kernel@vger.kernel.org, Kevin Wolf <kwolf@redhat.com>,
hreitz@redhat.com, Xie Yongji <xieyongji@bytedance.com>,
sgarzare@redhat.com
Subject: Attaching qcow2 images to containers
Date: Wed, 18 May 2022 07:30:40 +0100 [thread overview]
Message-ID: <YoSSkOQaGL0sBNOI@stefanha-x1.localdomain> (raw)
[-- Attachment #1: Type: text/plain, Size: 2063 bytes --]
Hi Kirill,
I saw your "[PATCH 0/4] dm: Introduce dm-qcow2 driver to attach QCOW2
files as block device" patch series:
https://lore.kernel.org/linux-kernel/YkME5ZS2CpXuNmN6@infradead.org/T/
There has been recent work in vDPA (VIRTIO Data Path Acceleration) to
achieve similar functionality. The qemu-storage-daemon VDUSE export
attaches a virtio-blk device to the host kernel and QEMU's qcow2
implementation can be used:
https://patchew.org/QEMU/20220504074051.90-1-xieyongji@bytedance.com/
A container can then access this virtio-blk device (/dev/vda). Note that
the virtio-blk device is implemented in software using vDPA/VDUSE, there
is no virtio-pci device.
As a quick comparison with a dm-qcow2 target, this approach keeps the
qcow2 code in QEMU userspace and can take advantage of QEMU block layer
features (storage migration/mirroring/backup, snapshots, etc). On the
other hand, it's likely to be more heavyweight because bounce buffers
are required in VDUSE for security reasons, there is a separate
userspace process involved, and there's the virtio_blk.ko driver and an
emulated virtio-blk device involved.
Another similar feature that was recently added to QEMU is the
qemu-storage-daemon FUSE export:
$ qemu-storage-daemon \
--blockdev file,filename=test.img,node-name=drive0 \
--export fuse,node-name=drive0,id=fuse0,mountpoint=/tmp/foo
$ ls -alF /tmp/foo
-r--------. 1 me me 10737418240 May 18 07:22 /tmp/foo
This exports a disk image as a file via FUSE. Programs can access it
like a regular file and qemu-storage-daemon will do the qcow2 I/O on the
underlying file.
I wanted to mention these options for exposing qcow2 disk images to
processes/containers on the host. Depending on your use cases they might
be interesting. Performance comparisons against VDUSE and FUSE exports
would be interesting since these new approaches seem to be replacing
qemu-nbd.
Can you share more about your use cases for the dm-qcow2 target? It
could be useful for everyone I've CCed to be aware of various efforts in
this area.
Thanks,
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next reply other threads:[~2022-05-18 6:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-18 6:30 Stefan Hajnoczi [this message]
2022-05-19 8:41 ` Attaching qcow2 images to containers Fam Zheng
2022-07-25 21:15 ` Kirill Tkhai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YoSSkOQaGL0sBNOI@stefanha-x1.localdomain \
--to=stefanha@redhat.com \
--cc=dm-devel@redhat.com \
--cc=hreitz@redhat.com \
--cc=kirill.tkhai@openvz.org \
--cc=kwolf@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
--cc=xieyongji@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).