首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用QSFP连接两台DGX Spark协同工作

用QSFP连接两台DGX Spark协同工作

原创
作者头像
用户4730701
发布2026-07-06 20:32:01
发布2026-07-06 20:32:01
50
举报

NVIDIA DGX Spark

我看可以参考《部署两套 DGX Spark 系统》的《运行两套 Spark 系统》操作部分

第一部分:系统连线与网络配置

Step 1 - 物理硬件连接

本次演示使用 NVIDIA 原厂 DGX Spark(下图上方金色系统) 与 ASUS OEM 的 GX-10 系统(下图下方银色系统),然后用一条 400GB QSFP 缆线的两头,分别插入两台系统的 QSFP 接口(如下图黄色框处)。

Step 2:为两台系统创建相同的用户名

因为 Linux 可以同时给多用户使用,现在为两台机器都创建性同用户名,例如 "2nodes":

代码语言:txt
复制
export NEW_USER="2nodes"    # 名字请自行修改
# 添加用户
sudo useradd -m $NEW_USER

# 加到 sudo 群,使用 sudo 权限
sudo usermod -aG sudo $NEW_USER

# 配置密码
sudo passwd $NEW_USER 

# 切换到新用户
su - $NEW_USER

# 执行 "sudo apt update" 看看是否具备 sudo 权限

两台机器都做相同的配置,然后各自用 “whoami” 指令检查用户名是否一致

左(ASUS GX10)右(NVIDIA Spark)两个终端分别登录两台不同的 Spark系统,然后分别登录 2nodes 用户。

Step 3 - 检测 QSFP 连线状态

在两台机器中都执行 ibdev2netdev 指令,以建立网路连接:

现在证明网线与网口的连接是正常的。如果检测结果没有“Up”状态,请检查QSFP缆线的连接状态,重启系统后重新测试!

这里可以看到,左边(ASUS GX10)的 p1s0f0 与右边(NVIDIA DGX Spark)的 p1s0f1 连接,对照第一张图里的物理位置,就能轻松掌握端口与编号。

Step 4 - 配置网口 IP

虽然这里只用1根QSFP缆线连接,可以使用较简单的 "自动分配IP” 方式处理,但是重启系统之后 IP 可能会重新分配,就会造成不确定因素,因此这里使用“netplan 配置文件手动分配 IP 地址”方式,能适用于更广泛的场景。执行步骤如下:

  • 在第一台(这里用左边终端的 ASUS GX10)因为使用 p1s0f0 接口,因此只要处理这一组的配置即可。复制粘贴以下代码去执行即可,配置“偶数IP”给端口:
代码语言:txt
复制
# 创建配置文件
sudo tee /etc/netplan/40-cx7.yaml > /dev/null <<EOF
network:
  version: 2
  ethernets:
    enp1s0f0np0:
      addresses:
        - 192.168.100.10/24
      dhcp4: no
    enP2p1s0f0np0:
      addresses:
        - 192.168.100.12/24
      dhcp4: no
EOF

# 配置权限并启动计划
sudo chmod 600 /etc/netplan/40-cx7.yaml  &&  sudo netplan apply
  • 在第二台(这里用右边终端的 NVIDIA DGX Spark)因为使用 p1s0f1 接口,因此只要处理这一组的配置即可。复制粘贴以下代码去执行即可

复制粘贴去执行以下指令,配置“奇数IP”给端口:

代码语言:txt
复制
# 创建配置文件
sudo tee /etc/netplan/40-cx7.yaml > /dev/null <<EOF
network:
  version: 2
  ethernets:
    enp1s0f1np1:
      addresses:
        - 192.168.100.11/24
      dhcp4: no
    enP2p1s0f1np1:
      addresses:
        - 192.168.100.13/24
      dhcp4: no
EOF

# 配置权限并启动计划
sudo chmod 600 /etc/netplan/40-cx7.yaml  &&  sudo netplan apply

现在,我们分别在两个终端里输入 “ip -brief addr show | grep en” 指令,就会看到如下面的显示内容:

注、如果要加上另一组连线时,最好配置另一个网段(如 192.168.200.xx)的4个IP

第二部分:设置免密 SSH 身份验证

这个环节是为了将来软件协作时能进行 “自动化任务”,而不需要因为输入 ID/PW 而中断任务。

这里同样有两种方式,熟悉 SSH 的人可以自己手动处理,不熟悉的可以使用 discover-sparks 工具来处理,都很简单

手动处理:

由于目前使用 2nodes 用户进行连线,必须要在两台机器上分别生成自己的公钥,然后复制到对方的指定位置去,以后就能免密码执行。

1. 生成密钥对(在两台机器上都执行)

代码语言:txt
复制
ssh-keygen -t rsa -b 4096

过程如下图,有两个需要你输入的地方,全部直接按 Enter 即可

然后会在 ~/.ssh 目录下生成 id_rsa(私钥)与id_rsa.pub(公钥)密钥对。

2. 在两个终端分别执行 ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<IP for 对方节点>

代码语言:txt
复制
# 在左边终端执行
ssh-copy-id -i ~/.ssh/id_rsa.pub 2nodes@192.168.100.11
# 在右边终端执行
ssh-copy-id -i ~/.ssh/id_rsa.pub 2nodes@192.168.100.12

过程中会要求输入1次对方节点的密码

现在分别在两个终端内执行 ssh <username>@<IP for 对方节点>

代码语言:txt
复制
# 在左边终端执行
ssh '2nodes@192.168.100.11'
# 在右边终端执行
ssh '2nodes@192.168.100.12'

现在就不用输入密码,便能直接登录到对方节点上。

现在分别执行 exit 推出对方节点,回到自己节点上去,分别执行 ssh <IP for 对方节点> hostname

代码语言:txt
复制
# 在左边终端执行
ssh 192.168.100.11 hostname
# 在右边终端执行
ssh 192.168.100.12 hostname

就能显示对方的设备名称,如下图:

自动处理

NVIDIA在 dgx-spark-playbooksconnect-two-sparks 项目中提供一个 discover-sparks 工具,分别在两个终端执行以下指令直接下载这个脚本就可以,不用下载整个代码仓:

代码语言:txt
复制
wget https://raw.githubusercontent.com/NVIDIA/dgx-spark-playbooks/refs/heads/main/nvidia/connect-two-sparks/assets/discover-sparks

下载完后在两个终端都执行以下指令:

代码语言:txt
复制
bash ./discover-sparks

脚本就会帮我们执行所需要的工作(如下图)

好了,现在就完成两台 DGX Spark 设备直接的连接动作了,后面再来尝试两台系统联手操作的测试。【完】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分:系统连线与网络配置
    • Step 2:为两台系统创建相同的用户名
    • Step 3 - 检测 QSFP 连线状态
    • Step 4 - 配置网口 IP
  • 第二部分:设置免密 SSH 身份验证
    • 手动处理:
    • 自动处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档