Pacemaker With RHEL7 Part 04 - Configuring Corosync/Pacemaker
원본출처 : http://www.unixarena.com/2015/12/rhel-7-configuring-pacemaker-corosync-redhat-cluster-part-4.html
이 기사에서는 REHL 7.2에서 pacemaker & corosync를 사용하여 두 노드 Redhat 클러스터를 구성하는 방법을 설명합니다. 당신이하면 필요한 패키지를 설치 , 시스템 시작시 클러스터 서비스를 사용하도록 설정해야합니다. 클러스터 구성을 시작하기 전에 필요한 클러스터 서비스를 시작해야합니다. “hacluster”사용자는 암호 설치 가 해제 된 패키지 설치 중에 자동으로 생성됩니다 . Corosync는이 사용자를 사용하여 클러스터 구성을 동기화하고 클러스터 노드에서 클러스터를 시작 및 중지합니다.
환경
운영 체제 : Redhat Enterprise Linux 7.2
클러스터 유형 : 2 노드 클러스터 - 장애 조치
노드 : UA-HA 및 UA-HA2 (패키지가 두 노드에 모두 설치되었다고 가정)
클러스터 리소스 : KVM 게스트 (VirtualDomain) - 다음 기사를 참조하십시오.
하드웨어 구성
두 노드 모두에서 서비스 활성화 및 시작
1. 루트 사용자로 두 클러스터 노드에 모두 로그인하십시오.
2. 다시 부팅 할 때 두 노드의 pcsd 데몬을 자동으로 시작합니다. pcsd는 pacemaker 구성 데몬입니다. (클러스터 서비스 아님)
[root@UA-HA ~]# systemctl start pcsd.service [root@UA-HA ~]# systemctl enable pcsd.service Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service. [root@UA-HA ~]# systemctl status pcsd.service ● pcsd.service - PCS GUI and remote configuration interface Loaded: loaded (/usr/lib/systemd/system/pcsd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2015-12-27 23:22:08 EST; 14s ago Main PID: 18411 (pcsd) CGroup: /system.slice/pcsd.service ├─18411 /bin/sh /usr/lib/pcsd/pcsd start ├─18415 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/bin/ruby -I/usr/lib/pcsd /usr/lib/pcsd/ssl.rb └─18416 /usr/bin/ruby -I/usr/lib/pcsd /usr/lib/pcsd/ssl.rb Dec 27 23:22:07 UA-HA systemd[1]: Starting PCS GUI and remote configuration interface... Dec 27 23:22:08 UA-HA systemd[1]: Started PCS GUI and remote configuration interface. [root@UA-HA ~]#
3. 두 노드의 클러스터 사용자 “hacluster”에 대한 새 암호를 설정하십시오.
[root@UA-HA ~]# passwd hacluster Changing password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@UA-HA ~]# [root@UA-HA2 ~]# passwd hacluster Changing password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@UA-HA2 ~]#
corosync 구성 및 새 클러스터 생성
1. 클러스터 노드 중 하나에 로그인하고 “hacluster”사용자를 인증하십시오.
[root@UA-HA ~]# pcs cluster auth UA-HA UA-HA2 Username: hacluster Password: UA-HA: Authorized UA-HA2: Authorized [root@UA-HA ~]#
2. pcs 명령을 사용하여 새 클러스터를 만듭니다.
[root@UA-HA ~]# pcs cluster setup --name UABLR UA-HA UA-HA2 Shutting down pacemaker/corosync services... Redirecting to /bin/systemctl stop pacemaker.service Redirecting to /bin/systemctl stop corosync.service Killing any remaining services... Removing all cluster configuration files... UA-HA: Succeeded UA-HA2: Succeeded Synchronizing pcsd certificates on nodes UA-HA, UA-HA2... UA-HA: Success UA-HA2: Success Restaring pcsd on the nodes in order to reload the certificates... UA-HA: Success UA-HA2: Success [root@UA-HA ~]#
3. 클러스터 상태를 점검하십시오.
[root@UA-HA ~]# pcs status Error: cluster is not currently running on this node [root@UA-HA ~]#
클러스터 서비스가 시작되지 않았기 때문에 오류가 표시됩니다.
4. pcs 명령을 사용하여 클러스터를 시작하십시오. “-all”은 구성된 모든 노드에서 클러스터를 시작합니다.
[root@UA-HA ~]# pcs cluster start --all UA-HA2: Starting Cluster... UA-HA: Starting Cluster... [root@UA-HA ~]#
백엔드에서 “pcs cluster start”명령은 각 클러스터 노드에서 다음 명령을 트리거합니다.
# systemctl start corosync.service # systemctl start pacemaker.service
5. 클러스터 서비스 상태를 확인하십시오.
[root@UA-HA ~]# systemctl status corosync ● corosync.service - Corosync Cluster Engine Loaded: loaded (/usr/lib/systemd/system/corosync.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2015-12-27 23:34:31 EST; 11s ago Process: 18994 ExecStart=/usr/share/corosync/corosync start (code=exited, status=0/SUCCESS) Main PID: 19001 (corosync) CGroup: /system.slice/corosync.service └─19001 corosync Dec 27 23:34:31 UA-HA corosync[19001]: [VOTEQ ] Waiting for all cluster members. Current votes: 1 expected_votes: 2 Dec 27 23:34:31 UA-HA corosync[19001]: [VOTEQ ] Waiting for all cluster members. Current votes: 1 expected_votes: 2 Dec 27 23:34:31 UA-HA corosync[19001]: [QUORUM] Members[1]: 1 Dec 27 23:34:31 UA-HA corosync[19001]: [MAIN ] Completed service synchronization, ready to provide service. Dec 27 23:34:31 UA-HA corosync[19001]: [TOTEM ] A new membership (192.168.203.131:1464) was formed. Members joined: 2 Dec 27 23:34:31 UA-HA corosync[19001]: [QUORUM] This node is within the primary component and will provide service. Dec 27 23:34:31 UA-HA corosync[19001]: [QUORUM] Members[2]: 2 1 Dec 27 23:34:31 UA-HA corosync[19001]: [MAIN ] Completed service synchronization, ready to provide service. Dec 27 23:34:31 UA-HA systemd[1]: Started Corosync Cluster Engine. Dec 27 23:34:31 UA-HA corosync[18994]: Starting Corosync Cluster Engine (corosync): [ OK ] [root@UA-HA ~]# systemctl status pacemaker ● pacemaker.service - Pacemaker High Availability Cluster Manager Loaded: loaded (/usr/lib/systemd/system/pacemaker.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2015-12-27 23:34:32 EST; 15s ago Main PID: 19016 (pacemakerd) CGroup: /system.slice/pacemaker.service ├─19016 /usr/sbin/pacemakerd -f ├─19017 /usr/libexec/pacemaker/cib ├─19018 /usr/libexec/pacemaker/stonithd ├─19019 /usr/libexec/pacemaker/lrmd ├─19020 /usr/libexec/pacemaker/attrd ├─19021 /usr/libexec/pacemaker/pengine └─19022 /usr/libexec/pacemaker/crmd Dec 27 23:34:33 UA-HA crmd[19022]: notice: pcmk_quorum_notification: Node UA-HA2[2] - state is now member (was (null)) Dec 27 23:34:33 UA-HA crmd[19022]: notice: pcmk_quorum_notification: Node UA-HA[1] - state is now member (was (null)) Dec 27 23:34:33 UA-HA stonith-ng[19018]: notice: Watching for stonith topology changes Dec 27 23:34:33 UA-HA crmd[19022]: notice: Notifications disabled Dec 27 23:34:33 UA-HA crmd[19022]: notice: The local CRM is operational Dec 27 23:34:33 UA-HA crmd[19022]: notice: State transition S_STARTING -> S_PENDING [ input=I_PENDING cause=C_FSA_INTERNAL origin=do_started ] Dec 27 23:34:33 UA-HA attrd[19020]: warning: Node names with capitals are discouraged, consider changing 'UA-HA2' to something else Dec 27 23:34:33 UA-HA attrd[19020]: notice: crm_update_peer_proc: Node UA-HA2[2] - state is now member (was (null)) Dec 27 23:34:33 UA-HA stonith-ng[19018]: warning: Node names with capitals are discouraged, consider changing 'UA-HA2' to something else Dec 27 23:34:34 UA-HA stonith-ng[19018]: notice: crm_update_peer_proc: Node UA-HA2[2] - state is now member (was (null)) [root@UA-HA ~]#
Corosync 구성 확인
1. corosync 통신 상태를 확인하십시오.
[root@UA-HA ~]# corosync-cfgtool -s Printing ring status. Local node ID 1 RING ID 0 id = 192.168.203.134 status = ring 0 active with no faults [root@UA-HA ~]#
내 설정에서 첫 번째 RING은 “br0”인터페이스를 사용하고 있습니다.
[root@UA-HA ~]# ifconfig br0 br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.203.134 netmask 255.255.255.0 broadcast 192.168.203.255 inet6 fe80::84ef:2eff:fee9:260a prefixlen 64 scopeid 0x20 ether 00:0c:29:2d:3f:ce txqueuelen 0 (Ethernet) RX packets 15797 bytes 1877460 (1.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7018 bytes 847881 (828.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@UA-HA ~]#
클러스터 통신에 중복성을 제공하기 위해 여러 개의 RING을 사용할 수 있습니다. (우리는 VCS에서 LLT 링크를 호출하는 데 사용합니다)
2. 회원 및 정족수 API를 확인하십시오.
[root@UA-HA ~]# corosync-cmapctl | grep members runtime.totem.pg.mrp.srp.members.1.config_version (u64) = 0 runtime.totem.pg.mrp.srp.members.1.ip (str) = r(0) ip(192.168.203.134) runtime.totem.pg.mrp.srp.members.1.join_count (u32) = 1 runtime.totem.pg.mrp.srp.members.1.status (str) = joined runtime.totem.pg.mrp.srp.members.2.config_version (u64) = 0 runtime.totem.pg.mrp.srp.members.2.ip (str) = r(0) ip(192.168.203.131) runtime.totem.pg.mrp.srp.members.2.join_count (u32) = 1 runtime.totem.pg.mrp.srp.members.2.status (str) = joined [root@UA-HA ~]# [root@UA-HA ~]# pcs status corosync Membership information ---------------------- Nodeid Votes Name 2 1 UA-HA2 1 1 UA-HA (local) [root@UA-HA ~]#
Pacemaker 구성 확인
1. 실행중인 Pacemaker 프로세스를 확인하십시오.
[root@UA-HA ~]# ps axf |grep pacemaker 19324 pts/0 S+ 0:00 | \_ grep --color=auto pacemaker 19016 ? Ss 0:00 /usr/sbin/pacemakerd -f 19017 ? Ss 0:00 \_ /usr/libexec/pacemaker/cib 19018 ? Ss 0:00 \_ /usr/libexec/pacemaker/stonithd 19019 ? Ss 0:00 \_ /usr/libexec/pacemaker/lrmd 19020 ? Ss 0:00 \_ /usr/libexec/pacemaker/attrd 19021 ? Ss 0:00 \_ /usr/libexec/pacemaker/pengine 19022 ? Ss 0:00 \_ /usr/libexec/pacemaker/crmd
2. 클러스터 상태를 점검하십시오.
[root@UA-HA ~]# pcs status Cluster name: UABLR WARNING: no stonith devices and stonith-enabled is not false Last updated: Sun Dec 27 23:44:44 2015 Last change: Sun Dec 27 23:34:55 2015 by hacluster via crmd on UA-HA Stack: corosync Current DC: UA-HA (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 0 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled [root@UA-HA ~]#
3. corosync & pacemaker가 현재 활성화되어 있고 시스템 재부팅시 비활성화되어 있음을 볼 수 있습니다. 다시 부팅 할 때 클러스터를 자동으로 시작하려면 systemctl 명령을 사용하여 클러스터를 활성화하십시오.
[root@UA-HA2 ~]# systemctl enable corosync Created symlink from /etc/systemd/system/multi-user.target.wants/corosync.service to /usr/lib/systemd/system/corosync.service. [root@UA-HA2 ~]# systemctl enable pacemaker Created symlink from /etc/systemd/system/multi-user.target.wants/pacemaker.service to /usr/lib/systemd/system/pacemaker.service. [root@UA-HA2 ~]# pcs status Cluster name: UABLR WARNING: no stonith devices and stonith-enabled is not false Last updated: Sun Dec 27 23:51:30 2015 Last change: Sun Dec 27 23:34:55 2015 by hacluster via crmd on UA-HA Stack: corosync Current DC: UA-HA (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 0 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA2 ~]#
4. 클러스터가 시작되면 클러스터의 노드 수와 세부 정보는 물론 사용중인 스택과 사용중인 Pacemaker 버전이 자동으로 기록됩니다. 클러스터 구성 (Cluster Information Base - CIB)을 XML 형식으로 보려면 다음 명령을 사용하십시오.
[root@UA-HA2 ~]# pcs cluster cib
5. 다음 명령을 사용하여 클러스터 정보베이스를 확인하십시오.
[root@UA-HA ~]# crm_verify -L -V error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity Errors found during check: config not valid [root@UA-HA ~]#
기본적으로 Pacemaker는 데이터를 보호하기 위해 STONITH(Shoot The Other Node In The Head) / 펜싱을 활성화합니다. 공유 저장소를 사용하여 데이터 손상을 방지하려면 펜싱이 필수입니다.
당분간 STONITH를 비활성화하고 나중에 구성 할 것입니다.
6. STONITH(펜싱) 비활성화
[root@UA-HA ~]# pcs property set stonith-enabled=false [root@UA-HA ~]# [root@UA-HA ~]# pcs property show stonith-enabled Cluster Properties: stonith-enabled: false [root@UA-HA ~]#
7. 클러스터 구성을 다시 확인하십시오. 오류가 사라질 것입니다
[root@UA-HA ~]# crm_verify -L -V [root@UA-HA ~]#
새로운 구성 요소 인 pacemaker와 corosync를 사용하여 RHEL 7.2에 두 개의 노드 redhat 클러스터를 성공적으로 구성했습니다.