NVMe-MI

[NVMe-MI] 1. Introduction

PCIeMaster 2023. 12. 27. 14:28

1. Introduction 

 

1.1 Overview

NVM Express® Management Interface Specification은 NVMe 규격 패밀리의 구성원 중 하나입니다.

NVM Express® (NVMe®) 인터페이스는 인밴드 호스트 소프트웨어가 NVM Subsystem 통신할 있게 합니다. specification NVM Express® 베이스 specification 기반을 두고 있으므로 NVM Express® 베이스 specification 대한 지식이 있다고 가정합니다.

 

specification NVMe Storage Devices(1.8.18 참조) 또는 NVMe Enclosures(1.8.16 참조) 관리하기 위한 여러 메커니즘을 정의합니다. 하나의 메커니즘은 관리 컨트롤러가 하나 이상의 외부 인터페이스를 통해 NVMe Storage Device 또는 NVMe Enclosure 아웃오브밴드로 통신할 있게 합니다. 다른 메커니즘은 인밴드 터널링 메커니즘으로, NVMe-MI 관리 인터페이스 명령 세트가 NVMe Admin Commands NVMe-MI Send NVMe-MI Receive 통해 인밴드로 터널링될 있게 합니다. NVMe-MI Send NVMe-MI Receive 명령에 대한 자세한 내용은 NVM Express 베이스 specification specification 4.3 절을 참조하십시오.

 

specification 준수하는 NVMe Storage Devices NVMe Enclosures 아웃오브밴드 메커니즘만 지원하거나 인밴드 터널링 메커니즘만 지원하거나 아웃오브밴드 메커니즘과 인밴드 터널링 메커니즘을 모두 지원할 있습니다.

 

1.3 Theory of Operation

 

specification은 인벤토리, 모니터링, 구성 변경 관리를 위한 여러 물리적 계층 (, PCI Express, SMBus/I2C) 통한 공통 인터페이스를 제공하도록 설계되었습니다. specification은 다양한 호스트 환경 시스템에서 NVMe Storage Devices 또는 NVMe Enclosures 아웃오브밴드 메커니즘 또는 인밴드 터널링 메커니즘을 사용하여 관리할 있는 필요한 유연성을 제공합니다. 또한 specification Vital Product Data 포함하는 FRU Information Device 정의합니다 (1.3.1.2 참조).

 

1.3.1 Out-of-Band Theory of Operation

specification은 Management Component Transport Protocol 통한 아웃오브밴드로 NVMe Storage Devices NVMe Enclosures 관리하기 위한 메커니즘을 정의합니다.

 

1.2.1.1  Management Component Transport Protocol

아웃오브밴드 메커니즘은 전송에 관해서는 Management Component Transport Protocol (MCTP) 사용하며 물리적 계층에 대해서는 기존의 MCTP SMBus/I2C PCIe 바인딩을 활용합니다. 명령 메시지는 NVM Subsystem 포함된 Management Endpoint 관련된 개의 명령 슬롯 하나로 제출됩니다. Figure 2에서는 NVMe-MI 아웃오브밴드 프로토콜 레이어링을 요청자의 관점에서 보여줍니다.

 

1.3.1.2 FRU Information Device

specification은 IPMI Platform Management FRU Information Storage Definition specification에서 정의된대로 SMBus/I2C 통해 또는 VPD Read VPD Write 명령을 통해 FRU Information Device 액세스하는 메커니즘을 정의합니다. FRU Information Device 저장된 데이터는 Vital Product Data 참조되며 (8.2 참조), FRU Information Device 다양한 방식으로 구현될 있습니다 (: 시리얼 EEPROM, NVMe Controller ASIC 일회용 프로그래밍 메모리 ).

 

1.3.2 n-Band Theory of Operation

specification은 NVMe Admin Commands NVMe-MI Send NVMe-MI Receive 활용하는 인밴드 터널링 메커니즘을 정의합니다. NVMe-MI Send NVMe-MI Receive 명령에 대한 자세한 내용은 NVM Express Base Specification specification 4.3 절을 참조하십시오.

 

