1.1. Nainstalujte „pcs“ a „fence-agents-all“ na každém nodu clusteru:
# yum install -y pcs fence-agents-all
1.2. Povolte a spusťte službu „pcsd“ na každém nodu clusteru:
# systemctl enable pcsd # systemctl start pcsd
1.3. V případě potřeby povolte komunikaci clusteru přes firewall na každém nodu clusteru:
# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --reload
1.4. Změňte heslo uživatele „hacluster“ na „H4clust3r“ na každém nodu clusteru:
# echo "H4clust3r" | passwd --stdin hacluster
1.5. Ověřte všechny nody clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster auth node1 node2 node3 Username: hacluster Password: H4clust3r node1: Authorized node2: Authorized node3: Authorized
1.6. Nastavte a spusťte třínodový cluster s názvem „cluster01“ na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster setup --start --name cluster01 node1 node2 node3
1.7. Povolte automatické spouštění clusteru na všech nastavených nodech clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster enable --all
1.8. Ověřte, že cluster běží a všechny nastavené nody clusteru se ke clusteru připojily na kterémkoliv z nodů:
[root@node1 ~]# pcs status Cluster name: cluster01 WARNING: no stonith devices and stonith-enabled is not false Last updated: Mon Sep 15 05:41:18 2014 Last change: Mon Sep 15 05:41:03 2014 via crmd on node1 Stack: corosync Current DC: node1 (1) - partition with quorum Version: 1.1.10-29.el7-368c726 3 Nodes configured 0 Resources configured Online: [ node1 node2 node3 ] Full list of resources: PCSD Status: node1: Online node2: Online node3: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
1.9. Přidejte do clusteru fence zařízení pro virtuální stroje „node1“, „node2“ a „node3“ na kterémkoliv z nodů:
[root@node1 ~]# pcs stonith create fence_node1 fence_ipmilan pcmk_host_list="node1" ipaddr="172.24.6.1" login="node1" passwd="N0d31" lanplus=1 cipher=3 [root@node1 ~]# pcs stonith create fence_node2 fence_ipmilan pcmk_host_list="node2" ipaddr="172.24.6.1" login="node2" passwd="N0d32" lanplus=1 cipher=3 [root@node1 ~]# pcs stonith create fence_node3 fence_ipmilan pcmk_host_list="node3" ipaddr="172.24.6.1" login="node3" passwd="N0d33" lanplus=1 cipher=3
1.10. Ověřte, že fence zařízení byla do clusteru přidána správně na kterémkoliv z nodů:
[root@node1 ~]# pcs stonith show fence_node1 (stonith:fence_ipmilan): Started fence_node2 (stonith:fence_ipmilan): Started fence_node3 (stonith:fence_ipmilan): Started
2.1. Nainstalujte „pcs“ a „fence-agents-all“ na novém nodu clusteru:
[root@node4 ~]# yum install -y pcs fence-agents-all
2.2. Povolte a spusťte službu „pcsd“ na novém nodu clusteru:
[root@node4 ~]# systemctl enable pcsd; systemctl start pcsd
2.3. V případě potřeby povolte komunikaci clusteru přes firewall na novém nodu clusteru:
[root@node4 ~]# firewall-cmd --permanent --add-service=high-availability; firewall-cmd --reload
2.4. Změňte heslo uživatele „hacluster“ na „H4clust3r“ na novém nodu clusteru:
[root@node4 ~]# echo "H4clust3r" | passwd --stdin hacluster
2.5. Ověřte nový node v existujícím clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster auth -u hacluster -p H4clust3r node4
2.6. Přidejte nový node do clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster node add node4 nodea1: Corosync updated node2: Corosync updated node3: Corosync updated node4: Succeeded
2.7. Ověřte „node4“ s ostatními nody na novém nodu clusteru:
[root@node4 ~]# pcs cluster auth -u hacluster -p H4clust3r node1: Authorized node2: Authorized node3: Authorized node4: Already authorized
2.8. Přidejte do clusteru fence zařízení pro nový node na kterémkoliv z nodů:
[root@node1 ~]# pcs stonith create fence_node4 fence_ipmilan pcmk_host_list="node4" ipaddr="172.24.6.1" login="node4" passwd="N0d34" lanplus=1 cipher=3
2.9. Ověřte, že fence zařízení bylo do clusteru přidáno správně na kterémkoliv z nodů:
[root@node1 ~]# pcs stonith show fence_node1 (stonith:fence_ipmilan): Started fence_node2 (stonith:fence_ipmilan): Started fence_node3 (stonith:fence_ipmilan): Started fence_node4 (stonith:fence_ipmilan): Started
2.10. Povolte automatické spouštění clusteru na novém nodu clusteru:
[root@node4 ~]# pcs cluster enable
2.11. Spusťte cluster na novém nodu clusteru:
[root@node4 ~]# pcs cluster start Starting Cluster...
2.12. Ověřte, že cluster běží a všechny nastavené nody clusteru se ke clusteru připojily na kterémkoliv z nodů:
[root@node1 ~]# pcs status Cluster name: cluster01 Last updated: Tue Sep 24 05:41:18 2014 Last change: Tue Sep 24 05:41:03 2014 via crmd on node1 Stack: corosync Current DC: node1 (1) - partition with quorum Version: 1.1.10-29.el7-368c726 4 Nodes configured 4 Resources configured Online: [ node1 node2 node3 node4 ] Full list of resources: fence_node1 (stonith:fence_ipmilan): Started node1 fence_node2 (stonith:fence_ipmilan): Started node2 fence_node3 (stonith:fence_ipmilan): Started node3 fence_node4 (stonith:fence_ipmilan): Started node4 PCSD Status: node1: Online node2: Online node3: Online node4: Online Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
3.1. Odeberte cluster node z clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster node remove node4
3.2. Odeberte fence zařízení z clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs stonith delete fence_node4
4.1. Zastavte cluster na všech nodech na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster stop --all
4.2. Přidejte volbu „auto_tie_breaker“ v sekci „quorum“ /etc/corosync/corosync.conf na kterémkoliv z nodů:
[root@node1 ~]# vi /etc/corosync/corosync.conf quorum { provider: corosync_votequorum auto_tie_breaker: 1 auto_tie_breaker_node: lowest }
4.3. Synchronizujte /etc/corosync/corosync.conf z aktuálního nodu do všech ostatních nodů v clusteru:
[root@node1 ~]# pcs cluster sync
4.4. Spusťte cluster na všech nodech na kterémkoliv z nodů:
[root@node1 ~]# pcs cluster start --all
5.1. Nainstalujte „iscsi-initiator-utils“ na každém nodu clusteru:
# yum install -y iscsi-initiator-utils
5.2. Vytvořte jedinečné IQN pro iSCSI iniciátora úpravou nastavení „InitiatorName“ v /etc/iscsi/initiatorname.iscsi na každém nodu clusteru:
# vi /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2020-02.com.domain:nodeX
5.3. Povolte a spusťte službu „iscsi“ na každém nodu clusteru:
# systemctl enable iscsi; systemctl start iscsi
5.4. Vyhledejte nastavená iSCSI úložiště (targets) poskytovaná portály iSCSI serverů na každém nodu clusteru:
# iscsiadm -m discovery -t st -p 192.168.1.2 192.168.1.2:3390,1 iqn.2020-02.com.domain:cluster # iscsiadm -m discovery -t st -p 192.168.1.3 192.168.1.3:3390,1 iqn.2020-02.com.domain:cluster
5.5. Přihlaste se do nalezených iSCSI úložišť (targets) na každém nodu clusteru:
# iscsiadm -m node -T iqn.2020-02.com.domain:cluster -p 192.168.1.2 -l # iscsiadm -m node -T iqn.2020-02.com.domain:cluster -p 192.168.1.3 -l
5.6. Ověřte, že jsou k dispozici nová bloková zařízení vytvořená přihlášením do iSCSI úložišť na každém nodu clusteru:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk sdb 8:16 0 20G 0 disk vda 253:0 0 10G 0 disk └─vda1 253:1 0 10G 0 part /
5.7. Případně zobrazte podrobné informace o dostupných iSCSI úložištích na kterémkoliv z nodů:
# iscsiadm -m session -P 3
6.1. Nainstalujte „device-mapper-multipath“ na každém nodu clusteru:
# yum install -y device-mapper-multipath
6.2. Povolte nastavení více cest ke vzdáleným diskům (multipathing) na každém nodu clusteru:
# mpathconf --enable
6.3. Upravte „blacklist“ sekci v /etc/multipath.conf pro ignorování lokálních disků na každém nodu clusteru:
# vi /etc/multipath.conf blacklist { devnode "^vd[a-z]" }
6.4. Povolte a spusťte službu „multipathd“ na každém nodu clusteru:
# systemctl enable multipathd; systemctl start multipathd
6.5. Ověřte, že je k dispozici zařízení s více cestami „mpatha“ na každém nodu clusteru:
# multipath -ll mpatha (360014053bd9ea2a35914e39a556051cf) dm-0 LIO-ORG ,clusterstor size=20.0G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 2:0:0:0 sda 8:0 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 3:0:0:0 sdb 8:16 active ready running
7.1. Nainstalujte „dlm“ a „lvm2-cluster“ na každém nodu clusteru:
# yum install -y dlm lvm2-cluster
7.2. Nastavte LVM „locking_type“ na „3“ (povolte cluster locking) na každém nodu clusteru:
# lvmconf --enable-cluster
7.3. Zastavte službu „lvmetad“ k zajištění odpovídajícího nastavení LVM na každém nodu clusteru:
# systemctl stop lvm2-lvmetad
7.4. Nastavte globální parametr Pacemakeru „no_quorum_policy“ na „freeze“ na kterémkoliv z nodů:
[root@node1 ~]# pcs property set no-quorum-policy=freeze
7.5. Vytvořte klonovaný zdroj „dlm“ (požadovaná závislost pro clvmd a GFS2) pomocí agenta zdrojů „controld“ na kterémkoliv z nodů:
[root@node1 ~]# pcs resource create dlm controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
7.6. Vytvořte klonovaný zdroj „clvmd“ pomocí agenta zdrojů „clvm“ na kterémkoliv z nodů:
[root@node1 ~]# pcs resource create clvmd clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true
7.7. Vytvořte omezení pro kontrolu pořadí spouštění „dlm“ a „clvmd“ zdrojů a zajistěte, aby běžely na stejném nodu na kterémkoliv z nodů:
[root@node1 ~]# pcs constraint order start dlm-clone then clvmd-clone [root@node1 ~]# pcs constraint colocation add clvmd-clone with dlm-clone
7.8. Vytvořte fyzický svazek LVM „/dev/mapper/mpatha“ na kterémkoliv z nodů:
[root@node1 ~]# pvcreate /dev/mapper/mpatha
7.9. Vytvořte clusterovou skupinu svazků „clustervg“ na kterémkoliv z nodů:
[root@node1 ~]# vgcreate -Ay -cy clustervg /dev/mapper/mpatha
7.10. Vytvořte logický svazek o velikosti 10 GB „clusterlv“ na kterémkoliv z nodů:
[root@node1 ~]# lvcreate -L 10G -n clusterlv clustervg
8.1. Nainstalujte „gfs2-utils“ na každém nodu clusteru:
# yum install -y gfs2-utils
8.2. Naformátujte logický svazek souborovým systémem GFS2 se 3 žurnály na kterémkoliv z nodů:
[root@node1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t cluster01:web /dev/clustervg/clusterlv
9.1. Zobrazte všechny dostupné agenty zdrojů (skripty spravující zdroje clusteru) na kterémkoliv z nodů:
[root@node1 ~]# pcs resource list ocf:heartbeat:CTDB - CTDB Resource Agent ocf:heartbeat:Delay - Waits for a defined timespan ocf:heartbeat:Dummy - Example stateless resource agent ocf:heartbeat:Filesystem - Manages filesystem mounts ...
9.2. Zobrazte parametry konkrétního zdroje clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs resource describe Filesystem ocf:heartbeat:Filesystem - Manages filesystem mounts ... Resource options: device (required): The name of block device for the filesystem, or -U, -L options for mount, or NFS mount specification. directory (required): The mount point for the filesystem. fstype (required): The type of filesystem to be mounted. options: Any extra options to be given as -o options to mount. For bind mounts, add "bind" here and set fstype to "none". We will do the right thing for options such as "bind,ro". ...
9.3. Vytvořte klonovaný zdroj „clusterfs“ pomocí agenta zdrojů „Filesystem“ pro správu souborového systému GFS2 a automaticky ho připojte na všech třech nodech při spuštění clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs resource create clusterfs Filesystem device="/dev/clustervg/clusterlv" directory="/var/www" fstype="gfs2" options="noatime" op monitor interval=10s on-fail=fence clone interleave=true
9.4. Vytvořte omezení pro kontrolu pořadí spouštění „clvmd“ a „clusterfs“ zdrojů a zajistěte, aby běžely na stejném nodu na kterémkoliv z nodů:
[root@node1 ~]# pcs constraint order start clvmd-clone then clusterfs-clone [root@node1 ~]# pcs constraint colocation add clusterfs-clone with clvmd-clone
9.5. Vytvořte zdroj „webip“ pomocí agenta zdrojů „IPaddr2“ pro IP adresu 172.15.1.10/24 jako součást skupiny zdrojů „web_rg“ na kterémkoliv z nodů:
[root@node1 ~]# pcs resource create webip IPaddr2 ip=172.15.1.10 cidr_netmask=24 --group web_rg
9.6. Vytvořte zdroj „webserver“ pomocí agenta zdrojů „apache“ s výchozím nastavením jako součást skupiny zdrojů „web_rg“ na kterémkoliv z nodů:
[root@node1 ~]# pcs resource create webserver apache --group web_rg
9.7. Nastavte skupinu zdrojů „web_rg“ tak, aby se spouštěla až po zdroji „clusterfs“ na kterémkoliv z nodů:
[root@node1 ~]# pcs constraint order start clusterfs-clone then web_rg
9.8. Nastavte skupinu zdrojů „web_rg“ tak, aby se přednostně spouštěla na „node1“ na kterémkoliv z nodů:
[root@node1 ~]# pcs constraint location web_rg prefers node1
9.9. Zobrazte všechna nastavená omezení zdrojů clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs constraint show
9.10. Zobrazte všechny nastavené zdroje clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs resource show
9.11. Zobrazte podrobnosti o nastaveném zdroji clusteru na kterémkoliv z nodů:
[root@node1 ~]# pcs resource show webserver
10.1. Odeberte zdroj „webserver“ ze skupiny zdrojů „web_rg“ na kterémkoliv z nodů:
[root@node1 ~]# pcs resource group remove web_rg webserver
10.2. Smažte skupinu zdrojů „web_rg“ včetně všech zdrojů, které obsahuje na kterémkoliv z nodů:
[root@node1 ~]# pcs resource delete web_rg