Using multiple network interfaces
Steps for configuring DataStax Distribution of Apache Cassandra 3.11 for multiple network interfaces or when using different regions in cloud implementations.
Steps for configuring DataStax Distribution of Apache Cassandra™ (DDAC) for multiple network interfaces or when using different regions in cloud implementations.
cassandra-rackdc.properties
- The cassandra-rackdc.properties file is located in the installation_location/conf directory.
cassandra.yaml
- The cassandra.yaml file is located in the installation_location/conf directory.
Configuring cassandra.yaml for multiple networks or across regions in cloud implementations
In multiple networks or cross-region cloud scenarios, communication between datacenters can only take place using an external IP address. The external IP address is defined in the cassandra.yaml file using the broadcast_address setting. Configure each node as follows:
- In the cassandra.yaml file , set the listen_address to the
private IP address of the node, and the broadcast_address to
the public address of the node.
This allows nodes to bind to nodes in another network or region, thus enabling multiple datacenter support. For intra-network or region traffic, Cassandra switches to the private IP after establishing a connection.
- Set the addresses of the seed nodes in the cassandra.yaml
file to that of the public IP. Private IP are not routable between
networks. For
example:
seeds: 50.34.16.33, 60.247.70.52
Note: Do not make all nodes seeds, see Internode communications (gossip). - Be sure that the storage_port or ssl_storage_port is open on the public IP firewall.
Additional cassandra.yaml configuration for non-EC2 implementations
listen_on_broadcast_address
option.listen_on_broadcast_address: trueIn non-EC2 environments, the public address to private address routing is not automatically enabled. Enabling
listen_on_broadcast_address
allows
Cassandra to listen on both
listen_address
and broadcast_address
with two
network interfaces.Configuring the snitch for multiple networks
External communication between the datacenters can only happen when using the broadcast_address (public IP).
The GossipingPropertyFileSnitch is recommended for production. The cassandra-rackdc.properties file defines the datacenters used by this snitch.
Enable the option prefer_local
to ensure that traffic to
broadcast_address
will re-route to
listen_address
.
For each node in the network, specify its datacenter in cassandra-rackdc.properties file.
In the example below, there are two datacenters. You can use any naming convention, such as DC1, DC2 or 100, 200. (Datacenter names are case-sensitive.
Network A | Network B |
---|---|
Node and datacenter:
|
Node and datacenter:
|
Configuring the snitch for cross-region communication in cloud implementations
In cloud deployments, the region name is treated as the datacenter name and availability zones are treated as racks within a datacenter. For example, if a node is in the us-east-1 region, us-east is the datacenter name and 1 is the rack location. (Racks are important for distributing replicas, but not for datacenter naming.)
In the example below, there are two datacenters. You can use any naming convention, such as DC1, DC2 or 100, 200. (Datacenter names are case-sensitive.
For each node, specify its datacenter in the cassandra-rackdc.properties. The dc_suffix option defines the datacenters used by the snitch. Any other lines are ignored.
Region: us-east | Region: us-west |
---|---|
Node and datacenter:
This results in four us-east
datacenters:
|
Node and datacenter:
This results in four us-west
datacenters:
|