▶ Recundancy - 장애가 발생해도 예비 운용장비로 시스템의 기능을 계속할 수 있도록 하는 것을 말한다. - 시스템은 언제 어디서 어떻게 장애가 발생될지 모른다. 사람의 눈으로 관리하는것도 한계가 있으며 이를 위해 많은 모니터링 S/W들이 나오지만 모니터링들로는 초기 발견이라는 한계가 있다. - 장애가 발생하면 단시간에 장애복구가 이어져야 한다 - 장애 시간을 최소화 하기 위해서 운영시에 꼭 필요한 것이 바로 다중화 이다.
▶ 다중화의 본질 - 다중화는 다음의 단계로 이루어 진다. 1) 발생 가능한 모든 장애를 확인한다. 2) 장애 발생시 바로 교체 가능한 예비 장비를 준비한다. 3) 각각의 장비의 상황에 따라 운용하며 정비한다. ▶ 운용체제 Cold Standby 와 Hot Standby - Cold Standby 평상시 사용하지 않고 오직 장애에 발생시 연결 또는 교체 되는 운용체제 - Hot Standby 실제 운용되는 장비와 동일하게 운용되며 같은 상태를 유지하고 있다가 장애 발생시 바로 연결 또는 교체 되는 운용체제 - 이론적으로도 Cold 보다는 Hot Standby 가 다운타임이 짧다. ▶ 장애 극복 - 운용장비에 장애가 발생했을때 자동적으로 예비 장비로 변경되게 하는 것을 장비극복 이라고 한다. - 장애 극복 방법 에는 다음과 같은 방법들이 있다. 1) VIP _ VIP를 이용하여 Active / Stanby 를 구성하여 장애에 대비 한다. _ 예를들어 Active 장비에 VIP를 할당하여 Active 장비에 장애가 발생시 Stanby 장비로 VIP만 변경하여 바로 서비스에 임할 수 있도록 준비할 수 있다.
2) 장애검출 - 헬스체크 _ ICMP - (Layer 3) : ECHO 요청을 보내서 응답이 돌아오는 지를 체크하여 헬스 체킹을 한다. (가장 기본적인 체크 방버이다.) _ PORT - (Layer 4) : TCP 접속을 시험해서 접속 할 수 있는지 여부를 체크한다. 웹 서비스가 다운 된것은 감지할 수 있지만, 과부하나 여러 다른 오류로 인해 포트만 살아 있는경우 자세한 확인을 감지할 수 없다. _ SERVICE - (Layer 7) : 실제로 HTTP 요청을 보내 정상적인 응답이 돌아오는지를 체크한다. 대부분의 이상을 감지할 수 있으며 경우에 따라서는 서버에 부하를 유발할 수 있다.
3) 장애검출 - Shell Srcipt _ 쉘 스크립트를 이용해서 ICMP (Layer 3) 헬스 체크를 할 수 있다. 서버에 Ping 을 보내 이에 응답이 없다면 이를 장애로 판단하여 관리자에게 전송하게 구성이 가능하다. 이를 위해서는 리눅스 쉘 스크립트에 대한 이해가 필요한다.
|