다수를 지휘하는 하나의 오케스트레이션, 클라우드 스토리지 오케스트레이션(Cloud Storage Orchestration)

민첩성(Agility)과 유연성(Flexibility)을 가진 클라우드 시스템을 만들기 위해서는 서버, 네트워크, 스토리지를 자동화하기 위한 기술이 필수적입니다. 스토리지는 제조사마다 서로 다른 시스템으로 제어하기 때문에 자동화가 매우 어렵습니다. 따라서 클라우드 서비스 제공 회사에서는 스토리지 자동화를 위해 하나의 제조사 스토리지만 사용하거나 스토리지 자동화 기술을 자체 개발하여 사용합니다. 삼성SDS에서는 기업용 클라우드 서비스, 삼성 클라우드 플랫폼(Samsung Cloud Platform)의 스토리지 자동화를 위해 자체 개발한 기술이 있습니다. 바로 클라우드 스토리지 오케스트레이션(Cloud Storage Orchestration)기술인데요, 이에 대해 자세히 살펴보겠습니다.

클라우드 기술 백서 관련하여 궁금하신 사항은 이곳으로 문의주세요.

클라우드 스토리지가 중요한 이유

민첩성(Agility)과 유연성(Flexibility)을 가진 클라우드 시스템을 만들기 위해서는 서버, 네트워크, 스토리지를 자동화하기 위한 기술이 필수적입니다.
특히, 스토리지는 데이터 접근방식에 따라 크게 블록 스토리지(Block Storage), 파일 스토리지(File Storage), 오브젝트 스토리지(Object Storage)로 나누어집니다. 스토리지는 벤더마다 서로 다른 시스템을 가지고 있기 때문에 앞서 말한 자동화가 매우 어렵습니다. 이에 각 클라우드 회사에서는 클라우드 스토리지 자동화를 위해 하나의 벤더 스토리지를 전용으로 자동화하여 사용하거나 자체 클라우드 스토리지를 개발해서 자동화하는 등 상황에 맞는 시스템을 개발해서 적용합니다. 당사 또한 삼성 클라우드 플랫폼 (Samsung Cloud Platform)의 스토리지 자동화를 위해 자체 기술로 개발한 스토리지 오케스트레이션(Storage Orchestration) 기술을 적용하였습니다.

스토리지 오케스트레이션(Storage Orchestration)이란?

스토리지 오케스트레이션 은 여러 벤더와 기종의 스토리지를 통합, 제어, 운영하고 스토리지 데이터를 수집, 분석하여 최적의 스토리지 볼륨을 사용자에게 제공하는 기술을 말합니다.
이전에는 데이터를 각 서버 내에 저장하거나 각각의 스토리지에 저장하여 관리했으나, 현재는 클라우드 안에 훨씬 많은 데이터를 저장하고 관리합니다. 따라서 클라우드 시스템은 하나의 스토리지가 아닌 다수의 스토리지를 사용하여 시스템을 구성해야 합니다. 이러한 스토리지는 NetApp, Dell EMC, HPE 등 많은 벤더가 공급하고 있으며 저장 방식, 스펙 등에 따라 여러가지 스토리지 제품이 있습니다.

개별 스토리지 제품 사용의 한계

각각의 스토리지 제품에는 서로 다른 스토리지 기술이 내재되어 있습니다. 기술 역시 빠르게 변화하여 새로운 유형의 스토리지가 나타나거나 기존 스토리지 기술이 사라지는 등의 변화를 쉽게 찾아 볼 수 있습니다. 이에 따라 각 스토리지 벤더는 최신 기술을 적용한 다양한 스토리지를 빠르게 출시하고 있으며 클라우드는 이러한 기술들을 적극 활용하여 성능과 안정성을 높이는 노력을 지속해야 합니다. 하지만 아무리 좋은 기술이라도 클라우드에 사용하기 위해서는 스토리지 벤더 고유의 시스템을 이해하고 사용해야 하며 볼륨 생성/수정/삭제와 같이 수시로 일어나는 작업을 엔지니어가 일일이 작업해야 하는데, 그것은 클라우드 서비스의 민첩성울 떨어뜨리는 원인이 될 수 있습니다. 게다가, 만일 스토리지 벤더가 제공한 자동화 솔루션을 통해 클라우드 시스템을 개발했다면 벤더 제품에 Lock-in 되기 때문에 더 저렴하거나 성능과 기능이 좋은 새로운 스토리지가 출시된다고 해도 기존 Lock-in 제품을 계속해서 사용해야 하므로 보다 경쟁력 있는 클라우드 시스템을 만들기 어렵습니다.

