"\u003Cdiv\u003E\u003Cp\u003E原创: Hardy 架构师技术联盟 \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F0dcf0da593ce49fab7b44e37705eecf4\" img_width=\"640\" img_height=\"339\" alt=\"NVMe Over Fabrics架构概述\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe Over Fabrics使用RDMA或光纤通道(FC)架构等Fabric技术取代PCIe传输。如图所示,除了基于RDMA架构的传输包括以太网(ROCE),InfiniBand和iWARP,当然,采用基于原生TCP(非RDMA)传输也是可能的(截至2018年7月,TCP技术仍在研发阶段)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fdddcae380d1b411f9337304ecbe9e5be\" img_width=\"505\" img_height=\"473\" alt=\"NVMe Over Fabrics架构概述\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E图RDMA和FC Fabric NVMe架构\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E图中所示的NVM子系统是一个或多个物理结构接口(端口)的集合,每个单独的控制器通常连接到单个端口。多个控制器可以共享一个端口。尽管允许NVM子系统的端口支持不同的NVMe传输,但实际上,单个端口可能仅支持单个传输类型。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E注意:NVM子系统包括一个或多个控制器,一个或多个命名空间,一个或多个PCI Express端口,非易失性存储器存储介质,以及控制器和非易失性存储器存储介质之间的接口。\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E下图是一个存储阵列的示例,该阵列是由通过FC结构连接到3个主机的NVM子系统组成。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F9a394a4179a146a19da26e2938dc2629\" img_width=\"450\" img_height=\"368\" alt=\"NVMe Over Fabrics架构概述\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E图:由通过Fabric连接到3个主机的NVM子系统组成的示例阵列\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E通常,NVM子系统呈现一个或多个NVMe控制器(最大约64K)的集合,其用于通过一个或多个(最多64K)NVM子系统端口访问与一个或多个主机相关联的命名空间。实际上,子系统控制器的数量或子系统端口的数量往往非常小。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe Over Fabrics(NVMe-oF)也是基于NVMe架构,包括命令集和排队接口。除Admin和I\u002FO命令外,它也支持Fabric命令。NVMe-oF在某些方面与基本NVMe规范有所不同(例如,不允许中断),因为NVMe中的Interrupt的说法,仅仅限于NVMe over PCIe的架构,在NVMe over Fabric的架构下,不存在任何Interrupt的说法。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E注意:有关NVMeover Fabrics与NVMe基本规范之间差异的完整列表,请参阅NVMe Over Fabric 1.0规范\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E控制器一次只与一个主机关联,而端口可以共享。NVMe允许主机通过相同的端口或不同的端口连接到NVM子系统中的多个控制器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe-oF支持发现服务,使用发现机制,主机可以获得具有主机可访问的名称空间的NVM子系统的列表,包括发现到NVM子系统的多个路径的能力。NVMe Identify Admin命令用于确定控制器的命名空间。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如前所述,NVMe规范支持多路径I\u002FO和命名空间共享。虽然多路径I \u002F O,命名空间共享,多主机连接和预留等概念并不相同,但为了方便将它们一起描述,它们在涉及多主机命名空间访问,尤其是在使用NVMe预订(Reservations)时有些相互关联。以下提供了这些概念的简要说明。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E命名空间共享\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E命名空间共享是指两个或多个主机使用不同的NVMe控制器访问公共命名空间的能力。命名空间共享要求NVM子系统包含两个或更多控制器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E下图显示了两个NVMe控制器通过两个NVM子系统端口连接的示例; 在此示例中,命名空间B(NS B)由两个控制器共享。NVMe操作可用于协调对共享命名空间的访问。与共享命名空间相关联的控制器可以同时在命名空间上操作。可以使用全局唯一标识符或与命名空间本身关联的命名空间ID(NSID)来确定何时存在到同一共享命名空间的多个路径。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVM子系统不需要将相同的命名空间附加到所有控制器。在图中,只有命名空间B被共享并连接到控制器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E注:当前的NVMe规范未指定跨NVM子系统的命名空间共享,这在NVMe 1.4规范草案中得到了解决。\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F65b974ae8a2442bf827926011abfa5a5\" img_width=\"480\" img_height=\"364\" alt=\"NVMe Over Fabrics架构概述\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E图:具有对共享命名空间的专用端口访问的示例\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E多路径\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe多路径I\u002FO是指单个主机和命名空间之间的两个或多个完全独立的路径。每个路径使用自己的控制器,尽管多个控制器可以共享子系统端口。命名空间共享等多路径I\u002FO要求NVM子系统包含两个或更多控制器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在下图所示的示例中,主机A通过控制器1和控制器2具有2个路径。NVMe标准技术委员会目前正在制定关于多路径I\u002FO的规范草案。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E多主机连接和预留\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe预留功能类似于SCSI-3持久保留,可用于提供两个或多个主机用于协调对共享命名空间的访问的功能。命名空间上的NVMe预留限制了主机对该命名空间的访问。例如,受驱动程序支持的VMware ESXi可以使用NVMe预订来支持使用VM的MicrosoftWindows Server故障转移群集。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe预留需要主机和命名空间之间的关联。多路径I\u002FO和命名空间共享环境中的每个控制器只与一个主机相关联,如下图中的示例所示。主机可以通过向与其关联的每个控制器注册相同的主机ID来与多个控制器相关联。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E注意:为了唯一标识主机ID,控制器可以支持以下两种格式之一:\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E1)64位主机标识符\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E2)扩展的128位主机标识符; NVMeOver Fabrics需要128位扩展格式\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E如下图所示的示例中,主机A与2个控制器相关联,而主机B与单个控制器相关联。主机标识符(例如,主机ID A)允许NVM子系统识别与同一主机(例如,主机A)相关联的控制器,并保留跨这些控制器的预留属性。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff49808ad19fe43b18bee6b24cb11c9ba\" img_width=\"617\" img_height=\"469\" alt=\"NVMe Over Fabrics架构概述\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E图:对共享命名空间的多主机访问\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E提醒一下,NVMe-oF是一种通过可扩展的方式在主流互连上扩展NVMe架构的事实标准。该标准旨在使非易失性存储器快速基于消息的命令能够 通过网络在主计算机和目标固态存储设备或系统之间传输数据。主要的好处包括提高性能,减少网络延迟和瓶颈。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E关于NVMe-oF\u002FTCP\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E一个更有趣的新发展是NVMe和传输控制协议(TCP)的新传输绑定。对开发人员来说,好处是迁移NVMe技术到Internet小型计算机系统接口(iSCSI)。对于希望利用其以太网基础设施并避免远程直接内存访问(RDMA)协议的复杂性的企业而言,NVMe-oF\u002FTCP是一个很好的选择。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe-oF的传输无关性意味着NVMe-oF可以支持所有传输,目前有几种主流传输方式:RoCEv2,iWARP,InfiniBand和FCoE(以太网光纤通道\u002FFC)。这里面有一些传输使用我们的规范中包含的RDMA协议实现绑定,但目前NVMe相关组织在正在添加TCP以满足市场需求。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E业界对NVMe-oF \u002FTCP标准持乐观态度, 许多行业领导者都支持它,包括Facebook,谷歌,戴尔EMC,英特尔和其他公司。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E外部存储市场已经开始采用NVMe-oF技术,我们希望企业客户能够继续在高性能要求的应用中使用和部署它。目前已经看到顶级供应商,包括Broadcom,思科,英特尔,IBM等,并宣布推出NVMe-oF解决方案。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENVMe-oF的未来在企业存储领域是光明的,新兴的计算密集型市场需要NVMe-oF技术。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E人工智能,机器学习和实时分析都需要NVMe-oF提供的更低延迟和更快的吞吐量。NVMe-oF技术具有许多优势,可以满足新的应用需求。在服务器端,NVMe-oF减少了操作系统存储堆栈的长度,从而可以更有效地进行连接。在存储阵列方面,由于通过目标堆栈的路径较短,从而改善阵列性能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E然而,最重要的好处之一是NVMe-oF利用存储阵列的原有技术,通过从SAS\u002FSATA驱动器转移到NVMe SSD,加速解决方案上市。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E内容分享到此为止,更多技术细节请参考整理成文的“\u003Cstrong\u003ENVMe技术标准和原理深度解析”\u003C\u002Fstrong\u003E电子书,详细内容和目录如下。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E一、NVMe技术和应用概述6\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.1 NVMe技术独特优势7\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.2 NVMe-oF技术概述7\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.2.1 NVMe over FC8\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.2.2 NVMe over以太网和InfiniBand8\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.2.3 NVMe over TCP8\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3 NVMe数据中心应用现状分析8\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.1戴尔EMC(PowerMax)8\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.2 E8存储公司(E8设备和软件)9\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.3 Excelero Inc (NVMesh)10\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.4 IBM (FlashSystem 9100)11\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.5 NetApp (AFF A800及EF570)12\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.6 Pure Storage(FlashArray和FlashBlade)16\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E1.3.7 Vexata公司(VX-100M和VX-100F)17\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E二、NVMe标准术语解释19\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.1 NVM子系统介绍19\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.2 端口概念介绍19\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.2.1 物理端口19\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.2.2 NVM子系统端口20\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.2.3 传输端口23\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.3 NVM控制器23\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.3.1 动态控制器23\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.3.2 静态(Persist)控制器24\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.4 发现过程控制器25\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.5 发现服务器子系统26\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.6 发现日志页26\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7 名称空间分析26\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.1名称空间ID27\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.2 创建名称空间27\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.3 删除名称空间28\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.4 添加、解除名称空间28\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.5 名称空间标识28\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.7.6名称空间格式29\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.8 Association关联回话30\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.9 Connection机制31\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.10 NVMe概念架构31\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.11 Capsule数据交换单元32\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.13 Properties属性33\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.14 Fabric Command指令类型34\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.15 Host ID和Host NQN34\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.13 Host、Controller和Namespace35\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E2.14 NVMe Subsystem预置条件36\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E三、NVMe-oF和NVMe over PCIe差异37\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.1 NVMe-oF原理和概述37\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.2 NVMe over PCIe原理和概述39\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.3 NVMe over FC如何工作40\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.4 NVMe\u002FTCP(NVMe over TCP)如何工作43\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.4.1 NVMe\u002FTCP PDU的定义43\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E3.4.2 基于NVMe\u002FTCP transport通信45\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E四、NVMe Over Fabric命令解析46\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.1 Command字段分析47\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.1.1 Fabric Command 字段47\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.1.2 Admin\u002FIO Command47\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.2 Command响应字段分析48\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.2.1 Fabric Response字段48\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E4.2.2 Admin\u002FIO 响应字段48\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E五、Discovery处理流程50\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E5.1 Discovery初始化过程50\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E5.2 Discovery Log Page51\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E5.3 Discovery终止机制57\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E六、Connection处理流程57\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E七、数据传输流程61\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.1数据传输总体介绍61\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2 传输单元Capsule61\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.1 Command Capsule 大小62\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.2 Command Capsule报文结构62\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.3 Response Capsule报文结构64\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.4 In Capsule传输方式64\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.5 In memory 传输方式65\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.2.6 Out of Order传输方式66\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.3 传输命令和流程66\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.3.1 NVM读命令66\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.3.2 NVM写命令68\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E7.4 SGL散列表69\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E八、NVMe元数据71\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.1 NVMe元数据定义71\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.2 NOF Metadata传输方式72\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.2.1数据In capsule传输(数据对齐)72\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.2.2数据In capsule传输(数据未对齐)73\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.2.3数据In memory传输(SGL在memory)74\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E8.2.3数据In memory传输(SGL在capsule)74\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E九、NVMe\u002FNVMe over Fabric流控处理75\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E十、NVMe安全认证机制77\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E10.1 安全认证概述77\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E10.2 认证相关命令78\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E10.3 认证流程78\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十一、Stream数据流80\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E11.1 Stream概述80\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E11.2 Stream命令80\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E11.3 Stream配置和实现82\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十二、加速后台操作(ABO)84\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E12.1 ABO概述84\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E12.2 ABO模式84\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E12.3 ABO状态查询84\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E12.4 启动\u002F停止Host触发的ABO85\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E12.5 ABO参数配置85\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十三、NVMe传输层绑定实现85\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E十四、Sanitize机制原理85\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.1 Sanitize概述85\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.2 Sanitize和Format格式差异86\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.3 Sanitize作用范围88\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.4 Sanitize工作模式89\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.5 Sanitize状态机89\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E14.6 Sanitize命令90\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十五、Reservations机制分析90\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.1 Reservations概述90\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.2 Reservation角色91\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.3 Reservation类型92\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.4 Reservations操作流图93\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.5 Reservations支持条件94\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E15.6 Reservations实现和相关命令95\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十六、Keep Alive机制103\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E16.1 Keep Alive背景103\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E16.2 功能概述103\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E16.3 Keep Alive应用范围103\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E16.4 Keep Alive实现104\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十七、Interrupt中断机制104\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E17.1 Interrupt具体实现104\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E17.2 Interrupt Aggregation中断聚合105\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E17.3 NVMe中断映射方式105\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十八、NVMe Virtulization虚拟化机制108\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.1 虚拟化机制概述108\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.2 虚拟化应用场景109\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3 虚拟化具体实现109\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.1 Primary Controller109\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.2 Secondary Contgroller109\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.3 Privileged Actions109\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.4 Virtualization管理命令110\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.5 Seconary Controller Command110\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.6 Resource资源分配110\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.7 虚拟化队列 (Virtual Queue)112\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cem\u003E18.3.8 虚拟中断(Virtual Interrupt)112\u003C\u002Fem\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E十九、NVMe\u002FNVMe over Fabric学习资源113\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E推荐阅读:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E\u003Cem\u003E详谈利用Alluxio技术实现数据湖方案\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E点击\u003Cstrong\u003E原文链接\u003C\u002Fstrong\u003E获取“\u003Cstrong\u003ENVMe技术标准和原理深度解析\u003C\u002Fstrong\u003E”电子书资料总结。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6720571484164588045
相关文章