Синхронизация экземпляров Amazon EC2

Я хочу, чтобы пользователь Corosync и Pacemaker выполнял синхронизацию между двумя серверами, серверами являются два (или более) экземпляра EC2 с установленной на них Ubuntu 16.04. Я делал это после этой статьи , но застрял на шаге private_binding_IP_address Я ищу в Интернете, но безуспешно, я хочу знать следующее: экземпляры NextCloud уже установлены и настроены для сегмента S3 и RDS, теперь для синхронизации двух EC2 я выполнил статью , но застрял на шаге Настроить кластер Corosync I не могу получить bindnetaddr , который является привязанным IP-адресом, я выполнил команду ifconfig -a на обоих серверах, но два IP-адреса, указанные в статье, не совпадают

UPDATE2 Я видел статью о AWS . Дело в том, что в этой статье описывается, как сделать HA между EC2, то есть один экземпляр активен , а другой - резервный , что Мне нужно сделать все экземпляры активными в разумное время, а не один активным, а остальные находятся в режиме ожидания, вы можете сказать синхронизация на уровне приложения, предположим, что если у меня есть три сервера NextCloud, пользователь может отправлять запросы на три сервера NextCloud, и запросы обрабатываются тремя серверами. Я устал от AWS ELB (Elastic Load Balancer), но он вел себя так же, как сценарий, описанный в вышеупомянутой статье AWS, поэтому я перешел на Corosync и Pacemaker, но я не мог понять, как использовать Corosync для EC2

2
задан 4 February 2018 в 12:25
1 ответ

Работают ли Corosync и Pacemaker с Ubuntu 16.04?

Да. Пакеты Ubuntu Corosync и Pacemaker для Xenial (16.04), которые можно установить с помощью простой команды: # apt install corosync pacemaker

Работают ли Corosync и Pacemaker с экземплярами Amazon EC2 (Ubuntu)?

Технически да, но есть много угловых случаев, о которых следует знать. Наибольшее беспокойство у меня вызывает производительность / надежность сети между стандартными экземплярами EC2.

Corosync обрабатывает связь между узлами и определяет, когда узлы пропадают из кластера (отказы узлов, отказы сети и т. Д.). Поскольку сеть AWS представляет собой своего рода черный ящик (с точки зрения администратора), трудно оценить надежность этой сети. В локальных кластерах эта сеть, как правило, представляет собой пару прямых соединений между узлами или стековый коммутатор, что является чем-то очень надежным и производительным. Я не говорю, что сеть AWS ненадежна или неэффективна, но она очень общая и, безусловно, сложнее, чем набор перекрестных кабелей. Когда сеть Corosync прерывается, даже на 1000 мс (1 с), он объявляет об отказе узла (в двухузловом кластере с таймаутами по умолчанию). Я ожидал, что это будет происходить время от времени, и знаю, как это исправить.

Тем не менее, похоже, что вы можете получить «экземпляры кластера» в AWS, которые рекламируют сеть с низкой задержкой и высокой производительностью между узлы. Вероятно, это то, что вы хотите использовать, поскольку, похоже, это решает мою главную проблему.

Независимо от того, какие экземпляры вы выберете, Pacemaker должен быть настроен с включенным STONITH, чтобы гарантировать, что когда узел перейдет в автономный режим или его сеть прервана, он будет изолирован от остальной части кластера. STONITH - это форма ограждения, которая переводит узел кластера в неизвестное состояние в известное состояние: выключено. STONITH игнорируется в большинстве учебных пособий, которые вы найдете в Интернете, потому что он очень зависит от вашей среды / оборудования / гипервизора, но это одна из наиболее важных частей правильно настроенного кластера высокой доступности.

Похоже, в git ClusterLab есть новый агент ограждения для AWS: https://github.com/ClusterLabs/fence-agents/blob/master/fence/agents/aws/fence_aws.py

Как это сделать (синхронизировать два или более Amazon EC2 вместе)?

Эта часть слишком двусмысленна, чтобы дать точный ответ. Вы говорите о синхронизации каталогов, баз данных, томов или что-то в этом роде? Если вы обновите свой вопрос, чтобы он был более конкретным, я обновлю свой ответ;)

3
ответ дан 3 December 2019 в 10:33

Теги

Похожие вопросы