CentOS7에서 GlusterFS 클러스터 노드 추가하기

blog post 

 

 

GlusterFS(이하 GFS)는 브릭(Brick)이라 불리는 GFS 전용 디스크 파일시스템을 추가하여 볼륨 크기를 조절할 수 있습니다. 이러한 브릭은 단일 GFS 노드에서 추가할 수도 있고, 다중 노드에서 브릭을 클러스터링 하여 확장할 수도 있습니다.

 

이번 포스트에서는 디스크를 추가하기 위해 새로운 노드를 하나 더 생성하고, 브릭을 추가하여 기존 클라이언트에 마운트 된 디스크 크기를 확장해 보도록 하겠습니다.

 

 

1. 새로운 노드 구성 

 

 

새로운 노드 (CentOS7)를 생성하고 해당 노드에서 아래 포스트의 1번 작업(GFS 서비스 구성하기)을 동일하게 진행합니다.

 

 

CentOS7에서 GlusterFS(GFS)를 활용하여 파일 시스템 마운트 하기

blog post GlusterFS (이하 GFS)는 네트워크 기반 파일 시스템으로, gfs 서버-클라이언트간 스토리지 마운트를 통한 파일 공유는 물론, 클러스터링 및 이중화 구성까지, 다양한 기능을 제공하는 스토리��

itguava.tistory.com

 

 

2.  브릭(Brick) 추가하기

 

새로 추가한 노드(서버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              

 

 

3. 테스트

 

 

마지막으로 추가 마운트 한 디스크를 통해 파일 공유가 잘 진행되는지 확인해봅니다.

서버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

 

TAGS.

Comments