iNOF在现实网络中的运用,以带反射器的iONF为例

2024-01-15 02:50

本文主要是介绍iNOF在现实网络中的运用,以带反射器的iONF为例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义

        iNOF(Intelligent Lossless NVMe Over Fabric,智能无损存储网络)是指通过对接入主机的快速管控,将智能无损网络应用到存储系统,实现计算和存储网络融合的技术。

目的

        网络转发设备用于传输流量,不同类型的流量对网络的需求是不同的。传统的网络架构中,用户到用户的应用流量对于丢包、时延和吞吐的容忍度较高,通常使用基于TCP/IP协议的以太网进行传输;计算流量需要极低的时延,通常使用IB(Infinite Band,无限带宽)网络进行低时延、高吞吐地传输;存储流量需要无丢包,通常使用FC(Fibre Channel,光纤通道)网络进行无丢包、高吞吐地传输。三种网络的部署和维护相互独立。

        随着全球企业数字化转型的加速进行,海量数据的高效处理促进了存储系统的高速发展。存储介质从HDD(hard-disk drive)发展到NVMe(Non-Volatile Memory express),访问性能可以提升10000倍,大幅降低存储介质的内部时延,满足大规模存储业务的需要。

        存储系统分为计算和存储节点,需要具有无丢包、低时延和高吞吐性能的网络。若仍采用传统网络架构中三种网络独立部署的方案,不仅需要大量的部署和维护成本,并且基于TCP/IP协议的传统以太网也无法满足存储系统对性能的要求。

        智能无损网络基于RoCEv2(RDMA over Converged Ethernet Version 2)协议,通过集合了PFC、AI ECN等技术的iLossless(Intelligent Lossless)智能无损算法,可以在以太网上实现无丢包、低时延和高吞吐地流量传输,满足存储系统的需求,实现计算和存储网络的融合。

        然而存储系统为了存储大量的数据,往往需要管理数量庞大的主机,并且存在新主机陆续接入网络设备的情况。为了让智能无损网络技术更好的服务于存储系统,提出了iNOF技术,通过对接入主机的快速管控,可以第一时间获知新接入的主机,智能的调整智能无损网络的相关配置,并且iNOF技术支持将主机信息通告给存储系统,可以协助存储系统管理主机。

 iNOF原理图:

iNOF报文是TCP封装的报文,TCP端口号范围为10000到57999,缺省值为19516,包含iNOF关键信息的内容承载在TCP报文的Data字段内。客户端可以通过iNOF报文将iNOF关键信息发送给反射器,反射器汇总后再发往其他客户端。通过iNOF报文可以传输以下几类信息:

1、建连信息:iNOF反射器和客户端之间需要通过互相交换iNOF报文来建立iNOF连接,具体的建立过程类似TCP建连。

2、域配置信息:iNOF系统中,设备可以通过域(Zone)对接入的主机进行管理,iNOF反射器上完成iNOF域的相关配置后,会通过iNOF报文把域配置信息发往各个客户端。

3、主机动态信息:iNOF设备需要启用LLDP功能,当有新的主机接入客户端或者离开客户端时,主机会主动向客户端发送LLDP报文,报文内记录了LLDP邻居信息的变化,让iNOF系统内的其他设备感知到主机动态信息。

4、接口Error-Down信息:当iNOF设备因为PFC死锁、CRC错误报文达到告警阈值等问题触发接口Error-Down后,iNOF报文内会携带接口Error-Down信息,让iNOF系统内的其他设备迅速感知,及时调整路径信息。

iNOF系统建立后,系统内的所有设备都可以第一时间感知到接入主机的变化,从而可以将信息反馈给各个智能无损网络功能去智能的调整相关配置,最终使网络达到低时延、无丢包和高吞吐的性能。

 典型实验案例:

Reflector1配置:

#
sysname Reflector1
#
bfd
lldp enable
#
interface 100GE1/0/2undo portswitchip address 10.1.3.1 255.255.255.0
#
interface 100GE1/0/3undo portswitchip address 10.1.4.1 255.255.255.0
#
interface LoopBack0ip address 192.168.1.1 255.255.255.255 
#
ai-service#inofauthentication-mode hmac-sha256 password 123456hard-zoning enableinof bfd enablepeer 192.168.1.2 reflect-clientpeer 192.168.1.3 reflect-clientpeer 192.168.1.4 reflect-clientrole reflectorservice-address 192.168.1.1 port-id 10002undo default-zone enable#zone zone1host 10.1.1.1host 10.1.2.1
# 
ospf 1area 0.0.0.0 network 10.1.3.0 0.0.0.255network 10.1.4.0 0.0.0.255 network 192.168.1.1 0.0.0.0 
#
return

Reflector2配置:

#
sysname Reflector2
#
bfd
lldp enable
#
interface 100GE1/0/2undo portswitchip address 10.1.5.1 255.255.255.0
#
interface 100GE1/0/3undo portswitchip address 10.1.6.1 255.255.255.0
#
interface LoopBack0ip address 192.168.1.4 255.255.255.255 
#
ai-service#inofauthentication-mode hmac-sha256 password 123456hard-zoning enableinof bfd enablepeer 192.168.1.2 reflect-clientpeer 192.168.1.3 reflect-clientpeer 192.168.1.1 reflect-clientrole reflectorservice-address 192.168.1.4 port-id 10002undo default-zone enable#zone zone1host 10.1.1.1host 10.1.2.1
#
ospf 1area 0.0.0.0 network 10.1.5.0 0.0.0.255network 10.1.6.0 0.0.0.255 network 192.168.1.4 0.0.0.0 
#
return

Client1配置:

#
sysname Client1
#
lldp enable
#
interface 100GE1/0/2undo portswitchip address 10.1.3.2 255.255.255.0
#
interface 100GE1/0/3undo portswitchip address 10.1.1.2 255.255.255.0
#
interface 100GE1/0/4undo portswitchip address 10.1.5.2 255.255.255.0
#
interface LoopBack0ip address 192.168.1.2 255.255.255.255 
#
ai-service#inofauthentication-mode hmac-sha256 password 123456role reflect-clientservice-address 192.168.1.2 port-id 10002
#
ospf 1area 0.0.0.0 network 10.1.1.0 0.0.0.255network 10.1.3.0 0.0.0.255 network 10.1.5.0 0.0.0.255 network 192.168.1.2 0.0.0.0 
#
return

Client2配置:

#
sysname Client2
#
lldp enable
#
interface 100GE1/0/2undo portswitchip address 10.1.4.2 255.255.255.0
#
interface 100GE1/0/3undo portswitchip address 10.1.2.2 255.255.255.0
#
interface 100GE1/0/4undo portswitchip address 10.1.6.2 255.255.255.0
#
interface LoopBack0ip address 192.168.1.3 255.255.255.255 
#
ai-service#inofauthentication-mode hmac-sha256 password 123456role reflect-clientservice-address 192.168.1.3 port-id 10002
#
ospf 1area 0.0.0.0 network 10.1.2.0 0.0.0.255network 10.1.4.0 0.0.0.255 network 10.1.6.0 0.0.0.255 network 192.168.1.3 0.0.0.0 
#
return

这篇关于iNOF在现实网络中的运用,以带反射器的iONF为例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607407

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五