Pacemaker With RHEL7 Part 06 - Cluster Resources/Group Management
원본출처 : http://www.unixarena.com/2015/12/rhel-7-pacemaker-cluster-resource-group-management.html
Pacemaker / Corosync 클러스터 (RHEL 7 HA)에서 리소스 관리 및 리소스 그룹 관리는 중요한 작업입니다. 클러스터 HA 서비스에 따라 N 개의 리소스를 구성해야 할 수도 있습니다. 대부분의 경우, 리소스 세트를 순차적으로 시작하고 역순으로 중지해야 할 수도 있습니다. 이 구성을 단순화하기 위해 Pacemaker는 그룹 개념을 지원합니다 (리소스 그룹). 예를 들어 HA 모델에서 웹 서비스를 제공하려면 파일 시스템 (웹 사이트 데이터 저장), IP (웹 사이트 액세스를위한 클러스터 IP) 및 Apache (웹 서비스 제공)와 같은 리소스가 필요합니다. Apache 서비스를 시작하려면 웹 사이트 데이터를 저장하는 파일 시스템이 필요합니다. 따라서 리소스는 다음 순서로 시작해야합니다.
- IP
- 파일 시스템
- 아파치 서비스
Redhat 클러스터 (Pacemaker / Corosync)에서 고 가용성 Apache 서비스 (웹 사이트)를 구성하는 방법을 살펴 보겠습니다.
[root@UA-HA ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 18:24:10 2015 Last change: Mon Dec 28 18:09:30 2015 by root via crm_resource on UA-HA Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 1 resource configured Online: [ UA-HA UA-HA2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA ~]# pcs resource show ClusterIP Resource: ClusterIP (class=ocf provider=heartbeat type=IPaddr2) Attributes: ip=192.168.203.190 cidr_netmask=24 Operations: start interval=0s timeout=20s (ClusterIP-start-interval-0s) stop interval=0s timeout=20s (ClusterIP-stop-interval-0s) monitor interval=30s (ClusterIP-monitor-interval-30s) [root@UA-HA ~]#
파일 시스템 및 Apache 자원을 빠르게 작성하십시오.
파일 시스템
- 공유 LUN - / dev / sdc
- 볼륨 그룹 - webvg
- 볼륨 - webvol1
- 파일 시스템 유형 - ext4
파일 시스템 자원에 대한 빠른 설정
[root@UA-HA2 ~]# vgcreate webvg /dev/sdc [root@UA-HA2 ~]# lvcreate -L 90M -n /dev/webvg/webvol1 [root@UA-HA2 ~]# mkfs.ext4 /dev/webvg/webvol1
아파치
- httpd
빠른 설치:
[root@UA-HA www]# yum install -y httpd
LVM의 사전 요구 사항
(두 클러스터 노드 모두에서 다음 변경 사항을 수행하십시오.)
1. use_lvmetad
매개 변수가 0
으로 설정되어 있는지 확인하십시오. 이것은 Pacemaker
를 사용할 때 필수입니다.
[root@UA-HA ~]# grep use_lvmetad /etc/lvm/lvm.conf |grep -v "#" use_lvmetad = 0 [root@UA-HA ~]#
2. 자동 볼륨 그룹 활성화를 방지하려면 volume_list
매개 변수를 자동으로 활성화해야하는 로컬 VG로 업데이트하십시오.
[root@UA-HA ~]# grep volume_list /etc/lvm/lvm.conf |grep -v "#" volume_list = [ "nfsvg", "rhel" ] [root@UA-HA ~]# vgs VG #PV #LV #SN Attr VSize VFree nfsvg 2 1 0 wz--n- 1.94g 184.00m rhel 1 2 0 wz--n- 19.51g 0 webvg 1 1 0 wz--n- 92.00m 0 [root@UA-HA ~]#
내 경우, webvg
는 클러스터를 통해 관리됩니다.
3. /var/www
에 볼륨을 마운트하고 다음 디렉토리와 파일을 작성하십시오.
[root@UA-HA2 ~]# mount /dev/webvg/webvol1 /var/www [root@UA-HA2 ~]# cd /var/www [root@UA-HA2 www]# mkdir errror html cgi-bin total 3 drwxr-xr-x 2 root root 1024 Dec 28 20:26 cgi-bin drwxr-xr-x 2 root root 1024 Dec 28 20:26 errror drwxr-xr-x 2 root root 1024 Dec 28 20:27 html [root@UA-HA2 www]# cd html/ [root@UA-HA2 html]# vi index.html Hello, Welcome to UnixArena [root@UA-HA2 html]#
3. 부트 이미지가 클러스터가 제어하는 볼륨 그룹을 활성화하지 않도록 initramfs
부트 이미지를 작성하십시오. 다음 명령을 사용하여 initramfs
장치를 업데이트하십시오.
[root@UA-HA ~]# dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r) [root@UA-HA ~]#
4. 노드를 리부팅 하십시오.
LVM 클러스터 리소스 (vg 및 lv) 만들기, 파일 시스템 클러스터 리소스
1. 클러스터 볼륨 그룹 리소스를 작성하십시오.
[root@UA-HA ~]# pcs resource create vgres LVM volgrpname=webvg exclusive=true [root@UA-HA ~]# pcs resource show vgres Resource: vgres (class=ocf provider=heartbeat type=LVM) Attributes: volgrpname=webvg exclusive=true Operations: start interval=0s timeout=30 (vgres-start-interval-0s) stop interval=0s timeout=30 (vgres-stop-interval-0s) monitor interval=10 timeout=30 (vgres-monitor-interval-10) [root@UA-HA ~]#
vgres - 리소스 이름 (모든 고유 이름)
webvg - 볼륨 그룹
2. 클러스터 마운트 리소스를 작성하십시오.
[root@UA-HA ~]# pcs resource create webvolfs Filesystem device="/dev/webvg/webvol1" directory="/var/www" fstype="ext4" [root@UA-HA ~]# pcs resource show webvolfs Resource: webvolfs (class=ocf provider=heartbeat type=Filesystem) Attributes: device=/dev/webvg/webvol1 directory=/var/www fstype=ext4 Meta Attrs: Operations: start interval=0s timeout=60 (webvolfs-start-interval-0s) stop interval=0s timeout=60 (webvolfs-stop-interval-0s) monitor interval=20 timeout=40 (webvolfs-monitor-interval-20) [root@UA-HA ~]#
3. 리소스를 추가하기 전에 다음 내용으로 로컬 /etc/httpd/conf/httpd.conf
를 수정해야합니다. 이 항목은 웹 서버 상태를 얻기 위해 Pacemaker에 필요합니다.
4. 아파치 서버 상태를 확인하십시오. (httpd.service). 두 클러스터 노드에서 httpd.service
가 중지 및 비활성화되었는지 확인하십시오. 이 서비스는 클러스터에 의해 관리됩니다.
[root@UA-HA ~]# systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:httpd(8) man:apachectl(8) Dec 27 13:55:52 UA-HA systemd[1]: Starting The Apache HTTP Server... Dec 27 13:55:55 UA-HA httpd[2002]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.203.134. Set the...is message Dec 27 13:55:55 UA-HA systemd[1]: Started The Apache HTTP Server. Dec 27 15:16:02 UA-HA httpd[11786]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.203.134. Set th...is message Dec 27 15:16:02 UA-HA systemd[1]: Reloaded The Apache HTTP Server. Dec 28 18:06:57 UA-HA systemd[1]: Started The Apache HTTP Server. Dec 28 20:30:56 UA-HA systemd[1]: Stopping The Apache HTTP Server... Dec 28 20:30:57 UA-HA systemd[1]: Stopped The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full. [root@UA-HA ~]#
3. Apache 클러스터 리소스를 작성하십시오.
[root@UA-HA ~]# pcs resource create webres apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" [root@UA-HA ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 20:11:51 2015 Last change: Mon Dec 28 20:11:44 2015 by root via cibadmin on UA-HA Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 4 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: vgres (ocf::heartbeat:LVM): (target-role:Stopped) Stopped webvolfs (ocf::heartbeat:Filesystem): (target-role:Stopped) Stopped ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA2 webres (ocf::heartbeat:apache): Stopped PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA ~]#
정상적인 경우 종속성 트리를 만들기 위해 첫 번째 클러스터 리소스를 추가 할 때 리소스 그룹이 만들어집니다 (명령 줄 끝에 -group을 지정하여). 클러스터 리소스 및 리소스 그룹 관리 개념을 이해하기 위해 마지막에 리소스 그룹을 작성합니다.
리소스가 시작된 것을 확인한 후에는 오류를 피하기 위해 중지하십시오.
[root@UA-HA ~]# pcs resource disable vgres webvolfs webres stop ClusterIP [root@UA-HA ~]# pcs resource vgres (ocf::heartbeat:LVM): Stopped webvolfs (ocf::heartbeat:Filesystem): Stopped ClusterIP (ocf::heartbeat:IPaddr2): Stopped webres (ocf::heartbeat:apache): Stopped [root@UA-HA ~]#
4. 리소스 그룹을 작성하여 리소스 종속성을 형성하여 리소스를 순서대로 중지 및 시작하십시오.
[root@UA-HA ~]# pcs resource group add WEBRG1 ClusterIP vgres webvolfs webres
위의 명령에 따라 다음은 리소스 시작 순서입니다
- ClusterIP - 웹 사이트 URL
- vgres - 볼륨 그룹
- webvolfs - 마운트 리소스
- webres - httpd 리소스
정지 순서는 시작과 반대입니다.
- webres - httpd 리소스
- webvolfs - 마운트 리소스
- vgres - 볼륨 그룹
- ClusterIP - 웹 사이트 URL
5. 리소스 상태를 점검하십시오. 모든 리소스가 WEBRG1
과 함께 하나의 리소스 그룹으로 묶여 있음을 볼 수 있어야합니다.
[root@UA-HA ~]# pcs resource Resource Group: WEBRG1 ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA2 vgres (ocf::heartbeat:LVM): Stopped webvolfs (ocf::heartbeat:Filesystem): Stopped webres (ocf::heartbeat:apache): Stopped [root@UA-HA ~]#
6. 사용 불가능한 리소스를 다음 순서로 사용 가능하게하십시오.
[root@UA-HA ~]# pcs resource enable ClusterIP [root@UA-HA ~]# pcs resource enable vgres [root@UA-HA ~]# pcs resource enable webvolfs [root@UA-HA ~]# pcs resource enable webres
7. 클러스터 상태를 확인하십시오.
[root@UA-HA ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 20:54:43 2015 Last change: Mon Dec 28 20:51:30 2015 by root via crm_resource on UA-HA2 Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 4 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: Resource Group: WEBRG1 ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA2 vgres (ocf::heartbeat:LVM): Started UA-HA2 webvolfs (ocf::heartbeat:Filesystem): Started UA-HA2 webres (ocf::heartbeat:apache): Started UA-HA2 PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA ~]#
8. UA-HA2
에서 UA-HA
로 리소스를 이동합시다. 이 경우 수동으로 각 리소스를 이동할 필요가 없습니다. 우리는 필요한 리소스를 번들에 묶어 놓기 때문에 리소스 그룹을 이동해야합니다.
[root@UA-HA ~]# pcs resource move WEBRG1 UA-HA [root@UA-HA ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 20:58:55 2015 Last change: Mon Dec 28 20:58:41 2015 by root via crm_resource on UA-HA Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 4 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: Resource Group: WEBRG1 ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA vgres (ocf::heartbeat:LVM): Started UA-HA webvolfs (ocf::heartbeat:Filesystem): Started UA-HA webres (ocf::heartbeat:apache): Started UA-HA PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA ~]#
9. Pacemaker 리소스 그룹을 중지하는 방법은 무엇입니까? → 리소스 그룹을 비활성화하십시오.
[root@UA-HA2 ~]# pcs resource disable WEBRG1 [root@UA-HA2 ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 21:12:18 2015 Last change: Mon Dec 28 21:12:14 2015 by root via crm_resource on UA-HA2 Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 4 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: Resource Group: WEBRG1 ClusterIP (ocf::heartbeat:IPaddr2): (target-role:Stopped) Stopped vgres (ocf::heartbeat:LVM): (target-role:Stopped) Stopped webvolfs (ocf::heartbeat:Filesystem): (target-role:Stopped) Stopped webres (ocf::heartbeat:apache): (target-role:Stopped) Stopped PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA2 ~]#
10. 리소스 그룹을 시작하는 방법은 무엇입니까? → 리소스 그룹에 대해 enable 옵션을 사용하십시오.
[root@UA-HA2 ~]# pcs resource enable WEBRG1 [root@UA-HA2 ~]# pcs status Cluster name: UABLR Last updated: Mon Dec 28 21:14:04 2015 Last change: Mon Dec 28 21:14:01 2015 by root via crm_resource on UA-HA2 Stack: corosync Current DC: UA-HA2 (version 1.1.13-10.el7-44eb2dd) - partition with quorum 2 nodes and 4 resources configured Online: [ UA-HA UA-HA2 ] Full list of resources: Resource Group: WEBRG1 ClusterIP (ocf::heartbeat:IPaddr2): Started UA-HA2 vgres (ocf::heartbeat:LVM): Started UA-HA2 webvolfs (ocf::heartbeat:Filesystem): Started UA-HA2 webres (ocf::heartbeat:apache): Started UA-HA2 PCSD Status: UA-HA: Online UA-HA2: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [root@UA-HA2 ~]#
참고 :
Redhat 클러스터 (pacemaker / corosync)에는 리소스 stickiness
및 실패 횟수와 같은 많은 매개 변수가 있습니다. 이러한 속성은 리소스를 시작할 시점에서 역할을 수행합니다.
오류를 지우려면 다음 명령을 사용하십시오.
# pcs resource cleanup
리소스 실패 횟수를 지우려면 다음 명령을 사용하십시오.
[root@UA-HA2 ~]# pcs resource clear ClusterIP [root@UA-HA2 ~]# pcs resource clear vgres [root@UA-HA2 ~]# pcs resource clear webvolfs [root@UA-HA2 ~]# pcs resource clear webres [root@UA-HA2 ~]#