BOS v1 and BOS v2 store data in two different databases. Session templates are common between both BOS versions; they are stored in the BOS v2 databases.
(ncn-mw#) All BOS v2 data is stored in Redis databases running in a pod in the services namespace.
kubectl get pods -n services -l app.kubernetes.io/name=cray-bos-db
Example output:
NAME READY STATUS RESTARTS AGE
cray-bos-db-58f4967657-rdj9l 2/2 Running 0 70d
Within the Redis pod, the BOS v2 data is divided into 6 databases:
| Database | Key |
|---|---|
| Components | Node xname |
Boot artifacts (initrd, kernel, and kernel parameters) |
BSS token |
| Options | options |
| Session templates | Template name |
| Sessions | Session name |
| Session statuses | Session name |
The options database has a single entry with a fixed key. This entry contains a dictionary of current BOS option values.
(ncn-mw#) All BOS v1 session data is stored in an etcd database running in pods in the services namespace.
kubectl get pods -n services -l app.kubernetes.io/instance=cray-bos,app.kubernetes.io/name=etcd
Example output:
NAME READY STATUS RESTARTS AGE
cray-bos-etcd-0 2/2 Running 0 4d
cray-bos-etcd-1 2/2 Running 0 4d
cray-bos-etcd-2 2/2 Running 0 4d
All access to the BOS databases is done by the BOS API server, with a single exception;
The power-on operator directly writes to the BOS v2 boot artifacts database.
The Helm chart for the BOS database is located in the
Cray-HPE/bos open source GitHub repository.