PV Pools - noobaa/noobaa-core GitHub Wiki

NooBaa supports 3 kinds of resources (or Backing Stores).

  • PV Pools - These are pod-based resources with PVs attached to the pods that serve as the storage
  • Cloud Resources - These are API based resources (S3, Blob, etc.)
  • Namespace Resources - These are API based resources (S3, Blob, etc.) that are connected to Namespace buckets.

PV Pools

PV Pools are a StatefulSet managed by NooBaa that serves as a storage resource utilizing PVs attached to the pods of the STS.

Creating a new PV Pool resource would result in a new STS with the desired parameters (number of replicas and size of each PV). Each pod of the STS would come up with a component called "Agent". These agents receive a unique token from the noobaa-core and once they start they connect to the core and start sending heartbeats and various statistics (used and free space on the PV, mem usage, etc.).

Each such STS can be scaled up (adding more replicas to it, thus increasing total capacity for this resource) or scaled down (removing replicas, thus reducing capacity). PV size per each pod cannot be changed after initial creation. PV Pools can be used just like Cloud Resources in any placement policy configuration.

PV Pools can be created from the NooBaa UI or using the operator. When creating from the UI, the default storage class is used, when creating using the operator, the storage class can be supplied.