The Content Projection Service (CPS) and Data Virtualization Service (DVS) are deprecated in CSM 1.6 and removed in CSM 1.7. Their replacement is the Scalable Boot Projection Service (SBPS). See Deprecated Features.
When compute nodes are booted, CPS and DVS project the root file system (rootfs
) over the network to the compute nodes by default.
Another option when compute nodes are booted is to download their rootfs
into RAM.
This page covers the appropriate contents for a BOS session template in order to use CPS and DVS.
rootfs_provider
parameterrootfs_provider_passthrough
parameters
root=
kernel parameterThe Content Projection Service (CPS) is an optional provider for rootfs
on compute nodes.
rootfs_provider
parameterThe following value needs to be set in the boot set of the session template in order to make CPS the rootfs
provider:
"rootfs_provider":
Set to "cpss3"
rootfs_provider_passthrough
parametersThe rootfs_provider_passthrough
boot set parameter is customized according to the following format:
rootfs_provider_passthrough=<transport>:<api_gateway>:<timeout>:<interface>[,<interface>[,<interface>]...]:<ramroot>
The following values need to be set in the boot set of the session template in order to make CPS the rootfs
provider:
"rootfs_provider_passthrough":
Set to "dvs:api-gw-service-nmn.local:300:eth0"
The variables used in this parameter represent the following:
<transport>
File system network transport. For example, nfs
or dvs
.
Can be left as an empty string to use the default value dvs
.
<api_gateway>
Name or address of the Kubernetes API gateway.
Can be left as an empty string to use the default value api-gw-service-nmn.local
.
<timeout>
The timeout, in seconds, for attempting to mount the netroot
via CPS.
Can be left as an empty string to use the default value of 300 seconds.
<interface>[,<interface>][,<interface>]...
A comma-separated list of interfaces to support. A minimum of one interface must be specified.
The first interface specified must exist on the node or the module will exit with an error. Any other specified interface that is not found on the node will be ignored. The module will wait until all specified and existing interfaces are up before proceeding with boot. The first interface specified will be passed to the CPS mount command to identify the interface to be used for mounting.
<ramroot>
Indicates that the specified S3 path should be copied to RAM (tmpfs
) and mounted locally instead of persisting as a remote file system mount.
Can be left empty. Any string except "0"
is interpreted as true.
rootfs_provider_passthrough
rootfs_provider_passthrough=dvs:api-gw-service-nmn.local:300:eth0
The session template boot set contains several Simple Storage Service (S3) parameters. These are listed below, along with the appropriate values to use.
type
: Set to s3
path
: Set to s3://<BUCKET_NAME>/<KEY_NAME>/manifest.json
<BUCKET_NAME>
is set to boot-images
<KEY_NAME>
is set to the image ID that the Image Management Service (IMS) created when it generated the boot artifacts.etag
: set to the etag
of the manifest.json
file in S3 as stored by the Image Management Service (IMS)The following is an example of an input file to use with the Cray CLI:
{
"enable_cfs": true,
"description": "Template for booting compute nodes, generated by the installation",
"boot_sets": {
"computes": {
"rootfs_provider": "cpss3",
"rootfs_provider_passthrough": "dvs:api-gw-service-nmn.local:300:eth0",
"kernel_parameters": "ip=dhcp quiet spire_join_token=${SPIRE_JOIN_TOKEN}",
"node_roles_groups": [
"Compute"
],
"type": "s3",
"path": "s3://boot-images/ef97d3c4-6f10-4d58-b4aa-7b70fcaf41ba/manifest.json",
"etag": "b0ace28163302e18b68cf04dd64f2e01"
}
},
"cfs": {
"configuration": "compute-configuration"
}
}
Refer to Manage a Session Template for more information about creating a session template.
(ncn-mw#
) The new CPS-based session template can be used when creating a BOS session. The following is an example of creating a reboot session using the CLI:
cray bos v2 sessions create --template-name cps_rootfs_template --operation reboot
root=
kernel parameterThis section supplies additional information about how BOS constructs the root=
kernel parameter. This section does not require any
action to be taken. It is merely supplemental information.
BOS will construct the root=
kernel parameter, which will be used by the node when it boots, based on the rootfs_provider
and rootfs_provider_passthrough
values.
For CPS, BOS supplies a protocol craycps-s3
, the S3 path to the rootfs
, and the etag
value (if it exists).
The rest of the parameters are supplied from the rootfs_provider_passthrough
values as specified above.
BOS will construct it in the following format:
root=craycps-s3:s3-path:<etag>:<transport>:<api_gateway>:<timeout>:interface[,<interface>[,<interface>]...]:<ramroot>
root=craycps-s3:s3://boot-images/079f6bce-d902-438a-8db7-bcb06a21d3de/rootfs:727f630b5a0953c21026eeca6db7e49f-1792:dvs:api-gw-service-nmn.local:300:hsn0,nmn0:0