From: Juan Quintela <quintela@redhat.com>
To: Hanna Czenczek <hreitz@redhat.com>
Cc: "Stefan Hajnoczi" <stefanha@gmail.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
virtio-fs-list <virtio-fs@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Eugenio Pérez" <eperezma@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Dave Gilbert" <dgilbert@redhat.com>
Subject: Re: [Virtio-fs] vhost-user (virtio-fs) migration: back end state
Date: Tue, 07 Feb 2023 16:13:21 +0100 [thread overview]
Message-ID: <87lel9o6em.fsf@secure.mitica> (raw)
In-Reply-To: <ec3a9cf9-1e43-f91a-b64d-9bd57b93fc16@redhat.com> (Hanna Czenczek's message of "Tue, 7 Feb 2023 10:35:30 +0100")
Hanna Czenczek <hreitz@redhat.com> wrote:
> On 06.02.23 22:02, Juan Quintela wrote:
>> Stefan Hajnoczi <stefanha@gmail.com> wrote:
>>> On Mon, 6 Feb 2023 at 07:36, Hanna Czenczek <hreitz@redhat.com> wrote:
>>>> Hi Stefan,
>>>>
>>>> For true virtio-fs migration, we need to migrate the daemon’s (back
>>>> end’s) state somehow. I’m addressing you because you had a talk on this
>>>> topic at KVM Forum 2021. :)
>>>>
>>>> As far as I understood your talk, the only standardized way to migrate a
>>>> vhost-user back end’s state is via dbus-vmstate. I believe that
>>>> interface is unsuitable for our use case, because we will need to
>>>> migrate more than 1 MB of state. Now, that 1 MB limit has supposedly
>>>> been chosen arbitrarily, but the introducing commit’s message says that
>>>> it’s based on the idea that the data must be supplied basically
>>>> immediately anyway (due to both dbus and qemu migration requirements),
>>>> and I don’t think we can meet that requirement.
>>> Yes, dbus-vmstate is the available today. It's independent of
>>> vhost-user and VIRTIO.
>> Once that we are here:
>> - typical size of your starte (either vhost-user or whatever)
>
> Difficult to say, completely depends on the use case. When
> identifying files by path and organizing them in a tree structure,
> probably ~48 bytes per indexed file, plus, say, 16 bytes per open
> file.
>
> So for a small shared filesystem, the state can be very small, but
> we’ll also have to prepare for cases where it is in the range of
> several MB.
That is not two bad. Anything below a few tens megabytes is easy to
manage. Anything in the hundred of megabytes or more really need thought.
> The main problem isn’t size but that (when identifying files by path)
> we’ll probably want to construct the paths when migrating, which won’t
> be done instantaneously.
>
>> - what are the posibilities that you can enter the iterative stage
>> negotiation (i.e. that you can create a dirty bitmap about your state)
>
> Very good. We should know when parts of the state (information about
> a specific indexed or open file) changes. (Exceptions apply, but they
> mostly come down to whether indexed files are identified by path or
> file handle, which is a choice the user will probably need to make.
> Either one comes with caveats.)
That is good.
>> How much is migration to file used in practice?
>> I would like to have some information here.
>> It could be necessary probably to be able to encrypt it. And that is a
>> (different) whole can of worms.
>
> I don’t think virtio-fs state needs to be encrypted any more than any
> other state. It’ll basically just map FUSE inode IDs to a file in the
> shared directory, either via path or file handle; and then also track
> open(2) flags for opened files. (At least that’s what’s currently on
> my radar.) That information should actually be replicated in the
> guest, too (because it too will have mapped the filesystem paths to
> FUSE inode IDs), so isn’t more security relevant than guest memory.
Oh, that was not about virtio-fs at all.
Is because you talked about file migration.
Right now, we need to use exec migration to do this. but it is clearly
suboptimal. Basically we just do a normal migration, but that means
that we have a lot of duplicated pages on the destination.
But we can do better. Just create a file that is as big as the memory,
and write everypage in its own place. So loading is going to be really
fast. (yes holes on RAM is a different issue, but we can ignore that
for now).
And the other thing is that we have to really encrypt it somehow, so I
guess that a block cipher should work, but encryption is not my field of
expertise at all.
In vhost-user-fs case, I fully agree with you that if you are
"exporting" part of the local filesystem, encryption don't buy you
anything.
Later, Juan.
WARNING: multiple messages have this Message-ID (diff)
From: Juan Quintela <quintela@redhat.com>
To: Hanna Czenczek <hreitz@redhat.com>
Cc: "Stefan Hajnoczi" <stefanha@gmail.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
virtio-fs-list <virtio-fs@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Eugenio Pérez" <eperezma@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Dave Gilbert" <dgilbert@redhat.com>
Subject: Re: vhost-user (virtio-fs) migration: back end state
Date: Tue, 07 Feb 2023 16:13:21 +0100 [thread overview]
Message-ID: <87lel9o6em.fsf@secure.mitica> (raw)
In-Reply-To: <ec3a9cf9-1e43-f91a-b64d-9bd57b93fc16@redhat.com> (Hanna Czenczek's message of "Tue, 7 Feb 2023 10:35:30 +0100")
Hanna Czenczek <hreitz@redhat.com> wrote:
> On 06.02.23 22:02, Juan Quintela wrote:
>> Stefan Hajnoczi <stefanha@gmail.com> wrote:
>>> On Mon, 6 Feb 2023 at 07:36, Hanna Czenczek <hreitz@redhat.com> wrote:
>>>> Hi Stefan,
>>>>
>>>> For true virtio-fs migration, we need to migrate the daemon’s (back
>>>> end’s) state somehow. I’m addressing you because you had a talk on this
>>>> topic at KVM Forum 2021. :)
>>>>
>>>> As far as I understood your talk, the only standardized way to migrate a
>>>> vhost-user back end’s state is via dbus-vmstate. I believe that
>>>> interface is unsuitable for our use case, because we will need to
>>>> migrate more than 1 MB of state. Now, that 1 MB limit has supposedly
>>>> been chosen arbitrarily, but the introducing commit’s message says that
>>>> it’s based on the idea that the data must be supplied basically
>>>> immediately anyway (due to both dbus and qemu migration requirements),
>>>> and I don’t think we can meet that requirement.
>>> Yes, dbus-vmstate is the available today. It's independent of
>>> vhost-user and VIRTIO.
>> Once that we are here:
>> - typical size of your starte (either vhost-user or whatever)
>
> Difficult to say, completely depends on the use case. When
> identifying files by path and organizing them in a tree structure,
> probably ~48 bytes per indexed file, plus, say, 16 bytes per open
> file.
>
> So for a small shared filesystem, the state can be very small, but
> we’ll also have to prepare for cases where it is in the range of
> several MB.
That is not two bad. Anything below a few tens megabytes is easy to
manage. Anything in the hundred of megabytes or more really need thought.
> The main problem isn’t size but that (when identifying files by path)
> we’ll probably want to construct the paths when migrating, which won’t
> be done instantaneously.
>
>> - what are the posibilities that you can enter the iterative stage
>> negotiation (i.e. that you can create a dirty bitmap about your state)
>
> Very good. We should know when parts of the state (information about
> a specific indexed or open file) changes. (Exceptions apply, but they
> mostly come down to whether indexed files are identified by path or
> file handle, which is a choice the user will probably need to make.
> Either one comes with caveats.)
That is good.
>> How much is migration to file used in practice?
>> I would like to have some information here.
>> It could be necessary probably to be able to encrypt it. And that is a
>> (different) whole can of worms.
>
> I don’t think virtio-fs state needs to be encrypted any more than any
> other state. It’ll basically just map FUSE inode IDs to a file in the
> shared directory, either via path or file handle; and then also track
> open(2) flags for opened files. (At least that’s what’s currently on
> my radar.) That information should actually be replicated in the
> guest, too (because it too will have mapped the filesystem paths to
> FUSE inode IDs), so isn’t more security relevant than guest memory.
Oh, that was not about virtio-fs at all.
Is because you talked about file migration.
Right now, we need to use exec migration to do this. but it is clearly
suboptimal. Basically we just do a normal migration, but that means
that we have a lot of duplicated pages on the destination.
But we can do better. Just create a file that is as big as the memory,
and write everypage in its own place. So loading is going to be really
fast. (yes holes on RAM is a different issue, but we can ignore that
for now).
And the other thing is that we have to really encrypt it somehow, so I
guess that a block cipher should work, but encryption is not my field of
expertise at all.
In vhost-user-fs case, I fully agree with you that if you are
"exporting" part of the local filesystem, encryption don't buy you
anything.
Later, Juan.
next prev parent reply other threads:[~2023-02-07 15:13 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 12:35 [Virtio-fs] vhost-user (virtio-fs) migration: back end state Hanna Czenczek
2023-02-06 12:35 ` Hanna Czenczek
2023-02-06 16:27 ` [Virtio-fs] " Stefan Hajnoczi
2023-02-06 16:27 ` Stefan Hajnoczi
2023-02-06 21:02 ` [Virtio-fs] " Juan Quintela
2023-02-06 21:02 ` Juan Quintela
2023-02-06 21:16 ` [Virtio-fs] " Stefan Hajnoczi
2023-02-06 21:16 ` Stefan Hajnoczi
2023-02-06 23:58 ` [Virtio-fs] " Juan Quintela
2023-02-06 23:58 ` Juan Quintela
2023-02-07 9:35 ` [Virtio-fs] " Hanna Czenczek
2023-02-07 9:35 ` Hanna Czenczek
2023-02-07 15:13 ` Juan Quintela [this message]
2023-02-07 15:13 ` Juan Quintela
2023-02-07 9:08 ` [Virtio-fs] " Hanna Czenczek
2023-02-07 9:08 ` Hanna Czenczek
2023-02-07 12:29 ` [Virtio-fs] " Stefan Hajnoczi
2023-02-07 12:29 ` Stefan Hajnoczi
2023-02-08 14:32 ` [Virtio-fs] " Stefan Hajnoczi
2023-02-08 14:32 ` Stefan Hajnoczi
2023-02-08 14:34 ` [Virtio-fs] " Michael S. Tsirkin
2023-02-08 14:34 ` Michael S. Tsirkin
2023-02-08 15:58 ` [Virtio-fs] " Hanna Czenczek
2023-02-08 15:58 ` Hanna Czenczek
2023-02-08 16:32 ` [Virtio-fs] " Stefan Hajnoczi
2023-02-08 16:32 ` Stefan Hajnoczi
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=87lel9o6em.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eperezma@redhat.com \
--cc=hreitz@redhat.com \
--cc=jasowang@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=stefanha@redhat.com \
--cc=virtio-fs@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.