
대규모로 데이터를 저장하는 일은 하드 드라이브에 파일 하나를 저장하는 것과는 전혀 다릅니다. 회사의 파일을 구성하는 수많은 데이터 조각을 추적하고 관리하려면 별도의 소프트웨어 관리 체계가 필요합니다. 바로 이 지점에서 Ceph와 Gluster 같은 분산 스토리지 관리 솔루션이 등장합니다.
Ceph와 Gluster는 모두 분산 스토리지를 관리하기 위한 시스템입니다. 두 시스템 모두 '소프트웨어 정의 스토리지(SDS)'로 분류되는데, 이는 특정 하드웨어에 종속되지 않고 동작한다는 의미입니다. 각 시스템은 자체적인 인프라를 기반으로 데이터를 구성하며, 따라서 선택의 핵심은 "어떤 기반 프레임워크가 내 데이터를 지원할 것인가"라는 질문으로 귀결됩니다.
이 결정은 저장하려는 데이터의 유형, 데이터에 접근하는 방식, 그리고 데이터가 위치하는 환경을 종합적으로 고려해 내려야 합니다. Ceph와 GlusterFS 모두 훌륭한 선택지이지만, 각각이 진가를 발휘하는 최적의 활용 분야에는 미묘한 차이가 있습니다.
비정형 데이터를 위한 오브젝트 스토리지: Ceph

Ceph는 오브젝트 기반 시스템으로, 데이터를 파일 계층 구조가 아닌 오브젝트 형태로 관리하며 클러스터 전반에 바이너리 데이터를 분산 배치합니다. 페이스북이 이미지를 저장하고 드롭박스가 고객 파일을 저장하는 방식도 이와 유사한 오브젝트 스토리지 방식입니다. 일반적으로 오브젝트 스토리지는 대규모 비정형 데이터를 지원하므로 대용량 데이터 저장에 매우 적합합니다.
Ceph 시스템은 클러스터 모니터, 메타데이터 서버, 저널링 스토리지 형태의 데몬 네트워크에 의해 유지 관리됩니다. 이러한 요소들이 결합되어 Ceph는 강력한 성능을 발휘하지만, 경쟁 제품보다 구조가 복잡하다는 단점이 있습니다.
흔치 않은 오브젝트 및 블록 기반 스토리지 방식 때문에 Ceph는 자체적인 스토리지 관리 도구를 사용합니다. 따라서 시스템 관리자는 Ceph의 도구에 익숙해져야 하며, 내부 작동 원리는 처음에는 파악하기 어려울 수 있습니다. 즉, 그 이점을 온전히 얻으려면 작동 방식을 학습하려는 의지가 필요합니다. 다만 자가 관리·자가 치유(self-healing) 기능을 갖춘 시스템이기 때문에 시간이 지날수록 운영 비용을 절감할 수 있으며, 업계 표준 서버 하드웨어에서도 구동 가능합니다.
Ceph는 블록 스토리지도 생성할 수 있어, 클러스터 전반에 스트라이핑 및 복제가 가능한 블록 디바이스 이미지에 대한 접근을 제공합니다. 또한 애플리케이션은 Amazon S3 및 OpenStack Swift API를 지원하는 RESTful 인터페이스를 통해 Ceph 오브젝트 스토리지에 접근할 수 있습니다. 궁극적인 목표는 높은 성능, 대규모 스토리지, 그리고 기존 코드와의 호환성입니다.
계층형 트리 구조의 블록 스토리지: GlusterFS

Gluster라고 더 잘 알려진 GlusterFS는 보다 전통적인 파일 스토어 방식입니다. 설정이 쉽고, 제대로 컴파일된 빌드는 폴더를 가진 어떤 시스템에서든 사용할 수 있습니다. 이러한 유연성과 사용 편의성이 이 시스템의 가장 큰 강점입니다. 방대한 용량까지 확장할 수 있지만, 규모가 커질수록 성능이 빠르게 저하되는 경향이 있습니다. 따라서 평균 파일 크기가 큰(4MB 초과) 환경과 순차 접근(sequential access) 방식에 가장 적합합니다. 클러스터는 물리 서버, 가상 서버, 클라우드 서버에 걸쳐 구성될 수 있어 유연한 스토리지 가상화가 가능합니다.
Gluster는 블록 스토리지를 사용합니다. 즉, 데이터 덩어리(chunk)가 연결된 클러스터 디바이스의 여유 공간에 저장됩니다. 파일 및 블록 기반 스토리지는 파일을 계층형 트리 구조로 배열하는 파일 시스템을 사용합니다. Gluster는 이더넷을 통해 지리적으로 떨어진 서버들을 통합하여 확장 가능한 병렬 네트워크 파일 시스템을 구축합니다. 본질적으로 FUSE와 NFS의 클러스터 기반 버전이라 할 수 있어, 대부분의 시스템 관리자에게 익숙한 아키텍처를 제공합니다. 단순하고 유지 관리가 쉬우며 폭넓게 활용 가능하도록 설계되었지만, 적절한 조건에서 Ceph가 낼 수 있는 접근 속도만큼은 따라가지 못합니다.
결론
Ceph는 세상 파일 대부분을 차지하는 비정형 데이터의 빠른 접근에 가장 적합합니다. 반면 Gluster는 스트리밍 영상처럼 순차적 데이터 접근이 이루어지는 경우나, 백업처럼 속도가 상대적으로 중요하지 않은 애플리케이션에 더 적합합니다.
현재 여러분은 어떤 파일 스토리지 시스템을 사용하고 계신가요?