[PATCH 00/12][v2] Introduce network-backed loader & nvram.

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

 



Libvirt domain XML today only allows local filepaths that can be
used to specify a loader element or its matching NVRAM disk.
Given that Vms may themselves move across hypervisor hosts, it should be
possible to allocate loaders/NVRAM disks on network storage for
uninterrupted access.

This series extends the firmware loader & NVRAM disks to be hosted over
network-backed disks, for high availability.
It achieves this by embedding virStorageSource elements for loader &
nvram into _virDomainLoaderDef, as discussed in
https://www.redhat.com/archives/libvir-list/2018-March/msg01721.html.

Currently, the source type is annotated by introducing a new attribute "backing" for both
'loader' and 'nvram' elements. Hence, a sample XML with new annotation looks like this:

<loader readonly='yes' type='pflash' backing='file'>
  <source file='/usr/share/OVMF/OVMF_CODE.fd'/>
</loader>
<nvram backing='network'>  <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
  <host name='example.com' port='6000'/>
</source>

References:
----------
v0 / Proposal: https://www.redhat.com/archives/libvir-list/2018-March/msg01721.html.
v1 : https://www.redhat.com/archives/libvir-list/2018-April/msg02024.html 

Changelog:
---------
Changes since v1:
1. Split up the patch into smaller units.
2. Added doc snippet & tests.
3. Changed the formatting code in patch 4 to format a domain's XML in
the style that was read.

I found that encryption seems to be a property of the storage volume.
I didnt  include that in this series since it does not use backing type
as volume. Will include that later once the basic network support
patches get done.

Looking forward to feedback,
Prerna

Prerna Saxena (12):
  Schema: Introduce XML schema for network-backed loader and nvram
    elements.
  Loader: Add a more elaborate definition.
  Parse domain XML to generate virDomainLoaderDef & virDomainNvramDef.
  Format the loader source appropriately.
  Plumb the loader source into generation of QEMU command line.
  Fix the domain def inference logic to correctly account for
    network-backed     pflash devices.
  Bhyve: Fix command line generation to correctly pick up local loader
    path.
  virt-aa-helper: Adjust references to loader & nvram elements to
    correctly     parse the virStorageSource types.
  Vbox: Adjust references to 'loader' and 'nvram' elements given that   
     these are now represented by virStorageSourcePtr.
  Xen: Adjust all references to loader & nvram elements given that they
    are now backed by virStorageSourcePtr
  Test: Add a test snippet to evaluate command line generation for    
    loader/nvram specified via virStorageSource
  Documentation: Add a blurb for the newly added XML snippets for loader
    and nvram.

 docs/formatdomain.html.in                      |  36 ++++-
 docs/schemas/domaincommon.rng                  | 108 ++++++++++---
 src/bhyve/bhyve_command.c                      |   6 +-
 src/conf/domain_conf.c                         | 215 +++++++++++++++++++++++--
 src/conf/domain_conf.h                         |  11 +-
 src/qemu/qemu_cgroup.c                         |  13 +-
 src/qemu/qemu_command.c                        |  21 ++-
 src/qemu/qemu_domain.c                         |  31 ++--
 src/qemu/qemu_driver.c                         |   7 +-
 src/qemu/qemu_parse_command.c                  |  30 +++-
 src/qemu/qemu_process.c                        |  42 +++--
 src/security/security_dac.c                    |   6 +-
 src/security/security_selinux.c                |   6 +-
 src/security/virt-aa-helper.c                  |  14 +-
 src/vbox/vbox_common.c                         |  11 +-
 src/xenapi/xenapi_driver.c                     |   4 +-
 src/xenconfig/xen_sxpr.c                       |  19 ++-
 src/xenconfig/xen_xm.c                         |   9 +-
 tests/qemuxml2argvdata/bios-nvram-network.args |  31 ++++
 tests/qemuxml2argvdata/bios-nvram-network.xml  |  42 +++++
 tests/qemuxml2argvtest.c                       |   1 +
 21 files changed, 562 insertions(+), 101 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network.xml

-- 
1.8.1.2

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux