7.4. 장애 조치 도메인 설정

장애 조치 도메인은 노드 장애 발생 시 클러스터 서비스를 실행할 수 있는 클러스터 노드의 이름이 지정된 하위 집합입니다. 장애 조치 도메인은 다음과 같은 특징을 갖을 수 있습니다:
  • 제한 없음 (Unrestricted) — 우선 순위를 갖는 멤버의 하위 집합을 지정할 수 있게 합니다. 하지만 이러한 도메인에 할당된 클러스터 서비스는 사용 가능한 멤버에서 실행할 수 있습니다.
  • 제한 (Restricted) — 특정 클러스터 서비스를 실행할 수 있는 멤버를 제한할 수 있게 합니다. 제한된 장애 조치 도메인에 있는 사용 가능한 멤버가 없을 경우, 클러스터 서비스는 (수동으로 또는 클러스터 소프트웨어로도) 시작할 수 없습니다.
  • 우선 순위 없음 (Unordered) — 클러스터 서비스가 우선 순위가 없는 장애 조치 도메인에 할당될 때 클러스터 서비스를 실행할 멤버는 우선 순위가 없는 사용 가능한 장애 조치 도메인 멤버에서 선택됩니다.
  • 우선 순위 지정 (Ordered) — 장애 조치 도메인의 멤버 간에 우선 순위를 지정할 수 있게 합니다. 우선 순위가 지정된 장애 조치 도메인은 최하위 우선 순위 번호를 갖는 노드를 먼저 선택합니다. 즉, 장애 조치 도메인에 있는 우선 순위 번호 "1"을 갖는 노드는 최상의 우선 순위를 지정하게 되므로 이는 장애 조치 도메인에서 가장 우선 순위를 갖는 노드가 됩니다. 이 노드 다음에 다음의 우선 순위를 갖는 노드는 다음으로 최상위 우선 순위 번호를 갖는 노드가 됩니다.
  • 장애 복구 (Failback) — 장애 조치 도메인의 서비스가 노드 장애 이전 원래 실행하고 있는 노드로 장애 복구할지에 대한 여부를 지정할 수 있게 합니다. 이러한 기능 설정은 노드가 반복적으로 실패하고 이것이 우선 순위를 갖는 장애 조치 도메인의 일부분인 경우에 유용합니다. 이러한 상황에서 노드가 장애 조치 도메인에 있는 우선 순위를 갖는 노드일 경우, 서비스를 장애 조치하여 우선 순위를 갖는 노드와 다른 노드 사이에서 반복적으로 장애 복구할 가능성이 있으므로 이는 성능에 심각한 영향을 미칠 수 있습니다.

    참고

    우선 순위가 지정된 장애 조치가 설정된 경우에만 장애 복구 기능을 사용할 수 있습니다.

참고

장애 조치 도메인 설정 변경은 현재 실행 중인 서비스에 영향을 주지 않습니다.

참고

장애 조치 도메인은 운용에 필요하지 않습니다.
기본값으로 장애 조치 도메인은 제한이 없고 우선 순위가 없습니다.
여러 멤버를 갖는 클러스터에서 제한된 장애 조치 도메인을 사용하면 클러스터 서비스 (예: httpd) 실행을 위한 클러스터 설치 작업을 최소화할 수 있습니다. 이때 여기서 클러스터 서비스를 실행하는 모든 멤버에서 동일한 설정을 구성해야 합니다. 클러스터 서비스를 실행하기 위해 전체 클러스터를 설정하는 대신 클러스터 서비스와 관련된 제한된 장애조치 도메인에 있는 멤버만을 설정할 수 있습니다.

참고

