Есть ли способ выполнить следующее под Linux:
Чтобы сделать его более сложным, важная деталь заключается в том, что два сервера на самом деле являются VPS, и они размещены в разных странах разными поставщиками, поэтому ни одно из очевидных решений для серверов в одной подсети / стойке и т. Д. Здесь не сработает.
По сути, мне нужно, чтобы горячая замена работала автоматически без вмешательства пользователя или с минимальным вмешательством пользователя, если это возможно. Процедура восстановления предпочтительно автоматическая, но может включать некоторые ручные действия.
Взгляните на haproxy или Nginx как на балансировщик нагрузки внешнего интерфейса. Это будет отслеживать и перенаправлять трафик с основного на резервный сервер, если основной выходит из строя, или наоборот, то есть при автоматическом переключении при отказе.
Для синхронизации данных между вашей базой данных посмотрите репликация с несколькими мастерами.
http://www.linuxvirtualserver.org/
позволит вам поставить балансировщик нагрузки (или лучше два) перед производственным и резервным серверами.
Вы можете использовать только Heartbeat, что позволит обслуживать общедоступный IP-адрес двумя IP-адресами. Он должен был бы почувствовать, что первичный или вторичный выходят из строя, а затем отправить объявление, чтобы стать этим общедоступным IP.
У вас будет что-то вроде:
Public IP 1.2.3.4
Primary Server 1.2.3.5
Backup Server 1.2.3.6
Все будут видеть один IP-адрес, который будет обслуживаться практически на любой «активной» машине.
Вам, вероятно, следует обратить внимание на отказоустойчивость DNS для веб-уровня и, возможно, на Tungsten Cluster для уровня БД.
Ура