핵심 인사이트 (3줄 요약)
- 앞 장의 Ceph가 밑바닥부터 뜯어고친 복잡한 범용 스토리지 생태계라면, **GlusterFS(글러스터FS)**는 오로지 **"수많은 서버의 빈 하드디스크들을 묶어 하나의 거대한 공유 폴더(File System)로 만드는 것"**에 극한으로 집중한 기술이다.
- Ceph처럼 메타데이터 서버(장부)를 두지 않고, Elastic Hash Algorithm을 이용해 파일이 저장될 위치를 수학적으로 계산하여 흩뿌리므로 병목이 없다.
- 구조가 매우 직관적이고 설정이 쉬워, 대용량 미디어 파일(동영상, 백업 파일)을 보관하는 싼 값의 스케일 아웃 NAS(Network Attached Storage) 대용으로 널리 사랑받는다.
Ⅰ. 파일 스토리지(NAS) 확장의 한계
회사에 영상 편집팀이 쓸 공유 폴더(NAS)를 100TB짜리 샀습니다. 그런데 영상이 많아져 용량이 꽉 찼습니다.
일반적인 NAS는 박스를 하나 더 사면, 주소가 \\192.168.0.1에서 \\192.168.0.2로 쪼개집니다.
용량이 찰 때마다 드라이브(Z:, Y:, X:)가 계속 늘어나 관리자도, 사용자도 어느 폴더에 무슨 파일이 있는지 미쳐버리게 됩니다.
원하는 것: "서버를 10대를 붙이든 100대를 붙이든, 사용자 눈에는 그냥 용량이 무한대로 늘어나는 'Z: 드라이브' 하나로만 보이게 할 순 없을까?"
📢 섹션 요약 비유: 서랍장이 꽉 찰 때마다 방에 서랍장을 하나씩 새로 사다 놨더니, 방 안에 서랍장이 100개가 되어 양말 하나 찾으려면 100개를 다 열어봐야 하는 짜증 나는 상황입니다.
Ⅱ. GlusterFS의 단순하고 무식한 마법 (Brick & Volume)
GlusterFS는 이 문제를 소프트웨어적으로 아주 심플하게 해결합니다. (현재 Red Hat이 관리 중)
- Brick (벽돌): 서버 1대에 꽂힌 평범한 하드디스크 폴더(예:
/mnt/disk1)를 Brick이라고 부릅니다. - Volume (거대한 집): 여러 서버에 있는 수백 개의 Brick들을 네트워크로 엮어서, 논리적으로 커다란 1개의 Volume으로 만듭니다.
- 탄력적 해싱 (Elastic Hash): 사용자가 볼륨에
movie.mp4를 저장하려 합니다. GlusterFS는 이 파일 이름을 해시 공식에 넣어 "아, 이건 3번 서버의 Brick에 넣어라!"라고 즉시 계산해 던집니다. (중앙 장부/마스터 노드가 없습니다!)
3가지 주요 볼륨 볼륨 방식
- 분산 볼륨 (Distributed Volume): 파일을 쪼개지 않고, 1번 파일은 A 서버에, 2번 파일은 B 서버에 그냥 무작위로 흩뿌립니다. (용량 확장 최적)
- 복제 볼륨 (Replicated Volume): 1번 파일을 A 서버와 B 서버에 똑같이 2개(거울처럼) 씁니다. 하나가 고장 나도 안전합니다. (보안 최적, 용량 절반 손해)
- 분산-복제 볼륨 (Distributed-Replicated): 두 가지를 섞어서, 파일을 흩뿌리되 무조건 쌍둥이 서버에 복사본을 1개씩 더 남겨두는 실무 최고의 베스트셀러 세팅입니다.
아키텍처 모식도 (ASCII)
[ 사용자 PC ] ── "Z: 드라이브 (크기: 300TB)에 저장해 줘!" ──▶ [ GlusterFS Client (해싱 계산) ]
│
┌──────────────────────────────────────────────┘
│ (알아서 3대의 서버로 분산 저장됨)
▼
╔════════════════════════════════════════════════════════════════════════╗
║ [ 서버 A (Brick 1) ] [ 서버 B (Brick 2) ] [ 서버 C (Brick 3) ] ║
║ 100TB HDD 100TB HDD 100TB HDD ║
╚════════════════════════════════════════════════════════════════════════╝
(서버 D를 추가하면 1초 만에 전체 용량이 400TB로 늘어남)
📢 섹션 요약 비유: 서랍장 100개를 샀지만, 그 앞에 마법의 컨베이어 벨트를 뒀습니다. 양말을 던져 넣으면 이름(해시)에 따라 알아서 34번 서랍장에 들어가고, 뺄 때도 '양말'이라고 외치면 34번 서랍에서 바로 튀어나오므로, 사용자 눈에는 그냥 '무한히 커지는 1개의 옷장'으로만 보입니다.
Ⅲ. Ceph vs GlusterFS (무엇을 쓸까?)
둘 다 분산 스토리지지만 철학이 다릅니다.
- Ceph: 가상 머신의 쌩쌩 돌아가는 C드라이브(블록 스토리지)가 필요하거나, 클라우드 환경(OpenStack)을 완벽하게 세팅하고 싶을 때 쓰는 무겁고 거대한 만능 툴입니다. (셋팅이 매우 어려움)
- GlusterFS: 그냥 회사에 남는 서버 수십 대 엮어서, 거대한 동영상 파일 보관용, 백업용 공유 폴더(NAS)를 10분 만에 뚝딱 구축하고 싶을 때 쓰는 가볍고 심플한 툴입니다. 구조가 단순해 고장 났을 때 리눅스 엔지니어가 직접 폴더를 뒤져서 복구하기가 매우 쉽습니다.