우선 순위를 갖는 멤버를 설정하려면, 하나의 클러스터 멤버로 이루어진 제한이 없는 장애 조치 도메인을 생성할 수 있습니다. 이렇게 할 경우 클러스터 서비스가 주로 클러스터 멤버 (우선 순위를 갖는 멤버)에서 실행되지만 클러스터 서비스가 다른 멤버라도 장애 조치할 수 있게 합니다.
장애 조치 도메인을 설정하려면, 다음 절차를 사용합니다:
  1. 클러스터의 노드 중 하나에서 /etc/cluster/cluster.conf를 엽니다.
  2. 사용될 각각의 장애 조치 도메인에 대해 rm 요소 내에 다음과 같은 부분을 추가합니다.
    
            <failoverdomains>
                <failoverdomain name="" nofailback="" ordered="" restricted="">
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                </failoverdomain>
            </failoverdomains>
    
    

    참고

    failoverdomainnode 속성의 수는 장애 조치 도메인에 있는 노드 수에 따라 달라집니다. 위의 스켈튼 failoverdomain 부분에서는 세 개의 failoverdomainnode 요소(노드 이름이 지정되지 않음)를 보여주고 있으며 장애 조치 도메인에 세 개의 노드가 있음을 나타내고 있습니다.
  3. failoverdomain 부분에서는 요소와 속성의 값을 제공합니다. 요소와 속성에 대한 설명은 주석 클러스터 스키마의 failoverdomain 부분을 참조하십시오. 주석 클러스터 스키마는 클러스터 노드에 있는 /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (예: /usr/share/doc/cman-3.0.12/cluster_conf.html)에서 사용 가능합니다. failoverdomains 부분의 예제의 경우 예 7.8. “cluster.conf에 추가된 장애 조치 도메인 ”에서 참조하십시오.
  4. 값을 증가시켜 config_version 속성을 업데이트합니다 (예: config_version="2"에서 config_version="3">로 변경)
  5. /etc/cluster/cluster.conf를 저장합니다.
  6. (옵션) ccs_config_validate 명령을 실행하여 클러스터 스키마 (cluster.rng)로 파일의 유효성을 검증합니다. 예:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. cman_tool version -r 명령을 실행하여 설정을 나머지 클러스터 노드에 전달합니다.
  8. 7.5절. “HA 서비스 설정 ”으로 이동합니다.
예 7.8. “cluster.conf에 추가된 장애 조치 도메인 ” 에서는 우선 순위로된 무제한 장애 조치 도메인과 함께 설정 예를 보여줍니다.

예 7.8. cluster.conf에 추가된 장애 조치 도메인


<cluster name="mycluster" config_version="3">
   <clusternodes>
     <clusternode name="node-01.example.com" nodeid="1">
         <fence>
            <method name="APC">
              <device name="apc" port="1"/>
             </method>
         </fence>
     </clusternode>
     <clusternode name="node-02.example.com" nodeid="2">
         <fence>
            <method name="APC">
              <device name="apc" port="2"/>
            </method>
         </fence>
     </clusternode>
     <clusternode name="node-03.example.com" nodeid="3">
         <fence>
            <method name="APC">
              <device name="apc" port="3"/>
            </method>
         </fence>
     </clusternode>
   </clusternodes>
   <fencedevices>
         <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/>
   </fencedevices>
   <rm>
       <failoverdomains>
           <failoverdomain name="example_pri" nofailback="0" ordered="1" restricted="0">
               <failoverdomainnode name="node-01.example.com" priority="1"/>
               <failoverdomainnode name="node-02.example.com" priority="2"/>
               <failoverdomainnode name="node-03.example.com" priority="3"/>
           </failoverdomain>
       </failoverdomains>
   </rm>
</cluster>

failoverdomains 부분에는 클러스터에 있는 각 장애 조치 도메인의 failoverdomain 부분이 들어 있습니다. 이 예제에는 하나의 장애 조치 도메인이 있습니다. failoverdomain 행에서 이름 (name)은 example_pri로 지정되어 있습니다. 또한, 장애 복구 없음 (failback="0")이 지정되어 있으며, 장애 조치는 (ordered="1") 우선 순위를 갖고 장애 조치 도메인은 제한 없음 (restricted="0")으로 지정되어 있습니다.