On Mon, Oct 14, 2024 at 09:15:16AM -0400, Stefan Berger wrote:
On 10/14/24 5:19 AM, Daniel P. Berrangé wrote:
> On Fri, Oct 11, 2024 at 10:46:58AM -0400, Stefan Berger wrote:
> >
> >
> > On 10/11/24 10:32 AM, Marc-André Lureau wrote:
> > > Hi
> > >
> > > On Fri, Oct 11, 2024 at 6:17 PM Stefan Berger
<stefanb(a)linux.ibm.com> wrote:
> > > >
> > > >
> > > >
> > > > On 10/11/24 10:10 AM, Marc-André Lureau wrote:
> > > > > Hi
> > > > >
> > > > > On Fri, Oct 11, 2024 at 5:49 PM Stefan Berger
<stefanb(a)linux.ibm.com> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 10/4/24 9:32 AM, marcandre.lureau(a)redhat.com wrote:
> > > > > > > From: Marc-André Lureau
<marcandre.lureau(a)redhat.com>
> > > > > > >
> > > > > > > Learn to parse a file path for the TPM state.
> > > > > > >
> > > > > > > Signed-off-by: Marc-André Lureau
<marcandre.lureau(a)redhat.com>
> > > > > > > ---
> > > > > > > docs/formatdomain.rst | 19
++++++++++++++
> > > > > > > src/conf/domain_conf.c | 28
+++++++++++++++++++++
> > > > > > > src/conf/domain_conf.h | 9
+++++++
> > > > > > > src/conf/schemas/domaincommon.rng | 14
+++++++++++
> > > > > > > tests/qemuxmlconfdata/tpm-emulator-tpm2.xml | 1
+
> > > > > > > 5 files changed, 71 insertions(+)
> > > > > > >
> > > > > > > diff --git a/docs/formatdomain.rst
b/docs/formatdomain.rst
> > > > > > > index 4336cff3ac..992bb98730 100644
> > > > > > > --- a/docs/formatdomain.rst
> > > > > > > +++ b/docs/formatdomain.rst
> > > > > > > @@ -8173,6 +8173,25 @@ Example: usage of the TPM
Emulator
> > > > > > > The default version used depends on the
combination of hypervisor, guest
> > > > > > > architecture, TPM model and backend.
> > > > > > >
> > > > > > > +``source``
> > > > > > > + The ``source`` element specifies the location of
the TPM state storage . This
> > > > > > > + element only works with the ``emulator`` backend.
> > > > > > > +
> > > > > > > + If not specified, the storage configuration is
left to libvirt discretion.
> > > > > > > +
> > > > > > > + This element requires that swtpm v0.7 or later is
installed.
> > > > > > > +
> > > > > > > + The following attributes are supported:
> > > > > > > +
> > > > > > > + ``type``
> > > > > > > + The type of storage. It's possible to
provide "file" to utilize a single
> > > > > > > + file or block device where the TPM state will
be stored.
> > > > > > > +
> > > > > > > + ``path``
> > > > > > > + The path to the TPM state storage.
> > > > > >
> > > > > > The file backend of swtpm does not do the locking similar
to what the
> > > > > > dir backend does because those who added the file backend
didn't
> > > > > > need/want it. If we now give full control to the path of
the TPM state
> > > > > > file to the user via the domain XML then whose fault is it
if two VMs
> > > > > > use the same path to a file backend and stomp on the TPM
state file? Is
> > > > > > it the fault of the user because of how he defined the path
in the XMLs?
> > > > >
> > > > > Imho, it's desirable to have a similar locking behaviour
regardless of
> > > > > the backend and prevent users for mistakenly using the same
file.
> > > >
> > > > We will only be able to support the locking with an option on the
> > > > command line for swtpm (refelected by a new capability verb) and
support
> > > > this series here once that has become available with a new version
of
> > > > swtpm. Otherwise I would avoid giving full control to the path to
the
> > > > users but let libvirt choose a per-VM unique name for the state
file.
> > >
> > > The use-case is to let the user define a specific block device path.
> >
> > Why would they store it on a block device rather than a file system?
>
> If they want to make the storage available to multiple hosts, then using
> a block device is simpler, as most filesystems are unsafe to concurrently
> expose in multiple hosts.
You then need n block devices for n swtpm instances?
Yes.
In the context of something like KubeVirt this is fine, each VM runs inside
a POD, and each POD can be allocated a block device by Kubernetes.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|