Scaling is a dimensional concept but it has one truth: simplicity scales. MinIO is committed to
building an object storage suite that is simple, powerful and, in turn, seamlessly scalable.
MinIO scales horizontally (scale out) through a concept called Server Pools. Server pools are an approach that combines multiple technology components. Each server pool is an independent set of nodes with their own compute, network and storage resources. In multi-tenant configurations, each tenant is a cluster of server pools that, while sharing the same physical infrastructure, are fully isolated from each other in their own namespaces. To add capacity to an existing system, simply update the cluster with the address of the new server pool, and MinIO does the rest.
Rebalancing is a legacy approach that is both expensive and time consuming. MinIO leaves existing data in their original pools, while new data can safely flow to new pools. This eliminates rebalancing operations where the data storage layer spends extended periods of time in a degraded and potentially risky state while potential terabytes or petabytes of data move across the network.
All object storage systems of sufficient size and longevity become heterogeneous over time, with different hardware vendors and configurations serving in the system. MinIO allows each server pool to deploy on whatever hardware is available or needed at the time of provisioning. The only requirement from MinIO’s perspective is a consistent Erasure Coding SLA across pools.
The concept of pools inherently limits the size of a particular failure domain. With MinIO, each tenant is isolated from the other, such that updates or upgrades to one tenant have no effect on any others. Within a tenant, the pools themselves are isolated, such that any operations or issues within one pool, do not compromise or impact the other pools.