GlusterFS란?
GlusterFS는 NAS(Network Attached Storage) 기반의 분산파일 시스템이다. 여러 서버스토리지를 네트워크와 소프트웨어 적으로 하나의 디스크 풀로 묶은 후, Gluster Client들은 이에 마운트하여 스토리지에 접근한다.
GlusterFS는 여러가지 유형의 볼륨 형태를 제공한다.
01) Distributed Volume
옵션을 주지 않았을 때 구성되는 Glusterfs의 기본 구조이다. 파일들을 각각 brick에 저장하는 방식이다. RAID로 치면 RAID0와 비슷한 방식이다.
02) Replicated Volume
File storage에 저장할 파일들이 양쪽 brick에 복제하여 저장하는 방식의 Volume이다. RAID1과 유사하다.
03) Striped Volume
File storage에 저장할 파일 하나를 양쪽 brick에 분산하여 저장하는 방식의 Volume이다. 접근속도는 빠르겠지만 한쪽만 망가져도 데이터 손실이 발생하기 때문에, 실무에서 거의 사용하지 않을 것 같다.
04) Replicated + Distributed Volume
Brick 4개 이상을 Volume 구성에 이용할 수 있다면, 복제 분산 구조의 Volume도 생성할 수 있다. RAID1+0과 유사하다.
[01] Glusterfs rpm 설치
- OS: Rocky-Linux 8.8
- arch: x86_64
$ yum install -y glusterfs-server
아래_ Rocky Linux 기준
현재 기준, Rocky Linux는 GlusterFS 서버의 패키지를 제공하지 않는다. 따라서 Rocky Linux 환경에서 GlusterFS를 설치하려면, 별도의 yum 환경을 구성해주어야 한다.
1) GlusterFS rpm을 다운로드 하기 위해, 두개의 repository를 추가한다.
$ yum install -y epel-release
$ yum install -y centos-release-gluster9
2) "CentOS-Gluster-9.repo" 파일을 아래와 같이 수정한다.
$ vi /etc/yum.repo.d/CentOS-Gluster-9.repo
# CentOS-Gluster-9.repo
## Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
# information
[centos-gluster9]
name=CentOS-$releasever - Gluster 9
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9
baseurl=https://dl.rockylinux.org/vault/centos/8.5.2111/storage/x86_64/gluster-9/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
[centos-gluster9-test]
name=CentOS-$releasever - Gluster 9 Testing
baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-9/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
[02] Glusterfs Peer Connection
1) Gluster 인스턴스들의 /etc/hosts 파일에 glusterfs peer define
$ vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#Glusterfs
172.16.22.131 gserver01
172.16.22.132 gserver02
2) glusterd 구동
$ systemctl start glusterd
$ systemctl enable glusterd
3) Peer 연결
$ gluster peer probe gserver02
#아래 명령어로 피어 상태 확인
$ gluster peer status
Number of Peers: 1
Hostname: gserver02
Uuid: 2677731a-79a1-4c41-8eae-91cbbfe66ddb
State: Peer in Cluster (Connected)
[03] Volume 생성
1) 각 Glusterfs peer에 Gluster volume이 마운트될 디렉토리를 생성한다.
#gserver01 volume mnt
$ mkdir -p /home/gluster01/volume
#gsever02 volume mnt
$ mkdir -p /home/gluster02/volume
2) volume 생성.
- 이번에는 기본 volume인 Distibuted 구조로 생성해보았다.
$ gluster volume create glvolume gserver01:/home/gluster01/volume gserver02:/home/gluster02/volume force
volume create: glvolume: success: please start the volume to access data
3) volume 구동
$ gluster volume start glvolume
volume start: glvolume: success
#아래 명령어로 볼륨의 상태정보를 확인할 수 있다
$ gluster volume status
Status of volume: glvolume
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gserver01:/home/gluster01/volume 49152 0 Y 19394
Brick gserver02:/home/gluster02/volume 49152 0 Y 51892
Task Status of Volume glvolume
------------------------------------------------------------------------------
There are no active volume tasks
[04] Volume 마운트
Glusterfs에 접근하게될 Client에서 Gluster volume이 잡힌 디렉토리에 마운트를 해준다.
#마운트할 디렉토리 생성
$ mkdir -p /home/shared_dir
#glusterfs 마운트.
#mount -t [serverIP]:[volName] [localDirPath]
$ mount -t gserver02:glvolume /home/shared_dir
이후 인스턴스들(글러스터 서버와 클라이언트)에서 생성하는 파일이 해당 디렉토리에 공유되는 것을 확인할 수 있다.
'Engineering > Redhat Linux' 카테고리의 다른 글
[Redhat Linux] Kernel downgrade (0) | 2024.12.13 |
---|---|
[Redhat Linux] KVM을 이용하여 가상화 환경 구축하기 (2) | 2024.10.02 |
[Redhat Linux] Kickstart 이미지 만들기 (0) | 2024.08.08 |
[Redhat Linux] 5GB 용량의 임시 더미 파일 만들기 (0) | 2024.08.08 |
[Redhat Linux] root 패스워드 초기화 (0) | 2024.08.08 |