企业存储技术 · 2021年11月12日

NVMe-oF:基于IP的NVMe SAN自动化发现存储网络

这几天我做事的效率可能不够高,接下来的周末都没时间写东西了,只好提前到晚上:)

今天的分享来自SNIA资料《NVMe-oF™: Discovery Automation for NVMe® IP-based SANs》的学习笔记。

NVMe-oF的“直接发现”和“集中化发现”
image.png
图片点开后可放大,以下同

在SAN存储网络的发展来看,从SCSI到NVMe是一个趋势。已有的SCSI包括走Fibre Channel(光纤通道)网络的FCP和IP网络的iSCSI,当然后者的性能(延时)表现通常不太好,只是实现成本低。

NVMe-oF可以通过多种Fabric互连,包括NVMe/FC, NVMe/TCP, NVMe/RoCEv2, NVMe/IB和NVMe/iWARP,未来应该是以前三种为主。
image.png

我们来看一下单层网络拓扑的连接性需求。

(1)2个单独的SAN交换机,从主机(服务器)到存储之间是个冗余的后端网络,并且与前端IP LAN网络隔离。

(2)融合LAN和SAN交换机,数据网络和NVMe-TCP存储流量使用同一张IP网络。这样做性能容易无法保证,iSCSI要想达到较好的体验通常也推荐存储流量走独立网络。

(3)专用的双SAN Fabric,与上面的 1 相比SAN A/B的规模更大,应该是各自配置了FC交换机堆叠。

(4)专用的IP SAN Switch,像传统iSCSI和FC拓扑那样把存储后端网络独立出来,这对于NVMe-oF同样属于性能最佳实践。

还记得我在《NVMe-oF 1.1规范:多路径、非对称命名空间和NVMe/TCP》中提到过大约2年前的新特性:“Asynchronous discovery events inform hosts of addition or removal of target ports in a fabric-independent manner.” 下面看看NVMe工作组不断完善的路线图:
image.png
已经公布的TP-8006和8011分别解决了身份认证和加密的问题(如下图),比如NVMe over Fabric对应iSCSI CHAP和FC存储端点认证的新机制叫做DH-HMAC-CHAP,安全通道则是靠TLS 1.3。
image.png

目前已经达到Phase 3阶段的是NVMe-oF自动化发现的控制器(TP-8009)和TP-8010的CDC(集中发现控制器),这也是本文重点要讨论的。而仍在进行中的标准包括从NVMe-oF存储启动,以及吸收FC-NVMe的需求到NVM Express规范中来。
image.png

无论FC存储网络还是基于IP的NVMe SAN,自动化端到端发现的目的都差不多,也是为了规避像iSCSI那样的用户体验。iSCSI我有几年没上手玩了吧,记得之前还是在测试EQL时给交换机配VLAN。

FC网络的发现服务是供应商定义的,好在Brocade(现在是Broadcom)光纤交换机市场占主导,HBA卡也就是Emulex(也被博通收购了)和QLogic(Marvell)这2家,只要不是跨交换机品牌互连似乎还好。

在服务器和存储互相发现之前,可以有一个底层Fabric的配置服务。具体到以太网/IP Fabric的形成服务,Dell有一个SFS(Smart Fabric Storage),我理解应该是配合自家品牌交换机的自动化底层配置。
image.png

上面是基于IP的NVMe SAN中的术语。

端点:在主机和存储系统上,以NQN(对应iSCSI的IQN)和IP地址来识别;

IP网络:以太网交换机,最好是25GbE或以上;

子系统:指存储阵列,类似于SCSI Target;通过一个NQN可以有多个目标端口,然后每个Target再映射出若干LUN;

CDC:集中发现控制器实例;

DDC:直接发现控制器:由存储控制器自身提供的发现功能,不具备集中化管理的一些价值。
image.png

支持自动化发现的部署类型有3种:

1、物理连接:主机和存储之间通过线缆直连,没有交换机;
2、Direct Discovery:多个主机和存储子系统在一个IPFabric网络里,没有CDC控制器;
3、Centralized Discovery:在“2”基础上,加入CDC。

