Назад | Перейти на главную страницу

Сеть узлов Cassandra в нескольких центрах обработки данных

Для развертывания кластера Cassandra с несколькими центрами обработки данных Нужен ли мне общедоступный IP-адрес для всех узлов? Предположим, у меня такая архитектура:

Datacenter US
Node1: 
eth0 =162.63.93.45 (public ip)
eth1= 192.168.56.101(private ip)

Node2: 
eth0= 192.168.56.102(private ip)

Node3: 
eth0= 192.168.56.103(private ip)

Node4: 
eth0= 192.168.56.104(private ip)

Datacenter EU
Node1: 
eth0 =180.98.100.87 (public ip)
eth1= 192.168.56.101(private ip)

Node2: 
eth0= 192.168.56.102(private ip)

Node3: 
eth0= 192.168.56.103(private ip)

Node4: 
eth0= 192.168.56.104(private ip)

Теперь мой вопрос: можно ли настроить кластер cassandra на такой архитектуре? или мне нужен публичный IP-интерфейс для каждого узла ??

Когда вы настраиваете кластер Cassandra с несколькими центрами обработки данных, одним из требований является то, что все узлы из всех центров обработки данных могут обмениваться данными между собой. У меня нет всей необходимой информации, но из того, что я видел, вы используете одну и ту же частную подсеть в двух центрах обработки данных, поэтому это будет проблематично, поскольку они конфликтуют.

Публичный адрес не нужен, когда речь идет о взаимодействии компьютера между центрами обработки данных, это дорого (по крайней мере, для IPv4) и может быть опасно, поскольку адрес ваших компьютеров напрямую доступен из Интернета (ну, IPv6 сделает весь ваш компьютер напрямую доступным :).

Итак, теперь у вас есть несколько возможностей:

  • Измените один на частный IP-адрес компьютера сайта и заставьте подсеть обмениваться данными (с кросс-DC VPN или маршрутизацией, установленной на вашем шлюзе)
  • Добавьте новый конкретный интерфейс на свой сервер, чтобы они могли обмениваться данными (опять же с помощью VPN или правила маршрутизации в сети). Или использование IPv6-адреса также может быть решением, но убедитесь, что ваша версия cassandra достаточно новая, чтобы поддерживать это.

Вам также необходимо настроить listen_address параметр cassandra соответственно