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

Как настроить keepalived, чтобы выбор мастера не был статическим?

Мне уже удалось настроить настройку, в которой у меня есть мастер и машина для резервного копирования, поэтому, когда мастер выходит из строя, резервное копирование возвращается. И когда мастер запускается снова, он занимает позицию мастера, а резервная копия снова берет резервную копию.

Мой вопрос в том, как я могу настроить keepalived так, чтобы в случае отказа одной машины, а другой стал ведущим, он оставался ведущим, пока не выйдет из строя сам? Это означает, что я не хочу иметь статический мастер и резервную копию, мне нужно, чтобы они были взаимозаменяемыми. Когда одна из них выходит из строя, другая становится главной, а когда первая восстанавливается, она становится резервной копией второй машины.

Я спрашиваю об этом потому, что пытаюсь настроить репликацию mysql. Поэтому всякий раз, когда у меня есть мастер, я хочу, чтобы машина резервного копирования была подчинена этой машине и реплицировала данные, а если мастер умирает, я хочу, чтобы был переход, который удерживает главную позицию, чтобы он мог принимать новые данные. Когда первая машина снова заработает, я хочу, чтобы она реплицировала новые данные и продолжала слушать.

Любые советы будут оценены.

Это моя текущая конфигурация поддержки активности

Мастер:

global_defs {
    script_user root root
}

vrrp_script chk_mysql {
script "/home/replication_scripts/checker.sh"
interval 2                       # every 2 seconds
rise 2
fall 2
weight 10

}

vrrp_instance ctrl1 {

       state MASTER
       advert_int 1
       interface br-data0
       virtual_router_id 100
       priority 100
       unicast_src_ip 10.3.80.102
       authentication {

               auth_type PASS
               auth_pass 1234

       }

        track_script {
                chk_mysql
        }

       virtual_ipaddress {
               10.3.80.101/16 dev br-data0
       }

       notify_backup /home/replication_scripts/to_backup.sh
       notify_master /home/replication_scripts/to_master.sh
}

Резервное копирование:

global_defs {
    script_user root root
}


vrrp_script chk_mysql {
script "/home/replication_scripts/checker.sh"
interval 2                       # every 2 seconds
fall 2
rise 2
weight 10
}

vrrp_instance ctrl2 {

       state BACKUP
       interface br-data0
       virtual_router_id 100
       priority 100
       unicast_src_ip 10.3.80.103
       advert_int 1
       authentication {
               auth_type PASS
               auth_pass 1234
       }

        track_script {
            chk_mysql
        }

       virtual_ipaddress {
               10.3.80.101/16 dev br-data0
       }
        notify_master /home/replication_scripts/to_master.sh
        notify_backup /home/replication_scripts/to_backup.sh

}