1、ICS33.040.40 M32 YD 中华人民共和国 通信 行业标准 2018-2343T-YD 数据中心无损网络典型场景技术要求和测 试方法 Technical requirements and test methods for typical scenes of data center lossless network (报批稿) XXXX - XX - XX 发布 XXXX - XX - XX 实施 中 华 人 民 共 和 国 工 业 和 信 息 化 部 发 布 2018-2343T-YD I 目 次 前言 .II 1 范围 .1 2 术语、定义和缩略语 .1 3 数据中心无损网络典型
2、场景 .2 4 数据中心无损网络典型场景技术要求 .3 5 数据中心无损网络典型场景测试方法 .5 2018-2343T-YD II 前 言 本标准按照 GB/T 1.12009给出的规则起草。 请注意本文件的某些内容可能涉及专利。 本文件的发布机构不承担识别这些专利的责任。 本标准由中国通信标准化协会提出并归口。 本标准起草单位 : 中国信息通信研究院、中国电信集团有限公司、中国移动通信集团有限公司、百 度在线网络技术 (北京 ) 有限公司 、 北京三快云计算有限公司 、 华为技术有限公司 、 北京迈络思科技有 限公司 本标准 起草人 : 郭亮、赵继壮、顾戎、高峰、陈志勇、孙黎阳、宋庆春、李
3、洁、王峰、殷悦、朱朋 志、王少鹏 2018-2343T-YD 1 数 据中心无损网络典型场景技术要求和测试方法 1 范围 本标准规定了数据中心无损网络典型场景 、 数据中心无损网络典型场景技术要求 、 数据中心无损网 络典型场景测试方法的相关内容。 本标准适用于数据中心无损网络的设计、制造、测试和使用。 2 术语、定义和缩略语 2.1 术语和定义 下列术语和定义适用于本文件。 2.1.1 深度学习 deep learning 机器学习 的分支 , 是一种试图使用包含复杂结构或由多重非 线性变换 构成的多个处理层对数据进行 高层抽象的 算法 。 2.1.2 非易失性内存主机控制器接口规范 non
4、-volatile memory express 存储通信接口和协议 , 从概念设计到利用基于闪存的存储设备 (称为固态驱动器 ) 的低延迟和内部 并行性。 2.1.3 网络拥塞 network congestion 当网络节点或者链接运载的数据超过其可处理能力时带来的服务质量降低的现象 , 通常表现出的结 果有:延时、丢包和阻塞新连接。 2.1.4 零复制 zero-copy 计算机执行操作时, CPU不需要先将数据从某处 内存 复制到另一个特定区域。这种技术通常用于通 过网络传输文件时节省 CPU周期和内存带宽。 2.1.5 无阻塞网络架构 clos 多级电路交换网络的结构 , 它的最大的
5、优点就是对 Crossbar结构的改进 , 通过 Clos架构可以提供无 阻塞的网络;数据中心 CLOS网络架构一般是使用包交换的多级网络结构。 2018-2343T-YD 2 2.1.6 多对一通信 incast 一种后端服务器集群同时响应某一个服务器的数据请求,使得该服务器接收的流量激增的现象。 2.1.7 队头阻塞 head-of-line blocking 性能受限的现象,某一队列的第一个数据包(队头)受阻而导致整个队列数据包受阻的现象。 2.2 缩略语 下列缩略语适用于本文件。 AFA 全闪存阵列 All Flash Array AOC 有源光缆 Active Optical Cab
6、le CPU 中央处理器 Central Processing Unit ECMP 等价多路径路由 Equal-Cost Multi-Path Routing GPU 图形处理器 Graphics Processing Unit HPC 高性能计算 High-Performance computing IP 因特网协议 Internet Protocol NVMe 非易失性内存主机控制器接口规范 Non-Volatile Memory Express OLDI 在线数据密集型 On-Line Data Interchange PFC 基于优先级的流量控制 Priority-based Flow
7、 Control RDMA 远程直接内存访问 Remote direct memory access SSD 固态硬盘 Solid-State Drive TCP 传输控制协议 Transmission Control Protocol 3 数据中心无损网络典型场景 数据中心内的应用和存储体系结构在不断发展以满足对实时交互式数字技术日益增长的需求 。 当前 , 大型在线数据密集( OLDI) 服务,如用于在线购物, 社交媒体和网络搜索的自动推荐系统 ; 高性能深度 学习网络; NVMe高速存储业务等应用场景,都对未来数据中心提出了更高的要求和期望。 OLDI需要对高频率 、 高速率的请求进行即
8、时回答 。 延迟控制是网络的一个关键问题 。 最终用户体验 高度依赖于系统响应能力 , 即使是不到一秒钟的适度延迟 , 也会对个人查询及其相关广告收入产生可衡 量的影响。 在深度学习领域 , 构建神经网络和深度学习模型 , 称为训练的过程通常由高性能计算系统完成 。 训 练是一项高度并行的应用 , 需要低延迟和高吞吐量 。 投入更多的计算资源可以缩短创建模型所需的时间 ; 然而 , 并行应用中涉及的通信开销可能会抵消更多 CPU或 GPU的收益 。 如果发生同步延迟 , 会导致计算进 程停滞 。 而当训练过程中使用服务器时 , 网络中存在固有的 Incast问题 。 工作节点的集群几乎同时将结
9、 果返回给服务器 。 此场景会在连接参数服务器的交换机上产生拥塞 , 并可能导致数据包丢失和同步延迟 。 进一步对问题进行并行化只会导致延迟 , 因为需要在大量节点之间进行更多通信 , 从而增加网络拥塞的 影响。 NVMe快速可靠的特点,使得其非常适合未来云数据中心高度并行的环境。全闪存阵列( AFA)通过 网络进行 NVMe访问 , 需要极低的延迟才能满足业务的需求 。 但是 , NVMe存储的延迟和可靠性要求使这种 访问成为一项挑战。 2018-2343T-YD 3 综上所述 , 需要在未来数据中心新场景下解决丢包 、 时延 、 吞吐等多方面的挑战 , 实现数据中心网 络的无损失是当前亟待
10、解决的问题。 4 数据中心无损网络典型场景技术要求 4.1 流控技术要求 数据中心无损网络应有效避免 PFC头部阻塞造成的整网拥塞,应具备较低的时延。 4.2 拥塞控制技术要求 数据中心无损网络应为用户提供无丢包损失的相关技术。 数据中心无损网络应提供解决或缓解现有流控技术普遍存在的队头阻塞问题的能力 , 可采用的技术 包括:多队列技术、拥塞控制技术、鼠象流分离技术、拥塞隔离技术等。 数据中心无损网络宜提供多队列技术 , 具体是指无损网络可以基于流使用多个队列 , 实现更加细粒 度的流控 , 尽力预防和缓解队头阻塞 。 每个队列对应一个虚通道 , 无损网络中的接收设备从发送设备接 收的数据流报
11、文包含虚通道的标识 , 接收设备可以在接收到流的首包时根据流标识和流对应的候选虚通 道组为流选择一个与原有不同的新虚通道 , 将新的虚通道信息设置到流的表项 , 接收设备在回复应答时 从流的表项获取新的虚通道插入流的应答报文中 , 携带新的虚通道信息的应答报文到达发送设备后 , 发 送设备将流的虚通道更新为新的虚通道 , 后续报文携带新的虚通道标识 。 在接收设备中 , 每条流对应一 个可用虚通道组 , 从可用虚通道组中选择的一个或多个拥塞程度较低的虚通道构成候选虚通道组 , 接收 设备动态地更新候选虚通道组 , 接收设备为流选择新的虚通道时可以从候选虚通道组中选择任一虚通道 。 流的表项内容
12、包括据流的标识 、 表项是否有效 、 流的新虚通道等信息 , 表项初始无效 , 当接收设备需要 更新某条流的虚通道时若新的虚通道与原有不同则设置到该流的表项 , 并将表项设置为有效 , 后面接收 设备判断新虚通道与原有不同且表项有效则在应答报文中携带新虚通道以触发发送设备更新虚通道 , 虚 通道更新成功后将表项设置为无效 。 接收设备可以动态检测流对应虚通道的拥塞程度是否达到预设条件 , 如果达到预设条件则从当前实时的候选虚通道组中为流再选择新的虚通道 。 对于多种类型业务流量混跑 的场景,不同类型的业务流量对应的可用虚通道组中的虚通道一般都是不同的。 数据中心无损网络宜提供拥塞控制技术 ,
13、具体是指无损网络可以根据网络拥塞程度 , 及时地通知远 端进行降速 , 避免拥塞的流量长时间占据瓶颈端口 , 从而可以降低流控的持续实现 , 缓解队头阻塞问题 。 数据中心无损网络在提供拥塞控制技术时宜对时延敏感型流量流完成时间进行优化 。 数据中心小流 通常是时延更敏感的流量。在拥塞控制中,根据流的大小对流进行差异化的 ECN标记,使流的标记概率 与流的大小成正相关 , 可以减小小流被降速的概率 , 从而优化小流的完成时间 。 无损网络节点对进入队 列的数据流进行字节统计 , 根据流大小的阈值将数据流分为多个等级 , 并为不同等级的流设置与等级成 正相关的标记概率 , 使小流对应更低的标记概
14、率 。 当队列长度超过指定标记阈值时 , 根据流所属等级对 应的标记概率对流进行 ECN标记 。 因为小流被 ECN标记的概率更低 , 可以减少小流降速 , 实现降低小流完 成时间的目的。 数据中心无损网络宜提供鼠象流分离技术 , 具体是指无损网络可以实现老鼠流和大象流的检测 、 识 别、以及区别调度,从而避免吞吐敏感型的大象流对时延敏感型的老鼠流产生影响。 数据中心无损网络宜提供拥塞隔离技术 , 具体是指无损网络节点可以根据拥塞程度 , 动态 、 实时地 检测引起拥塞状态变化的报文流,降低该报文流中报文的调度优先级 ,控制报文流中报文进入低优先级 处理队列 , 低优先级处理队列的调度优先级低
15、于与报文流中报文的优先级指示字段的内容相对应的调度 优先级 ; 同时生成拥塞隔离消息,该拥塞隔离消息用于变更拥塞报文流中报文的优先级,拥塞隔离消息 包括报文流的描述信息 , 向至少一个节点发送所述拥塞隔离消息 , 具体是指向发送该报文流的上游节点 2018-2343T-YD 4 发送拥塞隔离消息 , 该拥塞隔离消息具体用于指示降低该报文流中报文的调度优先级 。 拥塞报文流的上 游节点接收拥塞隔离消息 , 拥塞隔离消息中包含描述信息 , 变更描述信息所指示报文流中报文的优先级 , 控制该报文流中报文进入低优先级处理队列。 拥塞隔离技术应实现对拥塞流的精准流控 , 在拥塞隔离技术中 , 节点通过非
16、拥塞流队列和拥塞流队 列等多个队列向下游节点发送数据 。 当一个节点接收到下游节点的暂停帧 , 该暂停帧会指示当前节点暂 停拥塞流队列或非拥塞流队列的报文发送 , 若此时拥塞流队列的部分报文与非拥塞流队列的部分报文属 于同一个报文流 , 则应当同时暂停拥塞流队列和非拥塞流队列 , 从而避免由队列切换引起的丢包或乱序 等问题 。 对于启用拥塞隔离技术的节点 , 等待调度的报文可能进入非隔离流队列或隔离流队列 , 节点在 获取报文后 , 若确定该报文所属的数据流被标记为隔离流 , 应根据拥塞队列或非拥塞队列是否满足预设 条件 , 控制该报文进入隔离流队列或非隔离流队列中等待调度 , 以便在适当条件
17、下将不再拥塞的报文流 恢复到原优先级。 数据中心无损网络应引入合适的机制 , 保证流在切换队列前后 , 不发生数据包乱序 。 无损网络节点 流切换队列前数据包输入原队列 , 将流切换队列后数据包输入目标队列 。 确定流从原队列切换到目标队 列时 , 在原队列和目标队列中分别插入一个特殊标记 , 并且在原和目标队列数据单元出队调度时控制原 队列中的标记早于目标队列中对应的标记得到调度 , 可以保证流在原队列中的数据包先于该流在目的队 列中的数据包得到出队调度 , 从而实现流在调度和转发过程中数据包的保序 。 本规范要求考虑流的数据 包保序问题,对实现保序的方法不做限定。 数据中心无损网络应具备主
18、动拥塞控制技术或被动拥塞控制技术,宜组合使用。 4.3 负载均衡技术要求 数据中心无损网络负载均衡技术宜采用以下技术中的一种或多种,包括但不限于:基于数据流的 ECMP负载均衡技术、基于 Flowlet的负载均衡技术、基于报文的负载均衡技术、其他可以提升吞吐的先 进技术等。 对于基于数据流的 ECMP负载均衡技术,数据中心无损网络应提供比传统算法获得更加均衡流量的 Hash算法。 对于基于 Flowlet的负载均衡技术,数据中心无损网络应能够感知本地或全局路径的拥塞程度,通 过对比链路或者路径的拥塞程度的量化值来做 Flowlet的调度决策。 对于基于报文的负载均衡技术 , 数据中心无损网络
19、应提供报文级的负载均衡 ; 应实现报文乱序重排 , 保证能够按原来数据流从发送服务器发出的顺序送达接收服务器 。 对于乱序重排实现的位置 , 可在接收 服务器的网卡上实现,也可在与接收服务互连的交换机上实现。 4.4 网络部署容错技术要求 数据中心无损网络应提供容错技术 , 以减少部署时连线出错引起网络故障的可能性 , 从而便于大规 模数据中心网络的部署。 网络部署容错技术可为数据中心设备分配一个或多个标识。 具备标识的数据中心设备在建立联系后,应可交换标识。 在配置数据中心设备的端口时 , 宜不直接指定具体的端口 , 而是获取对端设备的端口组标识 , 并根 据对端端口组标识来配置本地端口。
20、数据中心本端设备获取数据中心另一对端设备的端口组标识时 , 对端设备的端口组标识可用于指示 本端设备的端口配置信息 , 可使得本端设备通过其端口与对端设备的端口建立连接 。 本端设备与对端设 备的端口应为任意端口,配置信息应包括网络互联协议 IP地址等。 5 数据中心无损网络典型场景测试方法 2018-2343T-YD 5 5.1 测试环境 5.1.1 测试网络拓扑 测试网络拓扑如图 1所示。 图 1 网络拓扑图 5.1.2 配合设备 配合设备如表 1所示。 表 1 配合设备列表 配合设备名称 数量 单位 备注 InfiniBand 交换机 5 台 无损网络交换机 5 台 Ethernet 交
21、换机 5 台 服务器 /CPU/内存 16 台 测试 HPC 应用和 SPARK,要求配置尽量高 2018-2343T-YD 6 AOC 若干 根 NVME 若干 如果没有的话就用 NULL_BLK 设备 5.1.3 测试工具 测试工具如表 2所示。 表 2 测试工具列表 测试工具名称 备注 FIO 存储性能测试软件 OpenFoam HPC 性能测试软件, V1606+ 版本 OFED 版本 3.4-1.0.0.0, 背景流产生命令 Ib_send_bw IMBOSU OSU Micro-Benchmarks 5.4.2 Intel(R) MPI Benchmarks 2018 Update
22、 1 5.1.4 业务场景 无损网络旨在为主流业务所用的数据中心网络提供时延无损 、 丢包无损 、 吞吐无损的性能 。 当前这 些业务对于数据中心网络的性能提出了更高的要求 , 未来网络需要更高带宽 、 更低时延 、 更大吞吐 。 本 测试规范针对当前主流业务,例如高性能数据库、大数据处理平台、 HPC业务、虚拟化场景等,有利于 开展数据中心无损网络的各项测试。 5.2 测试项目 5.2.1 交换机裸性能:吞吐量、时延、丢包率测试 项目编号: 1. 测试项目:交换机时延测试 测试目的: 以太网络和 IB 网络交换机的时延测试 测试配置: 分别进行 Ethernet 和 IB 组网及配置,测试交
23、换机延时 网络拓扑:单台交换机组网测试。如下图为例: 测试步骤: 1、配置两台服务器,使用双端口网卡。每个网卡的两个端口, 端口 1 连到交换机, 端口 2 直连对端服务器。对交换机 做简单配置,保证连通性。 2、 测试通过端口 1 的 IB_write_latency 延时, 以及通过端口 2 的对应延时。 3、记录平均时延结果。 预期结果: Switch Server 1 Server 2 2018-2343T-YD 7 IB 交换机延时增加在 100ns 以内; 备注:无 项目编号: 2. 测试项目:带宽测试 测试目的: 以太网络和 IB 网络交换机的带宽测试 测试配置: 分别进行 Et
24、hernet 和 IB 组网及配置,测试交换机端口带宽 网络拓扑:单台交换机组网测试。如下图为例: 测试步骤: 1、 配置两台服务器 , 使用双端口网卡 。 每个网卡的两个端口 , 端口 1 连到交换机 , 端口 2 直连对端服务器 。 对交换机 做简单配置,保证连通性。 2、 测试通过端口 1 的 IB_write_bandwidth 延时, 以及通过端口 2 的对应带宽。 3、 记录平均带宽结果。 预期结果: 1、 IB 交换机带宽为 25Gb 线速; 2、 以太交换机带宽接近 25Gb 线速。 备注:无 5.2.2 无损网络 HPC 业务性能测试 7.2.2.1 无损网络 hadoop.
25、tmp.dir 需改为第 6 步设置的路径 . spark-defaults.conf 里面的 spark.local.dir,也需要修改 2018-2343T-YD 19 9、 将配置文件中的默认主机名,更改为测试主机名。 10、 运行 hadoop/sbin/start-all.sh. 确保 log 中没有出现错误提示 . 确定 HDFS 已启动 : hadoop/bin/hdfs dfsadmin report。 确定 Yarn 已启动 : hadoop/bin/yarn node list 11、 编译 HiBench: cd Hibench & ./apache-maven/bin/
26、mvn -Psparkbench -Dspark=2.2 -Dscala=2.11 clean package 12、 Configure HiBench. Attached examples hadoop.conf, vanilla-spark.conf (to run vanilla spark benchmark), spark-rdma.conf. Also set in conf/workloads/micro/terasort/terasort.conf hibench.workload.datasize 1750000000 13、 生成 dataset: bin/workloa
27、ds/micro/terasort/prepare/prepare.sh 14、 运行 terasort with vanilla spark: put vanilla-spark.conf to conf/spark.conf bin/workloads/micro/terasort/spark/run.sh 15、 将 配置文件 conf/spark.conf 替换为 spark-rdma.conf. 再次运行 benchmark : bin/workloads/micro/terasort/spark/run.sh 16、 在如下路径可以看到测试结果报告 : HiBench/report/hibench.report 预期结果: 1、 记录非 RDMA 时的 CPU 利用率和计算延时 2、 记录使用 RDMA 的 CPU 利用率和计算延时 备注:无 _