본문으로 건너뛰기

FDP SSD for LMCache: PoC

원문: private/raw/FDP SSD for LMCache


목표

LMCache 스토리지 생태계에서 FDP SSD 지원을 활성화하여, 수명(lifetime)이 다른 KV 캐시 스트림을 분리함으로써:

  • WAF(Write Amplification Factor)를 줄이고 SSD 내구성을 향상
  • 멀티테넌트 환경에서 예측 가능하고 높은 I/O 성능 제공

배경

LMCache의 I/O 특성

특성설명
대용량 I/OKV 청크 크기는 모델 크기와 토큰 수에 따라 수 MB ~ 수십 MB 범위
덮어쓰기 없음WORM(Write Once Read Many) 접근 패턴을 따름
순차 접근LLM 추론의 자기회귀적 특성상, 앞선 토큰부터 순서대로 프리픽스 KV 캐시를 읽음

FDP SSD 핵심 기능

기능설명
호스트 주도 데이터 배치호스트가 각 쓰기 요청의 배치 그룹(스트림)을 결정하여 스토리지 장치에 전달
ZNS SSD와의 차이점ZNS와 달리 배치가 완전히 호스트 제어는 아님. 펌웨어에 따라 내부적으로 스트림을 혼합할 수 있음
WAF 감소 및 내구성 향상수명이 유사한 데이터를 묶어 GC 시 불필요한 내부 복사를 줄여 NAND 마모 감소
예측 가능한 지연시간GC 간섭 감소로 테일 레이턴시(p99 등) 스파이크 완화. 스트림 분리로 멀티테넌트 워크로드 간 간섭 감소

과제(Challenges)

1. 데이터 수명 분류

  • LSM-tree 예시: 계층적 구조 덕분에 레벨별로 수명 차이가 자연스럽게 발생 → FDP 적용 용이
  • CacheLib 예시: 소형/대형 캐시 클래스로 데이터를 분리
  • LMCache의 도전: 추론 엔진으로부터 토큰을 입력받는 구조이므로, 어떻게 분류할지가 핵심 과제

2. I/O 인터페이스 선택지

방식장점단점
파일 시스템 (write hints)LMCache 변경 최소화; 기존 파일시스템 사용 가능파일시스템이 스트림을 혼합할 수 있음; NVMe 스트림 패싱이 아직 업스트림 미반영
Raw Block (io_uring_cmd)명시적 데이터 배치 가능; NVMe passthru를 통한 고성능커스텀 스토리지 엔진 필요(예: xNVMe, io_uring); NVMe/커널 전문 지식 요구

공통 제약: 사용 가능한 스트림 수가 제한됨


LMCache에서의 FDP SSD 활용 시나리오

1. 프롬프트별 데이터 배치 (Per-Prompt Data Placement)

동기:

  • KV 청크는 롤링 해시 방식으로 생성되어, 뒤의 청크가 앞 청크의 해시에 의존하는 프리픽스 해시 체인을 형성
  • 같은 체인의 청크들은 접근/재사용 패턴이 연관되어 함께 hot/cold 전환 → 그룹 배치에 적합

접근 방식:

stream = prompt_id % num_placement_handles

제약 조건:

  • 제약 1: FDP SSD 장치 한계로 num_placement_handles는 통상 최대 128개
  • 제약 2: 동일한 공유 프롬프트에 속하지 않는 청크가 같은 그룹에 매핑될 수 있음

2. 단계 인식 데이터 배치 (Phase-aware Data Placement)

동기:

  • 디코드 단계에서 생성된 KV 캐시는 현재 요청을 처리하는 동안에만 사용되는 단명(short-lived) 데이터
  • 프리필 KV 캐시는 여러 요청에 걸쳐 재사용 가능성이 높아 수명이 다름

접근 방식:

  • 디코드 단계 스트림을 별도 격리
    • 예: 프리필 KV → 스트림 N, 디코드 KV → 전용 또는 기본 스트림

3. vLLM 워커별 데이터 배치 (Per-vLLM Worker Data Placement)

동기:

  • TP(Tensor Parallelism) > 1인 LMCache에서는 각 랭크가 자신의 KV 샤드를 읽어야 다음 스텝이 진행 가능
  • 전체 스텝 지연시간은 가장 느린 랭크가 결정
  • FDP SSD가 랭크 간 성능 격리를 개선하면 max(rank_i I/O latency) 및 테일 레이턴시 감소 가능

접근 방식:

워커배치 그룹
Worker 0Placement Group 0
Worker 1Placement Group 1
Worker 2Placement Group 2
Worker 3Placement Group 3

평가 시 고려 사항

  • 클린 상태에서 시작하면 WAF 관찰이 어려울 수 있음
  • WAF 평가 전에 지속 상태(sustained state)로 사전 조건화(preconditioning) 과정을 거쳐야 함