本页内容
配置演练
本部分介绍在 AI JVD 实验室中部署其中一个 AI GPU 后端 IP 交换矩阵的步骤,并以如何使用 Juniper Apstra 部署新交换矩阵为 例 。
这些步骤将涵盖AI GPU 后端 IP 交换矩阵是集群 1,其中包括担任 主干 角色的 QFX5230-64CD 交换机和担任 GPU 后端叶角色的 QFX5230-64CD(条带 1)和 QFX5220-32CD(条带 2)交换机,以及关联的 NVIDIA GPU 服务器和 WEKA 存储设备。
应遵循类似的步骤来设置前端和存储后端交换矩阵,以及 AI GPU 后端 IP 交换矩阵。这些配置包含在下一节中描述的 Terraform 存储库中。
所有交换矩阵的 Apstra 蓝图都是在 JVD AI 实验室中绘制的,如图 18 所示。
图 18:Apstra 中的 AI 交换矩阵蓝图
有关使用 Apstra 安装和分步配置的更多详细信息,请参阅 Juniper Apstra 用户指南。本演练中的其他指导以注释的形式提供。
Apstra:配置 Apstra 服务器和 Apstra ZTP 服务器
首次连接到 Apstra 服务器虚拟机时,配置向导将启动。此时,可以配置 Apstra 服务器、Apstra UI 和网络配置的密码。
Apstra:将设备载入 Apstra
将瞻博网络设备添加到 Apstra 中进行管理有两种方法:手动或使用 ZTP 批量添加。
要手动添加设备(推荐):
- 在 Apstra UI 中,导航到设备>>代理>>创建异机代理:
- 这要求设备预配置 root 密码、管理 IP 和适当的静态路由(如果需要)以及 ssh Netconf,以便 Apstra 可以访问和配置这些设备。
要通过 ZTP 添加设备:
- 在 Apstra ZTP 服务器中,按照 Juniper Apstra 用户指南中所述的 ZTP 步骤进行作。
要将 QFX 交换机添加到 Apstra 中,请先登录到 Apstra Web UI,按照上述方式选择手册添加设备的方法,并提供与设备上预配置的用户名和密码相匹配的相应用户名和密码。确保路由器配置得以相应。
最佳做法是避免在此基准配置中设置环路、接口(管理接口除外)、路由实例(管理实例除外)或任何其他设置。
Apstra 会在设备成功确认后设置协议 LLDP 和 RSTP。
设备上线
1) Apstra Web UI:创建代理配置文件
就此 JVD 而言,所有设备使用相同的用户名和密码。因此,只需一个 Apstra 代理配置文件即可载入所有设备,从而提高流程效率。
要创建代理配置文件,请导航到 设备 >> 代理配置文件 ,然后单击创建 代理配置文件。
图 19:在 Apstra 中创建代理配置文件
2) Apstra Web UI:为接入设备添加 IP 地址范围
我们可以为 Apstra 中的批量板载设备提供 IP 地址范围。以下示例中显示的范围仅用于演示目的。
要载入设备,请导航到 设备 >> 代理 ,然后单击 创建异机代理。
图 20:在 Apstra 中添加一系列 IP 地址
3) Apstra Web UI:确认在 Apstra 蓝图中使用的托管设备
为每台设备成功执行异机代理创建后,用户必须确认这些设备才能完成上线,并使其成为 Apstra 蓝图的一部分。这会将设备状态从 OOS-QUARANTINE 移至 OOS-READY。
图 21:在 Apstra 蓝图中确认托管设备
Apstra:交换矩阵配置
以下步骤概述了使用 Apstra 配置 GPU 后端交换矩阵的方法。
1) Apstra Web UI:使用设备配置文件创建逻辑设备和接口映射
Apstra 中的 GPU 后端交换矩阵结合使用 QFX5230-64CD (stripe-1) 和 QFX5220-32CD (stripe-2) 作为叶节点,将 QFX5230-64CD 用于主干。必须为这两种类型的交换机创建逻辑设备和接口图。
对于 QFX5230-64CD 叶节点,逻辑设备和接口映射如图 22 和 23 所示:
图 22:用于QFX5230叶节点的 Apstra 逻辑设备
图 23:QFX5230 叶节点的 Apstra 接口图
对于 QFX5220 叶节点,逻辑设备和接口映射如图 24 和 25 所示:
图 24:用于 QFX5220 叶节点的 Apstra 逻辑设备
图 25:QFX5220 叶节点的 Apstra 接口图
对于QFX5230叶节点,逻辑设备和接口映射如图 26 和 27 所示:
图 26:用于QFX5230主干节点的 Apstra 逻辑设备
图 27:QFX5230 个主干节点的 Apstra 接口图
对于QFX5240主干节点和叶节点,逻辑设备和接口映射分别如图 28-29 和 30-31 所示。
下表显示了新旧端口映射之间的差异。
下面包含的逻辑设备和接口映射是根据新的端口映射创建的。
图 28:用于QFX5240主干节点的 Apstra 逻辑设备
图 29:QFX5240 个主干节点的 Apstra 接口图
图 30:QFX5240 个叶节点的 Apstra 接口图
图 31:用于QFX5240叶节点的 Apstra 逻辑设备
对于同样在群集 1 中测试的 PTX10008 主干节点,逻辑设备和接口映射如图 32-33 所示。
图 32:PTX 主干节点的 Apstra 接口图
图 33:用于 PTX 主干节点的 Apstra 逻辑设备
2) Apstra Web UI:在 Apstra 中为 GPU 后端交换矩阵创建机架类型和模板
创建逻辑设备和接口映射后,为 GPU 后端交换矩阵创建必要的机架类型。
该设计需要两种机架类型:一种带有 QFX5230 个叶节点(条带 1),另一种带有 QFX5220 个叶节点(条带 2)。
为简洁起见,图 34 仅显示了 QFX5230 机架类型的片段。
图 34:在 Apstra 中创建机架
两个机架都准备就绪后,即可在 Apstra 中导航至 设计 -> 模板 -> 创建模板,从而创建一个模板。
新模板引用在上一步中创建的QFX5230和QFX5220机架类型,并部署为纯 IP 交换矩阵,如图 35 所示。
图 35:在 Apstra 中创建模板
3) Apstra Web UI:创建 GPU 后端交换矩阵蓝图
Apstra 模板准备就绪后,请导航到蓝图并点击 Create Blueprint,为 GPU 后端交换矩阵创建蓝图,如图 36 所示。
图 36:在 Apstra 中创建蓝图
为新蓝图提供名称,选择数据中心作为参考设计,然后选择基于机架。然后选择在上一步中创建的模板,其中包括为QFX5230叶节点和QFX5220叶节点创建的两种机架类型。
图 37:Apstra
中的新蓝图属性
Apstra 成功启动蓝图后,该蓝图将包含在蓝图仪表板中,如下所示。
图 38:蓝图仪表板
中添加了新蓝图
请注意,部署状态、服务异常、探测异常和根本原因均显示为 N/A。这是因为您需要完成其他步骤,包括将蓝图中的不同角色映射到物理设备、定义将使用哪些接口等。
当您点击蓝图名称并进入蓝图仪表盘时,将表示该蓝图尚未部署。
图 39:新蓝图的仪表板
图 40 所示的分段视图显示拓扑是正确的,但必须由用户提供属性,例如主干和叶节点的强制 ASN 和环路寻址,以及主干到叶链路寻址。
图 40:未部署的蓝图仪表板
您需要编辑这些属性中的每一个,并从预定义的地址和 ASN 池中进行选择,如图 41 中的示例所示,以解决此问题。
图 41:为主干节点
选择 ASN 池
您还需要为每个设备的角色选择接口图,并分配系统 ID,如图 42-43 所示。
图 42:将接口映射映射到主干节点
图 43:将主干节点映射到物理设备(系统 ID)
完成所有这些步骤后,您可以提交所有更改,Apstra 将生成所有必要的供应商特定配置,并将其推送到节点。完成此作后,您应该能够查看代表成功部署的交换矩阵的活动蓝图,如图 44 所示。
图 44:将主干节点映射到物理设备 2(系统 ID)
Apstra Web UI:在 Apstra 中为 DCQCN 和 DLB 创建 Configlet
从 Apstra 4.2.1 开始,ECN 和 PFC (DCQCN) 以及 DLB 等功能本身不可用。因此,要部署必要的配置以在交换矩阵设备上启用这些功能,可以使用 Apstra Configlet。
用于 QFX 叶节点上的 DCQCN 和 DLB 功能的 configlet 如下所示:
-
/* DLB configuration */ hash-key { family inet { layer-3; layer-4; } } enhanced-hash-key { ecmp-dlb { flowlet { inactivity-interval 128; flowset-table-size 2048; } ether-type { ipv4; ipv6; } sampling-rate 1000000; } } protocols { bgp { global-load-balancing { load-balancer-only; } } } /* DCQCN configuration */ class-of-service { classifiers { dscp mydscp { forwarding-class CNP { loss-priority low code-points 110000; } forwarding-class NO-LOSS { loss-priority low code-points 011010; } } } drop-profiles { dp1 { interpolate { fill-level [ 55 90 ]; drop-probability [ 0 100 ]; } } } shared-buffer { ingress { buffer-partition lossless { percent 66; dynamic-threshold 10; } buffer-partition lossless-headroom { percent 24; } buffer-partition lossy { percent 10; } } egress { buffer-partition lossless { percent 66; } buffer-partition lossy { percent 10; } } } forwarding-classes { class CNP queue-num 3; class NO-LOSS queue-num 4 no-loss pfc-priority 3; } congestion-notification-profile { cnp { input { dscp { code-point 011010 { pfc; } } } output { ieee-802.1 { code-point 011 { flow-control-queue 4; } } } } } interfaces { et-* { congestion-notification-profile cnp; scheduler-map sm1; unit * { classifiers { dscp mydscp; } } } } scheduler-maps { sm1 { forwarding-class CNP scheduler s2-cnp; forwarding-class NO-LOSS scheduler s1; } } schedulers { s1 { drop-profile-map loss-priority any protocol any drop-profile dp1; explicit-congestion-notification; } s2-cnp { transmit-rate percent 5; priority strict-high; } } }
用于 QFX 主干节点上的 DCQCN 和 DLB 功能的 configlet 如下所示:
-
/* DLB configuration */ hash-key { family inet { layer-3; layer-4; } } enhanced-hash-key { ecmp-dlb { flowlet { inactivity-interval 128; flowset-table-size 2048; } ether-type { ipv4; ipv6; } sampling-rate 1000000; } } protocols { bgp { global-load-balancing { helper-only; } } } /* DCQCN configuration */ class-of-service { classifiers { dscp mydscp { forwarding-class CNP { loss-priority low code-points 110000; } forwarding-class NO-LOSS { loss-priority low code-points 011010; } } } drop-profiles { dp1 { interpolate { fill-level [ 55 90 ]; drop-probability [ 0 100 ]; } } } shared-buffer { ingress { buffer-partition lossless { percent 66; dynamic-threshold 10; } buffer-partition lossless-headroom { percent 24; } buffer-partition lossy { percent 10; } } egress { buffer-partition lossless { percent 66; } buffer-partition lossy { percent 10; } } } forwarding-classes { class CNP queue-num 3; class NO-LOSS queue-num 4 no-loss pfc-priority 3; } congestion-notification-profile { cnp { input { dscp { code-point 011010 { pfc; } } } output { ieee-802.1 { code-point 011 { flow-control-queue 4; } } } } } interfaces { et-* { congestion-notification-profile cnp; scheduler-map sm1; unit * { classifiers { dscp mydscp; } } } } scheduler-maps { sm1 { forwarding-class CNP scheduler s2-cnp; forwarding-class NO-LOSS scheduler s1; } } schedulers { s1 { drop-profile-map loss-priority any protocol any drop-profile dp1; explicit-congestion-notification; } s2-cnp { transmit-rate percent 5; priority strict-high; } } }
PTX10008 上作为主干设备上用于 DCQCN 功能的配置如下:
注意:使用 PTX10008 作为主干节点时,不允许使用 GLB。
-
/* DCQCN configuration */ class-of-service { classifiers { dscp mydscp { forwarding-class rdma-cnp { loss-priority low code-points 110000; } forwarding-class rdma-ecn { loss-priority low code-points 011010; } } } drop-profiles { dp-ecn { fill-level 1 drop-probability 0; fill-level 3 drop-probability 100; } } forwarding-classes { class network-control queue-num 3; class other queue-num 2; class rdma-cnp queue-num 0; class rdma-ecn queue-num 1 no-loss; } monitoring-profile { mp1 { export-filters filt1 { peak-queue-length { percent 0; } queue [ 0 1 ]; } } } interfaces { et-* { scheduler-map sched-map-aiml; monitoring-profile mp1; unit * { classifiers { dscp mydscp; } } } } scheduler-maps { sched-map-aiml { forwarding-class network-control scheduler sched-nc; forwarding-class other scheduler sched-other; forwarding-class rdma-cnp scheduler sched-cnp; forwarding-class rdma-ecn scheduler sched-ecn; } } schedulers { sched-cnp { transmit-rate percent 1; priority high; } sched-ecn { transmit-rate percent 97; buffer-size temporal 4063; priority medium-high; drop-profile-map loss-priority any protocol any drop-profile dp-ecn; explicit-congestion-notification; } sched-nc { transmit-rate percent 1; priority medium-high; } sched-other { priority low; } }
要创建 DCQCN configlet,请导航到 Design -> Configlet -> Create Configlet,然后单击 Create configlet。
提供配置的名称,选择作系统、供应商和配置模式,然后将上面的配置片段粘贴到模板文本框中,如下所示:
图 45:在 Apstra 中创建 DCQCN Configlet
该 configlet 应应用于设备,包括蓝图中的叶角色和主干角色。导航回蓝图仪表板并移至 Staged -> Catalog -> Import。 选择要应用的 configlet 以及要应用它的设备角色。
图 46:将 DCQCN Configlet 应用于 Apstra 中的设备
将 configlet 成功导入蓝图后,它应该会列在目录中。您需要提交要部署到设备的配置更改。
图 47:将 DCQCN Configlet 应用于 Apstra
中的设备