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

Синхронизация инстансов Amazon EC2

Я хочу, чтобы пользователь Corosync и Pacemaker синхронизировал между двумя серверами, серверами являются два (или более) экземпляра EC2 с установленным на них Ubuntu 16.04. Я делал это после этого статья, но я застрял на шагу private_binding_IP_address Я ищу в Интернете, но мне не повезло, я хочу знать следующее:

Спасибо

ОБНОВИТЬ: основная цель создания HA-кластера EC2 заключается в том, что я хочу установить два или более серверов NextCloud на экземплярах EC2 для хранения и базы данных, я могу настроить NextCloud для использования, корзину S3 в качестве основного хранилища и RDS для базы данных для всех экземпляров EC2. экземпляры NextCloud уже установлены и настроены для корзины S3 и RDS, теперь для синхронизации двух EC2 я следил за статья но я застрял на ступеньке Настроить кластер Corosync Я не могу получить bindnetaddr который является привязанным IP-адресом, я выполнил команду ifconfig -a на обоих серверах, но два IP-адреса, указанные в статье, не совпадали

ОБНОВЛЕНИЕ2 Я видел AWS статья дело в том, что в этой статье описывается, как сделать HA между EC2, то есть один экземпляр активный, а другой ожидание, что мне нужно сделать, это сделать все экземпляры активными в разумное время, а не один активным, а остальные находятся в режиме ожидания, вы можете сказать синхронизация на уровне приложения, предположим, что если у меня есть три сервера NextCloud, пользователь может отправлять запросы на три сервера NextCloud , а запросы обрабатываются тремя серверами. Я устал от AWS ELB (Elastic Load Balancer), но он вел себя так же, как сценарий, описанный в приведенной выше статье AWS, поэтому я перешел на Corosync и Pacemaker, но я не мог понять, как использовать Corosync для EC2.

Работают ли 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 вместе)?

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