하드웨어 구조 - Key-value Computational Solid-State Drive
KV-SSD
1. 개요
KV-SSD(Key-Value Solid State Drive)는 전통적인 블록 기반 인터페이스 대신 키-밸류 인터페이스를 직접 제공하는 차세대 저장장치다. 이는 데이터센터 및 클라우드 환경의 규모 확대에 따라 CPU가 블록 변환 작업에 과부하를 겪는 문제를 해결하기 위해 개발되었다.
2. 기술 원리 및 구조
1) 소프트웨어 스택 단순화
KV-SSD는 호스트-기반 키-밸류 저장소와 본질적으로 다른 아키텍처를 제공한다. 전통적인 RocksDB나 LevelDB 같은 키-밸류 저장소는 파일 시스템과 블록 계층을 거쳐 SSD와 통신해야 하는데, 이 과정에서 상당한 메모리 복사와 커널 컨텍스트 스위칭 오버헤드가 발생하게된다. KV-SSD는 이러한 중간 계층을 제거하고, 사용자 응용 프로그램이 직접 SSD 컨트롤러의 키-밸류 API와 통신하도록 설계되었다.
2) 데이터 구조: LSM-Tree 기반 설계
대부분의 현대적 KV-SSD 구현은 Log-Structured Merge Tree(LSM-tree) 구조를 채택한다. LSM-tree는 다음과 같은 특징을 가진다.
- 계층적 구조: 여러 레벨로 구성되며 각 레벨은 정렬된 상태를 유지
- 쓰기 최적화: 새로운 키-밸류 쌍을 메모리의 MemTable에 수집 후 SSTable로 플러시
- 키-밸류 분리: 메타데이터(키, 주소)와 실제 데이터(값)를 분리하여 쓰기 증폭 감소
3) NVMe 표준 호환성
Samsung의 KV-SSD 프로토타입과 SNIA 표준은 NVMe 프로토콜 확장을 통해 구현되는데 NVMe KV Command Set은 기존 블록 인터페이스 명령 외에 다음 키-밸류 특화 명령을 추가한다.
- PUT(key, value): 키-밸류 쌍 저장
- GET(key): 키로 값 검색
- DELETE(key): 키-밸류 쌍 삭제
- EXIST(key): 키 존재 여부 확인
- 범위 쿼리(SEEK, NEXT): 키 범위 조회
키와 메타데이터는 NVMe 명령의 예약 필드에 저장되고, 값은 Physical Region Page(PRP) 리스트를 통해 전송된다.
3. 성능 특성 및 장점
- 처리량: RocksDB(블록 기반)에 비해 8배 높은 QPS (쿼리/초)
- 호스트-장치 트래픽: 90% 이상 감소 (write-intensive 워크로드에서)
- 쓰기 증폭 감소: 전통적 접근 대비 현저히 낮은 WAF(Write Amplification Factor)
LSM-tree 기반으로 만들어진 SSD와 해시 기반 SSD의 성능을 분석한 결과는 아래와 같다.
| 메트릭 | LSM-tree 기반 (PinK) | 해시 기반 | 개선도 |
|---|---|---|---|
| 99th percentile latency | 낮음 | 높음 (hash collision) | 73% 감소 |
| 평균 읽기 latency | 42% 개선 | 기준 | +42% |
| 처리량 | 높음 | 낮음 | +37% |
| 범위 쿼리 지원 | 효율적 | 비효율적 | X |
4. 문제점
문제 1 - PCIe 트래픽 증폭
- NVMe의 PRP는 4KB 메모리 페이지 단위로만 DMA 전송을 허용
- 32바이트 값 전송 시 실제 PCIe 트래픽: 4KB (130배 증폭)
- 4KB 초과 값(예: 4KB+32B)의 경우: 8KB 전송 (2배 증폭)
문제 2 - NAND 쓰기 증폭
- NAND 페이지 버퍼가 4KB 경계로 데이터를 정렬하면서 발생
- 16KB NAND 페이지가 32바이트 값 4개로만 채워질 때 내부 단편화 발생
※ 추가 업데이트 및 검증 예정
참고 문헌
- 서강대학교 김영재 교수님 강의 자료 - 고급 데이터 베이스
- Park et al., “BandSlim: A Novel Bandwidth and Space-Efficient KV-SSD” (ICPP 2024)
- Im, Junsu, Jinwook, Bae, Chanwoo, Chung, Arvind, and Sungjin, Lee. “Design of LSM-tree-based Key-value SSDs with Bounded Tails”.ACM Trans. Storage 17, no.2 (2021).
This post is licensed under CC BY 4.0 by the author.