Exporting and Importing Boot Configurations Between Clusters#
A multiple head node cluster contains cooperating head nodes that share a replicated database and transparent access to peer boot configurations, kernel images, and initramfs files. See Managing Multiple Head Nodes for details. There is no need to manually copy boot configs between these head nodes.
However, it may be useful to copy boot configurations from a head node that controls one cluster to another head node that controls a separate cluster, thereby allowing the same boot config to be employed by compute nodes in the target cluster. On the source head node the administrator "exports" a boot config to create a single all-inclusive self-contained file that can be copied to a target head node. On the target head node the administrator "imports" that file into the local cluster database, where it merges with the local head node's existing configs, images, and files.
Important
Prior to exporting/importing a boot configuration,
you should determine if the boot config and kernel image names on the source
cluster already exist on the target cluster.
For example, for a boot configuration named xyzBoot, execute
scyld-bootctl -i xyzBoot ls -l
on the source head node to view the
boot config name xyzBoot and note its image name, e.g., xyzImage.
Then on the target head node execute
scyld-bootctl ls -l | egrep "xyzBoot|xyzImage"
to determine if duplicates exist.
If any name conflict exists, then either (1) on the source head node create or clone a new uniquely named boot config associated with a uniquely named image, then export that new boot config, or (2) on the target head node import the boot config using optional arguments, as needed, to assign unique name or names.
To export the boot configuration xyzBoot:
scyld-bootctl -i xyzBoot export
which creates the file xyzBoot.export
.
If there is no name conflict(s) with the target cluster,
then on the target head node import with:
scyld-bootctl import xyzImage.export
If there is a name conflict with the image name, then perform the import with the additional argument to rename the imported image:
scyld-bootctl import xyzImage.export --image uniqueImg
or import the boot config without importing its embedded image at all (and later associate a new image with this imported boot config):
scyld-bootctl import xyzImage.export --no-recurse
If there is a name conflict with the boot config name itself, then add:
scyld-bootctl import xyzImage.export --boot-config uniqueBoot
Associate a new image name to the imported boot config if desired, then associate the boot config with the desired compute node(s):
scyld-nodectl -i <NODES> set _boot_config=xyzBoot