Hi Jerry,
This proposal mentions "native" zones.
Please ensure that the "cluster" brand is treated
as a "native" brand, as noted in PSARC 2007/304.
By the way PSARC 2007/304 was approved last week.
The changes are now in Nevada. We have been working
with the ON & Install gate C-teams. The changes will
go into the S10u4 gates once we receive notification of what date
they want the putback to occur. After the changes
get into both S10u4 gates, I will return to discuss the
long-term solution for S10u5.
Regards,
Ellard
Jerry Jelinek wrote:
> Enclosed is a draft of an ARC fast-track proposal I have been
> working on recently, in-between a few other things. I would
> like to submit this for ARC review shortly but I wanted to
> send this out to see if anybody had any comments before I
> do that. I have cc-ed the install-discuss alias as well, since
> there is some overlap, although this is probably most interesting
> to zones folks.
>
> One additional comment. I believe this proposal should also address
> the recurring question about being able to migrate a zone from
> sun4u to sun4v (and back).
>
> Please send me any comments or questions.
>
> Thanks,
> Jerry
>
> ---
>
> SUMMARY:
>
> This fast-track enhances the Solaris Zones [1] subsystem to address an
> existing RFE [2] requesting the ability to update a non-global zone
> when
> migrating from one machine to another.
>
> Currently when we migrate a zone we validate that the destination
> host has
> the same pkg versions and patches for the zone-dependent packages as
> were
> installed on the source host. This is described in the zone
> migration ARC
> case [3]. While this is safe and ensures that the new host is
> capable of
> properly supporting the zone, it is also very restrictive. With this
> enhancement, if the new host has higher versions of the zone-dependent
> pkgs, or higher versions of patches for those pkgs, then when we
> attach the
> zone to the new host we will enable an update of the pkgs in the
> zone to
> match the new host.
>
> Patch binding is requested for this "update on attach" capability. The
> stability of these interfaces is documented in the interface table
> below.
>
> DETAILS:
>
> "Update on attach" is different from a traditional zone upgrade. In
> the
> traditional upgrade all native zones are upgraded as part of
> upgrading the
> base system using a standard Solaris media image as the source for
> the pkgs
> to upgrade to. Pkg operations on pkgs with the SUNW_ALLZONES attribute
> set must be run from the global zone, the operation will be
> performed on
> all native zones, and this behavior is built-in to the pkg commands.
>
> With "update on attach" we are only updating a single zone. We cannot
> depend on the basic pkg behavior which updates all zones when a pkg is
> installed in the global zone. We cannot use standard Solaris media
> since
> the host can have a variety of patches installed which have updated the
> base system pkgs beyond any specific Solaris release.
>
> Instead what we want to do is similar to what happens when a zone is
> initially installed. The spooled pkg data and global zone files are
> the
> source for installing the zone. In this way the zone is installed with
> the correct pkg versions along with any patches that have been
> applied to
> those pkgs.
>
> We can do something similar for "update on attach". The zone 'attach'
> validation already generates a list of mismatched pkg versions and
> patches.
> We can use this information to determine which dependent pkgs need to
> be updated so that the zone can run properly on the new host. We will
> remove the obsolete versions of those pkgs and install the up-to-date
> version from the pkg data spooled in the global zone. This
> procedure will
> preserve any editable or volatile files that are delivered by these
> pkgs.
> The normal pkg install scripts and class action scripts are run as
> part of
> this process so any updates performed by these scripts will take
> place. As
> described in [3] the dependent pkgs are those that have the
> SUNW_PKG_ALLZONES=true pkg attribute as well as any pkgs installed
> in an
> inherited-pkg-dir. Only these pkgs will be updated to match the new
> host.
>
> We will ensure that we will only update a zone to a host running the
> same
> or later version of the dependent pkgs. For example, if the new
> host has
> a mix of higher and lower version patches as compared to the source
> host
> then we will not allow an update during the attach.
>
> By default the zone will not be updated during attach. Instead, the
> existing output listing the pkgs that are out of sync will continue to
> be printed. We will add a new option (-u) to the 'zoneadm attach'
> subcommand. When this option is used then zoneadm will update the
> necessary pkgs during the attach (assuming there are any to update).
>
> Because the zone has previously booted and run on the source host it is
> possible that there could be security issues with directly accessing
> the
> zone's filesystem to remove and add pkgs to the zone. To protect
> against
> this the pkg operations will be performed within the scratch zone
> [4]. The
> scratch zone was defined to address this specific issue for upgrading
> zones.
>
> We cannot use the pkgrm(1M) and pkgadd(1M) commands to update the zone
> while running within the scratch zone. Those commands explicitly
> disallow removing or adding a pkg with the SUNW_ALLZONES attribute set
> unless running in the global zone. Instead we will use the
> /usr/sadm/install/bin/pkgremove and /usr/sadm/install/bin/pkginstall
> commands directly. The pkgrm and pkgadd commands are wrappers to those
> commands. Those commands were formerly part of the ON consolidation
> but
> moved to the Install consolidation as part of [5]. That case
> documents man
> pages for pkgremove and pkginstall but no such man pages exist. No
> stability level is documented for these two commands so we're assuming
> these are consolidation private and a contract is needed to directly
> use
> these commands. The command line options being used are:
>
> /usr/sadm/install/bin/pkgremove:
> -a same as public pkgrm option
> -F private - used by upgrade to
> suppress
> actual removal of files
> delivered by
> the pkg
> -M same as public pkgrm option
> -n same as public pkgrm option
> -O inherited-filesystem={IPD} private - used to specify
> the zone's
> inherited-pkg-dir
> entries
> -R same as public pkgrm option
>
> /usr/sadm/install/bin/pkginstall:
> -a same as public pkgrm option
> -C private - disable checksums
> since files
> are installed via a separate
> copy from
> the global zone
> -h private - enable hollow pkg support
> -N pkgadd private - error msgs use use the
> name
> "pkgadd" instead of "pkginstall"
> -n same as public pkgrm option
> -O addzonename private - error msgs include
> zonename
> -O inherited-filesystem={IPD} private - used to specify
> the zone's
> inherited-pkg-dir
> entries
> -R same as public pkgrm option
> -S private - suppress copyright output
> -t private - suppress spooled pkg
> creation
> -z private - install zone pkg data
> from
> spooled pkg data
>
> EXPORTED INTERFACES
>
> zoneadm attach option
> [-u] Evolving
>
> IMPORTED INTERFACES
>
> pkgremove, pkginstall and
> their options described in
> this case Contracted Consolidation Private
>
> REFERENCES
>
> 1. PSARC 2002/174 Virtualization and Namespace Isolation in Solaris
> 2. RFE: zoneadm attach should patch/update the zone to the new hosts level
> Bugid 6480464 http://bugs.opensolaris.org/view_bug.do?bug_id=6480464
> 3. PSARC/2006/030 Zone migration
> 4. PSARC/2005/474 Zones Upgrade
> 5. PSARC/2002/274 Move SVr4 Packaging from ON to ADMIN
> _______________________________________________
> zones-discuss mailing list
> zones-discuss at opensolaris.org