1.4 NVM Subsystem Architectural Model

 이 specification은 NVMe Storage Device 또는 NVMe Enclosure 내부에 포함된 NVM Subsystem 관리하기 위해 사용될 있는 인터페이스를 정의합니다. Identify Controller 데이터 구조의 NVM Subsystem Report (NVMSR) 필드의 NVMe Storage Device (NVMESD) 비트는 NVMe Storage Device 경우 '1' 설정되어야 합니다. Identify Controller 데이터 구조의 NVM Subsystem Report (NVMSR) 필드의 NVMe Enclosure (NVMEE) 비트는 NVMe Enclosure 경우 '1' 설정되어야 합니다. NVMESD 비트, NVMEE 비트 또는 NVMESD 비트 NVMEE 비트 모두 '1' 설정되어야 합니다 (NVM Express Base Specification 참조).

 

인밴드 터널링 메커니즘 아웃오브밴드 메커니즘을 사용하여 NVM Subsystem 관리하는 것은 Command Messages 보내고 해당하는 Response Messages 받는 것으로 구성됩니다. Command Messages 다음과 같습니다:

 

a) NVM Subsystem 내의 Controller 대상으로 하는 표준 NVMe Admin Commands.

b) NVM Subsystem 내의 Controller PCI Express 구성, I/O 메모리 공간에 대한 액세스를 제공하는 명령.

c) NVM Subsystem 인벤토리, 구성 모니터링을 위한 Management Interface 특정 명령.

 

NVM Subsystem에서 지원하는 Command Messages NVMe-MI Message 전송하는 메커니즘 (, 인밴드 터널링 메커니즘 또는 아웃오브밴드 메커니즘) NVM Subsystem NVMe Storage Device 또는 NVMe Enclosure 포함되어 있는지 여부에 따라 달라집니다.

 

인밴드 터널링 메커니즘을 사용할 , NVM Subsystem 아키텍처와 동작은 specification에서 정의한 확장된 내용을 포함하여 NVM Express Base Specification에서 정의한 대로입니다. 섹션의 나머지 부분은 아웃오브밴드 메커니즘을 사용할 NVM Subsystem 아키텍처와 동작을 설명합니다.

 

NVM Subsystem PCIe 포트 SMBus/I2C 포트는 각각 단일 NVMe Management Endpoint(이하 Management Endpoint 간단히 언급) 선택적으로 포함할 있습니다. Management Endpoint MCTP 패킷/메시지의 종점 원점이며 MCTP Base Protocol 구현하고 MCTP Control Messages 처리하며 Command Messages 내부 라우팅을 담당합니다. NVM Subsystem Management Endpoint에는 NVM Subsystem Information Data Structure Number of Ports (NUMP) 필드 이하인 Port Identifier 있습니다.

 

Management Interface Request Messages Response Messages Message Type NVM Express Management Messages over MCTP 설정된 MCTP 메시지로 전송됩니다 (MCTP IDs and Codes specification 참조). 모든 아웃오브밴드 메커니즘 Request Messages Management Controller에서 시작되어 Management Endpoint에서 Response Message 이어집니다.

 

Management Endpoint 해당 Management Endpoint에서 지원하는 고유한 기능 세트를 광고합니다. 모든 Management Endpoint PCIe 포트가 SMBus보다 훨씬 높은 데이터 전송률을 갖는 기능이 동일한 명령을 지원할 있습니다 (, SMBus/I2C PCIe VDM 동일한 기능을 제공할 있음).

 

NVM Subsystem 내의 NVMe Controller NVMe Controller Management Interface (이하 간단히 Controller Management Interface 언급함) 제공해야 합니다. Controller Management Interface NVM Subsystem 내의 모든 Controller (인밴드 터널링 메커니즘) 또는 Management Endpoint (아웃오브밴드 메커니즘) 대신하여 Controller 작업을 처리합니다. NVMe Controllers 또는 Management Endpoints 명령을 NVM Subsystem 내의 어떤 NVMe Controller로든 라우팅할 있습니다. Controller Management Interface 논리적으로 번에 하나의 작업을 처리합니다. Controller Management Interface 이상의 작업을 병렬로 처리하는 것을 방지하지 않지만 항상 동일한 결과를 갖는 순차적인 작업 패턴이 있어야 합니다. Responders Command Messages 어떤 순서로든 처리할 있습니다. 요청자가 Command Messages 특정한 순서로 처리하기를 원하는 경우, 요청자는 다음 Command Message 보내기 전에 하나의 Command Message 대한 Response Message 기다립니다.

 

