티스토리 뷰
HeaetBeat (고가용성)
아래 문서는 CENTOS-5 기반에서 테스팅 되었음
아래 문서는 CENTOS-6 기반에서도 동작하나 문법이나 환경이 약간식 다를수 있음
CENTOS7은 heartbeat 지원하지 않음
개요
Linux-Ha 프로젝트 그룹에서 만든 모듈
시스템 레벨에서 Fail - over (시스템 리부팅, 시스템 장애)
어플리케이션 레벨은 사용불가 ( 프로세스 및 데몬 ... 장애)
VIP (Virtual IP) 를 이용한 시스템
fake 방식
한 노드 장애시 다른 노드가 장애 노드의 IP 혹은 자원 (데몬) 을 잡아 대신 처리하는 방식으로 셋팅
설치 (그냥 깔끔하게 YUM 으로 설치한다)
yum install heartbeat*
HeartBeat 설정파일 (/etc/ha.d/)
- 마스터에 하나 설정파일 설정해놓고 슬레이브에다가 복사해서 사용하면 됨
디폴트 파일은 /usr/share/doc/heartbeat 에 위치하고 있음 여기거 땡겨쓰면 됨
ha.cf : 하트비트 기본설정파일
haresources : 공유할 자원 및 스크립트 정의
authkeys : 인증방식에 대한 정의
Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended
chmod 600 /etc/ha.d/authkeys
/etc/ha.d/ha.cf
logfile /var/log/ha-log 로그파일을 남기는 경로
keepalive 2 두 노드간 얼마나 자주 Heartbeat를 주고 받을지 2초
deadtime 6 호스트가 죽었다고 판단하는 시간 6초 (6초가 지나면 failover 시작)
warntime 10
initdead 120
udpport 694 UDP Heartbeat 패킷을 보낼 포트 지정
udp br0 UDP를 보낼 인터페이스 (bcast 옵션과 같은거? 같음) : 바이패스 카드로 인해 공인 잡혀 있는 br0로 셋팅, 크로스로 묶어서 ethX 별로 인터페이스는 바이패스 상태 감지 불가
bcast br0 heartbeat를 보낼 인터페이스 (지정한 인터페이스로 heartbeat가 브로드캐스팅 되는걸로 판단됨)
nice_failback 한 노드가 죽을시 다른 노드로 자원이 이동 (auto_failback on과 같은 옵션인거 같음)
auto_failback on
node LVS1 클러스터로 묶일 시스템 지정 (uname -n 하면 나오는 이름으로 지정) : 마스터
node LVS2 슬레이브
- initdead 120 --> heartbeat 최초 시작시 haresource 구동까지 2분 걸림
ha.cf 에서 node 를 IP주소 입력하지 말것!
cluster nodes are named by `uname -n` and must be declared with a 'node' directive in the ha.cf file
각 서버의 hostname (uname -n) 입력한다
bcast
UDP 브로드캐스트로 heartbeat 신호 보냄, udpport 지시자와 함께 사용될수 있으며 기본 694번 포트로 내보낸다
같은 네트워크 즉 같은 브로드캐스트 도메인 내에 있는 서버들은 이 heartbeat신호를 다 받게 된다.
bcast eth0, eth1 ... ( 1개 이상의 이더넷 인터페이스)
ucast
UDP 유니캐스트로 heartbeat 신호 보냄
브로드캐스트로 heartbeat 신호를 보내면 네트웍 자원이 낭비 될수 있으므로 유니캐스트로 하는게 낫지 않을까?
ucast eth0 상대방IP
/etc/ha.d/haresource
LVS1 192.168.10.1 192.168.10.2 192.168.10.3 192.168.10.4
LVS1 192.168.10.1/24/192.168.10.255
LVS1 192.168.10.1/24/eth0:0/192.168.10.255
LVS IPaddr::192.168.10.1/24/eth0:0/192.168.10.255
마스터 노드 이름 (예시 : LVS1) 와 공유할 아이피 자원들을 적어준다 즉 Virtual IP들을 명시해준다
버전마다 haresource 테스팅은 필수이며 버전별로 약간식 다른감이 있는건 안비밀
/etc/ha.d/authkeys
auth 1
1 crc
노드간 인증방법 ( 보안세기 : crc < md5 < sha1 )
- chmod 600 authkeys (Root권한만 읽을수 있도록 설정)
vim /etc/hosts
192.168.0.1 linux1
192.168.0.2 linux2
그냥 단순히 linux1 이라고 했을때 sendmail start시 linux1 에 대한 DNS 질의가 안되어서 그런지 몰라도
start가 되지 않았다. 이럴 경우 아래와 같이 도메인을 명시해주면 문제 해결될것임
DNS에 web1.linux1.co.kr 가 질의가 되지 않더라도 작동함 (heartbeat에서 도메인을 가지고 작업되는 경우 없음
192.168.0.1 web1.linux1.co.kr
192.168.0.2 web2.linux2.co.kr
분배 설정 (/etc/ha.d/ldirectord.cf)
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
#### LVS TEST
virtual=XXX.XXX.26.6:80
scheduler=sh
checktype=connect
protocol=tcp
real=XXX.XXX.26.4:80 masq 1
real=XXX.XXX.26.5:80 masq 1
웹서버 하나가 죽을시 Weight값을 0으로 주어 격리시킨다 (quiescent=yes)
웹서버 하나가 죽을시 LVS table에서 다운된 웹서버의 아이피를 삭제하여 라우팅 제거 (quiescent=no)
허트비트 이중화 직렬로 방화벽 2개 구성시 둘다 바이패스 카드 이용시
[MASTER]
br0 : 192.168.0.1
eth0 : 공인 (관리용 및 웹인터페이스)
eth0:0 vip ...
eth1 eth2 : 브릿지
[SLAVE]
br0 : 192.168.0.2
eth0 : 공인 (관리용 및 웹인터페이스)
eth0:0 vip ...
eth1 eth2 : 브릿지
* MASTER BYPASS 전환시
SLAVE 에 VIP 인터페이스 올라옴 분배시작
MASTER 도 VIP를 가지고 있지만 분배는 하지 않음 그냥 바이패스된 상태라 통과하는듯
* MASTER BYPASS 리부팅시
MASTER 는 WatchDog 3초에 의해 바이패스 전환 → SLAVE 가 VIP 올라오면서 분배시작
MASTER 장애 복구 완료후에는 반드시 논바이패스 전환후 하트비트 스타트 ( MASTER에 자동으로 허트비트가 시작되게 한다면 낭패임)
다시 MASTER 가 VIP가지고 오면서 분배시작
충분히 테스팅후 서비스 하는것이 좋다
'LAYER 4 & 7' 카테고리의 다른 글
Windows 2008 LVS (DR 방식 셋팅) hidden patch 혹은 lo arp 무시 (0) | 2015.06.04 |
---|---|
L4 스위치 Alteon 3408E 스펙사항... (0) | 2015.06.04 |
L7 부하분산 개념 (0) | 2015.06.04 |
heartbeat 및 mon-tool 로그 분석 (0) | 2015.06.04 |
LVS, 라운드로빈, L4 부하 분산 개념들 (0) | 2015.06.04 |
- Total
- Today
- Yesterday
- gitlab
- softether
- cURL
- ssh
- L2TP
- mod_security
- WAF
- 인증서
- Apache
- GeoIP
- kvm
- 리눅스
- virtualbox
- MySQL
- yum
- OpenVPN
- HAProxy
- IPSEC
- 베이어다이나믹
- galera
- centos8
- php
- pptp
- iptables
- centOS7
- SSL
- mariadb
- ntp
- glusterfs
- NGINX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |