Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.2. 기본적인 클러스터 설정 파일 생성

클러스터 하드웨어가 제공되고, Red Hat Enterprise Linux 및 고가용성 추가 기능 소프트웨어가 설치되어 있는 경우, 클러스터 설정 파일 (/etc/cluster/cluster.conf)을 생성하여 고가용성 추가 기능의 실행을 시작할 수 있습니다. 다음에서는 단순히 출발점으로 차단 장치, 장애 조치 도메인, HA 서비스 없이 스켈튼 클러스터 설정 파일을 생성하는 방법에 대해 설명합니다. 그 후 설정 파일에서 이러한 부분을 설정하는 방법에 대해 설명합니다.

중요

여기에서는 단순히 클러스터 설정 파일을 생성하기 위한 중간 단계를 설명합니다. 이 결과로 생긴 파일에는 차단 장치가 없고 지원되는 설정은 고려되지 않습니다.
다음 절차에서는 스켈튼 클러스터 설정 파일을 생성 및 구성하는 방법에 대해 설명합니다. 궁극적으로 사용자의 클러스터에 대한 설정 파일은 노드 수, 차단 장치 유형, HA 서비스 유형 및 수량, 기타 특정 사이트의 요구에 따라 달라집니다.
  1. 클러스터에 있는 노드 중 하나에서 예 7.1. “cluster.conf 예: 기본 설정 ”에 있는 템플릿 예시를 사용하여 /etc/cluster/cluster.conf를 생성합니다.
  2. (옵션) 2 노드 클러스터를 설정하는 경우, 설정 파일에 다음 행을 추가하여 단일 노드가 쿼럼을 유지하게 합니다. (예: 하나의 노드가 실패한 경우):
    <cman two_node="1" expected_votes="1"/>
    cluster.conf 파일에서 two_node 옵션을 추가 또는 삭제시 설정을 업데이트하면 변경 사항을 적용하기 위해 클러스터를 다시 시작해야 합니다. 클러스터 설정을 업데이트하는 방법에 대한 내용은 8.4절. “설정 업데이트 ”에서 참조하십시오. two_node 옵션을 지정하는 예는 예 7.2. “cluster.conf 예: 기본적인 두 개의 노드 설정 ”에서 참조하십시오.
  3. cluster 속성을 사용하여 클러스터 이름 및 설정 버전 번호를 지정합니다: nameconfig_version (예 7.1. “cluster.conf 예: 기본 설정 ” 또는 예 7.2. “cluster.conf 예: 기본적인 두 개의 노드 설정 ” 참조).
  4. clusternodes 부분에서 clusternode 속성을 사용하여 각 노드의 노드 이름 과 노드 ID를 지정합니다: namenodeid.
  5. /etc/cluster/cluster.conf를 저장합니다.
  6. ccs_config_validate 명령을 사용하여 클러스터 스키마 (cluster.rng)에 대해 파일 유효성을 검증합니다. 예:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. 설정 파일을 각 클러스터 노드의 /etc/cluster/에 전달합니다. 예를 들어, scp 명령을 사용하여 파일을 다른 클러스터 노드에 전달할 수 있습니다.

    참고

    클러스터가 처음으로 생성되었을 때 이 방법으로 클러스터 설정 파일을 전달해야 합니다. 클러스터가 설치되어 실행되면, 클러스터 설정 파일은 cman_tool version -r을 사용하여 전달될 수 있습니다. 업데이트된 설정 파일을 전달하기 위해 scp 명령을 사용할 수 있지만, scp 명령을 사용하는 동안에는 모든 노드에 있는 클러스터 소프트웨어를 중지해야 합니다. 또한, scp를 통해 업데이트된 설정 파일을 전달하려면 ccs_config_validate를 실행해야 합니다.

    참고

    예시 설정 파일에는 다른 요소와 속성이 있지만 (예: fencefencedevices) 이를 지금 배치할 필요는 없습니다. 이 장의 후반 부분에서 다른 요소와 속성을 지정하는 방법에 대해 설명합니다.
  8. 클러스터를 시작합니다. 각각의 클러스터 노드는 다음과 같은 명령을 실행합니다:
    service cman start
    예:
    [root@example-01 ~]# service cman start
    Starting cluster: 
       Checking Network Manager...                             [  OK  ]
       Global setup...                                         [  OK  ]
       Loading kernel modules...                               [  OK  ]
       Mounting configfs...                                    [  OK  ]
       Starting cman...                                        [  OK  ]
       Waiting for quorum...                                   [  OK  ]
       Starting fenced...                                      [  OK  ]
       Starting dlm_controld...                                [  OK  ]
       Starting gfs_controld...                                [  OK  ]
       Unfencing self...                                       [  OK  ]
       Joining fence domain...                                 [  OK  ]
    
  9. 클러스터 노드에서 cman_tool nodes를 실행하여 노드가 클러스터에서 멤버로 작동하는지 확인합니다 (상태 컬럼 "Sts"에서 "M"로 표시). 예:
    [root@example-01 ~]# cman_tool nodes
    Node  Sts   Inc   Joined               Name
       1   M    548   2010-09-28 10:52:21  node-01.example.com
       2   M    548   2010-09-28 10:52:21  node-02.example.com
       3   M    544   2010-09-28 10:52:21  node-03.example.com
    
  10. 클러스터가 실행되고 있을 경우 7.3절. “차단 장치 설정 ”를 실행합니다.