Figure 3 예시 NVM Subsystem 보여줍니다. NVM Subsystem에는 단일 Controller 포함되어 있으며 PCIe 포트에 관련된 Management Endpoint 있습니다.

 

Figure 4 듀얼 포트 PCIe SSD 관련된 예시 NVM Subsystem 보여줍니다. NVM Subsystem에는 PCIe Port 0 관련된 하나의 Controller PCIe Port 1 관련된 개의 Controller 포함되어 있습니다. PCIe 포트 SMBus/I2C 포트에는 Management Endpoint 있습니다. NVM Subsystem Management Endpoint 포함되어 있으므로 모든 Controller에는 관련된 Controller Management Interface 있습니다.

 

1.5 NVMe Storage Device Architectural Model

인밴드 터널링 메커니즘을 지원하는 NVMe Storage Devices 아키텍처 모델은 NVM Express Base Specification에서 정의한 아키텍처 모델을 따릅니다. specification에서 정의된 아웃오브밴드 메커니즘을 구현한 NVMe Storage Device 하나 이상의 NVM Subsystem으로 구성됩니다. 반면에 specification에서 정의된 인밴드 터널링 메커니즘을 구현한 NVMe Storage Device 하나 이상의 NVM Subsystem으로 구성됩니다. 아웃오브밴드 메커니즘을 구현하는 NVM Subsystem에는 하나 이상의 Management Endpoint 포함됩니다.

 

NVMe Storage Device 지칭되는 Field-Replaceable Unit (FRU) NVMe Storage Device 포함된 전체 시스템을 교체하지 않고 (: 최종 사용자 또는 기술자가) 제거하고 교체할 있는 물리적 구성 요소, 장치 또는 어셈블리입니다. NVMe Storage Device Field-Replaceable Unit 예시로는 U.2 PCIe SSD, PCI Express Card Electromechanical (CEM) 추가 카드, M.2 모듈 등이 있습니다. NVM Express Base Specification FRU Globally Unique Identifier (FGUID) 필드에서 참조된 FRU NVMe Storage Device Field-Replaceable Unit이어야 합니다.

 

NVMe Storage Device에는 다양한 변형이 있습니다. 하나의 예는 단일 NVM Subsystem 포함하는 NVMe Storage Device입니다 (Figure 5 Figure 6 참조). 다른 예로는 NVM Subsystem 포함하지 않고 추가적인 NVMe Storage Device FRU 추가할 있는 하나 이상의 Expansion Connector 대신 사용하는 NVMe Storage Device, Carrier (Figure 7 참조) 있습니다. 다른 예로는 NVMe Storage Device 하나 이상의 NVM Subsystem 하나 이상의 Expansion Connector 포함할 있습니다. NVMe Storage Devices에는 하나 이상의 NVM Subsystem 연결되는 PCIe 스위치 (Figure 8 참조) 또는 Expansion Connector 포함될 있습니다. 또한 NVMe Storage Devices에는 하나 이상의 NVM Subsystem 또는 Expansion Connector 연결되는 SMBus/I2C Muxes (Figure 8 참조) 포함될 있습니다.

 

specification IPMI Platform Management FRU Information Storage Definition에서 정의한 형식을 사용하고 FRU Information Device 저장되는 Vital Product Data (VPD) 정의합니다. VPD 아웃오브밴드 메커니즘 또는 인밴드 터널링 메커니즘을 지원하는 모든 포트에서 액세스할 있습니다. 만약 NVMe Storage Device SMBus/I2C 포트가 있다면 VPD IPMI Platform Management FRU Information Storage Definition에서 정의한 I2C 액세스 메커니즘을 통해 액세스할 있습니다.

 

만약 NVMe Storage Device 여러 NVM Subsystems 포함한다면, NVM Subsystem 연결된 FRU Information Device 선택적입니다. 왜냐하면 Upstream Connector 통해 액세스 가능한 필수 FRU Information Device NVMe Storage Device 전체를 설명하기 때문입니다 (자세한 내용은 섹션 8.2 참조). 이러한 추가 FRU Information Device 내용은 specification 범위를 벗어납니다.

 

Figure 5은 단일 포트 PCIe SSD이며 FRU Information Device가 NVM Subsystem에 의해 구현된 NVMe Storage Device를 보여줍니다.

Figure 6은 듀얼 포트 PCIe SSD로, SMBus/I2C 포트 및 Serial EEPROM을 사용하여 구현된 FRU Information Device를 갖는 NVMe Storage Device를 보여줍니다.

Figure 7에 나와 있는 것처럼, Expansion Connectors를 갖는 U.2 형태의 NVMe Storage Device의 한 예는 Carrier입니다. 이 Carrier에는 두 개의 M.2 Expansion Connectors가 있어 두 개의 M.2 NVMe Storage Device FRU를 연결할 수 있습니다. Carrier 및 각 M.2 NVMe Storage Device는 별도의 NVMe Storage Device FRU로 간주되며, 각각 자체의 FRU Information Device를 갖고 있습니다. Figure 16에서 정의된대로, Carrier의 FRU Information Device는 주소 A4h에 있으며 각 M.2 NVMe Storage Device의 FRU Information Device는 기본 주소가 A6h이며 SMBus Address Resolution Protocol (ARP)를 지원합니다. 전원이 켜진 후 A6h 주소 충돌을 재할당하기 위해 ARP가 사용되고, 이후 M.2 FRU Information 장치가 읽히기 전에 수행됩니다. ARP는 충돌하는 MCTP 주소와 추가적인 요소를 재할당하는 데에도 사용될 것입니다.

 

 

Figure 8은 솔더 다운 볼 그리드 어레이 (BGA) 패키지를 사용하여 구현된 두 개의 NVM Subsystem과 주소 A6h의 FRU Information Device를 포함하는 NVMe Storage Device를 보여줍니다. SMBus/I2C 포트를 구현하고 있는 Expansion Connectors가 없는 경우, 항상 주소 A6h에 직접적으로 연결된 FRU Information Device를 포함하는 NVMe Storage Device가 됩니다. 이 예에서는 SMBus/I2C 주소 충돌을 방지하기 위해 ARP 대신에 SMBus/I2C Mux가 사용됩니다. SMBus/I2C Mux는 선택된 NVM Subsystem과의 통신 전에 관리 컨트롤러에 의해 구성됩니다. FRU Information Device에는 SMBus/I2C Mux를 구성하는 데 필요한 세부 정보가 포함되어 있습니다.

 

1.6 NVMe Enclosure Architectural Model

 

NVMe Enclosure 하나 이상의 NVM Subsystems 대한 전원, 냉각 기계적 보호를 제공할 있는 플랫폼, 카드, 모듈, 상자, 또는 상자 세트입니다. 이러한 NVM Subsystems NVMe Enclosure 자체의 일부일 있고/또는 NVMe Storage Devices FRUs 포함되어 NVMe Enclosure 하나 이상의 NVMe Enclosure 슬롯을 통해 연결될 있습니다. NVMe Enclosure 하나 이상의 NVM Subsystems 포함하고 있습니다. NVMe Enclosure 일부인 NVM Subsystems 인밴드 터널링 메커니즘만 지원할 수도 있고, 아웃오브밴드 메커니즘만 지원할 수도 있으며 지원할 수도 있습니다.

 

NVMe Enclosure NVMe Enclosure 작동을 지원하는 요소를 포함할 있습니다 (: 전원 공급 장치, , 잠금장치, 온도 센서, 전류 센서 전압 센서 ). NVMe Enclosure 또한 NVMe Enclosure 또는 NVMe Storage Devices 상태 (: 요소, NVM Subsystems 또는 RAID 볼륨의 상태) 나타내는 디스플레이 /또는 표시기를 포함할 있습니다. NVMe Enclosure 구성하는 일부 요소는 제거 교체 가능할 있으며, NVMe Enclosure 정상적으로 작동하는 동안에도 계속 사용할 있습니다.

 

