Expand a MinIO Tenant
This procedure documents expanding the available storage capacity of an existing MinIO tenant by deploying an additional pool of MinIO pods in the Kubernetes infrastructure.
Prerequisites
MinIO Kubernetes Operator
This procedure on this page requires a valid installation of the MinIO Kubernetes Operator and assumes the local host has a matching installation of the MinIO Kubernetes Operator. This procedure assumes the latest stable Operator, version 5.0.15.
See Deploy the MinIO Operator for complete documentation on deploying the MinIO Operator.
Available Worker Nodes
MinIO deploys additional minio server
pods as part of the new Tenant pool.
The Kubernetes cluster must have sufficient available worker nodes on which to schedule the new pods.
The MinIO Operator provides configurations for controlling pod affinity and anti-affinity to direct scheduling to specific workers.
Persistent Volumes
Exclusive access to drives
MinIO requires exclusive access to the drives or volumes provided for object storage. No other processes, software, scripts, or persons should perform any actions directly on the drives or volumes provided to MinIO or the objects or files MinIO places on them.
Unless directed by MinIO Engineering, do not use scripts or tools to directly modify, delete, or move any of the data shards, parity shards, or metadata files on the provided drives, including from one drive or node to another. Such operations are very likely to result in widespread corruption and data loss beyond MinIO’s ability to heal.
MinIO can use any Kubernetes Persistent Volume (PV) that supports the ReadWriteOnce access mode.
MinIO’s consistency guarantees require the exclusive storage access that ReadWriteOnce
provides.
For Kubernetes clusters where nodes have Direct Attached Storage, MinIO strongly recommends using the DirectPV CSI driver. DirectPV provides a distributed persistent volume manager that can discover, format, mount, schedule, and monitor drives across Kubernetes nodes. DirectPV addresses the limitations of manually provisioning and monitoring local persistent volumes.
Procedure (Operator Console)
The MinIO Operator Console supports expanding a MinIO Tenant by adding additional pools.
1) Expand the MinIO Tenant
From the Operator Console view, select the Tenant to open the summary view, then select Pools. Select Expand Tenant.
Specify the following information for the new pool:
Field
Description
Number of Servers
The number of servers to deploy in the new Tenant Pool across the Kubernetes cluster.
Volume Size
The capacity of each volume in the new Tenant Pool.
Volumes per Server
The number of volumes for each server in the new Tenant Pool.
Storage Class
Specify the Kubernetes Storage Class the Operator uses when generating Persistent Volume Claims for the Tenant.
Select Create.
2) Validate the Expanded MinIO Tenant
In the Pools tab, select the new Pool to confirm its details.