SUSE Linux Enterprise Server 고가용성 클러스터 구축
다음 정보와 절차를 사용하여 ‘ SUSE ’ 고가용성 확장(HAE)을 사용하는 ‘ SUSE Linux® Enterprise(SLE)’ 클러스터를 구축하십시오. 이 클러스터는 IBM® Power® Virtual Server 클러스터 노드로 사용됩니다.
다음 정보는 개별 가상 서버 인스턴스를 클러스터로 구성하는 방법을 설명합니다.
이러한 절차에는 각 클러스터 노드에 고가용성 패키지와 에이전트를 설치하고, 펜싱 장치를 구성하는 작업이 포함됩니다.
이 정보는 Power Virtual Server 에서 ‘ SAP ’ 애플리케이션의 고가용성 배포를 계획 중인 건축가 및 전문가를 대상으로 합니다. 이는 기존의 SAP 또는 SUSE 문서를 대체하기 위한 것이 아닙니다.
시작하기 전에
시작하기 전에, IBM Power Virtual Server 에서 SAP 애플리케이션에 대한 고가용성 구현 참고 자료 에 나열된 일반 요구 사항, 제품 설명서, 지원 문서 및 SAP 참고 사항을 확인하십시오.
이 구성은 SBD 펜싱을 하드웨어 워치독 타이머와 함께 사용합니다. 프로필에 포함된 ‘ Power10 ’ 머신 유형 중 하나를 사용하여 가상 서버 인스턴스를 생성하면 하드웨어 워치독 기능을 사용할 수 있습니다.
클러스터용 가상 서버 인스턴스 생성
SAP HANA 시스템을 위한 Power Virtual Server 인스턴스 배포 및 Power Virtual Server 인스턴스를 다음 용도로 배포하기 SAP NetWeaver 에 있는 지침에 따라 클러스터 노드로 사용할 가상 서버 인스턴스를 생성하십시오.
SLE 고가용성 확장 기능 설치를 위해 노드를 준비합니다
다음 섹션에서는 클러스터 노드에서 수행해야 할 기본적인 준비 단계를 설명합니다. 두 노드 모두에서 모든 단계가 완료되었는지 확인하십시오.
각 클러스터 노드에 루트 사용자로 로그인하십시오.
hosts 파일에 클러스터 노드 항목 추가하기
두 노드 모두에서, 모든 클러스터 노드의 IP 주소를 완전한 호스트 이름과 짧은 호스트 이름과 함께 /etc/hosts 파일에 추가하십시오.
자세한 내용은 SUSE Linux 엔터프라이즈 고가용성 관리 가이드 의 ‘ 시스템 요구 사항 및 권장 사양 ’ 섹션에 있는 호스트명 및 IP 주소 을 참조하십시오.
환경 변수 설정
설정 과정을 간소화하기 위해 루트 사용자를 위한 환경 변수를 몇 가지 설정해 두세요. 이 환경 변수들은 이 정보에 나오는 후술되는 운영 체제 명령어와 함께 사용됩니다.
두 노드 모두에서 다음 환경 변수가 포함된 파일을 생성하고, 사용자의 환경에 맞게 수정하십시오.
# General settings
export CLUSTERNAME="SAP_CLUSTER" # Cluster name
# Virtual server instance 1
export NODE1=<HOSTNAME_1> # Virtual server instance hostname
# Virtual server instance 2
export NODE2=<HOSTNAME_2> # Virtual server instance hostname
SLE HA 클러스터 설치 및 구성
다음 단계를 따라 2노드 클러스터를 구성하십시오.
이 지침은 SUSE 의 문서와 IBM Power Virtual Server 에서 SAP 애플리케이션에 대한 고가용성 구현 참고 자료 에 나열된 기사들을 바탕으로 작성되었습니다.
일부 단계는 두 노드 모두에서 수행해야 하는 반면, 다른 단계들은 NODE1 또는 NODE2 중 한 곳에서 실행할 수 있습니다.
SUSE HAE 소프트웨어 설치
다음 단계를 따라 SUSE HAE 저장소를 사용할 수 있는지 다시 한 번 확인하고, 필요한 소프트웨어 패키지를 설치하십시오.
SUSE HAE 저장소 확인하기
-
두 노드 모두에서 다음 명령을 실행하여 ‘ SUSE ’ Linux (R) Enterprise High Availability Extension’ 저장소가 활성화되어 있는지 확인하십시오.
zypper repos --show-enabled-only | grep High출력 결과에 Pool 및 Updates용 SLE HAE 저장소가 모두 포함되어 있다면 다음 단계를 건너뛰십시오. 예를 들어
SUSE_Linux_Enterprise_High_Availability_Extension_ppc64le:SLE-Product-HA15-SP6-PoolSUSE_Linux_Enterprise_High_Availability_Extension_ppc64le:SLE-Product-HA15-SP6-Updates
-
HAE 저장소가 목록에 표시되지 않는 경우,
yast2를 사용하여 활성화하십시오.- 소프트웨어
- 추가 제품
- 추가
- 등록 서버의 확장 기능 및 모듈
- Yast2 Pool 및 Updates 두 저장소를 모두 순회합니다
- 두 저장소 모두 추가하기
- yast2 애플리케이션을 종료하세요
-
작업이 끝나면 두 노드 모두에서 동일한 명령어를 다시 실행해 보세요.
zypper repos --show-enabled-only | grep High
두 SLE HAE 저장소 모두 나열되어 있습니다.
SLE HAE 소프트웨어 패키지 설치
다음 명령어를 사용하여 필요한 소프트웨어 패키지를 설치하십시오.
두 노드 모두에서 다음 명령을 실행하십시오.
zypper install -t pattern ha_sles
SLE 고가용성 클러스터 구성
다음 정보를 참고하여 SLE 고가용성 클러스터를 구성하십시오.
하드웨어 사양 확인하기
SLE 고가용성 클러스터를 구성하려면 다음 하드웨어 요구 사항을 참조하십시오.
자세한 하드웨어 요구 사항에 대해서는 SUSE Linux 의 ‘Enterprise High Availability’ 문서 중 ‘설치 및 설정 빠른 시작 ’ 부분을 참조하십시오.
- 클러스터 노드 역할을 할 두 개의 가상 서버 또는 논리 파티션.
- Corosync용 두 번째 네트워크 통신 채널 또는 결합된 네트워크 인터페이스.
- STONITH 블록 장치(SBD)로 사용될 공유 볼륨.
- 안정적인 노드 펜싱을 위한 하드웨어 워치독 타이머.
하드웨어 워치독 구성
Power10 논리 파티션에서는 하드웨어 워치독 타이머가 기본적으로 활성화되어 있습니다. 사용 가능 여부를 확인하려면 다음 명령을 실행하십시오.
ls /dev/watchdog*
출력 결과에는 두 개의 장치, 즉 /dev/watchdog 와 /dev/watchdog0 가 나열되어 있습니다.
워치독 장치가 나열되어 있지 않은 경우, 다음 명령을 실행하여 프로세서 호환성 모드가 ‘ Power10 ’로 설정되어 있는지 확인하십시오.
LD_SHOW_AUXV=1 /bin/true | grep _PLATFORM
출력 결과에서 다음 필드를 찾아보세요.
- AT_BASE_PLATFORM – 실제 프로세서 유형을 표시합니다.
- AT_PLATFORM – 프로세서 호환성 모드를 표시합니다.
프로세서 호환성 모드는 ‘ Power10 ’로 설정해야 합니다. 이 설정이 이전 버전으로 지정된 경우, 하이퍼바이저 워치독을 사용할 수 없습니다.
중재인
2노드 클러스터의 경우, 중재자 역할을 할 세 번째 LPAR을 구성하는 것이 권장됩니다. 중재자는 클러스터에 속하지 않는 논리적 파티션입니다. 이 서버는 스플릿 브레인 상황에서 클러스터 쿼럼을 찾는 기능을 지원하기 위해 세 번째 인스턴스로 QNetd 서버를 호스팅합니다. 클러스터 노드 수가 짝수일 경우, 중재자는 쿼럼에 인스턴스를 하나 더 추가하기 때문에 필수적입니다.
자세한 내용은 SUSE 문서의 QDevice 및 QNetd 항목을 참조하십시오.
중재자는 일반적으로 클러스터가 실행된 후에 설정됩니다. SUSE 문서에 설명된 대로 ‘ crm cluster init qdevice ’ 방식을 사용하십시오.
시간 동기화 설정
두 클러스터 노드 모두 정상적인 작동을 보장하기 위해 시간 동기화가 필요합니다. PowerVS, 에서 논리 파티션이 실행될 때, 시간 동기화는 HMC( Hardware Management Console )를 통해 자동으로 처리됩니다. 이 설정에서는 chrony 데몬이 필요하지 않습니다.
첫 번째 클러스터 노드 구성
SUSE Linux Enterprise 고가용성 확장 기능 설치 스크립트는 클러스터 환경의 여러 주요 구성 요소를 자동으로 구성합니다.
sudo crm cluster init --name "$CLUSTERNAME" --sbd-device "$SBD_DEVICE"
Enter 키를 눌러 기본값을 확인하거나, 메시지가 표시되면 ‘ y ’를 입력하고 Enter 키를 누르십시오.
INFO: Loading "default" profile from /etc/crm/profiles.yml
WARNING: chronyd.service is not configured to start at system boot.
Do you want to continue anyway (y/n)? y
INFO: The user 'hacluster' will have the login shell configuration changed to /bin/bash
Continue (y/n)? y
INFO: A new ssh keypair is generated for user hacluster.
INFO: Configuring csync2
INFO: Starting csync2.socket service on ths-3
INFO: BEGIN csync2 checking files
INFO: END csync2 checking files
INFO: Configure Corosync (unicast):
This will configure the cluster messaging layer. You will need
to specify a network address over which to communicate (default
is eth0's network, but you can use the network address of any
active interface).
Address for ring0 [10.51.0.84]
Port for ring0 [5405]
INFO: Initializing SBD
INFO: Hawk cluster interface is now running. To see cluster status, open:
INFO: https://10.51.0.84:7630/
INFO: Log in with username 'hacluster', password 'linux'
WARNING: You should change the hacluster password to something more secure!
INFO: Starting pacemaker.service on ths-3
INFO: BEGIN Waiting for cluster
........... INFO: END Waiting for cluster
INFO: Loading initial cluster configuration
WARNING: "stonith-enabled" in crm_config is set to true, it was false
INFO: Configure Administration IP Address:
Optionally configure an administration virtual IP
address. The purpose of this IP address is to
provide a single IP that can be used to interact
with the cluster, rather than using the IP address
of any specific cluster node.
Do you wish to configure a virtual IP address (y/n)? y
Virtual IP []10.51.0.12
INFO: BEGIN Configuring virtual IP (10.51.0.12)
. INFO: END Configuring virtual IP (10.51.0.12)
INFO: Configure Qdevice/Qnetd:
QDevice participates in quorum decisions. With the assistance of
a third-party arbitrator Qnetd, it provides votes so that a cluster
is able to sustain more node failures than standard quorum rules
allow. It is recommended for clusters with an even number of nodes
and highly recommended for 2 node clusters.
Do you want to configure QDevice (y/n)? n
INFO: Done (log saved to /var/log/crmsh/crmsh.log on ths-3)
클러스터가 현재 단일 노드로 정상 가동 중입니다.
두 번째 클러스터 노드 구성
다음 정보를 참고하여 두 번째 클러스터 노드를 구성하십시오.
-
두 번째 클러스터 노드에 로그인하십시오.
-
이 노드를 기존 클러스터에 통합하려면 ha-cluster-join 명령을 사용하십시오. 이 명령을 실행하려면 사용자 계정과 첫 번째 클러스터 노드의 호스트명이 필요합니다.
sudo crm cluster join -u root -c $NODE1 -
Enter 키를 눌러 기본값을 수락하거나, 메시지가 표시되면 ‘
y’를 입력하고 Enter 키를 누르십시오.WARNING: chronyd.service is not configured to start at system boot. Do you want to continue anyway (y/n)? y INFO: The user 'hacluster' will have the login shell configuration changed to /bin/bash Continue (y/n)? y INFO: A new ssh keypair is generated for user hacluster. INFO: Configuring csync2 INFO: Starting csync2.socket service INFO: BEGIN csync2 syncing files in cluster INFO: END csync2 syncing files in cluster INFO: Merging known_hosts Warning: Permanently added 'ths-4' (ED25519) to the list of known hosts. INFO: BEGIN Probing for new partitions INFO: END Probing for new partitions Address for ring0 [10.51.0.230] INFO: Got SBD configuration INFO: Hawk cluster interface is now running. To see cluster status, open: INFO: https://10.51.0.230:7630/ INFO: Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! INFO: Starting pacemaker.service on ths-4 INFO: BEGIN Waiting for cluster .. INFO: END Waiting for cluster INFO: BEGIN Adjusting sbd related timeout values WARNING: "stonith-timeout" in crm_config is set to 83, it was 43 INFO: END Adjusting sbd related timeout values INFO: Set property "priority" in rsc_defaults to 1 WARNING: "priority-fencing-delay" in crm_config is set to 60, it was 0 INFO: BEGIN Reloading cluster configuration INFO: END Reloading cluster configuration INFO: Done (log saved to /var/log/crmsh/crmsh.log on ths-4) -
SLE 클러스터가 실행 중인지 확인하려면 다음 명령을 실행하십시오.
sudo crm status오류가 발생하지 않은 경우, 출력의 ‘ Node List’ 섹션에는 두 노드가 모두 표시되며, ‘
Online’로 나열됩니다.Node List: * Online: [ ths-3 ths-4 ]'리소스' 섹션에는 '시작됨' 상태인 두 개의 리소스가 나열되어 있으며, 이는 해당 리소스가 활성화되어 있고 정상적으로 실행 중임을 나타냅니다.
Full List of Resources: * stonith-sbd (stonith:external/sbd): Started ths-3 * admin-ip (ocf::heartbeat:IPaddr2): Started ths-3
hacluster 사용자 ID에 대한 비밀번호 설정
두 노드 모두에서 다음 명령을 실행하여 hacluster 사용자 계정의 비밀번호를 설정하십시오.
passwd hacluster
SBD 상태 확인
다음 정보를 참고하여 SBD_DEVICE 변수가 설정되어 있는지 확인하십시오.
클러스터 노드 중 하나에서 SBD 슬롯의 상태를 확인하려면 다음 명령을 실행하십시오.
sbd -d $SBD_DEVICE list
출력 결과에는 두 클러스터 노드가 모두 표시되며, 각 노드의 상태는 ‘ clean ’로 나타나 있습니다. 이는 SBD 메커니즘이 정상적으로 작동하고 있으며, 보류 중인 펜싱 작업이 없음을 의미합니다.
펜싱 동작 구성
기본적으로, 펜싱 이벤트가 발생하면 펜싱된 노드는 자동으로 다시 시작됩니다.
그러나 다른 방법으로는 노드의 전원을 껐다가 장애의 근본 원인을 조사한 후 수동으로 다시 시작하는 것이 있습니다.
노드를 수동으로 활성화하면 몇 가지 장점이 있습니다.
- 이는 근본적인 문제가 지속될 경우 발생할 수 있는 불필요한 펜싱 루프를 방지합니다.
- 이를 통해 각 펜싱 이벤트가 감지되고 적절히 처리되도록 하여 클러스터의 안정성과 신뢰성을 향상시킵니다.
노드의 전원을 끄도록 펜싱 동작을 구성하려면 다음 명령을 사용하십시오.
sudo crm configure property stonith-action="off"
다음 명령어를 사용하여 현재 클러스터 구성을 확인하십시오.
sudo crm configure show
펜싱 작업 테스트
STONITH 구성을 테스트하려면 노드 중 하나에서 수동으로 펜싱 작업을 실행해야 합니다.
-
NODE2 를 수동으로 펜싱하려면 다음 명령을 실행하십시오.
crm node fence ${NODE2} -
y를 입력하고, 다음 메시지가 표시되면 Enter 키를 눌러 진행하면, 이 작업이 중지됩니다. NODE2:Fencing ths-4 will shut down the node and migrate any resources that are running on it! Do you want to fence ths-4 (y/n)? y -
NODE2 를 활성화하고, 클러스터에 다시 합류할 때까지 기다린 후, 반대 방향에서 펜싱을 테스트하십시오.
NODE2 에서 다음 명령을 실행하십시오.
crm status -
클러스터 상태에서 두 노드 모두 ‘
Online’로 표시되면, 안정성을 확보하기 위해 약 1분 정도 기다리십시오. 그런 다음, NODE2 에서 다음 명령을 실행하여 NODE1 에 대한 펜싱 작업을 시작하면, 이로 인해 NODE1:crm node fence ${NODE1} -
NODE1 를 활성화한 다음, 노드에서 클러스터 서비스를 시작하십시오.