핵심 인사이트 (3줄 요약)

  1. 앞 장의 Ceph가 밑바닥부터 뜯어고친 복잡한 범용 스토리지 생태계라면, **GlusterFS(글러스터FS)**는 오로지 **"수많은 서버의 빈 하드디스크들을 묶어 하나의 거대한 공유 폴더(File System)로 만드는 것"**에 극한으로 집중한 기술이다.
  2. Ceph처럼 메타데이터 서버(장부)를 두지 않고, Elastic Hash Algorithm을 이용해 파일이 저장될 위치를 수학적으로 계산하여 흩뿌리므로 병목이 없다.
  3. 구조가 매우 직관적이고 설정이 쉬워, 대용량 미디어 파일(동영상, 백업 파일)을 보관하는 싼 값의 스케일 아웃 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이 관리 중)

  1. Brick (벽돌): 서버 1대에 꽂힌 평범한 하드디스크 폴더(예: /mnt/disk1)를 Brick이라고 부릅니다.
  2. Volume (거대한 집): 여러 서버에 있는 수백 개의 Brick들을 네트워크로 엮어서, 논리적으로 커다란 1개의 Volume으로 만듭니다.
  3. 탄력적 해싱 (Elastic Hash): 사용자가 볼륨에 movie.mp4를 저장하려 합니다. GlusterFS는 이 파일 이름을 해시 공식에 넣어 "아, 이건 3번 서버의 Brick에 넣어라!"라고 즉시 계산해 던집니다. (중앙 장부/마스터 노드가 없습니다!)

3가지 주요 볼륨 볼륨 방식

  1. 분산 볼륨 (Distributed Volume): 파일을 쪼개지 않고, 1번 파일은 A 서버에, 2번 파일은 B 서버에 그냥 무작위로 흩뿌립니다. (용량 확장 최적)
  2. 복제 볼륨 (Replicated Volume): 1번 파일을 A 서버와 B 서버에 똑같이 2개(거울처럼) 씁니다. 하나가 고장 나도 안전합니다. (보안 최적, 용량 절반 손해)
  3. 분산-복제 볼륨 (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분 만에 뚝딱 구축하고 싶을 때 쓰는 가볍고 심플한 툴입니다. 구조가 단순해 고장 났을 때 리눅스 엔지니어가 직접 폴더를 뒤져서 복구하기가 매우 쉽습니다.