과거의 데이터 저장 방식은 서버 내부 DISK에만 적은 데이터를 저장하는 방식이었습니다. 그러나 현재는 수많은 데이터 저장을 위해 서버 내부 DISK와 별도의 다수 스토리지를 사용해서 저장하고 있습니다.

[그림1] 데이터 저장방식의 변경

스토리지 오케스트레이션의 주요 특징

스토리지 오케스트레이션은 여러 벤더, 여러 기종의 스토리지를 단일 요청만으로 제어할 수 있는 솔루션으로 애플리케이션과 연동하여 스토리지 제어 관리 자동화가 가능합니다. 또한 자동 볼륨 할당(Autonomous Volume Allocation) 기술을 적용하여 스토리지 데이터를 분석하고 최적의 스토리지를 선정, 볼륨을 생성함으로써 클라우드에서 스토리지 벤더와 기종에 구애 받지 않고 다수의 스토리지를 보다 효율적으로 사용할 수 있습니다. 스토리지 오케스트레이션을 적용하여 앞서 이야기 한 Lock-in과 같은 문제점들을 해결할 뿐만 아니라 더 발전된 모습의 클라우드 스토리지 시스템을 만들 수 있습니다. 스토리지 오케스트레이션은 솔루션으로써 클라우드뿐 아니라 여러 벤더, 여러 기종의 스토리지를 사용하는 그 어떤 애플리케이션도 이 스토리지 오케스트레이션을 사용하여 시스템을 구성할 수 있으며, 또한 보다 쉽게 스토리지 시스템을 구성할 수 있습니다.

어플리케이션(e.g. 클라우드 시스템)과 스토리지 오케스트레이션(STORAGE ORCHESTRATION) 시스템을 연동하는 모습을 보여주는 인포그래픽입니다. 스토리지 오케스트레이션은 여러 벤더, 여러 기종의 스토리지를 단일 요청만으로 제어할 수 있는 솔루션입니다.

[그림2] 애플리케이션과 스토리지를 연결하는 스토리지 오케스트레이션

[여기서 잠깐!] 자동 볼륨 할당 기술(Autonomous Volume Allocation)이란?

Autonomous Volume Allocation은 자동 볼륨 할당 기술로, 컴퓨터 시스템이 스토리지 디바이스를 자동으로 인식하고, 필요에 따라 스토리지 용량을 할당하는 기술을 의미합니다.
이 기술은 일반적으로 가상화 환경에서 사용되며, 가상화된 서버 또는 가상 머신에 필요한 스토리지 용량을 더욱 효율적으로 관리할 수 있도록 합니다.
예를 들어, 가상 머신이 실행 중인 경우, 추가 스토리지 디바이스를 자동으로 감지하고 이를 가상 머신에 할당할 수 있습니다. 또한, 스토리지 디바이스의 용량이 부족한 경우, 필요한 용량을 자동으로 할당하여 가상 머신의 성능을 유지할 수 있습니다. 이러한 기술은 스토리지 관리를 자동화하고 운영자의 수동 개입을 최소화하여 시스템의 안정성과 가용성을 높일 수 있습니다.

스토리지 오케스트레이션 CSI (Storage Orchestration Container Storage Interface)

쿠버네티스(Kubernetes) 환경에서 구동되는 애플리케이션에서 보다 손쉽게 스토리지를 사용할 수 있도록 Storage Orchestration CSI를 개발했습니다. 쿠버네티스에서 스토리지 볼륨을 사용하는 방식은 PV(Persistent Volume), SC(Storage Class)라는 객체를 이용하여 생성하고 관리합니다. 하지만 PV, SC를 사용하는 것만으로는 스토리지 내 볼륨을 생성하고 변경할 수 없습니다. 이러한 문제를 해결하기 위해서 Storage Orchestration CSI는 쿠버네티스에서 제공하는 CSI(Container Storage Interface)라는 표준 라이브러리를 기반으로, 쿠버네티스 환경에서 스토리지 통합 제어가 가능하도록 만든 솔루션입니다. 이를 통해 사용자는 SC 구성 후 PV를 생성하는 것만으로도 스토리지 내 볼륨 생성, 변경이 가능해집니다.

