[root@rhcs1 ~]# yum install pcs pacemaker fence-agents-all
[root@rhcs1 ~]# firewall-cmd --permanent --add-service=high-availability [root@rhcs1 ~]# firewall-cmd --reload
[root@rhcs1 ~]# passwd hacluster Changing password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully.
[root@rhcs1 ~]# systemctl start pcsd.service [root@rhcs1 ~]# systemctl enable pcsd.service
[root@z1 ~]# pcs host auth z1.example.com z2.example.com Username: hacluster Password: z1.example.com: Authorized z2.example.com: Authorized
[root@z1 ~]# pcs cluster setup my_cluster --start z1.example.com z2.example.com
[root@z1 ~]# pcs cluster enable --all [root@z1 ~]# systemctl enable pacemaker [root@z1 ~]# systemctl enable corosync
[root@z1 ~]# pcs cluster status Cluster Status: Stack: corosync Current DC: z2.example.com (version 2.0.0-10.el8-b67d8d0de9) - partition with quorum Last updated: Thu Oct 11 16:11:18 2018 Last change: Thu Oct 11 16:11:00 2018 by hacluster via crmd on z2.example.com 2 Nodes configured 0 Resources configured ...
[root@z1 ~]# pcs cluster status Cluster Status: Stack: corosync Current DC: z1.example.com (version 2.0.0-10.el8-b67d8d0de9) - partition with quorum Last updated: Thu Oct 11 16:11:18 2018 Last change: Thu Oct 11 16:11:00 2018 by hacluster via crmd on z1.example.com 2 nodes configured 0 resources configured PCSD Status: z1.example.com: Online z2.example.com: Online
이 설정은 구축/테스트 시에만 설정하고 실 운영시에는 반드시 enable
로 해야한다.
fence 장치를 구성하기 전에는 STONITH를 비활성화 해야 한다.
[root@z1 ~]# pcs property set stonith-enabled=false
LVM Resource를 구성하는 방법에는 아래와같은 방법들이 있다.
lvmlockd
clvmd
system_id
tagging
과거에는 tagging
방식을 주로 사용하였으나 현재는 system_id
방식을 권장한다.
먼저 시스템 내의 /etc/lvm/lvm.conf
파일 내에 system_id_source
구성 옵션을 uname
으로 설정한다.
# Configuration option global/system_id_source. system_id_source = "uname"
노드의 LVM 시스템 ID가 노드의 uname 과 일치하는지 확인합니다.
# lvm systemid system ID: z1.example.com # uname -n z1.example.com
이후 볼륨을 생성한다.
[root@z1 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
볼륨그룹 생성시 해당 볼륨그룹의 --setautoactivation n
속성을 추가한다.
[root@z1 ~]# vgcreate --setautoactivation n my_vg /dev/sdb1 Volume group "my_vg" successfully created [root@z1 ~]# vgs -o+systemid VG #PV #LV #SN Attr VSize VFree System ID my_vg 1 0 0 wz--n- <1.82t <1.82t z1.example.com
위의 System ID
항목에 현재 호스트의 uname -n
값이 나타나야 한다. 만약 나오지 않는다면 아래 명령어로 수동으로 설정해준다.
# vgchange --systemid $(uname -n) <vg name>
이후 계속해서 논리 볼륨을 구성한다.
[root@z1 ~]# lvcreate -L450 -n my_lv my_vg Rounding up size to full physical extent 452.00 MiB Logical volume "my_lv" created [root@z1 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert my_lv my_vg -wi-a---- 452.00m ... [root@z1 ~]# mkfs.xfs /dev/my_vg/my_lv meta-data=/dev/my_vg/my_lv isize=512 agcount=4, agsize=28928 blks = sectsz=512 attr=2, projid32bit=1 ...
이후 클러스터의 모든 노드에서 마운트 할 경로를 생성하고 서비스 할 경로 및 설정을 완료한다.
[root@z1 ~]# mkdir /nfsshare [root@z1 ~]# lvchange -ay my_vg/my_lv [root@z1 ~]# mount /dev/my_vg/my_lv /nfsshare [root@z1 ~]# mkdir -p /nfsshare/exports [root@z1 ~]# mkdir -p /nfsshare/exports/export1 [root@z1 ~]# mkdir -p /nfsshare/exports/export2 [root@z1 ~]# touch /nfsshare/exports/export1/clientdatafile1 [root@z1 ~]# touch /nfsshare/exports/export2/clientdatafile2 [root@z1 ~]# umount /dev/my_vg/my_lv [root@z1 ~]# vgchange -an my_vg
마지막에 반드시 umount
후 vgchange -an my_vg
작업을 수행하여 해당 vg를 비활성화 해준다.
이후 클러스터가 구동되면서 자동으로 마운트가 동작한다.
2-node
구성일 경우 반드시 한쪽에(가급적 primary노드에) delay
속성값을 지정해서 서로 fence를 날리는 일이 없도록 한다.
# pcs stonith create fence-node1 fence_ipmilan ip=192.168.0.33 ipport=7061 lanplus=1 username=admin password=admin pcmk_host_list=host1 delay=10 # pcs stonith create fence-node2 fence_ipmilan ip=192.168.0.33 ipport=7062 lanplus=1 username=admin password=admin pcmk_host_list=host2