Storage Container Manager (SCM) is the leader node of the block space management. The main responsibility is to create and manage containers which is the main replication unit of Ozone.
Storage container manager provides multiple critical functions for the Ozone cluster. SCM acts as the cluster manager, Certificate authority, Block manager and the Replica manager.
SCM is in charge of creating an Ozone cluster. When an SCM is booted up via
init command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
SCM is the block manager. SCM allocates blocks and assigns them to data nodes. Clients read and write these blocks directly.
SCM keeps track of all the block replicas. If there is a loss of data node or a disk, SCM detects it and instructs data nodes make copies of the missing blocks to ensure high availability.
SCM’s Ceritificate authority is in charge of issuing identity certificates for each and every service in the cluster. This certificate infrastructure makes it easy to enable mTLS at network layer and the block token infrastructure depends on this certificate infrastructure.
For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
Network services provided by Storage Container Manager:
Note: client doesn’t connect directly to the SCM
The following data is persisted in Storage Container Manager side in a specific RocksDB directory
|ozone.scm.container.size||5GB||Default container size used by Ozone|
|ozone.scm.block.size||256MB||The default size of a data block.|
|hdds.scm.safemode.min.datanode||1||Minimum number of datanodes to start the real work.|
|ozone.scm.http-address||0.0.0.0:9876||HTTP address of the SCM server|
|ozone.metadata.dirs||none||Directory to store persisted data (RocksDB).|