pacemaker_corosync_클러스터에서_gfs2구성

Pacemaker/Corosync 클러스터에서 GFS2구성

원본출처 : http://www.unixarena.com/2016/01/rhel7-configuring-gfs2-on-pacemakercorosync-cluster.html

이 기사에서는 두 개의 클러스터 노드간에 GFS2 파일 시스템을 구성하는 방법에 대해 간략하게 설명합니다. GFS2는 클러스터 파일 시스템이며 한 번에 둘 이상의 서버에 마운트 될 수 있음을 알고 있습니다. 여러 서버가 동일한 파일 시스템을 마운트 할 수 있으므로 DLM (Dynamic Lock Manager)을 사용하여 데이터 손상을 방지합니다. GFS2에는 구성 및 관리 할 수있는 클러스터 제품군이 필요합니다. RHEL 7에서 Pacemaker / corosync는 클러스터 인프라를 제공합니다. GFS2는 Linux 커널 파일 시스템 인터페이스 (VFS 계층)와 직접 인터페이스하는 기본 파일 시스템입니다. Red Hat은 고 가용성 추가 기능 (클러스터)에서만 구현 된 GFS2 파일 시스템의 사용을 지원합니다.

다음은 두 노드 클러스터 (Pacemaker) 사이에서 GFS2를 구성하기위한 활동 목록입니다.

  • GFS2 및 lvm2 클러스터 패키지를 설치하십시오.
  • LVM에서 클러스터 된 잠금 사용
  • pacemaker에 DLM 및 CLVMD 리소스 생성
  • 자원의 순서와 코 로케이션을 설정한다.
  • LVM 개체 구성 및 GFS2 파일 시스템 만들기
  • 논리 볼륨 및 파일 시스템을 페이스 메이커 컨트롤에 추가하십시오. (gfs2는 / etc / fstab을 사용하지 않습니다).
  • RHEL 7.x
  • 노드 이름 : Node1 & Node2.
  • Fencing / STONITH : GFS2의 필수 사항.
  • 공유 LUN “/dev/sda”
  • 클러스터 상태 :
[root@Node2-LAB ~]# pcs status
Cluster name: GFSCLUS
Last updated: Thu Jan 21 18:00:25 2016
Last change: Wed Jan 20 16:12:24 2016 via cibadmin on Node1
Stack: corosync
Current DC: Node1 (1) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
5 Resources configured

Online: [ Node1 Node2 ]

Full list of resources:

 xvmfence       (stonith:fence_xvm):    Started Node1
 
PCSD Status:
  Node1: Online
  Node2: Online

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[root@Node2-LAB ~]#

1. 두 클러스터 노드에 모두 로그인하고 gfs2 및 lvm2 클러스터 패키지를 설치합니다.

[root@Node2-LAB ~]# yum -y install gfs2-utils  lvm2-cluster
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package gfs2-utils-3.1.6-13.el7.x86_64 already installed and latest version
Package 7:lvm2-cluster-2.02.105-14.el7.x86_64 already installed and latest version
Nothing to do
[root@Node2-LAB ~]# ssh Node1 yum -y install gfs2-utils  lvm2-cluster
Loaded plugins: product-id, subscription-manager
Package gfs2-utils-3.1.6-13.el7.x86_64 already installed and latest version
Package 7:lvm2-cluster-2.02.105-14.el7.x86_64 already installed and latest version
Nothing to do
[root@Node2-LAB ~]#

1. 두 클러스터 ndoes에서 LVM에 대해 클러스터 된 잠금을 활성화합니다.

[root@Node2-LAB ~]# lvmconf --enable-cluster
[root@Node2-LAB ~]# ssh Node1 lvmconf --enable-cluster
[root@Node2-LAB ~]# cat /etc/lvm/lvm.conf |grep locking_type |grep -v "#"
    locking_type = 3
[root@Node2-LAB ~]#

2. 클러스터 노드를 리부팅합니다.

1. 클러스터 노드 중 하나에 로그인하십시오.

