Expand an AIStor Deployment on Linux

The following procedure adds a server pool to an existing AIStor cluster running on baremetal infrastructure. Each pool expands the total available storage capacity of the cluster while maintaining the overall availability of the cluster.

A new pool is a set of new nodes and drives that meet the cluster’s erasure set requirements and parity levels.

You can use MinIO’s Erasure Code Calculator to check the Erasure Code Stripe Size (K+M) of your new pool to confirm that it meets the EC:M value of current cluster. MinIO strongly recommends seeking an architecture review from MinIO Engineering through SUBNET to analyze potential performance impacts before committing to a new pool for your cluster.

All commands provided below use example values. Replace these values with those appropriate for your cluster.

  1. Deploy AIStor on new hardware

    Follow the installation guide to install AIStor onto the new hardware.

    Do not start the new cluster - stop at the step Review the environment file

  2. Update the cluster topology

    AIStor uses the MINIO_VOLUMES environment variable for determining the cluster topology.

    When adding a new pool, append the new set of hostnames and volumes to the existing set. For example, consider the following MINIO_VOLUMES describing a single-pool consisting of 16 nodes and 16 drives:

    MINIO_VOLUMES="https://minio-{1...16}.example.net:9000/mnt/drive-{1...16}/minio"
    

    To expand that topology with another 16x16 cluster, append the new set of hosts to the existing value:

    MINIO_VOLUMES="https://minio-{1...16}.example.net:9000/mnt/drive-{1...16}/minio https://minio-{17...32}.example.net:9000/mnt/drive-{1...16}/minio""
    

    You must include the protocol http[s]:// for each new pool. All pools should have matching protocols.

    Make this change to all hosts in the AIStor cluster, including the existing pools. The environment files should match across all nodes. Use shasum or a similar utility to validate that all contents match.

  3. Initialize the new cluster topology

    You must simultaneously

    1. Restart the existing AIStor cluster and
    2. Start the new AIStor server nodes

    For the existing nodes, you can use the mc admin service restart command to restart all nodes at once. For the new nodes, use systemctl start minio on all nodes in parallel using your preferred shell tooling.

  4. Monitor the cluster’s status

    Use the mc admin info command and journalctl -u minio system utility to monitor status and logging across the cluster. While the nodes come online and synchronize, the system logs may showcase increased churn through warnings and errors.

  5. Next steps

    After validating cluster health and expanded storage, you can update any load balancers, reverse proxies, or other network management tools with the new hostnames of the added server pool. This ensures that incoming connections balance appropriately across the expanded topology.