클라우드 스토리지 가속 레이어(CSAL)의 장점

솔리다임은 CSAL 쓰기 쉐이핑을 활용하여 고밀도 QLC SSD로 TCO를 개선합니다

 Cloud storage acceleration layer depicted with a data point overlay on a real-world intersection.
 Cloud storage acceleration layer depicted with a data point overlay on a real-world intersection.

사용자 및 AI 학습을 지원하기 위한 성능 수요와 데이터 증가에 대응하여 업계는 데이터 센터 공간과 전력 예산을 높이고 있습니다. 업계는 기존 데이터 센터 공간의 활용도를 극대화할 수 있는 고밀도 스토리지에 대한 수요를 절실히 느끼고 있습니다.  HDD 부문도 집적도와 성능을 향상시킬 방안을 모색하고 있지만, 솔리다임의 3D NAND QLC SSD는 이미 그 두 가지 목표를 달성했으며, 실제로 2018년부터 생산 단계에 있습니다. 솔리다임은 최고의 용량을 자랑하는 61.44TB D5-P5336 3D NAND QLC SSD를 출시했습니다. 우수한 경제성과 성능으로 데이터 센터의 집적도를 높입니다. CSAL + 혼합 워크로드를 위한 고밀도 드라이브 읽기 집약적 애플리케이션은 솔리다임 D5-P5336과 같은 고밀도 QLC SSD로 충분합니다. 그런데 혼합 워크로드 및 데이터 배치 애플리케이션은 어떨까요? 혼합 워크로드 및 새로운 NVMe 설계(예: 스트리밍, FDP, ZNS 등의 데이터 배치 기술)를 구현한 고밀도 솔리다임 61.44TB SSD의 활용도를 더욱 높이기 위해 솔리다임은 스토리지 성능 개발 키트(SPDK)에서 CSAL을 활용합니다. CSAL은 새로운 오픈 소스 클라우드 스케일 무공유 스토리지 소프트웨어 레이어(bdev, 블록 장치)입니다. CSAL은 전체 플랫폼에 대해 SSD의 내구성을 조정할 수 있는 유연성을 제공합니다. 이를 통해 솔루션은 솔리다임의 1세대 D7-P5810 SSD와 같은 새로운 스토리지 클래스 메모리(SCM) SSD를 통해 높은 애플리케이션 쓰기 성능을 유지할 수 있고, 저비용 고집적 QLC 스토리지를 활용하여 TCO를 최적화하는 동시에 솔리다임의 QLC SSD가 제공하는 TLC와 동등한 수준의 읽기 성능을 활용할 수 있습니다. [1] 그림 1은 가장 느린 계층과 가장 빠른 계층의 메모리 계층화 구조를 보여줍니다.

아카이브 스토리지부터 QLC, TLC, SLC, CXL, DRAM, CPU 캐시에 이르는 계층화 구조 그래픽

그림 1. 스토리지 계층 구조의 D7-P5810 SSD 및 QLC SSD

쓰기 캐시 아키텍처 개요

기존의 캐시 아키텍처에서 스토리지 클래스 메모리(SCM) SSD와 같은 고성능 스토리지는 QLC SSD와 같은 기본 스토리지 앞에 놓입니다. 기본 스토리지에 데이터를 직접 쓰는 대신, 데이터가 캐시 레이어에 기록되는 즉시 쓰기가 승인됩니다. 데이터는 다시 용량 레이어에 기록됩니다.

기존의 캐시는 고밀도 NAND 미디어가 TB당 쓰기 성능을 유지하고 일시적 로컬 워크로드에 대한 내구성을 높일 수 있도록 지원합니다. 예를 들어, 고성능, 고내구성 SCM 계층은 QLC NAND 계층으로 전송하지 않고도 자주 업데이트되는 쓰기를 흡수할 수 있습니다.

CSAL로 플랫폼 성능 및 내구성 향상

CSAL의 핵심 전략은 SCM SSD를 캐시로 활용하여 사용자 랜덤 쓰기를 압축하고 SSD 친화적인 쓰기로 변환하는 것입니다. CSAL는 시스템 수준의 쓰기 증폭 및 NAND SSD의 마모를 최소화하여 NAND 기반 기본 스토리지의 성능 및 시스템 내구성을 개선합니다.

CSAL은 세 가지 방법으로 기존의 캐시 기술을 개선합니다.

  1. 초고속 쓰기 버퍼(SCM)를 통해 QLC 장치에 대한 I/O 쓰기를 '순차화'하여 시스템 수준의 성능 및 내구성을 높일 수 있습니다.
  2. CSAL은 캐시 레이어에서 대량의 사용자 쓰기를 흡수하고 압축하여 용량 레이어의 내구성과 수명을 더욱 연장합니다.
  3. CSAL은 예측 가능한 시간 내에 캐시 레이어의 데이터를 다시 용량 레이어에 쓸 수 있도록 보장합니다.

그림 2는 기존의 쓰기 캐시와 쓰기 쉐이핑 캐시의 차이점을 보여줍니다.

기존의 쓰기 캐시와 CSAL 쓰기 쉐이핑 캐시의 읽기-쓰기 흐름 비교

그림 2. 기존의 쓰기 캐시와 CSAL 설계의 차이점

클라우드 스토리지 가속 레이어(CSAL) 아키텍처 개요

CSAL은 특정 상황에서 고성능 스토리지 시스템을 지원합니다. SPDK는 로직 볼륨과 일반 블록 레이어부터 NVMe 드라이버에 이르는 풀스택 스토리지 시스템을 제공합니다. CSAL은 SPDK 블록 레이어에 구현되어 두 가지 물리적 블록 장치로 구성된 가상 블록 장치로 노출됩니다.

  • 캐시 계층으로서의 P5810 SSD
  • 용량 레이어로서의 QLC SSD

