[Swan-dev] merging base and clone test domains
Andrew Cagney
andrew.cagney at gmail.com
Mon Jan 28 13:54:15 UTC 2019
Heads up, I've pushed the below.
As noted below, this will trigger an upgrade of the base domain (but only once).
commit 093a9d912ec6a56602d2813196fc3d14444cd871 (HEAD -> master,
origin/master, origin/HEAD)
Author: Andrew Cagney <cagney at gnu.org>
Date: Wed Jan 23 14:02:36 2019 -0500
kvm: merge base and clone domains, make base domain per-build tree
The domains are reduced to:
[prefix]swan${OS}base
-> [prefix]nic
-> [prefix]build
-> {prefixes}{east,west,...}
There's one quirk, base is built in two steps using two make rules:
1. build the base domain
2. upgrade the base domain (new)
and the second may trigger a rebuild of most domains
On Mon, 21 Jan 2019 at 12:53, Andrew Cagney <andrew.cagney at gmail.com> wrote:
>
> 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