1. keepalivedをインストールして構成する
master-a端:
1)安装keepalivedの
[ルートのCentOS〜@]#
#yumのkeepalivedの安装keepalivedのインストール[CentOSの〜@ルート]
[ルート@ CentOSの〜]#
[ルート@ CentOSの〜]#rpmで-qa keepalivedの
keepalivedの-1.3.5-16.el7 .x86_64
[root @ CentOS〜]#
2)keepalivedの設定ファイル変更
[CentOSのルート@〜]#
[CentOSのルート@〜]#>#空元のプロファイル/etc/keepalived/keepalived.conf
[CentOSのルート@〜]#
[CentOSのルート@〜]#のVim /etc/keepalived/keepalived.conf#カスタム構成ファイル
!keepalivedの構成ファイル
global_defs {
notification_email {br /> [email protected]
}
smtp_server 192.168.23.1
smtp_connect_timeout 30
router_id MySQL-HA
}
vrrp_script chk_mysql {
script "/etc/keepalived/chk_mysql.sh"
interval 2
weight -5
fall 3
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
mcast_src_ip 192.168.18.103
virtual_router_id 55
priority 100
advert_int 1
nopreempt
認証{
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.18.110/24
}
track_script {
chk_mysql
}
}
[root @
CentOS〜]#[root @ CentOS〜]#cat /etc/keepalived/keepalived.conf#設定を表示
3)mysqlステータス検出スクリプトを記述します
[root @
CentOS〜]#[root @ CentOS〜]#vim /etc/keepalived/chk_mysql.sh
#!/ bin / bash
counter = $(netstat -na | grep "LISTEN" | grep "3306" | wc -l)
if ["$ {counter}" -eq 0]; その後、
systemctl stop keepalived
fi
[root @
CentOS〜]#[root @ CentOS〜]#cat /etc/keepalived/chk_mysql.sh#スクリプトコンテンツを表示
[root @ CentOS〜]#[root @ CentOS〜]#chmod
+ x / etc / keepalived / chk_mysql .sh#スクリプトに実行権限を与える
4)启动keepalived [root @ CentOS〜
]#
[root @ CentOS〜]#systemctl start keepalived
[root @ CentOS〜]#systemctl enable keepalived
master-b end:
1)keepalivedをインストールします
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#yum install keepalived
2)keepalived構成ファイルを変更します
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#> /etc/keepalived/keepalived.conf#元の構成をクリアします
[root @ CentOS-2〜] #vim / etc / keepalived / keepalived.conf#カスタム構成ファイル
!keepalivedの構成ファイル
global_defs {
notification_email {br /> [email protected]
}
smtp_server 192.168.23.1
smtp_connect_timeout 30
router_id MySQL-HA
}
vrrp_script chk_mysql {
script "/etc/keepalived/chk_mysql.sh"
interval 2
weight -5
fall 3
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
mcast_src_ip 192.168.18.104
virtual_router_id 55
priority 95
advert_int 1
認証{
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.18.110/24
}
track_script {
chk_mysql
}
}
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#cat /etc/keepalived/keepalived.conf
3)mysqlステータス検出スクリプトを記述します
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#vim /etc/keepalived/chk_mysql.sh
#!/ bin / bash
counter = $(netstat -na | grep "LISTEN" | grep "3306" | wc -l)
if ["$ {counter}" -eq 0]; その後、
systemctl stop keepalived
fi
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#cat /etc/keepalived/chk_mysql.sh
[root @ CentOS-2〜]#
[root @ CentOS- 2〜] #chmod + x / etc /keepalived/chk_mysql.sh#スクリプトに実行権限を付与する
4)启动keepalived
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#systemctl start keepalived
[root @ CentOS-2〜]#systemctl enable keepalived
2. keepalived + MySQLデュアルマスターの可用性をテストする
1)mysqlステータスを表示する
master-a end:
[root @
CentOS〜]#[root @ CentOS〜]#systemctl status mysqld #mysqlが実行されているかどうかを確認
master-b端:
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#systemctl status mysqld
2)VIPが存在するサーバーを確認します
Master-a end:
[root @
CentOS〜]#[root @ CentOS〜]#ip a #VIPがmaster-aエンドにあることがわかりました
master-b端:
[root @ CentOS-2〜]#
[root @ CentOS-2〜] #ip a
3)master-a側でmysqlサービスを停止し、VIPがどのサーバーにあるかを確認します
master-a端:
[root @ CentOS〜]#
[root @ CentOS〜]#systemctl stop mysqld
[root @ CentOS〜]#ip a
master-b end:
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#ip a#master-b endに移動して表示
4)master-a側でmysqlサービスとkeepalivedサービスを開始し、master-b側でmysqlサービスを停止し、VIPがどのサーバーにあるかを確認します[root @ CentOS〜
]#
[root @ CentOS〜]#systemctl start mysqld #Startマスターaのmysql
[root @ CentOS〜]#systemctl start keepalived#master-aのkeepkeepalivedを開始[root @ CentOS〜
]#
[root@CentOS-2 ~]#
[root@CentOS-2 ~]# systemctl stop mysqld #停止master-b端的mysql
[root@CentOS-2 ~]#
[root @
CentOS〜]#[root @ CentOS〜]#ip a#master-aネットワークカードを確認する
[root @ CentOS-2〜]#
[root @ CentOS-2〜]#ip a#master-b側のネットワークカードのステータスを確認する
3.実験的結論
検証と比較により、MySQLデュアルマスタークラスターがkeepalivedによって高可用性を正常に達成したことがわかります