iNOF技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着全球企业数字化转型的加速进行,互联网应用在生产、生活领域的不断深入,存储网络的规模越来越大,需要处理的数据越来越多,总部和分支机构的数据中心部署在不同的物理位置,RDMA(Remote Direct Memory Access,远程直接内存访问功能)成为存储网络的主流技术。RDMA利用相关的硬件和网络技术,使主机的网卡之间可以直接读内存,最终达到高带宽、低时延和低资源消耗率的效果。然而,RDMA提出之初是承载在无损的IB(Infinite Band,无限带宽)网络中的,专用的IB网络架构封闭,无法兼容现网,使用成本较高,于是,RoCE(RDMA over Converged Ethernet)应运而生。
RoCE使用以太网承载RDMA的网络协议,有两个版本:RoCEv1是一种链路层协议,不同广播域下无法使用;RoCEv2是一种网络层协议,可以实现路由功能。
当前高性能计算、分布式存储、人工智能等应用均采用RoCEv2协议来降低CPU的处理和时延,提升应用的性能。RoCEv2协议缺乏完善的丢包保护机制,但存储业务对网络丢包异常敏感。要在以太网大环境下,发挥出RDMA的真正性能,突破数据中心大规模分布式系统的网络性能瓶颈,我们使用智能无损网络技术为RDMA搭建了一套“无丢包、低时延、高吞吐”的无损网络环境。
智能无损网络是一系列技术的集合,它一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。
iNOF(Intelligent Lossless NVMe Over Fabric,智能无损存储网络)就是一种以太网和存储网络的融合优化技术。它能实现海量存储设备的自动发现,网络故障的快速感知,并将存储设备的加入和离开第一时间通知给智能无损网络内的所有设备,为实现智能无损网络的“无丢包、低时延、高吞吐”提供基础支持。
iNOF有两种典型组网:iNOF直连组网和iNOF跨交换机组网,这两种组网的适用场景不同,原理机制也不同。
iNOF网络中,包括以下三个重要元素:
· iNOF主机:支持iNOF协议的网络服务器和磁盘设备,以下简称主机。
· iNOF交换机:用于接入主机且支持iNOF功能的交换机。
· iNOF域(Zone):iNOF使用域来管理主机。当域内有主机加入或者离开,iNOF会将这个主机的加入和离开信息通知给同一域内的其它主机,以便其它主机能够感知同一域内任一主机的加入或者离开。
为方便管理,iNOF域分为两类:
¡ 自定义iNOF域:用户根据组网需求手工创建的iNOF域,需要手工向其中添加主机。
¡ 缺省iNOF域:设备出厂即存在的iNOF域,无需用户创建,不能删除。对于未加入自定义iNOF域的主机,用户可以选择是否自动让它加入缺省iNOF域。
iNOF直连组网如图1所示,它要求同一域内的所有主机和同一iNOF交换机直连。主机和iNOF交换机之间通过交互二层报文,来通知主机状态变化(即主机加入或离开iNOF网络,也称为主机上线/离线),iNOF交换机之间不交互iNOF相关信息。iNOF直连组网适用于小规模网络。
图1 iNOF直连组网示意图
iNOF跨交换机组网如图2所示,它支持同一域内的主机可以连接在不同的iNOF交换机上,iNOF交换机之间通过iNOF报文传递域内所有主机的加入或离开信息。iNOF跨交换机组网适用于规模较大的数据中心,这样的数据中心拥有多台主机,主机属于不同的组织或部门(对应不同的iNOF域),同一组织或部门的主机通过多台iNOF交换机相连。
为了跨交换机传递主机信息,通常要求iNOF交换机之间全部两两建立直连连接,这种全连接的方式增加了维护复杂度,不利于后续iNOF交换机的加入。H3C基于成熟的BGP技术,将BGP协议进行扩展,复用BGP反射器技术,来实现iNOF跨交换机组网。
在iNOF跨交换机组网中:
· iNOF交换机和主机直连,iNOF交换机和主机之间交互的报文和报文交互流程同iNOF直连组网。
· iNOF交换机之间基于iBGP连接建立iNOF连接,通过BGP报文携带iNOF路由信息,利用BGP反射器技术,将一台iNOF交换机感知到的主机状态变化通知给域内的所有iNOF交换机。iNOF路由信息包括主机的加入或离开信息,以及iNOF的配置信息。
在iNOF跨交换机组网中,为简化组网,必须至少部署一台iNOF反射器,其它iNOF交换机均为客户机。所有客户机和反射器连接,客户机和客户机之间不建议连接,主机和iNOF反射器、iNOF客户机直连。因为客户机和客户机之间连接容易导致组网的复杂性,在路由快速变化时可能会出现路由表项短暂波动等非预期或不可控的现象。
为避免单点故障、提高网络的可靠性,一个iNOF域中也可以部署多个iNOF反射器。当一个反射器故障时,其它反射器能继续工作。这些路由反射器及其客户机之间形成一个集群,反射器上需要配置相同的集群ID,以便集群具有统一的标识,避免路由环路的产生。
图2 iNOF跨交换机组网示意图
iNOF具有以下优势:
· 即插即用
当主机接入iNOF网络时,iNOF交换机能够自动发现该设备,并将新主机加入消息同步给网络中的其他iNOF交换机以及通知同一iNOF域中的其它主机,以便其它主机能迅速发现新加入的主机,并自动和新主机建立连接,迅速实现存储业务的部署。
· 故障快速感知
当网络故障时,iNOF交换机能够快速检测到故障,并将故障状态信息同步给网络中的其它iNOF交换机以及通知同一iNOF域中的其它主机。如果该网络故障影响了存储设备,则网络服务器会快速断开与该存储设备的连接,将业务切换到冗余路径。
iNOF在运行过程中,会用到如表1所示的这些报文。
表1 iNOF相关报文描述表
报文名称 |
发送方——>接受方 |
报文描述 |
扩展的LLDP通告报文 |
主机——>iNOF交换机 |
用来告知直连的iNOF交换机,本主机的加入以及主机参数的变化 |
iNOF状态通知报文之通知报文 |
iNOF交换机——>主机 |
用来通知同一域中的其它主机,有主机离开iNOF域 |
iNOF状态通知报文之ACK报文 |
主机——>iNOF交换机 |
用来对收到的通知报文的确认 |
iNOF报文 |
iNOF交换机——>iNOF交换机 |
用来同步配置以及将本地检测到的主机状态变化告知对端iNOF交换机 |
iNOF对LLDP通告报文进行了扩展,重新定义了LLDP通告报文中的部分字段来实现主机加入通告功能。iNOF对LLDP通告报文的重新定义主要体现在以下方面:
· 通过ChassisID和PortID字段携带主机标识,用“ChassisID+PortID”唯一标示一台主机。
¡ Chassis ID:采用主机上接入iNOF网络的端口的MAC地址(例如0800-271a-494f)表示。
¡ PortID:采用“前缀+端口名称”的格式表示。前缀采用固定字符串,在ODCC规范中,前缀取值为snsd_;在中移动规范中,前缀取值为roce-san_。
· 通过新增LLDP扩展TLV携带主机iNOF参数
图3 iNOF扩展TLV格式
iNOF扩展TLV格式如图3所示,其中iNOF主要使用到如下字段:
¡ OUI(Organizationally unique identifier,组织唯一标识符):表示主机遵循的iNOF规范。
¡ subtype:表示该TLV为iNOF扩展TLV,携带的是iNOF相关信息。
¡ IP地址类型:取值为1表示IPv4地址;取值为2表示IPv6地址。
¡ 订阅服务:表示主机是否订阅网络信息变化消息,即主机是否想要感知同一域内其它主机的加入和离开状态变化信息。
- 取值为1时,表示订阅,当同一域中其它主机加入或离开网络时需要通知本主机;
- 取值为0时,表示不订阅,当同一域中其它主机加入或离开网络时无需通知本主机。
对于服务器,必须订阅网络信息变化消息;对于磁盘设备,可选订阅网络信息变化消息。
¡ IP地址:主机的IP地址。对于IPv4地址,只占前4个字节,其余字节填0。
当某主机的网络状态发生变化(例如加入、离开或者接入链路故障等)时,与主机直连的iNOF交换机检测到主机网络信息变化,会给直连的、同一域中的其它主机发送状态通知报文,使得其它主机能尽快感知到网络状态的变化,以便其它主机和新主机及时建立连接、和离开的主机断开连接,或者快速地进行链路切换。
状态通知报文分为两种:
· 通知报文:在iNOF交换机上生成、发给主机的报文,用于通知主机的网络信息变化。
· ACK报文:在主机上生成、发给iNOF交换机的报文,用于对收到的通知消息进行确认。
iNOF通知报文的格式如图4所示,报文中重要字段的描述请参见表2。设备通过ETH类型字段的取值来判断一个报文是否为iNOF通知报文,然后再根据TLV类型字段的取值来判断这个报文是通知报文还是ACK报文。
图4 iNOF状态通知报文格式
一条iNOF通知报文中可以包含多组TLV,H3C设备当前的实现是一个iNOF通知报文中携带一个TLV。
字段类型 |
字段名称 |
字段长度 |
字段说明 |
ETH帧头 |
目的MAC地址 |
6字节 |
固定为0180-C200-000D |
源MAC地址 |
6字节 |
消息发送方的MAC地址 |
|
ETH类型 |
2字节 |
· 在ODCC规范中,该字段取值为0x88A7 · 在中移动规范中,该字段取值为0x7777 |
|
通知消息头 |
版本号 |
1字节 |
表示版本号,当前取值为1 |
预留字段 |
1字节 |
预留字段 |
|
消息总长度 |
2字节 |
通知消息里可以携带多个TLV消息,这里填所有TLV消息的总长度,不包括ETH帧头和通知消息头的长度 |
|
预留字段 |
4字节 |
预留字段 |
|
TLV消息 |
TLV类型 |
1字节 |
· 在ODCC规范中,取值为33时,表示该消息为通知消息;在中移动规范中取值为1时,表示该消息为通知消息 ¡ 对于IPv4通知消息,消息内容里必须携带类型为1、2、5、6、7和8的subTLV ¡ 对于IPv6通知消息,消息内容里必须携带类型为3、4、5、6、7和8的subTLV · 在ODCC规范中取值为34时,表示该消息为ACK消息;在中移动规范中取值为2时,表示该消息为ACK消息 ¡ 对于IPv4 ACK消息,消息内容里必须携带类型为1、2和5的subTLV ¡ 对于IPv6 ACK消息,消息内容里必须携带类型为3、4和5的subTLV ACK消息的里携带的subTLV1和subTLV2必须与原通知消息保持一致,供交换机检查用 |
TLV消息长度 |
2字节 |
表示通知消息内容的长度,不包括TLV类型和TLV消息长度 |
|
通知消息内容 |
变长 |
不同TLV携带的subTLV组合不同,subTLV的定义请参见表3 |
表3 subTLV格式描述表
subTLV类型 |
subTLV消息长度 |
subTLV消息说明 |
1 |
4字节 |
表示网络状态发生变化的主机的IPv4地址 取值为:IPv4地址 |
2 |
4字节 |
表示目的IPv4地址,同一域中订阅了网络信息变化消息的主机的IPv4地址 取值为:IPv4地址 |
3 |
16字节 |
表示网络状态发生变化的主机的IPv6地址 取值为:IPv6地址 |
4 |
16字节 |
表示目的IPv6地址,同一域中订阅了网络信息变化消息的主机的IPv6地址 取值为:IPv6地址 |
5 |
4字节 |
表示消息序列号 取值为:消息序列号,每个消息递增1;ACK报文中携带的序列号必须和它确认的通知报文中携带的序列号相同 |
6 |
4字节 |
表示主机的状态 取值为: · 0:表示离线 · 1:表示上线 |
7 |
4字节 |
表示设备状态变化原因的原因码 取值为: · 0:表示正常 · 1:表示主机离线,原因是主机与iNOF交换机之间的链接断开 · 2:表示主机离线,原因是iNOF交换机检测到和主机相连的接口发生了PFC死锁 · 3:表示主机离线,原因是iNOF交换机通过BFD检测到接入iNOF交换机故障或iNOF交换机间级联链路故障 · 4:表示主机离线,原因是域配置变化,主机从域中删除 · 5:表示主机离线,原因是主机的IP地址配置发生变化 · 6:表示主机离线,原因是主机超过120秒没有给iNOF交换机发送LLDP通告报文 |
8 |
变长 |
表示设备附属信息 取值由主机厂商填充 |
BGP为iNOF新增了BGP iNOF地址族,并新增了iNOF NLRI(Network Layer Reachability Information,网络层可达性信息),即iNOF路由信息。iNOF路由信息通过BGP Update消息中的MP_REACH_NLRI(Multiprotocol Reachable NLRI,多协议可达NLRI)字段携带。在BGP iNOF地址族中设备可以交互iNOF路由信息,iNOF路由信息用于传递主机的加入或离开消息,以及iNOF的配置信息。
目前,iNOF协议主要包括《ODCC-2020-05016 NVMe NVMe over RoCEv2网络控制优化技术要求与测试规范》和《中移动RoCE-SAN解决方案v03 20210817》。iNOF交换机通过和主机协商,来决定使用这两种协议中的一种进行报文交互。
不同iNOF协议中iNOF报文个别字段的取值存在差异,详情请参见表4。
表4 不同iNOF协议中iNOF报文的差异
iNOF报文中的字段 |
ODCC规范中定义的值 |
中移动规范中定义的值 |
LLDP通告报文中的OUI字段 |
0x001882 |
0x5C75C6 |
LLDP通告报文中的subtype字段 |
101 |
88 |
LLDP通告报文中的Port ID字段 |
Port ID字段中前缀部分的取值为:snsd_ |
Port ID字段中前缀部分的取值为:roce-san_ |
状态通知报文中ETH类型字段 |
0x88A7 |
0x7777 |
状态通知报文中TLV类型字段 |
· 33:表示通知报文 · 34:表示ACK报文 |
· 1:表示通知报文 · 2:表示ACK报文 |
主机和iNOF交换机均需支持并启用LLDP功能。在图5所示的iNOF网络中,服务器1和磁盘设备1属于同一自定义域zone 1,服务器2和磁盘设备2属于缺省域。当主机(例如磁盘设备1)接入iNOF交换机时,各设备间的报文交互过程如下:
(1) 主机主动向直连的iNOF交换机(Device A和Device B)分别发送LLDP通告报文,报文内记录了LLDP邻居变化信息以及要求订阅网络信息变化消息。
(2) iNOF交换机收到LLDP通告报文后,会进行以下处理:
a. 维护本地主机信息库
iNOF交换机以“ChassisID+PortID”为关键字精确查找本地主机信息库。
- 如果找到对应的记录,则认为该主机为已加入iNOF网络,更新主机信息老化定时器,并继续比较其他参数取值是否有变化。如果其他参数取值有变化,则更新本地对应记录;如果其它参数取值无变化,则无需处理。(iNOF交换机使用主机信息老化定时器自动维护主机记录,对于本地主机信息库中已存在的主机记录,如果直到主机信息老化定时器超时,仍一直未收到主机的LLDP通告报文,iNOF交换机会认为该主机已离线,并进行相应的处理。主机信息老化定时器时长由主机决定,当前取值为120秒)
- 如果未找到对应的记录,则认为该主机为新主机。iNOF交换机为该主机在主机信息库中创建记录,并启动主机信息老化定时器。
b. 发送通知报文,告知网络信息变化。
- 对于新加入且订阅了网络信息变化消息的主机(磁盘设备1),iNOF交换机将域内所有设备(服务器1)信息状态通告给该主机。
- 对于直连的、属于同一iNOF域且订阅网络信息变化消息的其它主机(服务器1),iNOF交换机将新加入的主机(磁盘设备1)的信息通告给它们(服务器1)。
(3) 主机对通告信息进行确认。
服务器1向Device A和Device B分别发送ACK报文,表示已经感知到新主机加入。iNOF交换机如果未收到主机的ACK报文,会重新发送通知报文。
出现以下情况时,iNOF交换机会认为主机离开,启动主机离开通告流程:
· 主机与iNOF交换机之间的链接断开
· iNOF交换机检测到和主机相连的接口发生了PFC死锁
· iNOF交换机通过BFD检测到接入iNOF交换机故障或iNOF交换机间级联链路故障
· 域配置变化,主机从域中删除
· 主机的IP地址配置发生变化
· 主机超过120秒(为主机信息老化定时器时长,当前取值为120秒)没有给iNOF交换机发送LLDP通告报文
主机离开时,各设备间的报文交互过程如下:
(1) iNOF交换机判断主机离开,删除本地主机信息库中的对应记录。通知直连的、同一iNOF域且订阅网络信息变化消息的其它主机,有设备离线。
(2) 服务器1向Device A和Device B分别发送ACK报文,表示已经感知到主机离线。iNOF交换机如果未收到主机的ACK报文,会重新发送通知报文。
iNOF复用了BGP路由反射技术,iNOF连接复用了iBGP连接。所以,部署iNOF前,需要在所有iNOF交换机上完成iBGP和反射器的配置。
在iNOF交换机上开启iNOF功能后,反射器会向客户端及其它反射器发送BGP路由,iNOF信息以路由属性的形式携带在其中。
如图6所示,假设Device B和Device C为反射器,Device A和Device D为客户端。Device B会分别和Device A、Device C、Device D建立iBGP连接;Device C会分别和Device A、Device B、Device D建立iBGP连接。
图6 建立iNOF连接示意图(带反射器)
图7 多iNOF反射器组网环境下的主机加入组网图
如图7所示的iNOF网络中,服务器10、磁盘设备11~磁盘设备15属于同一自定义域zone 1,服务器20和磁盘设备21属于缺省域。Device A和Device D为客户机,Device B和Device C为两个互为备份的反射器,所有iNOF交换机均属于AS 65000,且属于同一集群。主机和iNOF交换机均需支持并启用LLDP功能。当有主机(假设为磁盘设备11)接入iNOF交换机时,各设备间的报文交互过程如下:
(1) 主机主动向直连的iNOF交换机(Device A)发送LLDP通告报文,报文内记录了LLDP邻居变化信息以及需要订阅网络信息变化消息。
(2) iNOF交换机收到LLDP通告报文后,会进行以下处理:
a. 维护本地主机信息库
iNOF交换机以“ChassisID+PortID”为关键字精确查找本地主机信息库。
- 如果找到对应的记录,则认为该主机为已加入主机,更新主机信息老化定时器,并继续比较其它参数取值是否有变化。如果其它参数取值有变化,则更新本地对应记录;如果其它参数取值无变化,则无需处理器。
- 如果未找到对应的记录,则认为该主机为新主机。iNOF交换机为该主机在主机信息库中创建记录,并启动主机信息老化定时器。
b. 发送通知报文,告知网络信息变化。
- 对于新加入且订阅了网络信息变化消息的主机(磁盘设备11),iNOF交换机将域内所有设备(服务器10、磁盘设备12~磁盘设备15)信息状态通告给新主机。
- 对于直连的、属于同一iNOF域且订阅网络信息变化消息的其它主机(服务器10、磁盘设备12~磁盘设备15),iNOF交换机将新加入的主机的信息通告给其它主机。
c. 发送iNOF报文,告知iNOF反射器。
Device A将LLDP邻居变化信息提取出来,以iNOF路由的形式封装到BGP报文中,通过iBGP连接通告给反射器Device B和反射器Device C。
(3) 服务器10和磁盘设备11回复ACK报文,表示收到了通告报文。
(4) Device B收到iNOF报文后,会进行如下处理:
a. 将从Device A收到的iNOF路由反射给Device C和Device D。
因为Device B和Device C属于同一集群,是互为备份的两个反射器,所以,当Device C收到Device B反射的iNOF路由后,直接丢弃该路由。
b. 发送通知报文,告知网络信息变化。
Device B查询本地主机信息库中是否有直连的、属于Zone 1且订阅了网络信息变化消息的其它主机。假设磁盘设备14订阅了网络信息变化消息,磁盘设备15未订阅网络信息变化消息,则Device B向磁盘设备14发送通告报文,不会向磁盘设备15发送通告报文。
(5) 磁盘设备14回复ACK报文,表示收到了通告报文。
(6) Device C会进行如下处理:
a. 将从Device A收到的iNOF路由反射给Device B和Device D。
因为Device B和Device C属于同一集群,是互为备份的两个反射器,所以,当Device B收到Device C反射的iNOF路由后,直接丢弃该路由。
b. Device C查询本地主机信息库,发现无主机属于Zone 1,所以,Device C无需发送通知报文。
(7) Device D送通知报文,告知网络信息变化。
Device D查询本地主机信息库中是否有属于Zone 1且订阅了网络信息变化消息的其它主机。假设这两磁盘设备均订阅了网络信息变化消息,则Device D向磁盘设备12和磁盘设备13发送通告报文。
(8) 磁盘设备12和磁盘设备13回复ACK报文,表示收到了通告报文。
经过收敛,Zone 1内所有主机均能完成信息同步,每台主机均知道,Zone 1中有6台主机:服务器10、磁盘设备11~磁盘设备15。
出现以下情况时,iNOF交换机会认为主机离开,启动主机离开通告流程:
· iNOF交换机侧的LLDP报文超时。
· iNOF交换机和主机直连的接口状态变成Down。
· iNOF交换机发生了PFC(Priority-based Flow Control,基于优先级的流量控制)死锁,主机的报文无法被交换机转发。
· iNOF域配置信息变化,导致主机之间路由不可达。
主机(假设为磁盘设备11)离开时,各设备间的报文交互过程如下:
(1) 主机直连的iNOF交换机会进行如下处理:
a. 删除本地主机信息库中的对应记录。
b. 通知直连的、同一iNOF域且订阅网络信息变化消息的其它主机,有设备离线。
c. 通知iNOF反射器有设备离线。
(2) 其它iNOF交换机会进行如下处理:
a. 通知直连的、同一iNOF域且订阅网络信息变化消息的其它主机,有设备离线。
b. 对于iNOF反射器,通知其它iNOF反射器和相连的客户机,有设备离线。
(3) 其它主机上的处理。
其它主机向iNOF交换机发送ACK报文,表示已经感知到主机离线。iNOF交换机如果未收到主机的ACK报文,会重新发送通知报文。
经过收敛,Zone 1内所有主机均能完成信息同步,所有订阅网络信息变化消息的主机均知道,Zone 1中有5台主机,服务器10、磁盘设备12~磁盘设备15。
在部署iNOF反射器的组网中,iNOF基于BGP,支持和BFD联动。
BFD(Bidirectional Forwarding Detection,双向转发检测)用于快速检测设备之间的通信故障,并在出现故障时通知上层应用。iNOF和BFD联动就是将BFD——BGP——iNOF协议关联起来,可实现对iNOF交换机之间的链路故障进行快速检测。如果BFD检测到故障,iNOF交换机可以及时将链路的故障信息通告给同一个iNOF域中的主机,以便主机可以及时进行链路切换。
BFD本身没有邻居发现机制,依靠关联的上层协议来建立会话。上层协议在建立新的邻居关系后,将邻居的参数及检测参数(包括目的地址和源地址等)通告给BFD,BFD根据收到的参数建立BFD会话。
如图8所示,假设在AS65000中,Device A为反射器,Device B为客户机,iNOF与BFD联动触发建立会话的流程为:
(1) Device A和Device B之间建立iBGP连接。
(2) iNOF基于iBGP连接建立iNOF连接,iNOF连接的状态和iBGP连接的状态完全一致。
(3) iBGP建立连接后,Device A和Device B将邻居信息(包括目的地址和源地址等)通告给本设备的BFD模块。
(4) BFD模块根据收到的邻居信息和对端自动建立BFD会话。
图8 BFD会话建立流程图
BFD会话建立后,Device A和Device B周期性地互相发送BFD报文。如果本端在BFD检测时间内没有收到会话对端的BFD报文,则认为该双向转发路径发生了故障,并将故障信息通知给该会话所服务的上层应用,由上层应用采取相应的措施。
如图9所示,BFD检测到链路故障通知iNOF的流程为:
(1) Device A和Device B上的链路故障。
(2) Device A和Device B上BFD模块检测到BFD邻居不可达,将本地的BFD会话状态变为DOWN。
(3) BFD模块通知本地BGP进程BFD邻居不可达。
(4) Device A和Device B的本地BGP进程中断iBGP邻居关系,并通告iNOF进程。
(5) Device A和Device B的本地iNOF连接断开,iNOF进程认为远端主机离线,于是向本机直连的、处于同一域的、订阅了网络信息变化消息的主机发送通告报文,反射器还会向相连的客户端和其它反射器发送iNOF报文,通知远端主机离线。
图9 BFD故障发现处理流程图
H3C对成熟的BGP技术进行扩展,来实现iNOF跨交换机组网的技术具有以下特性:
· 基于BGP连接建立iNOF连接,传输层使用TCP协议,可以为iNOF信息的传输提供稳定的连接。
· 基于BGP提供的丰富的路由策略,能够对iNOF路由实现灵活的过滤和选择。
· iNOF复用BGP路由反射功能,在大规模的iNOF网络中可以有效减少iNOF连接的数量,简化网络拓扑,降低网络维护成本。同时,管理员在反射器上完成iNOF域和成员主机的配置后,iNOF可自动将这些配置同步给客户机,从而,可以简化iNOF的部署和配置。
· iNOF复用BGP的GR(Graceful Restart,平滑重启)和NSR(Nonstop Routing,不间断路由)功能,在iNOF交换机进行主备倒换或BGP协议重启时,保障iNOF信息的传递不中断。
· iNOF复用BGP连接,BGP支持和BFD联动,因此,iNOF也能够利用BFD快速检测到链路故障。
· 借助BGP会话的各种加密手段,例如MD5认证、GTSM(Generalized TTL Security Mechanism,通用TTL安全保护机制)、keychain认证,可以提高iNOF交换机间连接的安全性。
如图10所示,所有服务器上安装了SNSD(Storage Network Smart Discovery,存储网络智能发现)和多路径软件,所有磁盘设备上安装了SNSD软件。为了提高可靠性,服务器和磁盘分别通过Device A和Device B相连。正常情况下,多路径软件选择通过Device A传输服务器和磁盘之间的报文。
分别在Device A和Device B上部署iNOF功能,可以实现:
· 如果Device A和磁盘设备之间的链路故障,Device A能第一时间通知服务器,以便服务器上的多路径软件可以快速切换到“服务器——Device B——磁盘设备”这条链路传输报文;
· 如果Device A和磁盘设备之间的链路恢复,Device A能第一时间通知服务器,以便服务器上的多路径软件可以快速切换到“服务器——Device A——磁盘设备”这条链路传输报文。
如图11所示,某企业在不同地方建立了数据中心,这些数据中心的磁盘设备和服务器通过以太网互联。所有服务器上安装了SNSD和多路径软件,所有磁盘设备上安装了SNSD软件。在网络中部署iNOF功能,可以实现:
· 当有磁盘设备加入时,服务器能第一时间感知,且能尽快自动和磁盘设备建立连接。
· 当有磁盘设备发生故障时,服务器能第一时间感知,且能快速切换到备份磁盘设备。
· 将一组资产划分到iNOF自定义域,将零星资产划分到缺省域,实现不同域间设备的隔离。例如将服务器100、磁盘设备101~磁盘设备105加入Zone 1,由数据部门使用和管理;服务器200和磁盘设备201加入缺省域,由IT部门统一管理。
· ODCC-2020-05016:NVMe over RoCEv2 网络控制优化技术要求与测试规范
· 中移动RoCE-SAN解决方案v03 20210817