У меня есть два идентичных хоста хранения, где главный - единственный, к которому пользователи могут получить доступ. Если мастер не работает, я хочу вручную изменить адрес DHCP, поэтому вместо master
указывает на 10.10.10.10
он должен указывать на 10.10.10.11
.
Существуют сценарии репликации, которые полагаются на IP-адреса, поэтому, если мастер изменяет IP-адрес, мне нужно изменить IP-адрес в сценариях, чтобы данные по-прежнему реплицировались с мастера на подчиненное устройство.
Вопрос
Переключение IP-адресов и редактирование скриптов - довольно подверженная ошибкам задача. Существует ли обычная практика выполнения такого рода ручного переключения при отказе? Например. добавив какой-то слой абстракции?
Обычная практика - иметь отдельный IP-адрес и имя для службы, отличное от фактического IP-адреса и имени сервера.
В этом случае у вас есть
master 10.10.10.10
slave 10.10.10.11
Третье имя могло быть
storage 10.10.10.12
Ваши клиенты должны использовать «хранилище» вместо «главного» при подключении к службе.
Так долго как master
в сети, то 10.10.10.12 должен быть виртуальный интерфейс на master
. Если master
не работает, установите 10.10.10.12 в качестве виртуального интерфейса на slave
.
По возможности избегайте использования IP-адресов в сценариях. Если поиск DNS не является вариантом в конкретном случае, используйте файл конфигурации или файлы / etc / hosts для сопоставления имен хостов с IP-адресами.
Если вам нужно более автоматическое решение для аварийного переключения, посмотрите на что-то вроде keepalived с использованием протокола VRRP.
Более подробную информацию можно найти Вот
Виртуальный IP 10.10.10.10 (Это виртуальный IP-адрес, настроенный на обоих хостах)
Мастер IP 10.10.10.11
Подчиненный IP 10.10.10.12
Таким образом, вам не придется запускать второй интерфейс на ведомом устройстве, и у вас будет очень мало (возможно, секунда или около того) простоя.