참고: https://phisonblog.com/

Key Features Available With NVMe 2.0

2021년 6월 NVMe 2.0이 출시되어 특히 데이터 센터를 위한 몇 가지 추가 기능과 개선 사항이 표준화되었습니다. 그러나 가장 중요한 변화는 NVM Express가 원래 NVMe1.4, NVMe-MI 및 NVMe-oF를 재구성하여 최신 NVMe Spec.을 더욱 확장 가능하게 만드는 “리팩토링”입니다.

NVMe Spec. Roadmap

NVMe 2.0 리팩토링

최신 NVMe 리팩토링의 규모는 이 릴리스가 1.5가 아닌 2.0으로 번호가 매겨진 이유입니다. NVMe 2.0에 포함된 리팩토링을 통해 점점 더 다양해지는 NVMe 장치 환경을 지원하는 NVMe 솔루션을 더 빠르고 간단하게 개발할 수 있습니다.

이전 버전에는 NVMe 1.4 Base Spec., NVMe-MI 및 NVMe-Of Spec. 포함되었습니다. 그러나 최신 NVMe 2.0 Spec. 라이브러리는 총 8개의 문서와 함께 4개의 사양 그룹으로 구성됩니다.

1. NVMe Base specification

  • NVMe Base specification

2. Separate specifications per command set

  • NVM Command Set specification
  • Zoned Namespace Command Set specification
  • Key-Value Command Set specification

3. Modular transport mapping layer

  • PCIe Transport specification
  • RDMA Transport specification
  • TCP Transport specification

4. NVMe 관리 인터페이스

  • NVMe-MI

NVMe 2.0의 리팩토링에는 NVMe 및 NVMe-oF(NVMe over Fabrics) Spec. 통합과 명령 세트 및 전송 매핑 레이어당 별도의 Spec. 생성이 포함됩니다. 예를 들어 PCIe는 하나의 전송 Spec.으로 분리되었습니다.

NVMe Spec. Roadmap

NVMe Spec. Roadmap

NVMe 2.0의 주요 기능

이전 사양에서 격리된 기술 제안을 리팩토링 및 릴리스하는 것 외에도 NVMe 2.0 사양 제품군에는 4가지 중요한 기능이 포함되어 있습니다.

Zoned Namespace(ZNS)

이 기능은 NVMe SSD와 호스트가 데이터 배치에 대해 협업할 수 있는 인터페이스를 제공합니다. 데이터를 SSD의 물리적 미디어에 정렬하여 전반적인 성능을 개선하고 호스트에 노출될 수 있는 용량을 늘릴 수 있습니다. 그 이상으로 ZNS를 사용하면 WAF가 크게 향상됩니다. 즉, ZNS를 사용하면 NVMe SSD의 수명을 연장할 수 있습니다.

Zoned Namespace Command Set 사양은 ZNS SSD 작동 방법을 정의합니다. 세 가지 중요한 ZNS SSD의 작동 특성은 다음과 같습니다.

  1. Zoned Namespace는 논리 블록 주소의 연속적이고 겹치지 않는 범위인 동일한 크기의 영역으로 나눕니다.
  2. 영역 내 쓰기는 순차적이어야 하며 “쓰기 포인터” 위치에서 시작해야 합니다.
  3. 다시 쓰기 전에 각 영역을 지워야 합니다.

Zoned Namespace

Key-value 명령 세트

2000년대 후반 이후 생성된 비정형 데이터의 급증은 비관계형 데이터베이스의 개발을 촉진했습니다. 키-값 데이터베이스는 간단한 키-값 방법을 사용하여 데이터를 저장하는 비관계형 데이터베이스 유형입니다. 키와 값 모두 무엇이든 될 수 있습니다. 이 유형의 데이터베이스는 고도로 분산되어 있으며 다른 유형의 데이터베이스가 달성할 수 없는 규모로 수평 확장이 가능합니다. 그러나 데이터를 LSMT(Log-structured merge-tree)로 구성하는 것은 키-값 데이터베이스에서 필수이며, 이 작업에는 원래 데이터 쓰기 외에도 훨씬 더 많은 쓰기 주기가 포함되며 결과적으로 SSD의 수명이 짧아집니다.