7.2.1. 기본적인 설정 예시

예 7.1. “cluster.conf 예: 기본 설정 ”예 7.2. “cluster.conf 예: 기본적인 두 개의 노드 설정 ” (2 노드 클러스터)는 각각 출발점으로 매우 기본적인 클러스터 설정 파일의 샘플을 제공합니다. 이 장의 후반 부분에서는 차단 장치와 HA 서비스를 설정하는 방법을 설명합니다.

예 7.1. cluster.conf 예: 기본 설정


<cluster name="mycluster" config_version="2">
   <clusternodes>
     <clusternode name="node-01.example.com" nodeid="1">
         <fence>
         </fence>
     </clusternode>
     <clusternode name="node-02.example.com" nodeid="2">
         <fence>
         </fence>
     </clusternode>
     <clusternode name="node-03.example.com" nodeid="3">
         <fence>
         </fence>
     </clusternode>
   </clusternodes>
   <fencedevices>
   </fencedevices>
   <rm>
   </rm>
</cluster>

예 7.2. cluster.conf 예: 기본적인 두 개의 노드 설정


<cluster name="mycluster" config_version="2">
   <cman two_node="1" expected_votes="1"/>
   <clusternodes>
     <clusternode name="node-01.example.com" nodeid="1">
         <fence>
         </fence>
     </clusternode>
     <clusternode name="node-02.example.com" nodeid="2">
         <fence>
         </fence>
     </clusternode>
   </clusternodes>
   <fencedevices>
   </fencedevices>
   <rm>
   </rm>
</cluster>

7.2.2. 2 노드 클러스터에서 totem합의 (consensus)

2 노드 클러스터를 생성하여 나중에 클러스터에 추가 노드를 더하지 않고자 할 경우, cluster.conf 파일에 있는 totem 태그의 합의 값을 생략하여 합의 값이 자동으로 계산되게 합니다. 합의 값이 자동으로 산출될 때 다음과 같은 규칙이 사용됩니다:
  • 두 개 또는 그 이하의 노드가 있을 경우, 합의 값은 최대 2000 msec에서 최저 200 msec을 갖는 (token * 0.2)가 됩니다.
  • 세 개 또는 그 이상의 노드가 있는 경우, 합의 값은 (token + 2000 msec)이 됩니다.
cman 유틸리티가 이렇게 합의 시간 제한을 설정하게 하면 나중에 2 노드에서 3 노드 (또는 그 이상)로 변경할 경우 클러스터를 다시 시작해야 합니다. 이는 token 시간 제한을 기준으로 합의 시간 제한 보다 큰 값으로 변경해야 하기 때문입니다.
2 노드 클러스터를 설정하고 있고 차후에 2개 이상의 노드로 업그레이드하고자 할 경우, 합의 시간 제한을 무시하고 2 노드에서 3 노드 ( 또는 그 이상)로 변경할 때 클러스터를 다시 시작하도록 요구하지 않게 할 수 있습니다. 이를 위해 cluster.conf에서 다음과 같이 실행합니다:

<totem token="X" consensus="X + 2000" />

설정 파서는 X + 2000을 자동으로 산출하는 것이 아님에 유의하십시오. 등식보다 정수 값을 사용해야 합니다.
2 노드 클러스터에 최적화된 합의 시간 제한을 사용하는 장점은 전체적 장애 복구 시간이 2 노드 경우에 대해 단축된다는 것입니다. 이는 합의 (consensus)가 token 시간 제한 함수가 아니기 때문입니다.
cman에서 2 노드 자동 탐색의 경우, 중요한 것은 물리적 노드이며 cluster.conf 파일에 있는 two_node=1 지시문의 존재가 아님에 유의하십시오.