Я пытаюсь настроить двухузловой кластер openais / pacemaker, и найти информацию / учебные пособия очень сложно.
Моя цель - установить 2 сервера MySQL в сценарии репликации главный-подчиненный, где я могу читать с обоих серверов, но писать только на «главный» сервер.
Таким образом, у меня есть репликация и ручное переключение работает, меняя местами вторичные IP-адреса и перенастраивая новое ведомое устройство с опцией «только для чтения» в my.cnf. Теперь я хотел бы автоматизировать это с помощью кардиостимулятора. В основном я хочу главный IP-адрес всегда должен быть на сервере, на который я могу писать, а подчиненный IP, чтобы всегда быть на другом. Я бы хотел, чтобы переключение произошло, когда mysql на главном сервере не отвечает.
Вот конфигурация, которая у меня есть. Есть ли кто-нибудь, кто мог бы проверить мою работу (я уверен, что она неполная), и подскажи, что я делаю не так? (примечание: сценарий mysql-master - это настраиваемый сценарий в /etc/init.d, который устанавливает / очищает параметр только для чтения и перезапускает mysql)
primitive virtual_master_ip ocf:heartbeat:IPaddr2 \
params ip=192.168.250.xxx.xxx \
op monitor interval=10s
primitive virtual_slave_ip ocf:heartbeat:IPaddr2 \
params ip=192.168.xxx.yyy
primitive mysql_service ocf:heartbeat:mysql
params binary="/usr/bin/mysqld_safe" config="/etc/mysql/my.cnf" \
op minitor interval="60s" timeout="30s" \
meta target-role="Started"
primitive mysql_master_role lsb:mysql-master
group mysql virtual_master_ip mysql_master virtual_slave_ip
colocation ms_ip inf: virtual_master_ip virtual_slave_ip score="-INFINITY"
Зная, в чем проблема на самом деле является как говорит Камил, была бы ужасно полезной информацией. Однако у меня сразу возникло несколько проблем:
192.168.250.xxx.xxx
op minitor interval="60s" timeout="30s"
lsb:mysql
класс, а не ocf:heartbeat:mysql
; если у вас проблемы с этой частью, возможно, стоит попробовать.virtual_master_ip
и virtual_slave_ip
в той же группе, если у вас есть -INF
ограничение размещения. Это вызовет аритмию у кардиостимулятора.Я даже не уверен, что вы хотите делать то, что думаете. Я был бы более склонен установить два ресурса, mysql_as_master
и mysql_as_slave
, который гарантирует, что MySQL работает в соответствующем режиме на компьютере (я бы запустил MySQL с параметром только для чтения, установленным в командной строке, а не возился с файлом конфигурации и использовал клиент mysql для запроса запущенного сервера, чтобы убедиться, что он работает только для чтения или чтения-записи, в зависимости от необходимости), а затем сгруппируйте их по соответствующему IP-адресу.