Keepalived를 활용하여 Active(Master)-Standby(Slave)

2024. 6. 23. 22:50·Database
반응형

Keepalived란?

- 가상 IP를 기반으로 작동하며, 마스터 노드를 모니터링하다 해당 노드에 장애가 발생했을 시, Standby 서버로 페일오버되도록 지원하는 것입니다.

 


Keepalived 구축 

- 구축하기에 앞서 2개의 데이터베이스를 준비해야 한다.(Master, Slave)

 

1. Master, Slave DB에 keepalived 설치

yum install -y keepalived

 

 

2. keepalived config파일 수정

 vi /etc/keepalived/keepalived.conf
 
 14번 라인 주석처리
 18번 라인 밑으로 전부 삭제 후 아래 내용 입력
 
 vrrp_script chk_mysql {
        script "pidof mysqld"
        interval 2                       # every 2 seconds
        weight 2
}

vrrp_instance VI_1 { 
        interface ens33                 # ifconfig를 통해 ens number확인 후 변경
        state MASTER
        virtual_router_id 123		# Standby랑 맞춰줘야 하는 값
        unicast_src_ip 192.168.100.20   # Active IP
        unicast_peer {
                192.168.100.30          # Standby IP
        }

        priority 102			# Standby보다 Active가 높아야 하는 값

        track_script {
             chk_mysql
        }

        virtual_ipaddress {
                # ifconfig를 통해 ens number로 변경
                # 192.168.100.xxx/24 dev ens[ens number]
                # xxx 부분은 자유롭게 범주 내에서 세팅
                192.168.100.100/24 dev ens33
        }
}

 

- 18번 라인 밑으로 전부 삭제 후 아래 내용 입력 부분에서 현재 Master셋팅 기준으로 입력한 내용이다.

- 즉 Slave DB 셋팅을 진행할 땐, Active IP, Standby IP를 Master와 반대로 설정해야 한다.

 

- 설정 후 keepalived 재시작

systemctl restart keepalived

 

 

3. DB 서버 Failover 테스트

- workbench에서 접속 테스트

    hostname : [keepalived에서 설정한 virtual_ipaddress]

    username : [Master or Slave에서 생성한 계정]

 

- 접속 후 테스트 내용

show variables LIKE '%server_id%';

 

 

- Value값이 1 또는 2일텐데 해당 상태에서 Active된 서버를 끄고 수초 후 다시 접속해서 확인한다.

 

 

 

- 이렇게 접속된 서버를 껐을 때 Value값이 Standby서버로 자동으로 바뀌면 성공이다!

반응형

'Database' 카테고리의 다른 글

Window11 Oracle Database 설치  (2) 2024.12.14
Error Code: 2013. Lost connection to MySQL server during query  (0) 2024.12.01
Index란?  (3) 2024.11.15
mysql 외부접속 connection locked (Unblock with 'mysqladmin flush-hosts')  (2) 2024.10.02
데이터베이스 이중화(Database Replication) - Master/Slave  (0) 2024.05.17
'Database' 카테고리의 다른 글
  • Error Code: 2013. Lost connection to MySQL server during query
  • Index란?
  • mysql 외부접속 connection locked (Unblock with 'mysqladmin flush-hosts')
  • 데이터베이스 이중화(Database Replication) - Master/Slave
Hyunily
Hyunily
    반응형
  • Hyunily
    Hyunily
    Hyunily
  • 전체
    오늘
    어제
    • 분류 전체보기 (45)
      • Daily (16)
      • 한화시스템 Beyond (6)
      • CS (3)
      • Database (10)
      • Monitoring (2)
      • Spring (8)
  • 블로그 메뉴

    • 홈
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Hyunily
Keepalived를 활용하여 Active(Master)-Standby(Slave)
상단으로

티스토리툴바