좋습니다. 이번에는 GlusterFS에 대해 자세하고 기술적으로 정리해드리겠습니다. GlusterFS는 Ceph와 함께 많이 비교되는 오픈소스 분산 파일 시스템 중 하나입니다.
GlusterFS는 Red Hat에서 주도하는 오픈소스 분산 파일 시스템으로, 여러 대의 서버의 로컬 디스크를 묶어 하나의 큰 파일 시스템처럼 사용할 수 있도록 설계된 시스템입니다.
파일 단위의 스토리지 공유 (NAS 기반)
로컬 디스크를 네트워크를 통해 연결해 하나의 볼륨처럼 구성
확장성, 고가용성, 단순한 구조가 장점
POSIX 준수 파일 시스템
NFS, SMB, FUSE, CIFS를 통한 접근 지원
기능 |
설명 |
---|---|
분산 스토리지 |
여러 서버의 디스크를 하나의 논리적 볼륨으로 구성 |
확장성 |
노드 추가만으로 스토리지 용량 확장 가능 |
고가용성 |
복제/중복 구성으로 서버 장애 시 자동 failover |
유연한 볼륨 타입 |
Distributed, Replicated, Dispersed (Erasure Coding) 등 지원 |
운영 편의성 |
CLI 기반의 단순한 관리 인터페이스 |
클라이언트 접근 |
FUSE, NFS, SMB, CIFS, iSCSI (특정 구성) |
오픈소스 |
라이선스 비용 없이 사용 가능 |
GlusterFS는 크게 다음과 같은 구조로 구성됩니다.
Brick: 실제 데이터를 저장하는 기본 단위 (디렉터리)
Volume: 여러 Brick을 묶어 구성된 논리적 스토리지 단위
GlusterD: 클러스터를 관리하는 데몬
Translator: 데이터 처리 로직 (replication, distribute 등 처리)
Client: GlusterFS 볼륨을 마운트해서 사용하는 노드
구성 예시:
# Brick 구성
Node1:/data/brick1
Node2:/data/brick2
# Volume 생성
gluster volume create myvol replica 2 Node1:/data/brick1 Node2:/data/brick2
유형 |
설명 |
---|---|
Distributed |
데이터를 Brick에 분산 저장 (복제 없음) |
Replicated |
모든 데이터를 모든 Brick에 동일하게 저장 |
Distributed-Replicated |
여러 Brick 그룹마다 복제를 적용하고, 전체적으로 분산 저장 |
Dispersed |
Erasure Coding 기반의 고효율 스토리지 절감 복구형 구성 |
장점 |
단점 |
---|---|
단순한 구조로 관리 쉬움 |
많은 파일 수에 대해 메타데이터 성능 저하 가능 |
노드 추가로 손쉬운 확장 |
대규모 클러스터에선 Ceph보다 성능 낮음 |
POSIX 호환 |
MDS(메타데이터 전용 서버)가 없어 메타데이터 성능이 제한될 수 있음 |
여러 마운트 방식 지원 |
클러스터 재구성 시 데이터 정합성 주의 필요 |
FUSE 방식
glusterfs 패키지 설치 후 마운트
mount -t glusterfs node1:/myvol /mnt/glusterfs
NFS, SMB 방식
GlusterFS 자체 NFS 또는 Samba 연동 가능
Kubernetes CSI 연동
GlusterFS를 Kubernetes 볼륨으로 연동 가능
중소기업 파일 서버 통합
웹 서버 간 파일 공유 (예: Apache, Nginx)
개발 환경에서 코드 공유
Kubernetes 저장소 (Heketi, CSI 사용)
항목 |
GlusterFS |
CephFS |
---|---|---|
아키텍처 |
Peer to Peer |
MON + MDS + OSD |
구성 복잡도 |
낮음 |
높음 |
메타데이터 서버 |
없음 (분산 메타데이터) |
전용 MDS 존재 |
사용 용도 |
파일 공유, NAS 대체 |
고성능, 대용량, 클라우드 |
확장성 |
중간 ~ 높음 |
매우 높음 |
데이터 복제 |
볼륨 수준 |
객체 수준 |
성능 |
메타데이터 작업이 느릴 수 있음 |
캐시 활용 가능, 고성능 |
저장소 추가 및 패키지 설치
dnf install centos-release-gluster
dnf install glusterfs-server
systemctl enable --now glusterd
피어 연결
gluster peer probe node2
볼륨 생성 및 시작
gluster volume create myvol replica 2 node1:/data/brick1 node2:/data/brick2
gluster volume start myvol
마운트
mount -t glusterfs node1:/myvol /mnt
명령 |
설명 |
---|---|
gluster peer status |
클러스터 피어 상태 확인 |
gluster volume info |
볼륨 정보 확인 |
gluster volume stop <name> |
볼륨 중지 |
gluster volume add-brick |
브릭 추가 (확장) |
gluster volume remove-brick |
브릭 제거 |
gluster volume rebalance |
볼륨 데이터 리밸런싱 |
GlusterFS는 관리가 쉬우면서도 고가용성과 확장성을 갖춘 분산 파일 시스템으로, 소규모에서 중간 규모의 NAS 대체 또는 웹서버, 개발 환경 공유 스토리지로 적합합니다.
대규모 클러스터, 고성능 필요 시에는 CephFS가 적합하지만, 단순하고 빠른 구축이 필요할 경우 GlusterFS는 매우 유용한 대안입니다.
필요하시다면 다음 정보도 제공 가능합니다:
GlusterFS 고가용성 구성 (failover 처리)
Kubernetes 연동 예시 (Heketi, CSI)
성능 튜닝 방법
GlusterFS vs NFS 실제 성능 비교
원하시는 방향이나 구축 환경이 있다면 알려주시면 맞춤으로 더 설명드리겠습니다.