[Swan-dev] merging base and clone test domains

Andrew Cagney andrew.cagney at gmail.com
Mon Jan 21 17:53:48 UTC 2019


Picking up an offline discussion.

Long ago the domain structure looked like:

base - the initial OS install
  east,west,nic,... cloned from base

it had several problems:

- rebuilding base was exceptionally unreliable, network intensive, and
failures were non-obvious
- only one OS was allowed
- only one test directory was allowed
- it wasn't parallel
- installing was slow

but things have evolved:

- building a per-OS base is done in three clear steps - download the
ISO, install the ISO, upgrade the OS - and that along with KVM/kernel
fixes have made the process far more reliable
- a per-os base is allowed
- multiple build directories are allowed
- parallel testing is allowed
- installs were sped up by adding a dedicated build machine that could be cloned

and the structure looks something like:

  OS base (shared)
    clone - local to build tree
      nic* - disk cloned from clone
      build* - disk cloned from clone
        east,west,north,south* - disk cloned from build

(* denotes a domain that can be moved to /tmp) however, as this
evolved some quirks were picked up, the notable one is the clone
domain which sits between the base domain and the test domains.  It's
purpose was:

- isolate the build domains from the base domain (if the base domain
was deleted things didn't barf)
- provide somewhere to prototype changes (a clean starting point could
be created by re-creating clone from base)

Two changes were put forward, but they are somewhat contradictory:

- merge clone and base creating a per-build tree base domain - for
most developers clone adds no benefit
- keep clone and allow it to be created in /tmp - but I'm not sure
this is a benefit though as, during testing, all the useful contents
of clone's disk should end up, read-only, in the buffer/cache which is
faster again then /tmp

with this in mind I'm planning on implementing the first suggestion -
merge base and clone.

Andrew


More information about the Swan-dev mailing list