2. DLM 및 CLVMD의 복제 자원을 만듭니다. 복제 옵션을 사용하면 리소스가 두 노드에서 모두 실행될 수 있습니다.

[root@Node1-LAB ~]# pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
[root@Node1-LAB ~]# pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true

3. 클러스터의 상태를 확인하십시요

[root@Node1-LAB ~]# pcs status
Cluster name: GFSCLUS
Last updated: Thu Jan 21 18:15:48 2016
Last change: Thu Jan 21 18:15:38 2016 via cibadmin on Node1
Stack: corosync
Current DC: Node2 (2) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
5 Resources configured


Online: [ Node1 Node2 ]

Full list of resources:

 xvmfence       (stonith:fence_xvm):    Started Node1
 Clone Set: dlm-clone [dlm]
     Started: [ Node1 Node2 ]
 Clone Set: clvmd-clone [clvmd]
     Started: [ Node1 Node2 ]

PCSD Status:
  Node1: Online
  Node2: Online

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[root@Node1-LAB ~]#

리소스가 두 노드 모두에서 온라인임을 확인할 수 있습니다.

1. 리소스 순서를 구성하십시오 (기동 순서)

[root@Node1-LAB ~]# pcs constraint order start dlm-clone then clvmd-clone
Adding dlm-clone clvmd-clone (kind: Mandatory) (Options: first-action=start then-action=start)
[root@Node1-LAB ~]# 

2. 리소스 코로케이션을 구성하십시오

[root@Node1-LAB ~]# pcs constraint colocation add clvmd-clone with dlm-clone
[root@Node1-LAB ~]#

3. 제한 조건을 확인하십시오.

[root@Node1-LAB ~]# pcs constraint
Location Constraints:
Ordering Constraints:
start dlm-clone then start clvmd-clone
Colocation Constraints:
clvmd-clone with dlm-clone
[root@Node1-LAB ~]#

1. 클러스터 노드 중 하나에 로그인하고 필요한 LVM 객체를 만듭니다.

2. 이 설정에서 /dev/sda는 두 노드 사이의 공유 LUN입니다.

3. 새 볼륨 그룹을 만듭니다.

[root@Node1-LAB ~]#  vgcreate -Ay -cy gfsvg /dev/sda
  Physical volume "/dev/sda" successfully created
  Clustered volume group "gfsvg" successfully created
[root@Node1-LAB ~]# 
[root@Node1-LAB kvmpool]# vgs
  VG    #PV #LV #SN Attr   VSize   VFree
  gfsvg   1   1   0 wz--nc 996.00m 96.00m
  rhel    1   2   0 wz--n-   7.51g     0
[root@Node1-LAB kvmpool]#

4. 논리 볼륨을 만듭니다.

[root@Node1-LAB ~]# lvcreate -L 900M -n gfsvol1 gfsvg
  Logical volume "gfsvol1" created
[root@Node1-LAB ~]#
[root@Node1-LAB kvmpool]# lvs -o +devices gfsvg
  LV      VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert Devices
  gfsvol1 gfsvg -wi-ao---- 900.00m                                              /dev/sda(0)
[root@Node1-LAB kvmpool]#

5. 새 볼륨에 파일 시스템을 만듭니다.

[root@Node1-LAB ~]#  mkfs.gfs2 -p lock_dlm -t GFSCLUS:gfsvolfs -j 3 /dev/gfsvg/gfsvol1
/dev/gfsvg/gfsvol1 is a symbolic link to /dev/dm-2
This will destroy any data on /dev/dm-2
Are you sure you want to proceed? [y/n]y

Device:                    /dev/gfsvg/gfsvol1
Block size:                4096
Device size:               0.88 GB (230400 blocks)
Filesystem size:           0.88 GB (230400 blocks)
Journals:                  2
Resource groups:           4
Locking protocol:          "lock_dlm"
Lock table:                "GFSCLUS:gfsvolfs"
UUID:                      8dff8868-3815-d43c-dfa0-f2a9047d97a2
[root@Node1-LAB ~]#

