본문 바로가기
아이티 공부/리눅스

RHCS (Red hat Cluster Suite) 구축 3/4

by Klero 2017. 3. 20.

- 이제는 High Availability Management 웹 페이지에서 설정을 해보자

Manager Clusters에 들어가보자

 

 

- 위에서 Add를 클릭하면 아래와 같은 창이뜬다. 여기에는 노드 - A와 노드 - B를 등록하면 된다.
- 해당 패스워드는 노드 - A 와 노드 - B에서 설정한 ricci 패스워드를 입력하면 된다.
 
- 리고 노드 - A 와 노드 - B에 11111 포트를 열어줘야 한다.
- luci 서버에서 클러스터 노드에 있는 IP 포트가 포트 11111로 연결을 허용하는지 확인해라

 

 

 

 

- 노드들의 패스워드를 넣고 Add Cluster 버튼을 클릭한다.

 

 

 

- 아래와 같이 RHCS-cluster가 luci에 정상적으로 추가되었다고는 뜨지만 뭔가 이상한 에러같은게 뜬다.

(처음에 방화벽 11111 포트를 안열어서 그런 것 같다.)

 

   

 

- 노드 - A와 노드 - B를 아래 Reboot 버튼을 눌러 

재시작

 하였다.

- 그리고 해당 노드들에서 # service ricci restart 명령을 실행한 후 아래처럼 정상적으로 노드들이 붙었다.

 

 
- 여기 까지 됐으면 이제 Filover domain , Resource , Service Group을 등록하여 사용하면 된다.
- 리소스는 리소스 생성 -> 페일 오버 도메인 -> 서비스 그룹 순으로 등록하면 된다.
 
- 또한 각 노드 (노드 - A , 노드 - B)에서 # clustat 명령어를 치면 정보를 볼 수 있다.


 

 

- 참고로 Reousrces를 눌러봤더니 선택할 수 있는 Resources가 아래와 같았다.

 

 

(1). 리소스 설정
 
Name : 사용자 정의 사용자 스크립트의 이름을 지정해라. 
스크립트 리소스 를 통해 표준 LSB 호환 init 스크립트가 클러스터 서비스를 시작하는데 사용할 수 있다.
 
Full Path to Script File : 파일이 사용자 지정 스크립트가 배치되어 있는 위치의 경로를 입력한다.

(예: /etc/init.d/userscript).

 


 

(2). 페일 오버 도메인 설정
 
- 페일 오버 도메인은 노드 장애 발생 시 클러스터 서비스를 실행할 수 있는 클러스터 노드의 이름이 지정된 하위 집합
- 페일 오버 도메인은 운용에 필요하지 않다고 하네 -> 기본값으로 장애 조치 도메인은 제한이 없고 우선 순위가 없다.
 
- 여러 멤버를 갖는 클러스터에서 제한된 페일 오버 도메인을 사용하면 클러스터 서비스 (예: httpd) 실행을 위한 클러스터 설치 작업을
최소화할 수 있다. 이때 여기서 클러스터 서비스를 실행하는 모든 멤버에서 동일한 설정을 구성해야 한다.
클러스터 서비스를 실행하기 위해 전체 클러스터를 설정하는 대신 클러스터 서비스와 관련된 제한된 페일 오버 도메인에 있는
멤버만을 설정할 수 있다.
 
- 우선 순위를 갖는 멤버를 설정하려면, 하나의 클러스터 멤버로 이루어진 제한이 없는 장애 조치 도메인을 생성할 수 있다. 
이렇게 할 경우 클러스터 서비스가 주로 클러스터 멤버 (우선 순위를 갖는멤버)에서 실행되지만 클러스터 서비스가 다른 멤버라도
장애 조치할 수 있게 한다.
 
 
장애 조치 도메인에 있는 멤버의 장애 조치 우선 순위 설정을 활성화하려면 우선 순위 설정 (Prioritized) 체크 박스를 클릭한다..
우선 순위 (Prioritized) 선택하여 장애 조치 도메인의 멤버로서 선택된 각 노드의 우선 순위 값 Priority를 설정할 수 있다.

장애 조치 도메인에 있는 멤버에게 장애 조치를 제한하려면 제한 설정 (Restricted) 체크 박스를 클릭한다. 
제한 설정 (Restricted) 체크 박스를 클릭하면 장애 조치 도메인에 할당된 서비스가 장애조치 도메인에 있는 노드에서만 장애 조치한다.

노드가 장애 조치 도메인에 장애 복구하지 않도록 지정하려면, 장애 복구 없음 (No Failback) 체크박스를 클릭한다.
장애 복구 없음 (No Failback) 체크 박스를 클릭하여 서비스가 우선 순위에 있는 노드에서 장애 조치될 경우 서비스가 복구된 후
원래 노드로 장애 복구되지 않는다.
 

장애 조치 도메인의 멤버를 설정한다. 장애 조치 도메인의 멤버가 될 각 노드의 멤버 (Member) 체크 박스를 클릭한다. 
우선 순위 설정 (Prioritized)이 선택되어 있을 경우, 장애 조치 도메인의 각멤버에 대한 우선 순위 (Priority) 텍스트 상자에서 우
선 순위를 설정한다.

생성 (Create)을 클릭한다. 그러면 새로 생성된 장애 조치 도메인과 함께 장애 조치 도메인(Failover Dom ains) 페이지가 나타난다. 
새로운 도메인이 생성되고 있다는 메세지가 나타난다. 업데이트된 상태를 확인하려면 페이지를 새로고침 한다.
 
 
- 페일 오버 도메인 설정할 때 httpd 같은 서비스 이런걸 설정하는게 없기 때문에 이름을 아래처럼 하지말고
Prioritized-Failover 이런식으로 설정하자

 

 

(3). 서비스 그룹 설정

 

 
클러스터에 클러스터 서비스를 추가할 수 있다.
 
 
클러스터가 시작되어 실행될 때 서비스가 자동으로 시작하게 하려면 자동으로 서비스 시작(Automatically Start This Service)
체크 박스를 선택한다.
체크 박스가 선택되어 있지 않을경우 정지 상태에서 클러스터가 나타나는 때에 수동으로 서비스를 시작해야 한다.

배타적 실행 (Run Exclusive) 체크 박스를 선택하여 다른 서비스를 실행하지 않는 노드에서만 서비스를 실행하는 정책을 설정한다.

클러스터에 장애 조치 도메인을 설정한 경우, 장애 조치 도메인 (Failover Domain) 매개 변수의 드롭 다운 메뉴를 사용하여 
서비스에 장애 조치 도메인을 선택할 수 있다. 
 
복구 정책 (Recovery Policy) 드롭 다운 상자를 사용하여 서비스의 복구 정책을 선택한다. 
옵션에는 재배치 (Relocate), 다시 시작 (Restart), 다시 시작-비활성화 (Restart-Disable), 비활성화(Disable)가 있다.

다시 시작 (Restart) 옵션을 선택하면 시스템이 서비스를 재배치하기 전에 실패한 서비스를 다시 시작 시도해야 함을 가리킨다. 
재배치 (Relocate) 옵션을 선택한 경우 시스템은 다른 노드에서 서비스를 다시 시작 시도해야 함을 가리킨다. 
비활성화 (Disable) 옵션을 선택한 경우 시스템 구성 요소에 장애가 발생하면 리소스 그룹을 비활성화해야 함을 가리킨다. 
다시 시작-비활성화(Restart-Disable) 옵션을 선택하면 시스템이 실패한 경우 그 자리에서 시스템이 서비스를 다시 시작 시도해야
함을 가리킨다. 
하지만 서비스 다시 시작을 실패한 경우, 서비스는 클러스터에 있는 다른 호스트로 이동하지 않고 비활성화 된다.

서비스의 복구 정책으로 다시 시작 (Restart) 또는 다시 시작-비활성화 (Restart-Disable)를 선택한 경우, 
서비스를 이동 또는 비활성화하기 전 까지 다시 시작 실패의 최대 횟수를 지정할 수 있으며 다시 시작을 잊어버린 후
시간을 초 단위로 지정할 수 있다.

 

 

서비스에 리소스를 추가하려면, 리소스 추가 (Add Resource)를 클릭한다. 
리소스 추가(Add Resource)를 클릭하면 서비스에 리소스 추가 (Add Resource T o Service) 드롭 다운 상자가 나타나 
기존 글로벌 리소스를 추가하거나 서비스에서만 사용할 수 있는 새로운 리소스를추가할 수 있다.

