스토리지는 그 형태나 구조에 따라 다양한 종류가 있습니다. 그리고 대부분은 크게 다르지 않습니다. 데이터를 보관하고 필요할 때 꺼내쓴다는 점에서 더욱 그러합니다. 오브젝트 스토리지 또한 기존의 그것과 다르지 않음에도 불구하고 올바로 이해하고 있지 않거나 일부 오해가 있는 것이 사실입니다. 이 포스트는 오브젝트 스토리지의 구조와 형태 그리고 동작 방식에 대해서 기술합니다.

1. 오브젝트 스토리지는 무엇인가

오브젝트 스토리지는 무엇일까요? 흔히 접할 수 있는 정의는 다음과 같습니다.

데이터에 Unique ID를 부여하여, 컨테이너/버킷에 저장하고, 필요한 데이터가 있을 경우 부여했던 ID를 통해 호출하여 사용하는 스토리지.

오브젝트 스토리지를 이해할 때 가장 많이 등장하는 개념은 발렛-파킹 입니다. 내 차를 어디에 주차할 것인지, 어떻게 주차할 것인지 고민하지 않아도 되며, 주차 위치를 기억 해 두었다가 찾으러 가는 수고도 덜 수 있습니다. 차를 맡길 때 받았던 딱지(?)를 건네 주는 것으로 내 차를 찾을 수 있습니다.

오브젝트 스토리지는 앞서 언급한 발렛파킹과 매우 유사합니다. 데이터를 저장할 위치와 방법에 대해서 고민하지 않아도 됩니다. 필요한 데이터가 있을 경우 찾아다니지 않아도 되며, 그저 요청하기만 하면 됩니다. 과연 어떻게 동작하는지 조금 더 자세히 알아보겠습니다.

우리 주변에 널린 각종 디지털 데이터는 최초 정형화된 형태로 탄생하였습니다. 데이터들은 어떠한 기준을 근거로 구분하거나 계층화할 수 있는 데이터들이 많았습니다. 그러나 근래 들어서는 어떠한 기준으로도 이를 정의하거나 구분할 수 없는 데이터가 급증하고 있습니다. 전자를 정형 데이터(Structured Data), 후자를 비정형 데이터(Unstructured Data)라 일컫습니다.

한 가지 예를 들어 볼까요? A회사의 모든 임직원에 대한 정보는 정형 데이터 입니다. 이름과 나이, 입사년월, 소속부서, 담당업무, 직급 등에 대한 정보는 손쉽게 구분하고 계층화 할 수 있습니다. 이러한 데이터는 주로 관계형 데이터베이스(RDB)에 보관하는 것이 전통적인 방법이었습니다. 그럼 ‘영화아바타.AVI’라는 파일은 정형 데이터일까요? 이 데이터를 파일-디렉토리 구조에 보관한다고 가정 해 봅시다. ‘영화’-‘2009년’-‘SF’ 라는 3개의 디렉토리 구조를 만들어 보관하는 것이 가장 일반적인 형태일 것입니다. 과연 이것이 올바른 저장 방법일까요?

이러한 비정형 데이터가 통제하기 어려울 만큼 늘어나고 있고, 그에 따른 효과적이고 새로운 저장 방법의 필요성이 대두됨에 따라 요구사항에 대응하기 위한 효과적인 스토리지가 바로 오브젝트 스토리지 입니다.

2. 오브젝트 스토리지는 어떻게 동작하는가

이미 언급하였듯, 비정형 데이터는 통제가 어려울 정도로 증가하고 있고, 스토리지 장치는 용량이 증가하는 동시에 가격은 낮아지고 있습니다. 용량의 증가는 매우 많은 문제에 직면하게 됩니다. 직면한 가장 큰 문제는 ‘어떻게 저장할 것인가-‘, ‘어떻게 보호할 것인가-‘ 입니다. 스토리지의 용량 증가는 데이터를 보호하고 보존하는 전통적인 방법에 대한 제약이 됩니다. RAID와 같은 전통적인 데이터 보호 기술은 페타바이트 규모 이상의 디지털 정보를 보호하는데 적합하지 않습니다. 기존 스토리지 아키텍처는 페타바이트 규모로 확장할 수 있도록 설계되지 않았습니다. 이러한 아키텍처는 안전성과 신뢰성은 낮으면서 가격은 높습니다.많은 양의 비정형 데이터를 저장해야 하는 기업은 기존 스토리지 솔루션 이외의 옵션과 새로운 방식을 검토해야 합니다.

오브젝트 스토리지는 데이터를 분할해서 저장하는 IDA(Information Dispersal Algorithm)기술을 적용합니다. IDA는 독일 출신의 이스라엘 컴퓨터 과학자인 Michael Oser Rabin 박사에 의해 최초 제안되었으며, 그 개념을 각자의 방식으로 보다 효율적인 방법에 기반하여 수정/보완하여 제품에 탑재하고 있습니다. IBM은 이를 매우 효율적으로 개량하여 독자적인 특허를 취득하였습니다. IBM Cloud Object Storage 시스템은 대량의 비정형 데이터를 저장하고 보안, 가용성 및 신뢰성을 유지하는 혁신적인 방식을 제안합니다. IDA 분산 저장 기술을 사용하여 데이터를 작은 조각으로 나누며, 나뉘어진 작은 조각(Slice)는 네트워크를 통해 로컬 또는 전 세계의 스토리지 노드에 분산 저장됩니다. 분산된 스토리지 노드는 하나의 단일 네임스페이스의 스토리지를 구성하며, 데이터의 전송과 저장 과정에서 데이터의 완전한 복사본이 그 어디에도 존재하지 않기 때문에 매우 효율적으로 데이터를 보관할 수 있으며, 전체를 구성하는 노드 중, 일부 노드에만 접근하는 것으로 데이터를 검색할 수 있습니다. IBM Cloud Object Storage의 분산 아키텍처에 대한 상세 내용은 아래 링크를 통해 참조하십시요.