또한 SOV(Storage Orchestration Volume)를 쿠버네티스 CRD(Custom Resource Definition)을 기반으로 개발했으며, 이로써 각 볼륨의 특성 및 고유정보를 등록하고 관리함으로써 보다 스토리지 볼륨 관리를 용이하게 할 수 있습니다.

쿠버네티스 환경에서 구동되는 어플리케이션에서 쉽게 스토리지를 사용할 수 있도록 스토리지 오케스트레이션 CSI(Storage Orchestration CSI) 구조를 보여주는 인포그래픽입니다. 스토리지 오케스트레이션 CSI(Storage Orchestration CSI)는 쿠버네티스 환경에서 다양한 스토리지 통합 제어가 가능하도록 만든 솔루션입니다.

쿠버네티스 CRD 기반으로 개발한 SOV
훈련 데이터 저장용 볼륨 요청
고용량 SOV

object:/mnt/volume/bucket

일반 데이터 공유 볼륨 요청
데이터 공유 가능한 SOV

nfs:/mnt/volume/dynamic-nfs

체크 포인트 처리용 볼륨 요청
고성능 SOV

block:/mnt/volume/block1

Kubernetes Cloud Volume Service
  • SOV–operator
  • Storage Orchestration CSI
    • Storage Orchestration
      • VOL: File Storage (NAS)
      • VOL: Block Storage
      • VOL: Object Storage

자동 볼륨 할당(Autonomous Volume Allocation) 기술

자동 볼륨 할당 (Autonomous Volume Allocation)은 스토리지 서비스 풀이라는 그룹을 사용하여 스토리지를 유형별(성능, 기능 등 스토리지 서비스 기준)로 분류하고 각 스토리지에서 발생하는 메트릭 데이터를 분석하여 어떤 스토리지가 가장 용량의 여유가 있으며, 부하가 적은지를 자율 판단하고 그 스토리지에 볼륨을 생성할 수 있는 기술입니다. 이는 스토리지 간 용량 및 성능 편차가 발생하는 것을 최소화하며, 특히 스토리지 확장 시 스토리지 서비스 풀에 등록하는 것만으로도 스토리지 확장을 가능하게 합니다. 그로 인해 보다 효율적으로 다수의 스토리지를 쉽게 운영할 수 있습니다.

스토리지 오케스트레이션(Storage Orchestration) 기술 요소

그 외 스토리지 오케스트레이션 을 구성하고 있는 구성요소는 아래와 같습니다.

  • · REST API : Storage Orchestration REST API를 통해 스토리지 통합제어 및 스토리지 서비스 제공
  • · STORAGE ORCHESTRATION CSI : 쿠버네티스 환경에서 SOV(Storage Orchestration Volume)를 통해 POD에 스토리지 볼륨을 제공하는 시스템
  • · STORAGE SERVICE MANAGEMENT : GOLD, SILVER, BRONZE와 같은 스토리지 유형별로 스토리지를 구성하고 사용자 필요에 따라 스토리지 볼륨을 제공하는 시스템
  • · AUTONOMOUS VOLUME ALLOCATION : 스토리지 데이터를 활용한 스토리지 현황 분석 데이터를 기반으로 최적의 스토리지 볼륨을 사용자에게 제공하는 시스템
  • · STORAGE DATA ANALYTICS : 각 스토리지로부터 데이터를 수집하고 이를 분석하여 스토리지 상태, 문제점 등을 분석하고 이를 모니터링하는 시스템
  • · STORAGE & VOLUME MANAGEMENT : 물리 스토리지와 그 내부 구성요소를 관리하기 위한 시스템
  • · STORAGE ORCHESTRATION DRIVER : 각 벤더 물리 스토리지와 스토리지 오케스트레이션을 연결하는 모듈

스토리지 오케스트레이션(Storage Orchestration) 적용 시스템

