CentOS7에서 GlusterFS 클러스터 노드 추가하기
blog post
GlusterFS(이하 GFS)는 브릭(Brick)이라 불리는 GFS 전용 디스크 파일시스템을 추가하여 볼륨 크기를 조절할 수 있습니다. 이러한 브릭은 단일 GFS 노드에서 추가할 수도 있고, 다중 노드에서 브릭을 클러스터링 하여 확장할 수도 있습니다.
이번 포스트에서는 디스크를 추가하기 위해 새로운 노드를 하나 더 생성하고, 브릭을 추가하여 기존 클라이언트에 마운트 된 디스크 크기를 확장해 보도록 하겠습니다.
새로운 노드 (CentOS7)를 생성하고 해당 노드에서 아래 포스트의 1번 작업(GFS 서비스 구성하기)을 동일하게 진행합니다.
새로 추가한 노드(서버2)의 호스트 정보를 아래와 같이 기존 서버/클라이언트 노드에서 추가해 줍니다.
//서버1 노드에서
[root@server ~]# vim /etc/hosts
192.168.0.11 server2
192.168.0.151 client
//클라이언트 노드에서
[root@client ~]# vim /etc/hosts
192.168.0.6 server
192.168.0.11 server2
기존 서버 노드에서 새로 추가한 server2 노드를 피어로 추가합니다.
[root@server gfs_disk]# gluster peer probe server2
peer probe: success.
피어 상태를 확인하면 클라이언트와 서버2 노드가 탐지됩니다.
[root@server gfs_disk]# gluster peer status
Number of Peers: 2
Hostname: client
Uuid: 98576d2f-abf0-4a52-ae4e-fc500b378ac3
State: Peer in Cluster (Connected)
Hostname: server2
Uuid: e5c46127-9f9b-4990-821a-b117aa5672a4
State: Peer in Cluster (Connected)
서버2 노드의 볼륨도 확인됩니다.
[root@server gfs_disk]# gluster volume info
Volume Name: gfs_volume
Type: Distribute
Volume ID: 27d23dd1-2b66-4352-a52d-999003a22cc1
Status: Started
Snapshot Count: 0
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: server:/home/gfs_disk
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
[root@server gfs_disk]# gluster volume info
Volume Name: gfs_volume
Type: Distribute
Volume ID: 27d23dd1-2b66-4352-a52d-999003a22cc1
Status: Started
Snapshot Count: 0
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: server:/home/gfs_disk
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
이제 서버2의 노드에서 공유된 브릭을 추가해줍니다. 이때 서버2에서 생성한 볼륨명(gfs_volume)과 해당 볼륨의 디스크 경로(server2:/home/gfs_disk)를 아래와 같이 본인이 생성한 노드 정보에 맞게 설정합니다.
* 참고: 만약 server2 노드에서 루트 파티션 상에 gfs 파티션을 생성하였을 경우, 경고와 함께 진행되지 않습니다. 아래와 같이 [force]옵션을 추가하여 강제로 볼륨을 생성할 수 있으나, 별도의 물리 디스크를 추가하여 파티셔닝 후 해당 파티션을 gfs 볼륨으로 사용할 것을 강력하게 권고합니다. 이번 예시에서는 별도 디스크에 마운트되지 않은 /home 디렉토리를 사용한 관계로, force를 사용했습니다.
[root@server ~]# gluster volume add-brick gfs_volume server2:/home/gfs_disk force
volume add-brick: success
볼륨정보를 확인해 보면, Brick이 두 개(Brick1, Brick2) 잡힌 것을 확인할 수 있습니다.
[root@server ~]# gluster volume info
Volume Name: gfs_volume
Type: Distribute
Volume ID: 27d23dd1-2b66-4352-a52d-999003a22cc1
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server:/home/gfs_disk
Brick2: server2:/home/gfs_disk
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
볼륨 정보를 다시 리밸런싱해 줍니다.
[root@server ~]# gluster volume rebalance gfs_volume fix-layout start
volume rebalance: gfs_volume: success: Rebalance on gfs_volume has been started successfully. Use rebalance status command to check status of the rebalance process.
ID: 4730471f-015a-4a4a-b051-ff92ec6c92d1
볼륨 상태를 확인해보면 server2의 볼륨이 정상적으로 마운트된 것을 확인할 수 있습니다.
[root@server ~]# gluster volume status
Status of volume: gfs_volume
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick server:/home/gfs_disk 49152 0 Y 85723
Brick server2:/home/gfs_disk 49152 0 Y 21621
Task Status of Volume gfs_volume
------------------------------------------------------------------------------
Task : Rebalance
ID : 74a03d20-0d9f-44b2-9cfd-de16b1d18629
Status : completed
마지막으로 추가 마운트 한 디스크를 통해 파일 공유가 잘 진행되는지 확인해봅니다.
서버2 노드의 /home/gfs_disk 디렉토리에서 테스트 파일을 생성합니다.
[root@server2 gfs_disk]# touch test2.txt
클라이언트 노드에서 파일을 확인할 수 있습니다.
[root@client mnt]# ls
test2.txt
클라이언트에서 마운트된 서버의 disk 크기도 증가하는 것을 확인할 수 있습니다
//brick 추가 전
[root@client ~]# df -h
server:/gfs_volume 8.5G 6.6G 1.9G 78% /mnt
//brick 추가 후
[root@client mnt]# df -h
server:/gfs_volume 26G 17G 9.6G 64% /mnt
'Linux > Linux Operation' 카테고리의 다른 글
CentOS7에서 GlusterFS(GFS)를 활용하여 파일 시스템 마운트 하기 (0) | 2020.10.03 |
---|---|
CentOS7에서 NTP 서버 구축으로 시간 동기화 하기 (0) | 2020.09.30 |
[Linux] CentOS8에서 웹 서버를 활용한 개인 Yum Repository 서버 구축하기 (0) | 2020.04.09 |
[RHCSA 준비] SELinux 개념과 유용한 명령어 (0) | 2017.02.27 |
[RHCSA 준비] FreeIPA 서버 구축하기 (0) | 2017.02.26 |
[RHCSA 준비] 아파치 서버 구성하기 (0) | 2017.02.26 |
[RHCSA 준비] 킥스타트 서버 구성하기 (0) | 2017.02.26 |