题图摄于北京金融街

相关信息:

招聘云原生工程师

使用Bitfusion在K8s上共享GPU资源

本文作者:尹皓正 - VMware中国研发中心云原生实验室开发工程师 

背景介绍:

PVRDMA (Paravirtual RDMA):VMware 对于 RDMA 技术的半虚拟化实现,vSphere 会在虚机中提供 PVRDMA 虚拟网卡,再通过 VMkernel 中的 PVRDMA 堆栈来访问 HCA(Host Channel Adapter,主机通道适配器),这种方式可以让多个虚机共享 HCA 设备。

 

Bitfusion:把 GPU 资源集中起来,组成 GPU 资源池,然后共享给所有用户使用

 

Host物理配置:

PVRDMA环境配置:

分布式虚拟交换机创建过程

1. 在vCenter Server中,单击主页->网络。默认情况下,数据中心/群集中有一个称为“ VM Network”的标准vSwitch。

 

2. 右键单击虚拟数据中心/群集,然后单击“分布式交换机>>新的分布式交换机...”。

 

3. 这将打开“新建分布式交换机”向导,该向导将指导您完成该过程。

 

1. 名称和位置:在“名称”框中输入分布式虚拟交换机的名称,然后单击“下一步”。默认名称是“ DSwitch”。

2. 选择版本:切换分布式开关:7.0.0,然后单击下一步

3. 编辑设置:完成该字段,然后单击“下一步”。

n 上行链路数量:选择符合你需要的

n 网络I / O控制:禁用

n 默认端口组:选中

n 端口组名称:提供端口组名称。默认名称为“ DPortGroup”。

4. 准备完成:查看设置,然后单击完成

通过DVswitch添加和管理主机

要将主机添加到新创建的分布式虚拟交换机,请右键单击新创建的DVswitch,然后单击添加和管理器主机...”。

 

 

1. 选择任务:切换“添加主机”,然后单击“下一步”。

2. 选择主机:单击+新主机...以显示要添加的主机列表。选择要添加到此DVswitch的 主机,然后单击“确定”。显示新选择的主机,然后单击“下一步”。

3. 管理物理网络适配器:选择vmnicX,然后单击“分配上行链路”以显示上行链路选择。将“上行链路1”分配为上行链路,单击“确定”退出弹出窗口。继续为每个主机。然后点击下一步

 

n 对于非HCA:选择vSwitch0未使用的vmnicX

n 对于HCA:从Mellanox Technologies系列中选择单个vmnicX(当前,系统支持单个Mellnox HCA)

4. 管理VMkernel网络适配器:保留默认设置,然后单击下一步

5. 迁移虚拟机网络:选择虚拟机,然后单击分配端口组以显示端口组选择。分配端口组,单击“确定”退出弹出窗口。继续每个虚拟机。然后点击下一步

 

vmknic

1. 选择“主机”,右键单击“设置”以切换到“管理”选项卡的“设置”页面。

2. 在“设置”页面中,展开“系统”,单击“高级系统设置”以显示“高级系统设置”密钥对值及其摘要。

3. 单击编辑...以显示“编辑高级系统设置”

4. 在PVRDM上进行筛选以将所有设置缩小为Net.PVRDMAVmknic。

5. 将Net.PVRDMAVmknic值设置为vmknic,如示例“ vmk1”

 

 防火墙设置

1. 选择“主机”,右键单击“设置”以切换到“管理”选项卡的“设置”页面。

2. 在“设置”页面中,展开“系统”,单击“安全配置文件”以显示防火墙摘要。

3. 单击编辑...以显示编辑安全配置文件

4. 向下滚动以找到pvrdma,然后选中该框以设置防火墙。

将PVRDMA设备添加到虚拟机

1. 选择VM,右键单击“ Edit Settings ...”以显示“ Edit Settings”配置

2. 如图所示,为分布式端口组和虚拟交换机 扩展网络适配器X

3. 在“适配器类型”中,选择“ PVRDMA”,然后单击“确定”。

PVRDMA环境验证

n 分别在两个Host内创建虚拟机

VM Name

OS

IP

Host Name

pv-rdma-vm 1

ubuntu 18.04

x.x.x.1

Host1

pv-rdma-vm 2

ubuntu 18.04

x.x.x.2

Host2

n 虚拟机配置

 

 

DPortGroup 1

n 使用ib_send_bw测试

1. 在两台vm上分别使用下面命令安装测试所需要的工具

2. sudo apt-get install -y rdma-core libmlx4-1 infiniband-diags ibutils ibverbs-utils rdmacm-utils perftest

3. 在pv-rdma-vm 1 上输入 ib_send_bw

4. 在pv-rdma-vm 2 上输入 ib_send_bw x.x.x.1

得到结果:

 

n 使用rping测试

在两台vm内分别运行

1. sudo apt-get install build-essential cmake gcc libudev-dev libnl-3-dev libnl-route-3-dev ninja-build pkg-config valgrind python3-dev cython3 python3-docutils pandoc

2. mkdir /home/rdma

3. git clone https://github.com/linux-rdma/rdma-core.git /home/rdma

4. cd /home/rdma

5. bash build.sh

在pv-rdma-vm 1上输入 /home/rdma/build/bin/rping -s -a x.x.x.1 -P

在pv-rdma-vm 2 上输入 /home/rdma/build/bin/rping -c -I x.x.x.2  -a x.x.x.1 -v

 

PVRDMA 网络适配器与 vSphere Bitfusion 结合

前提条件

l vSphere 环境必须先设置 PVRDMA,然后才能将 vSphere Bitfusion 配置为使用 PVRDMA。

l vSphere Bitfusion 服务器和客户端必须配置有两个网络适配器。第一个网络适配器用于使用默认适配器类型(如 VMXNET3)的管理流量。第二个网络适配器用于 PVRDMA 流量。

l 必须先关闭 vSphere Bitfusion 服务器和客户端虚拟机的电源,然后才能将它们配置为使用 PVRDMA 适配器。

过程

1. 在 vSphere Client 中找到托管 vSphere Bitfusion 服务器和客户端的虚拟机。

2. 右键单击清单中的虚拟机,然后选择编辑设置。

3. 从添加新设备下拉菜单中,选择网络适配器 2, “新网络”部分将添加到 虚拟硬件选项卡下的列表中。

4. 选择 PVRDMA 网络。

5. 展开“新建网络”部分并将虚拟机连接到分布式端口组。

6. 将状态设置更改为打开电源时连接。

7. 在适配器类型下拉菜单中,选择 PVRDMA。

8. 打开虚拟机电源。


要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