GFSCLUS - 클러스터 이름
gfsvolfs - 파일 시스템 이름
“-j 3”=Journal- 두 노드가 액세스합니다. 저널 갯수인데 노드수 + 1 권장 (즉 2노드라면 3)

1. 클러스터 노드 중 하나에 로그인하십시오.

2. GFS2 파일 시스템 용 새 클러스터 리소스를 만듭니다.

[root@Node1-LAB ~]# pcs resource create gfsvolfs_res Filesystem device="/dev/gfsvg/gfsvol1" directory="/kvmpool" fstype="gfs2" options="noatime,nodiratime" op monitor interval=10s on-fail=fence clone interleave=true
[root@Node1-LAB ~]#

3. 볼륨 상태를 확인하십시오. 두 클러스터 노드에 모두 마운트해야합니다.

[root@Node1-LAB ~]# df -h /kvmpool
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/gfsvg-gfsvol1  900M  259M  642M  29% /kvmpool
[root@Node1-LAB ~]# ssh Node2 df -h /kvmpool
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/gfsvg-gfsvol1  900M  259M  642M  29% /kvmpool
[root@Node1-LAB ~]#

4. 리소스 순서 및 코로케이션을 구성하십시오.

[root@Node1-LAB ~]# pcs constraint order start clvmd-clone then gfsvolfs_res-clone
Adding clvmd-clone gfsvolfs_res-clone (kind: Mandatory) (Options: first-action=start then-action=start)
[root@Node1-LAB ~]# pcs constraint order
Ordering Constraints:
  start clvmd-clone then start gfsvolfs_res-clone
  start dlm-clone then start clvmd-clone
[root@Node1-LAB ~]# pcs constraint colocation add gfsvolfs_res-clone  with clvmd-clone
[root@Node1-LAB ~]# pcs constraint colocation
Colocation Constraints:
  clvmd-clone with dlm-clone
  gfsvolfs_res-clone with clvmd-clone
[root@Node1-LAB ~]#

5. 두 노드 모두 읽기 / 쓰기 모드에서 동일한 파일 시스템을 볼 수 있습니다.

[root@Node1-LAB ~]# cd /kvmpool/
[root@Node1-LAB kvmpool]# ls -lrt
total 0
[root@Node1-LAB kvmpool]# touch test1 test2 test3
[root@Node1-LAB kvmpool]# ls -lrt
total 12
-rw-r--r-- 1 root root 0 Jan 21 18:38 test1
-rw-r--r-- 1 root root 0 Jan 21 18:38 test3
-rw-r--r-- 1 root root 0 Jan 21 18:38 test2
[root@Node1-LAB kvmpool]# ssh Node2 ls -lrt /kvmpool/
total 12
-rw-r--r-- 1 root root 0 Jan 21 18:38 test1
-rw-r--r-- 1 root root 0 Jan 21 18:38 test3
-rw-r--r-- 1 root root 0 Jan 21 18:38 test2
[root@Node1-LAB kvmpool]#

RHEL 7 클러스터 노드에서 GFS2를 성공적으로 구성했습니다.

No Quorum Policy 설정 :

GFS2를 사용할 때는 no-quorum-policy 를 구성해야합니다 . freeze 로 설정한다면 시스템이 정족수를 잃어 버리면 정족수가 회복 될 때까지 시스템이 아무 것도 할수 없게 됩니다. 이렇게 해야지만 비정상 상태에서 데이터 유실을 방지 할 수 있습니다.

[root@Node1-LAB ~]# pcs property set no-quorum-policy=freeze
[root@Node1-LAB ~]#

OCFS2 (Oracle Cluster File System 2)는 Red Hat Enterprise Linux에서 실행될 수 있지만 Red Hat에서는 출하, 유지 관리 또는 지원하지 않습니다.

로그인하면 댓글을 남길 수 있습니다.
  • pacemaker_corosync_클러스터에서_gfs2구성.txt
  • 마지막으로 수정됨: 2021/10/07 10:04
  • 저자 koov