github.com/NVIDIA/aistore@v1.3.23-0.20240517131212-7df6609be51d/docs/join_cluster.md (about)

     1  ---
     2  layout: post
     3  title: JOIN CLUSTER
     4  permalink: /docs/join-cluster
     5  redirect_from:
     6   - /join_cluster.md/
     7   - /docs/join_cluster.md/
     8  ---
     9  
    10  **Note**: for the most recent updates on the topic of cluster membership and node lifecycle, please also check:
    11  
    12  * [Node lifecycle: maintenance mode, rebalance/rebuild, shutdown, decommission](/docs/lifecycle_node.md)
    13  
    14  Also, see related:
    15  
    16  * [Leaving aistore cluster](leave_cluster.md)
    17  * [Global rebalance](rebalance.md)
    18  * [CLI: `ais cluster` command](/docs/cli/cluster.md)
    19  * [Scripted integration tests](https://github.com/NVIDIA/aistore/tree/main/ais/test/scripts)
    20  
    21  ## Joining a Cluster: _discovery_ URL, and more
    22  
    23  First, some basic facts. AIStore clusters can be deployed with an arbitrary number of AIStore proxies. Each proxy/gateway implements RESTful API and provides full access to objects stored in the cluster. Each proxy collaborates with all other proxies to perform majority-voted HA failovers (section [Highly Available Control Plane](ha.md).
    24  
    25  All _electable_ proxies are functionally equivalent. The one that is elected as _primary_ is, among other things, responsible to _join_ nodes to the running cluster.
    26  
    27  To facilitate node-joining in presence of disruptive events, such as:
    28  
    29  * network failures, and/or
    30  * partial or complete loss of local copies of aistore metadata (e.g., cluster maps)
    31  
    32  - to still be able to reconnect and restore operation, we also provide so called *original* and *discovery* URLs in the cluster configuration.
    33  
    34  The latter is versioned, replicated, protected and distributed - solely by the elected primary.
    35  
    36  > **March 2024 UPDATE**: starting v3.23, the *original* URL does _not_ track the "original" primary. Instead, the current (or currently elected) primary takes full responsibility for updating both URLs with the single and singular purpose: optimizing time to join or rejoin cluster.
    37  
    38  For instance:
    39  
    40  When and if an HA event triggers automated failover, the role of the primary will be automatically assumed by a different proxy/gateway, with the corresponding cluster map (Smap) update getting synchronized across all running nodes.
    41  
    42  A new node, however, could potentially experience a problem when trying to join an already deployed and running cluster - simply because its configuration may still be referring to the old primary. The *original* and *discovery* URLs (see [AIStore configuration](/deploy/dev/local/aisnode_config.sh)) are precisely intended to address this scenario.