리눅스 HA (pacemaker, corosync, iscsi shared storage) – part 3

리눅스 HA(Pacemaker, corosync, iscsi shared storage, lvm2) – part 3

작업환경:
CentOS 8
node1 : wolf1, 192.158.0.31
node2 : wolf2, 192.168.0.32
Virtual IP: 192.168.0.30
shared storage: wolfstorage, 192.168.0.33

참고:
리눅스 HA part-1
리눅스 HA part-2
CentOS에서 iscsi 사용하기

1. iscsi 서버로 shared storage 준비한다. ip 주소는 192.168.0.33으로 설정되어 있다.
빈 디스크를 iscsi shard disk로 사용할 것이다. parted -l 명령어로 확인해보면 아래와 같은 화면을 볼 수 있다.
/dev/sdb 를 사용한다.

2. iscsi target 설치 및 설정(wolfstorage 에서 작업한다).

dnf는 yum의 차세대 버전으로 CentOS8에서 사용할 수 있다. dnf 대신 yum 명령어를 사용해도 된다.

targetcli 명령으로 공유할 디스크를 iscsi 디스크로 만든다.

재부팅 후에도 iscsi target 서비스가 실행되도록 설정하고, target 서비스를 재실행한다.

2. 각각의 클러스터 노드(wolf1, wolf2)에서 iscsi initator를 사용할 수 있도록 iscsi-initiator-utils를 설치하고 설정한다.

서비스를 등록하고 시작한다.

iscsi 볼륨을 찾을때, 아래와 같은 오류가 발생한다면, iscsi target(서버)의 방화벽을 확인한다. 방화벽을 끄거나 tcp 3260 포트를 열어준다.

방화벽을 끄고, 다시 시험하면,
# iscsiadm -m discovery -t st -p 192.168.0.33
192.168.0.33:3260,1 iqn.2020-08.com.storage:disk

# iscsiadm -m node -T iqn.2020-08.com.storage:disk -l
Logging in to [iface: default, target: iqn.2020-08.com.storage:disk, portal: 192.168.0.33,3260]
Login to [iface: default, target: iqn.2020-08.com.storage:disk, portal: 192.168.0.33,3260] successful.

3. Centos8 에서 HA lvm cluster 사이의 통신은 system ID를 사용하므로, lvm.conf 파일에 system_id_source를 설정해야한다.
각각의 노드에서 lvm.conf 파일의 system_id_source를 uname 으로 설정한다.

LVM system ID를 확인해 보면 아래와 같이 호스트네임이 system id로 보일 것이다.

각각의 클러스터 노드에서 initramfs를 백업하고, 다시 빌드한 후 재부팅을 한다.

4. 재부팅후 공유디스크에 logical volume을 만든다. 먼저, 모든 클러스터 노드들이 작동중인지 확인한다.

Logical volume은 한쪽 노드에서만 작업할 것이다. LVM 관련한 자세한 내용은 https://blog.boxcorea.com/wp/archives/1346를 참고하면 된다.
lsscsi 명령으로, 공유 디스크를 확인한다. 맨 아래에 iscsi target에서 작업한 sdisk가 보일것이다.

파일시스템을 만든다. 파일시스템은 xfs로 포맷했다.

클러스터에의해 VG가 관리되도록 ocf:heartbeat:LVM-activate 리소스 에이전트를 사용하여 클러스터 리소스를 생성한다.
이때, 리소스 이름은 cluster-vg, 리소스 그룹은 SHARED-LVM으로 했다.

클러스터 노드에의해 파일시스템을 마운트하고 사용할 수 있도록 ocf:heartbeat:Filesystm 리소스 에이전트로 클러스터리소스를 생성한다.
리소스 이름은 cluster-fs, 마운트 포인트는 /shared_disk, 파일시스템은 위에서 xfs로 포맷했으므로 xfs, 리소스그룹은 vg가 속한 그룹과 같은 SHARED-LVM으로 하였다.

리소스가 잘 등록되었는지 확인 해 본다.

아래처럼 wolf1 노드에 파일시스템이 마운트 되어 있는 것을 볼 수 있다. 노드2(wolf2)에서는 파일시스템이 보이지 않는다.

wolf1을 standby로 만들어 리소스가 wolf2로 이동하도록 하고, 파일시스템을 확인해보면

이제, iscsi 방식의 shared disk를 사용할 준비가 끝났다.

위에서 클러스터 상태를 보면 VirtualIP 리소스와 shared storage 리소스가 각각 다른 노드에서 실행되고 있는 것을 알 수 있다.

이제, VirtualIP 리소스와 SHARED-LVM 리소스 그룹이 함께 작동하도록 기존 VirtualIP 리소스를 삭제하고 SHARED-LVM그룹으로 다시만든다.

기존 VirtualIP 리소스를 삭제한다.

VirtualIP 리소스가 SHARED-LVM 그룹에 속하도록 다시 만든다.

댓글 남기기

Your email address will not be published.

%d 블로거가 이것을 좋아합니다: