[PATCH v3 0/5] Introduce network backed NVRAM

Rohit Kumar rohit.kumar3 at nutanix.com
Wed May 4 16:51:10 UTC 2022


Libvirt domain XML currently allows only local filepaths 
that can be used to specify a NVRAM disk. It should be
possible to support NVRAM disks on network storage as 
it would give flexibility to start the VM on any host 
without having to worry about where to get the latest 
nvram image.

This series extends the NVRAM element to support hosting over
network-backed disks.
It achieves this by embedding virStorageSource pointer for
nvram into _virDomainLoaderDef.

It introduces a 'type' attribute for NVRAM element to
specify 'file' vs 'network' backed NVRAM.

XML with new annotation:

<nvram type='network'>
  <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
    <host name='example.com' port='6000'/>
      <auth username='myname'>
        <secret type='iscsi' usage='mycluster_myname'/>
      </auth>
    </host>
  </source>
</nvram>

or

<nvram type='network'>
  <source protocol='nbd' name='bar'>
    <host name='example.org' port='6000'/>
  </source>
</nvram>

or

<nvram type='file'>
  <source file='/var/lib/libvirt/nvram/guest_VARS.fd'/>
</nvram>

Changes v1->v2:
 - Split the patch into smaller patches
 - Added unit test
 - Updated the doc
 - Addressed Peter's comment on v1 (https://listman.redhat.com/archives/libvir-list/2022-March/229684.html)

Changes v2->v3:
 - Added authentication with 'iscsi' protocol unit test      
 - Updated the validation logic 
 - Addressed Peter's other comments on v2 patch(https://listman.redhat.com/archives/libvir-list/2022-April/229971.html)
 

Rohit Kumar (5):
  Make NVRAM a virStorageSource type.
  Add support to parse/format/validate virStorageSource type NVRAM
  Update schema, docs, and validation logic to support network backed
    NVRAM
  Add unit tests for network backed NVRAM
  Add unit test to support new 'file' type NVRAM

 NEWS.rst                                      |   5 +
 docs/formatdomain.rst                         |  34 +++++-
 src/conf/domain_conf.c                        | 115 +++++++++++++++---
 src/conf/domain_conf.h                        |   3 +-
 src/conf/schemas/domaincommon.rng             |  21 +++-
 src/qemu/qemu_cgroup.c                        |   3 +-
 src/qemu/qemu_command.c                       |   2 +-
 src/qemu/qemu_domain.c                        |  23 +++-
 src/qemu/qemu_driver.c                        |   5 +-
 src/qemu/qemu_firmware.c                      |  23 +++-
 src/qemu/qemu_namespace.c                     |   5 +-
 src/qemu/qemu_process.c                       |   5 +-
 src/qemu/qemu_validate.c                      |  71 +++++++++++
 src/security/security_dac.c                   |   6 +-
 src/security/security_selinux.c               |   6 +-
 src/security/virt-aa-helper.c                 |   5 +-
 src/vbox/vbox_common.c                        |   3 +-
 .../bios-nvram-file.x86_64-latest.args        |  37 ++++++
 tests/qemuxml2argvdata/bios-nvram-file.xml    |  23 ++++
 .../bios-nvram-network-iscsi.x86_64-4.1.0.err |   1 +
 ...ios-nvram-network-iscsi.x86_64-latest.args |  38 ++++++
 .../bios-nvram-network-iscsi.xml              |  31 +++++
 .../bios-nvram-network-nbd.x86_64-latest.args |  37 ++++++
 .../bios-nvram-network-nbd.xml                |  28 +++++
 tests/qemuxml2argvtest.c                      |   4 +
 .../bios-nvram-file.x86_64-latest.xml         |  39 ++++++
 ...bios-nvram-network-iscsi.x86_64-latest.xml |  44 +++++++
 .../bios-nvram-network-nbd.x86_64-latest.xml  |  41 +++++++
 tests/qemuxml2xmltest.c                       |   3 +
 29 files changed, 618 insertions(+), 43 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-file.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-file.xml
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network-iscsi.x86_64-4.1.0.err
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network-iscsi.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network-iscsi.xml
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network-nbd.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/bios-nvram-network-nbd.xml
 create mode 100644 tests/qemuxml2xmloutdata/bios-nvram-file.x86_64-latest.xml
 create mode 100644 tests/qemuxml2xmloutdata/bios-nvram-network-iscsi.x86_64-latest.xml
 create mode 100644 tests/qemuxml2xmloutdata/bios-nvram-network-nbd.x86_64-latest.xml

-- 
2.25.1



More information about the libvir-list mailing list