注:CDC支持注册和zoning(分区)。通常独立(作为一个虚拟机)运行或者嵌入到Fabric里的交换机上。

image.png

Direct Discovery的配置步骤(当前):

(1)主机根据管理员提供的IP地址,发送连接请求到NVMe存储阵列的Discovery Controller;
(2)存储管理员提供Namespace(相当于存储LUN)给到主机NQN;
(3)主机管理员使用nvme connect-all发现并连接存储阵列上的IO Controller;
(4)在所有主机上为每一个存储子系统重复1-3步骤。

image.png

Centralized Discovery的配置步骤(新方法):

(0)主机和存储系统先自动发现CDC,连接到它并注册Discovery信息;
(1)在CDC上执行Zoning(可选,这部分自动化应该需要以太网交换机的协同);
(2)存储管理员提供namespaces给到主机NQN,存储会发送Zoning信息给CDC;
(3)Zoning之后,主机接收到AEN,使用get log页面,并连接到每一个(存储)的IO Controller;
(4)针对每一台主机,为每个存储子系统重复1-2步骤。

image.png

上图是直连 vs 集中化发现在规模扩展大之后的对比。直连方式在每一次有存储添加或者移除时,都需要对每台(连接的)主机做交互操作;并且在若干存储子系统接口(网口)存在时,会导致增加发现时间。

而集中方式相当于把所有Host和存储端信息都存放在CDC上,有变更时只要在这里改,相当于新注册的主机一上来就能看到所有存储,然后选择分配即可。

当超过64台主机时,Direct发现的总配置步骤,将显著多于Centralized发现方式。
image.png

大家还记得FC存储网络的Zoning吧。NVMe IP SAN是在CDC上有一个Zoning数据库,存储着配置和激活的zones。

端到端自动化发现示例
image.png

我们来看一下NVMe IP-Based SAN集中化发现的操作流程(硬件组成包括NVMe/TCP主机端、存储子系统和以太网交换机)

(1)自动化底层配置:基于预定义的策略进行Fabric(交换机)的自动化部署;
(2)服务器和存储系统发现CDC;
(3)服务器和存储系统在CDC上注册;
(4)操作者或者orchestrator(编排器)读取CDC命名服务器数据库,并设置Server/Storage zones;
(5)CDC提示服务器和存储关于zoning的变化;
(6)服务器连接存储并开始传输数据。
image.png

最后再回顾一下关键要点:

自动化发现并不完全依赖于CDC(集中发现控制器)的存在,小规模环境可以使用mDNS来自动发现NVMeDiscovery控制器。

CDC和(存储)子系统将支持它们应该做的交互:

● 使用Port-LocalLog页面,来提供更好的UX(用户体验),并阻止不同租户之间的信息泄露;

●使用(存储)子系统驱动的Zoning(SDZ)——存储管理员只需要与一个UI界面交互来分配存储;

●使用终端用户易懂的扩展属性和注册符号名;

●贡献给开源的NVMe-oF Discovery client(发现客户端)“nvme-stas”正在由Dell牵头。在TP-8009和8010规范被批准之后将提供review(大约在今年底)。
image.png

OMNI(OpenManage Network Integration,看上去明显是用于网络管理)集中化管理,在这里就是CDC。

大家如有兴趣,可以留意下Dell EMC的SmartFabric Storage Software,以及PowerStore OS 2.1对NVMe/TCP的支持。

参考资料
https://www.snia.org/sites/default/files/ESF/NVMe-oF-Discovery-Automation-for-NVMe-IP-based-SANs.pdf
https://www.delltechnologies.com/asset/en-ug/products/networking/technical-support/smartfabric-storage-software-spec-sheet.pdf

作者:企业存储技术
原文:https://mp.weixin.qq.com/s/ivh6fxjGZrei72wDDQjUMg

推荐阅读

欢迎关注企业存储技术极术专栏
推荐阅读
关注数
5613
内容数
260
关注存储、服务器、图形工作站、AI硬件等方面技术。WeChat:490834312
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息