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 -
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 -
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 -
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 -
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 -
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 -
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.prep
# salt-run state.orch ceph.stage.discovery
# salt-run state.orch ceph.stage.configure
# salt-run state.orch ceph.stage.deploy
# salt-run state.orch ceph.stage.services
# 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 <email@example.com>
deepsea(1), deepsea(7), deepsea-commands(7)