Skip to content

Architecture

Metadata clusters

A metadata cluster is a pool of services that distributes a region's volume load. It groups the cluster-scoped services and the volumes that mountOS assigns to them into one partition under an existing region. Every metadata cluster in a region shares that region's one database and one vault.

HUB, region, and the metadata clusters inside it
mountOS clientfilesystem mount, S3, HDFS, CSIresolves its volume once, thenpins to the owning metadata clusterGlobal HUBhubdiscovery, accounts, volumes, topologyone logical HUBN instances, HAAdmin DBregions, metadata clusters,service nodes, volumesHub vaultHUB signing keysservice-verifier setdiscover: access key → owning metadata clusterregister · resolve · heartbeatdata: mountOS service connectionto the owning metadata clusterRegion · eu-west-1own database, vault · storages on S3-compatible or AzureMetadata cluster · defaultcluster idserves only its shard of volumesmetadata · replicated clusterserves its shard of volumes, cachedgcown pool per metadata cluster · shares the metadata machinescluster-scoped servicesMetadata cluster · cluster-2independent volume-load partitionmetadata · replicated clusterits own shard of volumesgcper-metadata-cluster cleanupa volume moves between metadata clusters via handoverShared by every metadata cluster in this regionRegion DBMySQL / PostgreSQL wireRegion vaultkeys, verifiers, volume + object credsObject storageS3 · GCS · B2 · MinIO · Azure · on-premBlock storageone of many per regionserver Aserver Bpair 1server Aserver Bpair 2each volume uses its own pairsRegion · us-east-1same shapeMetadata clusters · 1..Nmetadata · replicated per metadata clustergcRegion DBRegion vaultObject storageBlock storageindependent DB, vault, and storageno data crosses a region boundarydata path (client → owning metadata cluster)control path (discovery, via HUB)metadata cluster

Where a metadata cluster sits

mountOS nests a deployment from the top down. The global HUB, served by control nodes, sits above everything. It answers discovery requests. An account is the tenant: it owns its regions, users, and storages. Each region belongs to one account. It owns its own database and vault. The account's storages hold the file content. A storage is a region-scoped record that points at an S3-compatible store or an Azure store. A region can have one or many storages. Inside a region, one or more metadata clusters each run their own pool of cluster-scoped services. Each metadata cluster owns a slice of the region's volumes.

  • HUB (control nodes): the HUB runs as one logical instance per deployment. Each deployment replicates it for HA. It owns the admin database, which holds accounts, users, regions, and volumes. It authenticates every request. It resolves which metadata cluster serves a given volume. It does not belong to any account, region, or metadata cluster.
  • Account (tenant): the top-level tenant. An account owns its regions, its users, and its storage backends. A region belongs to exactly one account.
  • Region: a deployment locality with its own database and its own vault. Its services need no DNS; the HUB's discovery hands clients their addresses directly. It has one or more account-owned storages that point at S3-compatible or Azure stores. A volume belongs to exactly one region. Its data never crosses a region boundary at serving time.
  • Metadata cluster: a volume-load partition inside a region. The cluster-scoped metadata nodes serve only the volumes that mountOS pins to the metadata cluster. The storage node is not scoped to a metadata cluster. All metadata clusters in a region share that region's single database and vault.

What a metadata cluster is for

A metadata cluster does three things, always within one region.

  • Distributes volume load. It binds a pool of cluster-scoped metadata nodes to the volumes that mountOS assigns to it. This lets a region spread its volumes across several independent service pools.
  • Keeps each pool to its own volumes. Each metadata cluster serves only the volumes assigned to it.
  • Has a lifecycle. A metadata cluster can be ready or not ready. It can be active or deactivated. One metadata cluster per region is the default. That metadata cluster receives new volumes.

Identifying a metadata cluster

mountOS identifies each region and each metadata cluster by a UUID. An in-region service boots with only its metadata cluster UUID (REGION_CLUSTER_ID) in its environment.

At startup the service resolves that UUID against the HUB before it can register or serve traffic. Resolution is strict. It has no fallback. The HUB refuses an empty metadata cluster id, an unknown metadata cluster, and a deactivated metadata cluster. A misconfigured service starts but does not register. It raises a critical topology alert. It retries until the topology is fixed. It does not join the wrong metadata cluster.

Metadata cluster lifecycle

A metadata cluster is a control-plane record, created through the HUB's admin API. Creating a region automatically creates its first metadata cluster; the region can take additional ones later.

  • Ready. A metadata cluster that is not ready blocks volume assignment. The first cluster-scoped service that registers into a metadata cluster flips it to ready. After that, mountOS can assign volumes to the metadata cluster.
  • Active. An operator can deactivate a metadata cluster. Deactivation blocks the metadata cluster's use but does not delete it. If a service points at a deactivated metadata cluster, it starts but refuses to register. It raises a critical topology alert. It retries until the topology is fixed.
  • Default. Exactly one metadata cluster per region is the default. A volume that is created without an explicit metadata cluster lands on that metadata cluster.

Volumes and routing

mountOS pins a volume to exactly one metadata cluster within one region. That assignment is what routes clients. Clients do not need to know their metadata cluster in advance. A client calls the HUB's discovery endpoint with its access key. The HUB looks up the volume's owning region and metadata cluster. The HUB returns that metadata cluster's metadata-node endpoints. The client then pins to the owning metadata cluster for the duration of the session.

Moving a volume between metadata clusters

An operator can move a volume to another metadata cluster in the same region. The move is not an instant cutover. The source metadata cluster continues to serve the volume during the handover window. After the handover, the destination metadata cluster takes ownership of the volume. The client re-resolves through the HUB. The client retries on the new metadata cluster. The move is transparent to the client.

What metadata clusters share, and what they do not

ConcernScope
Regional databaseOne per region, shared by every metadata cluster in it
Region vaultOne per region, shared by every metadata cluster in it
StoragesAccount-owned, region-scoped records, one or many per region. A volume is created on exactly one, whatever metadata cluster serves it
metadata nodePer metadata cluster: each pool serves only its metadata cluster's volumes
Discovery scopePer metadata cluster: a service resolves only the nodes in its own metadata cluster
Volume assignmentPer metadata cluster: a volume belongs to exactly one metadata cluster at a time

The database and vault are regional. A new metadata cluster does not need its own database or vault. A new metadata cluster adds another pool of services that takes a share of the region's volumes. This pool works in addition to the existing regional infrastructure. To set up a metadata cluster, see Deploy.

to navigate to open