기존 글로벌 리소스를 추가하려면, 서비스에 리소스 추가 (Add Resource To Service) 드롭 다운 상자에서 기존 리소스 이름을 클릭한다. 
그러면 설정한 서비스에 대한 서비스 그룹(Service Groups) 페이지에 리소스와 매개 변수가 표시된다. 

서비스에서만 사용할 수 있는 새로운 리소스를 추가하려면, 서비스에 리소스 추가 (AddResource T o Service) 
드롭 다운 상자에서 설정할 리소스 유형을 선택하고 추가하려는 리소스에 대한 리소스 매개 변수를 입력한다. 
 

리소스를 서비스에 추가할 때, 이것이 기존 글로벌 리소스인지 또는 서비스에서만 사용 가능한 리소스 인지를 지정할 수 있으며 
리소스가 독립 하위 트리 (Independent Subtree) 또는 중요하지 않은 리소스 (Non-Critical Resource)인지를 지정할 수 있다.

리소스가 독립 하위 트리라고 지정하여 리소스가 실패할 경우, 
시스템이 정상적으로 복구 시도하기 전 (서비스 전체가 아닌) 해당 리소스만이 다시 시작된다. 
서비스에 대한 복구 정책을 구현하기 전 노드의 리소스를 다시 시작 시도하는 최대 횟수를 지정할 수 있다.
또한 시스템이 서비스에 대한 복구 정책을 구현한 후 시간을 초단위로 지정할 수 있다.

리소스가 중요하지 않은 리소스라고 지정하고 이러한 리소스가 실패할 경우,
해당 리소스만이 다시 시작됩니다. 또한 리소스가 계속해서 실패하면 서비스 전체가 아닌 해당 리소스만 비활성화 된다. 
 
리소스를 비활성화하기 전 노드에 있는 리소스에 대해 다시 시작을 시도하는 최대 횟수를 지정할 수 있다. 
또한 시스템이 리소스를 비활성화한 후 시간을 초 단위로 지정할 수 있다.

정의된 리소스에 자식 리소스를 추가하려면 자식 리소스 추가 (Add Child Resource)를 클릭한다.
자식 리소스 추가 (Add Child Resource)를 클릭하면 서비스에 리소스 추가 (AddResource To Service) 드롭 다운 상자가 나타난다. 
여기서 기존 글로벌 리소스를 추가하거나 서비스에서만 사용할 수 있는 새로운 리소스를 추가할 수 있다. 
사용자 요건에 맞게 리소스에 자식리소스를 계속 추가할 수 있다.
 

 

- Independent Subtree 관련 체크하고 페일 오버 테스트 하니 잘 안되서 빼버렷다.

 

 

 

- 아래 화면에서 체크박스에 체크를 하고 Start를 하면 설정한 서비스 그룹이 정상적으로 작동한다.
 
* 참고로 페일 오버 테스트 할 때 페일 오버 도메인 값 수정 후 적용하려면 서비스 그룹에서 해당 서비스를 Disable -> Start
해야 정상적으로 적용이 된다. 그냥 Restart 로는 적용이 안된다. 와 버그인가 ? 뭐지..
 
* 그리고 여기서 설정하는 값들은 각 클러스터 노드들 (노드 - A , 노드 - B)의 /etc/cluster/cluster.conf 파일에 자동으로 업데이트 된다.

 

 

 

# clustat 명령어를 실행해보았다.

 

 

# service cman start 시 아래와 같은 에러가 발생한다면?
Starting cman... cman_tool: Cannot open connection to cman, is it running ? Check cluster logs for details
 
-> 아오 개고생했네, 클러스터 노드에서 /etc/cluster/cluster.conf 파일은 동일한 내용이 쓰여진다.
그런데 어떠한 이유로 클러스터 노드 - A 와 클러스터 노드 - B 의 /etc/cluster/cluster.conf 파일이 동일하지 않을 수가 있다.
 
특히 여기서 cluster config_version 값이 안맞아서 cman 서비스가 실행되지 않는 경우가 있다.
<?xml version="1.0"?>
<cluster config_version="60" name="RHCS-cluster">
 
정상적으로 실행중인 클러스터 노드의 cluster.conf 파일을 복사하던지, 설정 내용이 서로 다른부분이 있는지 확인해서
내용을 똑같이 맞춰주면 해결된다.
반응형

댓글