728x90
ubuntu에 pacemaker vip(VirtualIP) 구성하기
테스트 환경
호스트 이름 | 서버 아이피 | 도메인 | 운영체제 | 비고 |
VIP | 192.168.0.60 | vip.cluster.local | ||
control1 | 192.168.0.51 | control1.cluster.local | Ubuntu 22.04 LTS | |
node3 | 192.168.0.63 | node3.cluster.local | Ubuntu 22.04 LTS |
VirtualIP(VIP) 설정하기
$ pcs status
Cluster name: hacluster
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 10:42:02 2023
* Last change: Tue Feb 7 10:35:15 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 0 resource instances configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
Full List of Resources:
* No resources
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
$ pcs resource status
NO resources configured
Virtual IP(VIP) 생성
pcs resource create resource_id standard:provider:type|type [resource options]
pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.60 cidr_netmask=24 op monitor interval=10s
pcs resource status
$ pcs resource status
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
crm_simulate -sL
$ crm_simulate -sL
[ control1.cluster.local node3.cluster.local ]
VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
pcmk__native_allocate: VirtualIP allocation score on control1.cluster.local: 0
pcmk__native_allocate: VirtualIP allocation score on node3.cluster.local: 0
pcs status
$ pcs status
Cluster name: hacluster
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 10:48:09 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
Full List of Resources:
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
pcs cluster status
$ pcs cluster status
Cluster Status:
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 10:48:33 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
PCSD Status:
control1.cluster.local: Online
node3.cluster.local: Online
ip addr
root@control1:~$ ip addr
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:0d:82:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.51/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.0.60/24 brd 192.168.0.255 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe0d:82e9/64 scope link
valid_lft forever preferred_lft forever
...
페일오버(Failover) 테스트(Active-Standby)
- control1 노드(Active→Standby)
root@control1:~$ pcs status
Cluster name: hacluster
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 10:49:53 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
Full List of Resources:
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
root@control1:~$ pcs cluster status
Cluster Status:
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 10:49:58 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
PCSD Status:
control1.cluster.local: Online
node3.cluster.local: Online
root@control1:~$ pcs resource status
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
root@control1:~$ pcs cluster stop control1.cluster.local
control1.cluster.local: Stopping Cluster (pacemaker)...
control1.cluster.local: Stopping Cluster (corosync)...
root@control1:~$ pcs cluster status
Error: cluster is not currently running on this node
728x90
- node3 노드(Standby->Active)
root@node3:~$ ip addr
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:0b:48:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.63/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.0.60/24 brd 192.168.0.255 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe0b:4803/64 scope link
valid_lft forever preferred_lft forever
...
- control1 노드(Standby)
root@control1:~$ pcs cluster start control1.cluster.local
control1.cluster.local: Starting Cluster...
root@control1:~$ pcs resource status
* VirtualIP (ocf:heartbeat:IPaddr2): Started node3.cluster.local
root@control1:~$ pcs status
Cluster name: hacluster
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 11:00:07 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
Full List of Resources:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node3.cluster.local
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
root@control1:~$ pcs cluster status
Cluster Status:
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 11:00:26 2023
* Last change: Tue Feb 7 10:46:52 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
PCSD Status:
control1.cluster.local: Online
node3.cluster.local: Online
root@control1:~$ ip addr
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:0d:82:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.51/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe0d:82e9/64 scope link
valid_lft forever preferred_lft forever
...
constraint 설정
constraint 설정 값 확인
crm_simulate -sL
$ crm_simulate -sL
[ control1.cluster.local node3.cluster.local ]
VirtualIP (ocf:heartbeat:IPaddr2): Started node3.cluster.local
pcmk__native_allocate: VirtualIP allocation score on control1.cluster.local: 0
pcmk__native_allocate: VirtualIP allocation score on node3.cluster.local: 0
pcs constraint config
$ pcs constraint config
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
control1 노드(Standby->Active)
pcs constraint location VirtualIP prefers control1.cluster.local=200
root@control1:~$ pcs resource status
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
root@control1:~$ pcs constraint config
Location Constraints:
Resource: VirtualIP
Enabled on:
Node: control1.cluster.local (score:200)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
root@control1:~$ crm_simulate -sL
[ control1.cluster.local node3.cluster.local ]
VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
pcmk__native_allocate: VirtualIP allocation score on control1.cluster.local: 200
pcmk__native_allocate: VirtualIP allocation score on node3.cluster.local: 0
root@control1:~$ pcs status
Cluster name: hacluster
Cluster Summary:
* Stack: corosync
* Current DC: node3.cluster.local (version 2.1.2-ada5c3b36e2) - partition with quorum
* Last updated: Tue Feb 7 11:03:22 2023
* Last change: Tue Feb 7 11:02:51 2023 by root via cibadmin on control1.cluster.local
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ control1.cluster.local node3.cluster.local ]
Full List of Resources:
* VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
root@control1:~$ ip addr
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:0d:82:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.51/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.0.60/24 brd 192.168.0.255 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe0d:82e9/64 scope link
valid_lft forever preferred_lft forever
...
node3 노드 (Standby)
pcs constraint location VirtualIP prefers node3.cluster.local=100
root@node3:~$ pcs constraint config
Location Constraints:
Resource: VirtualIP
Enabled on:
Node: control1.cluster.local (score:200)
Node: node3.cluster.local (score:100)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
root@node3:~$ crm_simulate -sL
[ control1.cluster.local node3.cluster.local ]
VirtualIP (ocf:heartbeat:IPaddr2): Started control1.cluster.local
pcmk__native_allocate: VirtualIP allocation score on control1.cluster.local: 200
pcmk__native_allocate: VirtualIP allocation score on node3.cluster.local: 100
참고URL
- Pacemaker 1.1(Configuration Explained) : Pacemaker-1.1-Pacemaker_Explained-en-US.pdf
728x90
'리눅스' 카테고리의 다른 글
[리눅스] shasum 명령어 (0) | 2023.02.16 |
---|---|
[리눅스] java(jdk) 설치 및 java 환경 설정 (0) | 2023.02.07 |
[리눅스] ubuntu에 pacemaker 구성하기 (0) | 2023.02.07 |
[리눅스] sudo 사용법 (0) | 2023.02.06 |
[리눅스] date 명령어 (0) | 2023.02.03 |