NVMe-KV는 이 문제를 해결하기 위해 개발되었습니다. 논리적 블록 주소가 아닌 키를 사용하여 NVMe SSD 네임스페이스의 데이터에 액세스할 수 있습니다. NVMe-KV 명령 세트는 비휘발성 미디어에 해당 값을 저장하기 위한 키를 제공한 다음 해당 키를 지정하여 미디어에서 해당 값을 검색합니다. SNIA에서 정의한 NVMe-KV 명령 세트 및 키-값 스토리지 API 사양을 준수함으로써 KV SSD는 사용자가 키와 논리 블록 사이의 추가 변환 테이블의 비용과 시간 소모적인 오버헤드 없이 키-값 데이터에 액세스할 수 있도록 합니다.

Key Value

NVMe Endurance 그룹 관리

NVMe Endurance Group Management를 통해 미디어를 Endurance Group 및 NVM 세트로 구성할 수 있습니다. 이를 통해 SSD에 대한 액세스를 세분화하고 제어를 개선할 수 있습니다.

Endurance Group 및 NVM 세트는 NVMe 1.4에서 처음 도입되었지만, 고객이 이를 구성할 수 있는 기능이 제한되었습니다. 구성은 드라이브의 펌웨어에 하드 코딩되거나 공급업체별 명령으로 처리되어야 합니다. NVMe 2.0은 사용자가 Endurance Group 및 NVM 세트를 할당할 수 있는 메커니즘을 제공합니다. 더 많은 구성 가능한 매개변수를 통해 NVM 하위 시스템은 I/O 성능 효과와 공유 드라이브 또는 Array에서 서로 다른 사용자의 Wear-leveling 작업을 격리할 수 있는 더 많은 유연성을 가질 수 있습니다.

아래 다이어그램은 NVMe 스토리지 엔티티 계층 구조를 보여줍니다.

  1. NVM 하위 시스템은 도메인 포함
  2. 도메인은 내구성 그룹 포함
  3. 내구성 그룹은 NVM 세트 포함
  4. NVM 세트는 네임스페이스 포함
  5. 네임스페이스는 논리 블록 배열 포함

Endurance Group

이제 NVMe 2.0에서 지원되는 HDD(회전식 미디어)

SATA 사양이 12년 동안 업데이트되지 않았지만 HDD는 여전히 SATA 인터페이스의 이론적 대역폭(600MB/s)에 근접하지 못합니다. 따라서 NVMe 2.0의 회전식 미디어 지원이 성능 측면에서 HDD에 즉각적인 이점을 가져다 줄 것으로 기대하지 않습니다. NVMe가 회전식 미디어를 지원하는 주요 이유는 전체 시스템 구성성을 개선하기 위해서입니다. 고도로 구성 가능한 시스템은 특정 사용자 요구 사항을 충족하기 위해 다양한 조합으로 선택하고 조립할 수 있는 구성 요소를 제공합니다. 이 기능은 데이터 센터 및 엔터프라이즈 환경에 도움이 될 것입니다. (아직도 HDD를 사용하는 데스크톱 및 서버가 많은 상황에서 SATA를 무조건 버리기도 어려운 상황입니다. NVMe 2.0에서 SATA를 지원하기로 결정한 것은 이를 감안한 조치로 풀이됩니다. NVMe가 SATS를 품어버리면 속도를 높이기도 쉽고 무엇보다 별도의 SATA 컨트롤러가 필요없게 됩니다. 이는 메인보드 제조사 입장에서 매우 유리한 변화입니다. 점점 활용도는 떨어지지만 그래도 없으면 아쉬운 SATA를 유지하면서도 비용을 절감하고 구조를 단순하게 만들 수 있기 때문입니다. SATA 지원 기기 사용자 입장에서도 더 오랜 시간 기기 지원이 가능해져 유리합니다.)

Supports HDD