8장. Red Hat High Availability 클러스터에서 활성/활성 Samba 서버 구성
Red Hat High Availability Add-On은 활성/활성 클러스터 구성에서 Samba 구성을 지원합니다. 다음 예제에서는 2-노드 RHEL 클러스터에서 활성/활성 Samba 서버를 구성하고 있습니다.
Samba에 대한 지원 정책에 대한 자세한 내용은 RHEL High Availability - ctdb General Policies and Support Policies for RHEL Resilient Storage - Red Hat 고객 포털의 다른 프로토콜을 통해 gfs2 콘텐츠 내보내기 를 참조하십시오.
활성/활성 클러스터에서 Samba를 구성하려면 다음을 수행합니다.
- ScanSetting2 파일 시스템 및 관련 클러스터 리소스를 구성합니다.
- 클러스터 노드에서 Samba를 구성합니다.
- Samba 클러스터 리소스를 구성합니다.
- 구성한 Samba 서버를 테스트합니다.
8.1. 고가용성 클러스터에서 Samba 서비스에 대한 ScanSetting2 파일 시스템 구성
Pacemaker 클러스터에서 활성/활성 Samba 서비스를 구성하기 전에 클러스터에 대한#1772 파일 시스템을 구성합니다.
사전 요구 사항
- 각 노드에 펜싱이 구성된 2-노드 Red Hat High Availability 클러스터
- 각 클러스터 노드에 사용 가능한 공유 스토리지
- AppStream 채널에 대한 서브스크립션 및 각 클러스터 노드의 복구 스토리지 채널
Pacemaker 클러스터를 생성하고 클러스터의 펜싱 구성에 대한 자세한 내용은 Pacemaker를 사용하여 Red Hat High-Availability 클러스터 생성을 참조하십시오.
절차
클러스터의 두 노드 모두에서 다음 초기 설정 단계를 수행합니다.
시스템 아키텍처에 해당하는 탄력적 스토리지의 리포지토리를 활성화합니다. 예를 들어 x86_64 시스템의 복구 스토리지 리포지토리를 활성화하려면 다음
subscription-manager
명령을 입력합니다.# subscription-manager repos --enable=rhel-8-for-x86_64-resilientstorage-rpms
탄력적 스토리지 리포지토리는 고가용성 리포지토리의 상위 세트입니다. 탄력적 스토리지 리포지토리를 활성화하면 고가용성 리포지토리도 활성화할 필요가 없습니다.
lvm2-lockd
,gfs2-utils
,dlm
패키지를 설치합니다.# yum install lvm2-lockd gfs2-utils dlm
/etc/lvm/lvm.conf
파일에서use_lvmlockd
구성 옵션을use_lvmlockd=1
로 설정합니다.... use_lvmlockd = 1 ...
클러스터의 한 노드에서 글로벌 Pacemaker 매개변수
no-quorum-policy
를동결
하도록 설정합니다.참고기본적으로
no-quorum-policy
값은 쿼럼이 손실되면 나머지 파티션의 모든 리소스가 즉시 중지됨을 나타내는stop
으로 설정됩니다. 일반적으로 이 기본값은 가장 안전하고 최적의 옵션이지만 대부분의 리소스와 달리 GFS2가 작동하려면 쿼럼이 필요합니다. 쿼럼이 GFS2 마운트를 사용하는 애플리케이션과 GFS2 마운트 자체를 모두 분실한 경우 올바르게 중지할 수 없습니다. 쿼럼 없이 이러한 리소스를 중지하려고 하면 실패하여 쿼럼이 손실될 때마다 전체 클러스터가 펜싱됩니다.이 상황을 해결하려면 GFS2를 사용 중인
경우
no-quorum-policy
를 wait로 설정합니다. 즉, 쿼럼을 분실하면 쿼럼을 다시 얻을 때까지 나머지 파티션이 아무 작업도 수행되지 않습니다.[root@z1 ~]# pcs property set no-quorum-policy=freeze
dlm
리소스를 설정합니다. 이는 클러스터에서 GFS2 파일 시스템을 구성하는 데 필요한 종속 항목입니다. 이 예제에서는locking
이라는 리소스 그룹의 일부로dlm
리소스를 생성합니다. 이전에 클러스터의 펜싱을 구성하지 않은 경우 이 단계가 실패하고pcs status
명령으로 리소스 실패 메시지가 표시됩니다.[root@z1 ~]# pcs resource create dlm --group locking ocf:pacemaker:controld op monitor interval=30s on-fail=fence
클러스터의 두 노드에서 리소스 그룹을 활성화할 수 있도록
잠금
리소스 그룹을 복제합니다.[root@z1 ~]# pcs resource clone locking interleave=true
lvmlockd
리소스를잠금
리소스 그룹의 일부로 설정합니다.[root@z1 ~]# pcs resource create lvmlockd --group locking ocf:heartbeat:lvmlockd op monitor interval=30s on-fail=fence
공유 장치
/dev/vdb
에 물리 볼륨 및 공유 볼륨 그룹을 생성합니다. 이 예제에서는 공유 볼륨 그룹cECDHE_vg
를 생성합니다.[root@z1 ~]# pvcreate /dev/vdb [root@z1 ~]# vgcreate -Ay --shared csmb_vg /dev/vdb Volume group "csmb_vg" successfully created VG csmb_vg starting dlm lockspace Starting locking. Waiting until locks are ready
- 클러스터의 두 번째 노드에서 다음을 수행합니다.
(RHEL 8.5 이상)
lvm.conf
파일에서use_devicesfile = 1
을 설정하여 장치 파일을 사용하도록 설정한 경우 클러스터의 두 번째 노드의 장치 파일에 공유 장치를 추가합니다. 기본적으로 장치 파일 사용은 활성화되어 있지 않습니다.[root@z2 ~]# lvmdevices --adddev /dev/vdb
공유 볼륨 그룹의 잠금 관리자를 시작합니다.
[root@z2 ~]# vgchange --lockstart csmb_vg VG csmb_vg starting dlm lockspace Starting locking. Waiting until locks are ready...
클러스터의 한 노드에서 ovnDB에서 내부 잠금에 독점적으로 사용할 Octavia2 파일 시스템으로 논리 볼륨을 생성하고 볼륨을 포맷합니다. 배포에서 여러 공유를 내보내는 경우에도 클러스터에는 하나의 파일 시스템만 필요합니다.
mkfs.gfs2
명령의-t
옵션으로 잠금 테이블 이름을 지정하는 경우 지정하는 clustername:filesystemname 의 첫 번째 구성 요소가 클러스터의 이름과 일치하는지 확인합니다. 이 예에서 클러스터 이름은my_cluster
입니다.[root@z1 ~]# lvcreate -L1G -n ctdb_lv csmb_vg [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:ctdb /dev/csmb_vg/ctdb_lv
Samba를 통해 공유할 각 VMDK2 파일 시스템에 대한 논리 볼륨을 생성하고, CloudEvent2 파일 시스템으로 볼륨을 포맷합니다. 이 예제에서는 단일 VMDK2 파일 시스템 및 Samba 공유를 생성하지만 여러 파일 시스템 및 공유를 생성할 수 있습니다.
[root@z1 ~]# lvcreate -L50G -n csmb_lv1 csmb_vg [root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:csmb1 /dev/csmb_vg/csmb_lv1
필요한 공유 볼륨이
활성화되도록 LVM_
LoadBalancerivate 리소스를 설정합니다. 이 예제에서는 리소스 그룹shared
_ECDHEivate 리소스를 생성한 다음 해당 리소스 그룹을 복제하여 클러스터의 모든 노드에서 실행됩니다._vg
의 일부로 LVM필요한 순서 제약 조건을 구성하기 전에 자동으로 시작되지 않도록 리소스를 비활성화한 대로 생성합니다.
[root@z1 ~]# pcs resource create --disabled --group shared_vg ctdb_lv ocf:heartbeat:LVM-activate lvname=ctdb_lv vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd [root@z1 ~]# pcs resource create --disabled --group shared_vg csmb_lv1 ocf:heartbeat:LVM-activate lvname=csmb_lv1 vgname=csmb_vg activation_mode=shared vg_access_mode=lvmlockd [root@z1 ~]# pcs resource clone shared_vg interleave=true
shared_vg
리소스 그룹의 멤버보다 먼저잠금
리소스 그룹의 모든 멤버를 시작하도록 순서 제한 조건을 구성합니다.[root@z1 ~]# pcs constraint order start locking-clone then shared_vg-clone Adding locking-clone shared_vg-clone (kind: Mandatory) (Options: first-action=start then-action=start)
LVM 활성화 리소스를 활성화합니다
.[root@z1 ~]# pcs resource enable ctdb_lv csmb_lv1
클러스터의 한 노드에서 다음 단계를 수행하여 필요한
Filesystem
리소스를 생성합니다.이전에 LVM 볼륨에 구성한 VMDK2 파일 시스템을 사용하여 복제된 리소스로
Filesystem
리소스를 생성합니다. 이렇게 하면 Pacemaker가 파일 시스템을 마운트 및 관리하도록 구성됩니다.참고Pacemaker 클러스터 리소스로 관리되므로 파일 시스템을
/etc/fstab
파일에 추가해서는 안 됩니다. options= 옵션을 사용하여 리소스 구성의 일부로 마운트 옵션을 지정할 수있습니다
.pcs resource describe Filesystem
명령을 실행하여 전체 구성 옵션을 표시합니다.[root@z1 ~]# pcs resource create ctdb_fs Filesystem device="/dev/csmb_vg/ctdb_lv" directory="/mnt/ctdb" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true [root@z1 ~]# pcs resource create csmb_fs1 Filesystem device="/dev/csmb_vg/csmb_lv1" directory="/srv/samba/share1" fstype="gfs2" op monitor interval=10s on-fail=fence clone interleave=true
공유 볼륨 그룹이
shared_vg
를 시작한 후 Pacemaker에서 파일 시스템을 마운트하도록 순서 제약 조건을 구성합니다.[root@z1 ~]# pcs constraint order start shared_vg-clone then ctdb_fs-clone Adding shared_vg-clone ctdb_fs-clone (kind: Mandatory) (Options: first-action=start then-action=start) [root@z1 ~]# pcs constraint order start shared_vg-clone then csmb_fs1-clone Adding shared_vg-clone csmb_fs1-clone (kind: Mandatory) (Options: first-action=start then-action=start)