스토리지 오케스트레이션은 여러 사용자에게 스토리지 볼륨을 제공하는 클라우드 서비스와 애플리케이션의 기반 기술로 적용되고 있으며, 현재 사용 적용 중인 곳은 삼성SDS의 기업용 클라우드 서비스, 삼성 클라우드 플랫폼(Samsung Cloud Platform)의 블록 스토리지(Block Storage), 파일 스토리지(File Storage) 서비스와 Infra Manager의 스토리지 파트, 그리고 연구소의 x.Cloud(Kubernetes) 내 개인, 그룹 스토리지 볼륨 서비스입니다. 그 밖에 페타바이트(PetaByte)급 수많은 스토리지를 사용하는 HPC 분야, 대량의 데이터를 처리해야 하는 클라우드 빅데이터 분야 등, 다수의 스토리지를 사용 또는 스토리지 벤더 Lock-in 이슈를 가진 시스템에 활용될 수 있습니다.

스토리지 오케스트레이션(Storage Orchestration)은 스토리지 메트릭 수집 및 분석해서 자율 볼륨 할당 요청을 하고 가장 효율적인 스토리지를 자동 선정해서 어플리케이션으로 볼륨을 할당합니다.

  • INTERNAL SERVICE ‐ SAMSUNG SDS
    • CMP
    • INFRA MANAGER
  • CLOUD VOLUME SERVICE ‐ R&D Cloud FOR AI Kubernetes
Cloud 서비스, Application & Storage 연결하는 기술
  • REST API, STORAGE ORCHESTRATION CSI
  • STORAGE SERVICE MANAGEMENT
  • AUTONOMOUS VOLUME ALLOCATION
  • STORAGE DATA ANALYTICS
  • STORAGE & VOLUME MANAGEMENT
  • STORAGE ORCHESTRATION DRIVER
ENTERPRISE STORAGE
  • DELL EMC
  • NetApp
  • HP
  • 3PAR
OPEN SOURCE STORAGE
  • ceph
OBJECT STORAGE
  • S3

[그림3] Storage Orchestration 개념 및 기술요소

삼성SDS 기술의 차별화 포인트

삼성SDS에서 개발한 스토리지 오케스트레이션은 간단한 설치 과정과 쉬운 사용이 가능하고 벤더사 솔루션에 의존하지 않고 직접 기능 개발을 했기 때문에 보다 빠르게 동작하며, 스토리지 데이터를 기반으로 자율적으로 볼륨을 할당하고 최적 백업하는 등 다양한 스토리지 서비스로 확장이 가능합니다.

지금까지 스토리지 통합제어 솔루션 개발을 위해서 각 스토리지 벤더에서 시도했지만, 스토리지 벤더사의 이해관계 때문에 개발을 주도한 벤더 제품을 중심으로 설계하고 개발하다 보니 통합이 이루어지지 않았습니다. 또한 일부 단체에서 유사한 솔루션 개발을 해 왔지만, 각 스토리지 벤더사가 제공하는 솔루션을 기반으로 만들다 보니 설치부터 사용까지 너무 복잡해져서 활용하기가 어려웠고 이러한 부분을 해결하여 스토리지 오케스트레이션이라는 자체 솔루션이 개발되었습니다. 스토리지 오케스트레이션 솔루션을 통해 보다 빠르고 효율적인 클라우드 스토리지 서비스를 구축할 수 있게 되었고 따라서 고객에서 보다 편리한 서비스를 제공하는 기반이 되었습니다.


스토리지 자동화를 위해 자체 기술로 개발한 스토리지 오케스트레이션(Storage Orchestration) 기술이 적용된 삼성 클라우드 플랫폼 (Samsung Cloud Platform)에 대해 더 알아볼까요?
삼성 클라우드 플랫폼 (Samsung Cloud Platform, SCP) 바로가기 >

주재민 프로 / 삼성SDS
스토리지 전문가로서 다년간의 연구 개발 경험을 가지고 있고 현재는 소프트웨어 기반 스토리지 경험을 바탕으로 스토리지 오케스트레이션 연구를 포함한 클라우드 스토리지 솔루션 연구에 집중하고 있습니다.
클라우드 기술 백서 관련하여 궁금하신 사항은 이곳으로 문의주세요.

좋아요
공유하기