deepsea stages − orchestrations for a Ceph cluster life cycle
DeepSea Stages are named Salt orchestrations. Six stages, 0 through 5, represent the life cycle of a Ceph cluster. Each stage is also named which may be used interchangeably with the number.
Stage 0 - Prep
Stage 1 - Discovery
Stage 2 - Configure
Stage 3 - Deploy
Stage 4 - Services
Stage 5 - Removal
The purpose of the stages is to segregate the many operations in deploying and maintaing a Ceph cluster into a logical abstraction.
Stage 0 -
Prep
This stage prepares the Salt environment and OS to provide
any missing prerequisites for a successful deployment.
Examples include configuring a time service, synchronizing
Salt modules, updating the kernel, installing packages and
applying updates.
Stage 1 -
Discovery
This stage collects data from the minions in an effort to
save the administrator the challenge of configuring Salt
manually. Minions can normally serve any role, but the
storage role is constrained to those minions with available
hardware.
Stage 2 -
Configure
The administrator creates a policy.cfg file that
incorporates their role assignments to the various minions.
This stage processes this file and the fragments generated
by the previous stage to configure the Salt pillar which is
a key-value store. This configuration drives the remaining
Stages.
Stage 3 -
Deploy
This stage creates or adds to a basic Ceph cluster. The
basic Ceph cluster contains only monitors and
OSDs. A Ceph monitor acts as a directory service
providing maps to clients. The OSD, Object Storage Daemon,
manages a device such as an hard disk drive or solid state
device.
Stage 4 -
Services
Ceph provides many services for existing clients. This stage
installs and configures these services which are iSCSI,
CephFS, RadosGW and Ganesha. The iSCSI gateways provide
block level access to RBD images. The CephFS service
provides a POSIX filesystem. The RadosGW presents an S3 and
Swift access to objects. Lastly, Ganesha provides NFS access
to legacy clients for either CephFS or RadosGW.
Stage 5 -
Removal
This stage is necessary for the migration and removal of
roles. When the administrator unassigns or reassigns roles
during Stage 2, this stage surgically removes configurations
and shuts down services.
Each orchestration command is nearly identical. The stages have a descriptive and numerical name. Either can be used.
# salt-run
state.orch ceph.stage.0
# salt-run state.orch ceph.stage.prep
# salt-run
state.orch ceph.stage.1
# salt-run state.orch ceph.stage.discovery
# salt-run
state.orch ceph.stage.2
# salt-run state.orch ceph.stage.configure
# salt-run
state.orch ceph.stage.3
# salt-run state.orch ceph.stage.deploy
# salt-run
state.orch ceph.stage.4
# salt-run state.orch ceph.stage.services
# salt-run
state.orch ceph.stage.5
# salt-run state.orch ceph.stage.removal
Additionally one orchestration will run Stages 1-5. Stage 0 is excluded since provisioning systems will likely call or duplicate this stage.
# salt-run state.orch ceph.stage.all
All of these commands can also be prefixed with deepsea to give feedback during the process from the Salt event bus. Salt orchestrations are unnervingly silent during execution and only report when complete. For example,
# deepsea salt-run state.orch ceph.stage.0
Eric Jackson <ejackson@suse.com>
deepsea(1), deepsea(7), deepsea-commands(7)