SCSI Enclosure Services - 3 (SES-3) SCSI 아키텍처를 사용하여 액세스장치를 관리하기 위한 미국 국가 표준 협회 T10 위원회에서 개발한 표준입니다. NVMe SCSI 아키텍처는 다르지만, NVMe Enclosure SCSI 액세스장치의 요소는 유사하며 NVMe Enclosure SCSI 액세스장치의 요소를 관리하는 필요한 기능도 유사합니다. 따라서 specification은 Enclosure Management 위해 SES 활용합니다. SES SCSI 명령을 사용하여 전송되는 제어 상태 진단 페이지를 사용하여 액세스장치의 요소를 관리합니다 (SES-3 Enclosure Control Enclosure Status 진단 페이지 참조). specification 동일한 제어 상태 진단 페이지를 사용하지만 이를 SES Send SES Receive 명령을 사용하여 전송합니다. specification SES에서 정의된 standalone Enclosure Services Process 모델만을 지원합니다.

 

Requester SES Send SES Receive 명령을 사용하여 NVMe Enclosure 관리하며, 이는 Management Interface Command Set 일부입니다 (섹션 5 참조). SES Send 명령은 SES-3 SCSI SEND DIAGNOSTIC 명령의 기능을 제공하며, Requester 이를 사용하여 NVMe Enclosure 상태를 수정하는 사용됩니다. SES Receive 명령은 SES-3 SCSI RECEIVE DIAGNOSTIC RESULTS 명령의 기능을 제공하며, Requester NVMe Enclosure에서 사용 가능한 다양한 상태 경고 정보를 포함하는 SES 상태 유형 진단 페이지를 검색하는 사용됩니다.

 

SES-3에서 SES 제어 유형 진단 페이지와 SES 상태 유형 진단 페이지에 대한 목록 설명을 참조하십시오. SES 페이지의 바이트를 NVMe-MI Request Response Data 매핑하는 것은 1:1 대응 관계이며, SES 페이지의 x 바이트는 NVMe-MI Request Data 또는 Response Data x 바이트에 매핑됩니다 (: SES 제어 유형 진단 페이지의 0 바이트는 NVMe-MI Request Data 0 바이트에 해당합니다). NVMe 펌웨어 업데이트 프로세스에는 NVMe 펌웨어를 업데이트하기 위해 Firmware Image Download Firmware Commit 명령이 사용됩니다. 지원되는 경우 Download Microcode Control Status 진단 페이지는 NVMe Enclosure 요소에서만 지원되어야 합니다.

 

논리적으로 NVMe Enclosure 일부인 Enclosure Services Process NVMe Enclosure 요소를 관리하고 Requester 의해 발행된 SES Send SES Receive 명령을 처리하는 역할을 담당합니다. SES-3 Enclosure Services Process 모델은 I_T nexus 대한 상태를 유지하는 반면 (SES-3 참조), specification 별도로 명시하지 않는 NVMe Enclosure 상태에 액세스하는 사용된 Requester 또는 경로와 관계없이 단일 전역 상태를 유지하도록 요구합니다.

 

NVMe Enclosure 하나 이상의 Subenclosure 포함할 있습니다 (SES-3 참조). Subenclosure SES-3에서 정의한 1바이트 Subenclosure 식별자로 식별됩니다. 여러 Subenclosure 존재하는 경우 하나가 Subenclosure 지정되고 나머지 Subenclosure 보조 Subenclosure입니다. NVMe Enclosure 하나의 Subenclosure만으로 구성된 경우 해당 Subenclosure Subenclosure입니다. Subenclosure 관련된 Enclosure Services Process 모든 Subenclosure 대한 NVMe Enclosure 서비스 정보에 액세스하는 역할을 합니다. 자세한 내용은 SES-3 참조하십시오.

 

각 NVMe Enclosure 슬롯에는 슬롯을 관리하는 데 사용될 수 있는 SES 요소가 연결되어 있습니다. 자세한 내용은 SES-3를 참조하십시오.

 

