Configure Aerospike Cluster with nodes multiple Network Cards

I am using Aerospike 3.6.0, and I would like to deploy a 3 node cluster each with 4 ENIs on AWS.

The clients that i am using is the java client. I would like some help with the aerospike config and tips/hacks needed on the client end to utilize aeropsike in the manner I have configured above.

Right now I have the config in this manner

network {
    service {
            address any
            port 3000
            access-address  172.31.12.156
    }
    heartbeat {
            mode mesh
            port 3002 # Heartbeat port for this node.
            address 172.31.12.156

            mesh-seed-address-port 172.31.3.101 3002
            interval 250
            timeout 10
    }

    fabric {
            port 3001
    }

    info {
            port 3003
    }
}

Previously 3.5.15, without the access address, asmonitor was not able to discover the cluster, however in 3.6.0, with the current config, client requests are not coming in the other network interfaces eth1 - eth3, all client data is coming in from eth0, the clients are configured to use ip addresses of eth1 - eth3.

Any advice to allow clustering and multiple ENIs on version 3.6.0 is greatly appreciated!

You may also want to look into using RPS instead of adding multiple ENIs

Please see:

http://www.aerospike.com/docs/deploy_guides/aws/recommendations/#network-interface

access-address will only support 1 IP address. This could be a physical address or a virtual IP address if NAT IP.

An alternative is not to use access-address. Removing access-adress would allow client requests from eth1-eth3. Not really recommended since tools like asmonitor and asadm would still be able to see the cluster but would show cluster visibility as false.

There is an interesting article on access-address which explains the use of access-address:

Use of RPS and a single IP may be the right way to go:

Starting 3.10 Server release multiple access addresses can be specified. IPv4, IPv6 and DNS names can be used to specify access addresses.

Example:

service {
                address any
                port 3000
                access-address 10.x.x.100
                access-address 10.x.x.101 
        }
1 Like