최신 스토리지 기술 : 차세대 SSD

TAEWOO HA·2023년 6월 19일
0

소식

  • SK하이닉스가 차세대 SSD로 ZNS(Zoned Namespaces SSD)
  • 웨스턴디지털 - ZNS개발 , 용량 증가 비용 감소
  • 삼성 - Key value SSD 제안
  • 인텔 - Optane SSD

NVMe Standard Roadmap

  • PCIe 기반 인터페이스에서 동작하는 NVMe 프로토콜

  • 비휘발성 메모리를 사용하겠다. (NAND가 아닌)
    • SCM(==NVM) : 스토리지 클래스 메모리
  • DRAM과 디스크의 특성을 모두 제공하는 메모리소자 = NVM , SCM
  • 병렬성과 내구성
  • Zoned Namespace
  • Key Value I/O 커맨드 => 오픈채널 SSD , 옵태인 SSD , 존네임스페이스 , Key Value SSD

전통적인 SSD의 문제점

  • FTL : SSD 내부를 감추어서 병렬성을 충분히 활용하지 못할 수 있다.
    • 내부의 소프트웨어와 호스트단의 소프트웨어가 중복되어 있다.
    • SSD 내부와 호스트단의 소프트웨어가 중복되어있다.
  • 스토리지를 위한 소프트웨어 스택 : 층 구조

  • 많은 부분이 중복되어 있다.
  • 중복된 이유 : 호스트와 SSD가 구분되어 있기 때문 = Semantic Gap
  • 이 점을 해결하려고 하는게 차세대 SSD

차세대 SSD

  • 소프트웨어를 한 곳에 모아두려고 한다.
    • 블럭 I/O를 통하면 너무 중복된다.
  • FTL을 호스트단으로 옮겨보자 ==> 왼쪽 구조 (ZNS SSD)
  • 호스트 단의 소프트웨어를 SSD 단으로 내려보자 => (Key Value SSD)

Key Value Store

  • 키 밸류 데이터베이스
    • 비정형 데이터를 위한 데이터베이스

정형 데이터 : 테이블 형태 ex) 출석부 (이름 , 학번 , 주소 - relation으로 표현하기 쉬움)
비정형 데이터 : 여러가지 포멧(밀집되어있지 않음 - 사진, 동영상 , text)

Rocks DB

  • LevelDB에서 파생됨 ,페이스북의 KV 스토어
  • 키, 밸류 인터페이스 존재, 데이터를 영속적으로 저장
  • LSM 트리 , 로그 스트럭쳐 머지
  • 임베디드 and 오픈소스
  • 다양한 알고리즘 제공

  • LSM트리란 ?
    • 로그스트럭쳐 : out of place update,
      • key1과 val1이 있는데 val1을 val4로 바꾸려고 한다. 다른 위치에 key1 = val4라고 갱신한다.
      • in place update : 읽기 좋고 쓰기 나쁨.
      • out place update : 쓰기 좋고 읽기 나쁨 , 회수작업 필요 =>merge
    • merge : 기존의 데이터들을 합침 => invalid 공간을 해소, 위에 있는 데이터가 아래로 내려옴
    • Tree : L0층에 데이터가 쌓임 . 일부가 업데이트되면 invalid시키고 꽉차면 C1으로 내림. 이 과정에서 merge sort를 시행함. 용량이 너무 커지면 k1, k1키가 같으면 merge (최근꺼 사용)
  • SSTables는 스토리지에 저장

  • key가 push되면 memtable에 쌓이고 쓴다. L0에 쓰여지고 쓰여진것을 SStable이라고 한다. 쌓이다 보면 merge sort를 하고 다음 레벨로 넘어간다. => 컴팩션

  • memtable에서 SSTable로 내려가는것을 flush라고 한다.

  • 레벨0에서 쌓이면 레벨 1으로 내려가고 레벨1에서 레벨 2로 내려감

  • 일관성을 유지하기위해 저널링 도입, 로그작성한다.

    • 새로운 키 밸류가 입력이되면 로그에 쓰고 memtable에 쓰고 immutable되고 flush된다. 그리고 compaction되며 아래로 내려감

ZNS SSD

  • 스토리지를 존이라는 개념으로 나눠서 호스트에게 제공한다.

  • 사용가자 존으로 구분해서 따로따로 쓸 수 있다.

  • 왼쪽이 hot이고 오른쪽이 cold라면 플래시메모리에서 부하가 줄어들 것 (가비지컬렉션시)

  • 워크로드 구분 가능 => WAF 줄임(Write Amplification Factor)(쓰기증폭)

  • 고립 제공 => isolation

  • SSD를 저가로 만들 수 있다.

    • Host Level에서 모두 제어하기 때문
  • 단점 : 연속적인 쓰기만 가능하다.호스트 레벨의 관리

  • 블럭 인터페이스 택스 :플래시 메모리는 덮어쓰기 제한이 있고 erase 단위간의 차이가 있고 out of place , 가비지 컬렉션 필요 => 성능감소
  • Streamed SSD : Hot Cold를 알려줌. FTL이 필요함.
  • 오픈채널 SSD : SSD내부의 채널정보를 호스트에게 알려준다. FTL이 없다. 너무 자유적이다. 설계공간이 넓어서 표준된 소프트웨어 개발이 어렵다.
  • 성능저하가 없는부분이 zns ssd가 된다.

0개의 댓글