일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 개발
- gitlab
- 네아로
- replication
- 닷넷
- Keepalived
- c#
- 센티넬
- DotNetOpenAuth
- 고가용성
- 레디스
- .NET
- ipod
- Cover Guru
- haproxy
- NoSQL
- Gears of War
- DSM6
- High Availability
- redis
- mmbot
- 커버구루
- 복제
- TeamCity
- 기어스 오브 워
- sentinel
- ASP.NET
- XBOX360
- AirComic
- iPod Touch
- Today
- Total
Once in a Lifetime
05. Redis - Keepalived 를 이용한 HaProxy 이중화 본문
HaProxy 를 이용하여 Master / Slave 의 포워딩을 구성하였으나, HaProxy 서버가 다운 되었을 경우를 대비해 HaProxy 를 이중화하고 이를 가상 IP 로 바인딩 시켜주기 위해 Keepalived 를 이용해 보겠습니다.
Keepalived 설치
yum -y install keepalived
PsMisc 설치
yum -y install psmisc
Non-LocalIP 커널 바인딩 허용
echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
sysctl -p
Keepalived 설정 (Master 측)
global_defs {
lvs_id haproxy_DH
}
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_01 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.81.150
}
track_script {
check_haproxy
}
}
Keepalived 설정 (Backup 측)
global_defs {
lvs_id haproxy_DH_passive
}
vrrp_script check_haproxy {
script "killall -0 haproxy"
interval 2
}
vrrp_instance VI_01 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.81.150
}
track_script {
check_haproxy
}
}
Keepalived 방화벽 추가
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p eth0 -o ens160 -j ACCEPT
firewall-cmd --reload
Keepalived 로그 경로
cat /var/log/messages