Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

디스크 리소스 , 네트워크주소 리소스, 복합응용 리소스 (ex: 데이터베이스)

 

많은 응용프로그램들은 디스크(혹은 스토리지)에 데이터를 기록합니다. 따라서 응용프로그램들은 디스크에 의존하는 형태로 관계가 이루어져야 합니다.
데이터베이스의 경우는 데이터를 기록할 디스크를 지정해야 합니다. 따라서 데이터베이스는 디스크에 의존하도록 데이터베이스를 부모로 디스크를 자식으로 의존 관계를 설정합니다.
클라이언트에서 데이터베이스에 접속할 수 있는 IP 주소가 필요하다면 네크워크주소를 자식으로 데이터베이스를 부모로 의존 관계를 설정합니다.
이 의존 관계를 바탕으로 MCCS에서는 그룹을 온라인 할 때, 네트워크주소 리소스와 디스크 un-lock이 정상적으로 실행되었는지 확인한 후에 데이터베이스를 구동시킵니다.
따라서 데이터베이스는 네트워크주소 리소스, 디스크 리소스를 모두 의존하는 관계로 설정되어야 합니다.
지금까지의 관계로 의존성을 구성해보면 다음과 같은 형태가 됩니다.

[그림] 의존 관계도




의존성에 따른 동작

그룹의 시작/종료 순서는 의존성에 따라 온라인은 아래부터 위로, 오프라인은 위부터 아래로 진행됩니다.
그럼 실제 장애가 발생하였을 경우, 리소스 속성을 고려한 진행 순서에 대해 몇 가지 경우를 예로 들어 보겠습니다.
먼저, 리소스 속성과 진행 상태를 다음과 같이 그림으로 미리 정의해 놓았습니다.

[그림] 리소스 상태 정보 표시도

Critical 속성

  • critical 리소스보다 하위에서 장애발생

[그림] 장애 발생 예 1

  1. r2 리소스에서 장애가 발생하면 r1 리소스를 종료합니다.
    (r2를 의존하는 r1으로서는 r2가 장애이므로 r1이 정상적인 온라인이라고 보기 힘듭니다.)
  2. r1은 critical 속성이 있으므로 이 그룹을 페일오버 시키기 위해 r3, r4 순서로 종료 시킵니다.
  3. 결국 이 노드에서는 r2를 장애 판정하고 그룹 내의 모든 리소스들을 오프라인 시킵니다.

  • critical이 아닌 리소스

[그림] 장애 발생 예 2

  1. r1 리소스가 critical 이 아닌 경우에 온라인 되어 있는 상태입니다.
  2. r2 리소스에서 장애가 발생하여 r1 리소스를 종료합니다.
  3. r1 리소스는 critical 이 아니므로 그룹 전체를 페일오버 할 필요가 없습니다. 따라서 현재 진행된 상태에서 멈춥니다.

 

RestartLimit 속성

'RestartLimit'는 리소스 타입에 있는 속성으로 최종 장애로 판단하기 전에 몇 번까지 복구할 것인지 결정하는 값입니다.

(상세한 내용은 "6. 리소스 타입"  편을 참조해 주십시오.)

[그림] 장애 발생 예 3

  1. r2 리소스는 RestartLimit 값이 1인 경우로 1차 장애가 발생했습니다.
  2. RestartLimit 값으로 인해 1차 서비스를 복구 시킵니다.
    이 때는 상위인 r1의 리소스는 하위 리소스 재시작을 위해 오프라인 됩니다.
  3. r2가 재시작 합니다.
  4. r1 리소스도 온라인하게 됩니다.
  5. r2에서 한번 더 장애가 발생하여 최종 장애 상태로 처리 하고 그룹을 페일오버 시키기 위해 현재 그룹을 모두 종료 시킵니다.
    리소스 종료 순서에 의해 r1 리소스부터 종료 시킵니다.
  6. r3 리소스를 종료 시킵니다.
  7. 현재 노드에서는 r2가 장애 상태로 처리되었고 모든 리소스들이 오프라인 상태로 남게 됩니다.

 

...