>데이터 베이스 >MySQL 튜토리얼 >MySQL 고가용성 정보: Keepalived 듀얼 마스터 상시 대기

MySQL 고가용성 정보: Keepalived 듀얼 마스터 상시 대기

jacklove
jacklove원래의
2018-06-08 09:55:262382검색

일반적으로 "이중 시스템 상시 대기"라고 하면 두 시스템이 모두 실행 중이지만 두 시스템이 동시에 서비스를 제공하지는 않는다는 의미입니다. 서비스를 제공하는 하나가 실패하면 다른 하나가 자동으로 인계받아 즉시 서비스를 제공하며 전환 시간이 매우 짧습니다.

Keepalived는 VRRP(Virtual Router Redundancy Protocol) 가상 라우팅 중복 프로토콜을 기반으로 작동합니다. VRRP에는 VRRP 라우터와 가상 라우터, 마스터 라우터와 백업 라우터라는 두 가지 중요한 개념이 있습니다.

VRRP 라우터는 VRRP를 실행하는 라우터를 의미하며, 이는 물리적 개체입니다. 가상 라우터는 VRRP 프로토콜에 의해 생성된 논리적 개념을 의미합니다. VRRP 라우터 그룹이 함께 작동하여 가상 라우터를 형성합니다. Vrrp에는 서비스를 제공하는 경로, 즉 마스터 경로를 선택하고 나머지 경로는 백업 경로가 되는 선택 메커니즘이 있습니다. 마스터 경로에 장애가 발생하면 백업 경로에서 마스터 경로가 다시 선택되어 서비스가 중단되지 않도록 계속 작업합니다.

환경 설명:

OS: Ubuntu16.04
MASTER: 172.16.29.205
BACKUP: 172.16.29.197
VIP: 172.16.29.206

[root@masterr ~]# vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
test@sina.com
 }
notification_email_from  admin@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MYSQL_HA      #标识,双主相同
 }
vrrp_instance VI_1 {
 state BACKUP           #两台都设置BACKUP
 interface eth0
 virtual_router_id 51       #主备相同
 priority 100           #优先级,backup设置90
 advert_int 1
 nopreempt             #不主动抢占资源,只在master这台优先级高的设置,backup不设置
 authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 172.16.29.206
 }
}
virtual_server 172.16.29.206 3306 {
 delay_loop 2
 #lb_algo rr              #LVS算法,用不到,我们就关闭了
 #lb_kind DR              #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
 persistence_timeout 50  #同一IP的连接60秒内被分配到同一台真实服务器
 protocol TCP
 real_server 172.16.29.205 3306 {   #检测本地mysql,backup也要写检测本地mysql
 weight 3
 notify_down /etc/keepalived/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换
 TCP_CHECK {
 connect_timeout 3    #连接超时
 nb_get_retry 3       #重试次数
 delay_before_retry 3 #重试间隔时间
  }
}   
[root@masterr ~]# vi /usr/local/keepalived/mysql.sh
#!/bin/bash
sudo service keepalived stop
[root@masterr ~]# chmod +x /usr/local/keepalived/mysql.sh
[root@masterr ~]# /etc/init.d/keepalived start

백업 서버는 우선 순위를 90으로만 수정하며 nopreempt는 설정되지 않음, 실제 _server 세트 로컬 IP.

3. 고가용성 테스트

1. MySQL 클라이언트를 통해 VIP로 연결하여 연결이 성공했는지 확인합니다.

2. 마스터 mysql 서비스를 중지합니다. 정상적으로 전환이 가능하다면 ip addr 명령을 사용하여 VIP가 어느 서버에 있는지 확인할 수 있습니다.

3. /var/log/messges 로그를 확인하면 마스터/백업 전환 과정을 볼 수 있습니다

4. 마스터 서버가 장애 복구 후 적극적으로 리소스를 점유하고 활성 서버가 되는지 여부를 확인할 수 있습니다.

이 문서에서는 Keepalived를 사용하여 MySQL의 고가용성을 달성하는 방법에 대해 설명합니다. 더 많은 관련 권장 사항을 보려면 PHP 중국어 웹사이트를 참조하세요.

관련 권장 사항:

PHP를 사용하여 여러 가지 일반적인 정렬 알고리즘 프로그램 작성

PHP는 AJAX 요청인지 어떻게 확인합니까?

PHP 프로그램에서 보고된 date() 경고를 처리하는 솔루션

위 내용은 MySQL 고가용성 정보: Keepalived 듀얼 마스터 상시 대기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.