https://developer.ibm.com/kr/cloud/2016/11/17/distributed_storage_guide

3. 오브젝트 스토리지에는 어떻게 접근하는가

오브젝트 스토리지는 모든 데이터가 평면에 저장됩니다. 달리 말하면, 폴더 또는 디렉토리로 복잡하게 구성되는 계층 구조가 없다는 점이 가장 큰 차이점입니다. 하나의 오브젝트는 데이터와 메타데이터, 고유식별번호 등이 포함되며, 마운트 포인트가 없는 것이 특징입니다. 여러 노드의 하드웨어로 구성되지만 단일 네임스페이스로 접근이 가능하며 앞서 설명하였듯 데이터가 어디에- 어떻게- 저장되는지 관리나 통제할 필요 없이 저장이 가능하며, 저장된 데이터를 사용할 때에도 저장된 오브젝트의 위치를 통해 접근하는 전통적인 형태와 달리 고유 식별번호를 통해 데이터에 접근합니다.

전통적으로 애플리케이션이 데이터에 접근하기 위해서는 저장된 또는 저장을 위한 스토리지를 운영체제에 마운트 해야 합니다.(raw device형태로 접근하는 경우는 제외합니다.) 윈도우즈는 C:\ D:\ E:\ 와 같은 형태로 마운트 하며 리눅스 및 유닉스 운영체제는 /mount-point 형태로 마운트 됩니다. 마운트를 위해서는 파일시스템을 생성해야 하며, SAN 스토리지의 경우 파일시스템의 생성 및 관리는 운영체제가 담당하며,(이러한 이유로 다른 종류의 운영체제 간 스토리지는 cross-mount 되지 않습니다.) NAS 스토리지의 경우에는 스토리지에 탑재된 운영체제가 담당합니다.

애플리케이션이 데이터에 접근하기 위해서는 마운트 지점과 그 내부의 디렉토리 구조에 따라 데이터의 위치를 찾거나 해당 위치에 저장하는 형태를 가집니다. 이는 비단 엔터프라이즈 어플리케이션에만 해당되는 것이 아닙니다. 여러분들께서 사용하고 있는 각종 어플리케이션들이 어떤 데이터를 불러오기 위해서는 읽고자 하는 데이터의 위치 정보를 어플리케이션에 제공하고 해당 위치에 있는 파일을 선택하여 불러오는 것이 일반적입니다. 이것이 바로 전통적인 접근 방법입니다.

오브젝트 스토리지는 API를 제공하며 모든 통신은 http(s)에 기반합니다. 앞서 언급했듯, 모든 데이터는 평면상에 저장되며 디렉토리와 같은 계층 구조를 가지지 않습니다. 데이터 접근을 위해서는 해당 데이터의 고유 식별번호가 필요합니다. 제공하는 API의 종류는 오브젝트 스토리지 제공자에 따라 달라지지만, 일반적으로 GET() API를 통하여 오브젝트를 호출할 수 있습니다. 호출을 원하는 오브젝트의 고유식별자를 인자로 하여 오브젝트를 호출하면 마치 발렛파킹을 하였던 자동차를 찾을 때 처럼 데이터를 불러올 수 있게 됩니다. 반대로 저장할 경우에는 PUT() API를 이용할 수 있습니다. 여러 개의 노드와 구분된 물리적 사이트/데이터센터는 하나의 논리적 시스템으로 구성되며, 데이터의 복제와 분산은 별도의 솔루션을 탑재하여 수행하는 전통적인 방식과는 달리, 오브젝트별 정책에 따라 수행됩니다.

4. 마치며

전통적인 스토리지는 대용량, 비정형 데이터의 저장과 보관에 적합하지 않습니다. 앞서 설명한 내용들을 기반으로, IBM Cloud Object Storage는 페타바이트, 엑사바이트까지 매우 손쉽게 확장이 가능하며, 물리적 비트오류나 드라이브, 서버, 컨테이너의 오류에도 100% 데이터 무결성을 유지할 수 있는 높은 가용성, AONT(All-or-nothing Transformation)을 통한 높은 보안성을 제공할 수 있으며, 높은 비용이 필요한 복제를 원천적으로 제거하여 최대 5배의 비용을 절감하는 동시에, 논리적으로 4개의 복제된 데이터 복사본과 동일한 가용성을 제공합니다. 그 외에도 설치 및 냉각 비용과 상면 등의 추가 비용에 대한 부담도 줄일 수 있습니다. 그리고 무엇보다 중요한 한 가지는, 모든 시스템 및 데이터가 클라우드로 이동할 수 없다는 대전제 하에 on-prem/off-prem 아우르는 형태의 Hybrid Cloud Object Storage를 제공받을 수 있는가- 에 대한 부분입니다. 결국 데이터를 어디에 저장할 것인가- 어떻게 관리할 것인가- 에 대한 원전척인 이슈를 완전히 제거하기 위함입니다. IBM은 이 문제에 대한 해답을 유일하게 제공합니다.