Figure 9는 하나의 NVM Subsystem을 포함하는 NVMe Enclosure의 예시를 보여줍니다. 이 NVMe Enclosure에는 Requesters가 NVMe Enclosure와 통신하는 데 사용할 수 있는 여러 포트가 있습니다. 또한 NVMe Storage Devices를 NVMe Enclosure에 연결하는 데 사용되는 여러 개의 슬롯이 있습니다 (예: PCIe). NVMe Enclosure 포트를 NVM Subsystems, 이러한 NVM Subsystems 내의 NVMe Controllers 및 NVMe Storage Devices에 매핑하는 것은 제조업체에 따라 다르며 이 명세서의 범위를 벗어납니다. NVMe Enclosure은 Enclosure Management에 사용되는 하나 이상의 NVM Subsystem을 포함해야 합니다. 이 예에서의 NVMe Enclosure은 응답자(도 Figure 9의 Management Endpoint)를 통해 아웃오브밴드 메커니즘을 사용하거나 NVMe Controller를 통해 인밴드 터널링 메커니즘을 사용하여 관리될 수 있습니다.

 

 

Figure 10은 여러 개의 NVM Subsystem을 포함하고 NVMe Storage Devices가 없는 NVMe Enclosure의 예시를 보여줍니다. 이는 소프트웨어 스토리지 어플라이언스를 나타낼 수 있습니다. 이러한 NVM Subsystems 및 이러한 NVM Subsystems 내의 Controllers는 실제로 존재하거나 소프트웨어로 에뮬레이트될 수 있습니다. 이러한 NVM Subsystems 내의 모든 Controllers가 동일한 기능을 갖추어야 하는 것은 아닙니다. 이 예시에서는 가능한 기능 구성 중 일부가 설명되어 있습니다. 이 예에서 일부 Controllers는 단순히 Namespace에 액세스를 제공하며, 다른 Controllers는 Namespace에 액세스 및 인밴드 터널링 메커니즘을 지원하며, 다른 Controllers는 Namespace에 액세스 및 아웃오브밴드 메커니즘을 지원합니다.

 

Figure 11는 두 개의 Enclosure Services Processes를 지원하는 Enclosure을 보여줍니다. NVMe Enclosure의 요소는 하나 이상의 Enclosure Services Processes에 의해 액세스될 수 있습니다. 여러 Enclosure Services Processes에 의한 요소 액세스의 조정은 이 명세서의 범위를 벗어납니다.

 

Figure 12는 여러 Subenclosure으로 구성된 NVMe Enclosure을 보여줍니다. 이 예에서 각 Subenclosure에는 Enclosure Services Process가 포함되어 있습니다. Subenclosures의 NVMe Enclosure 서비스 정보는 기본 Subenclosure에 의해 하나의 세트의 SES 진단 페이지로 결합됩니다. Subenclosure 식별자는 정보가 어느 Subenclosure에서 얻어졌는지를 구별하는 데 사용됩니다. 자세한 내용은 SES-3를 참조하십시오. 주 Subenclosure은 아웃오브밴드 메커니즘, 인밴드 터널링 메커니즘 또는 둘 다를 사용하여 Subenclosures의 NVMe Enclosure 서비스 정보에 액세스할 수 있습니다. 또는 제조업체별 인터페이스를 사용할 수도 있습니다. 이 예시는 제조업체별 인터페이스의 사용을 보여줍니다

 

특정 NVMe Enclosure 동작은 NVMe Enclosure 내의 요소의 제어 설정 및 상태 테스트를 통해 관리됩니다. Enclosure Services Process는 다양한 경고 및 오류 상태를 모니터링할 수 있습니다. 이러한 상태는 Requester에게 Requester에 의한 폴링을 통해 통지될 수 있습니다 (자세한 내용은 SES-3의 Enclosure Services Management mode 페이지를 참조하십시오).

SES-3의 CHECK CONDITION 상태와 관련된 SES-3 센스 키 및 추가 센스 코드를 NVMe-MI Response Message Status 값으로 매핑한 것은 Figure 13에 나와 있습니다. SES-3에서 설명한 비동기 이벤트 알림 보고 메커니즘은 이 명세서에서 지원되지 않습니다.

 

 

'NVMe-MI' 카테고리의 다른 글

[NVMe-MI] 3. Message Transport  (1) 2023.12.27
[NVMe-MI] 2. Physical Layer  (0) 2023.12.27