====== Keepalived ====== * http://www.keepalived.org/ * [[https://github.com/acassen/keepalived|keepalived github]] * High Availability Load Balancing 솔루션 * Web, DB, 기타 등등의 접속을 Load Balancing 하고 H/A 를 구성한다. ===== 설정 ===== * TODO 설정시 로드밸런싱에서 제외된 서버에 대한 유지 시간을 짧게 가져가야할 수도 있음.테스트 필요) * [[http://www.sebastien-han.fr/blog/2012/10/19/highly-available-lvs/|Highly Available LVS]] * [[http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.persistent_connection.html|28. LVS: Persistent Connection (Persistence, Affinity in cisco-speak)]] * Persistence 적용시 커널 파라미터를 조정하지 않으면 LVS에서 weight=0 로 조정하더라도 기존 IP로부터의 접속이 안 빠지는 현상이 발생한다. 아래와 같이 Kernel parameter 설정이 필요하다. * ''/etc/sysctl.conf'' net.ipv4.vs.expire_nodest_conn=1 net.ipv4.vs.expire_quiescent_template=1 * 이후 ''sudo sysctl -p''로 즉시 적용. ===== inhibit_on_failure ===== * 헬스 체크를 하고나서 헬스 체크에 실패한 서버를 완전히 제외하지 않고 단지 그 이후에 들어오는 Request만 안 들어가게 하는 설정. * ''weight''를 0으로 만든다. * 헬스 체크 실패시 서버 자체를 빼버리면 그간 맺어진 모든 커넥션이 끊겨버리므로 그런 방식을 사용하지 말고 ''inhibit_on_failure''를 사용할 것. ===== MISC_CHECK ===== * 상황에 따라 ''weight''를 동적으로 변경한다.