NVMe-oF(NVMe over Fabrics)와 같은 스토리지 애플리케이션은 이 가상 블록 장치를 일반 블록 장치로 사용할 수 있습니다.

QLC + SLC 아키텍처를 통한 CSAL 그래픽

그림 3. 쓰기 쉐이핑 캐시 블록 다이어그램

그림 3은 CSAL의 전반적인 아키텍처를 보여줍니다. 여기에서 몇 가지 주목해야 할 사항이 있습니다.

  1. CSAL은 SPDK를 통해 유기적으로 NVMe-oF 대상을 지원하는 일반 SPDK 블록 장치(bdev)입니다.
  2. 애플리케이션 읽기/쓰기는 먼저 SPDK 일반 bdev 레이어를 거친 다음 CSAL bdev로 이동합니다.
  3. CSAL bdev 계층은 P5810 SSD를 영구 쓰기 버퍼 및 L2P 테이블로 활용하여 랜덤 워크로드를 순차 워크로드로 변환하는 가상화 플래시 변환 계층(FTL) 장치입니다.
  4. FTL은 솔리다임 P5810의 FIFO 로그로 영구 쓰기 버퍼에 사용자 쓰기 IO를 기록하고, L2P(Logical to physical) 테이블은 P5810 LBA를 가리키도록 업데이트됩니다.
  5. 캐시 용량이 특정 임계값에 도달하면 FTL 백그라운드 압축 프로세스가 시작되고 다음을 수행합니다.
    • P5810 SSD에서 FIFO 로그 읽기
    • 잘못된 로그 제거
    • 유효한 로그를 대규모 순차 IO로 병합하고 QLC SSD에 쓰기
    • L2P 테이블을 업데이트하여 QLC LBA를 가리키게 합니다. 
  6. 데이터는 다시 표준 SPDK bdev를 통해 QLC 및 P5810 SSD에 기록됩니다.
  7. FTL 장치는 SSD 장치와 유사하며, 조각 모음으로 하우스키핑 작업을 수행하여 새로운 쓰기를 위한 여유 공간을 유지합니다.

이러한 데이터 전환을 위해 CSAL은 네 가지 주요 구성 요소를 관리합니다. 

  • 논리적 주소 대 물리적 주소 테이블
  • 영구 쓰기 버퍼
  • 압축 작업자
  • 가비지 수집(GC) 작업자

CSAL 오픈 소스 배포 

CSAL 소프트웨어 솔루션 아키텍처는 특정 하드웨어 아키텍처에 국한되지 않고, 인텔, AMD, ARM, IPU/DPU, GPU 등을 비롯한 다양한 서버 아키텍처에 배포할 수 있습니다. 솔리다임은 오픈 소스 커뮤니티의 참여와 다양한 아키텍처에 대한 지원이 유기적으로 증가할 것으로 기대하고 있습니다.

CSAL: 요점

CSAL은 고집적 NAND 플래시 미디어의 가치를 실현하는 쓰기 쉐이핑 캐시입니다. CSAL은 호스트 측 FTL을 활용하여 모든 쓰기 워크로드를 순차 쓰기 워크로드로 전환하는 동시에 기존 소프트웨어 인터페이스를 보존합니다. 또한, 자주 업데이트되는 데이터나 일시적인 데이터를 캐싱하여 쓰기 빈도를 최소화합니다. 

이 두 가지 전략을 통해 CSAL은 전체 플랫폼의 내구성을 개선하고, 애플리케이션 성능을 제공합니다. CSAL은 차세대 미디어 및 데이터 배치 기술을 위한 유연한 소프트웨어 정의 스토리지 아키텍처입니다. 데이터 센터에서 확장이 쉬울 뿐만 아니라 다양한 성능 및 TCO 요구 사항에 맞춰 손쉽게 조정할 수 있습니다.


참조 

[1] https://www.solidigm.com/products/data-center/d5/p5336.html

추가 읽기 자료

Coarse-grained Indirection Unit SSD에서 최적의 성능 및 내구성 달성

IDC Global DataSphere Forecast, 2022년 5월

Open-CAS / standalone-linux-io-tracer

작성자 정보

Sarika Mehta는 15년 이상의 스토리지 관련 경력을 갖춘 스토리지 솔루션 설계자입니다. 솔리다임 고객 및 파트너와 긴밀히 협력하여 비용과 성능을 위해 스토리지 솔루션을 최적화하는 데 집중하고 있습니다. Kapil Karkra는 호스트 기반 FTL인 클라우드 스토리지 가속 레이어(CSAL)의 아키텍처를 담당하는 수석 엔지니어이자 수석 스토리지 플랫폼 아키텍처입니다. 현재 Kapil의 관심사는 클라우드 사용 사례에 대한 인사이트를 높이고, 고밀도 NAND SSD 개발 및 채택을 가속화하는 턴키 참조 스토리지 플랫폼(RSP)을 소프트웨어와 하드웨어 영역 모두에서 정의하는 것입니다. Kapil은 25년 이상 스토리지 관련 경력을 쌓았으며, 20건이 넘는 특허를 출원 및 등록했습니다. Kapil은 인도 공과대학교(NIT)에서 전기 공학 학사 학위, 애리조나 주립대학교에서 MBA 학위를 마쳤습니다. Wayne Gao는 스토리지 솔루션 설계자로, PF부터 Alibaba 상용 릴리스에 이르기까지 CSAL을 담당했습니다. Wayne은 이전 DellEMC ECS 모든 플래시 오브젝트 스토리지 팀으로 20년이 넘는 스토리지 개발자 경력을 보유하고 있으며, 4건의 미국 특허를 출원/등록하였고, 1건의 EuroSys 논문을 발표했습니다.