[libvirt] [PATCH v4 0/5] Allow to make disk optional on migration

Michal Privoznik mprivozn at redhat.com
Tue Oct 25 07:58:24 UTC 2011


On 20.10.2011 16:52, Michal Privoznik wrote:
> This is a 4rd version of patches [1].
> Diff to v3 includes Daniel's review and some other improvements.
> 
> The aim of these patches is to mark CDROM and floppy optional,
> thus they might get dropped during migration, domain startup,
> restore, etc. The granularity is set on disk level, so user
> can decide which cd-roms are important and which not.
> 
> There are 3 levels of optionality:
>     - mandatory - fail if missing for any reason (the default)
>     - requisite - fail if missing on boot up, drop if missing on
>                   migrate/restore/revert
>     - optional  - drop if missing at any start attempt.
> 
> To assign a disk one of these, just append 'startupPolicy' attribute
> to its <source>.
> 
> If a domain is then eventually started (migrated, restored, whatever),
> we check for source path being accessible (currently only qemu driver
> is supported) from hypervisor's POV. This is done by virFileAccessibleAs()
> function. Currently, only uid+gid are considered. Ideally, this
> should be extended to SElinux labeling and cgroups.
> 
> 1: https://www.redhat.com/archives/libvir-list/2011-October/msg00896.html
> 
> 
> Michal Privoznik (5):
>   conf: Introduce optional startupPolicy attribute for cdrom and floppy
>   util: Create virFileAccessibleAs function
>   qemu: Move device alias assigning before command line construction
>   qemu: implement startupPolicy
>   on_missing: Emit event on disk source dropping
> 
>  daemon/remote.c                                    |   39 ++++++++++
>  docs/formatdomain.html.in                          |   26 ++++++-
>  docs/schemas/domaincommon.rng                      |   22 +++++-
>  examples/domain-events/events-c/event-test.c       |   28 +++++++-
>  examples/domain-events/events-python/event-test.py |    4 +
>  include/libvirt/libvirt.h.in                       |   29 +++++++
>  python/libvirt-override-virConnect.py              |    9 ++
>  python/libvirt-override.c                          |   52 +++++++++++++
>  src/conf/domain_conf.c                             |   43 ++++++++++-
>  src/conf/domain_conf.h                             |   11 +++
>  src/conf/domain_event.c                            |   61 +++++++++++++++
>  src/conf/domain_event.h                            |    9 ++
>  src/libvirt_private.syms                           |    4 +
>  src/qemu/qemu_command.c                            |    5 +-
>  src/qemu/qemu_command.h                            |    1 +
>  src/qemu/qemu_domain.c                             |   73 ++++++++++++++++++
>  src/qemu/qemu_domain.h                             |    4 +
>  src/qemu/qemu_driver.c                             |    3 +
>  src/qemu/qemu_process.c                            |    7 ++
>  src/remote/remote_driver.c                         |   35 +++++++++
>  src/remote/remote_protocol.x                       |   10 ++-
>  src/remote_protocol-structs                        |    6 ++
>  src/util/util.c                                    |   78 ++++++++++++++++++++
>  src/util/util.h                                    |    3 +
>  tests/qemuxml2argvtest.c                           |    3 +
>  .../qemuxml2xmlout-disk-cdrom-empty.xml            |   31 ++++++++
>  tests/qemuxmlnstest.c                              |    3 +
>  27 files changed, 585 insertions(+), 14 deletions(-)
>  create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-cdrom-empty.xml
> 

Thanks, pushed.




More information about the libvir-list mailing list