ESXi安装
- 1: 安装esxi7.0.2
- 2: 配置esxi
- 2.1: 配置esxi控制台
- 3: 通过补丁方式升级esxi
- 3.1: 升级到esxi 7.0.2
- 4: 验证安装和配置
- 4.1: 在esxi上运行iperf3
- 4.2: 在esxi上运行iperf3
1 - 安装esxi7.0.2
准备工作
硬件准备
准备了一台性能还可以的物理机器:
- cpu:intel 7960x
- 主板:华硕 x299 ws pro/se
- 内存:32g * 4 @ddr4 3600
- 显卡:amd r5 240 亮机卡
- 硬盘:
- 一块256g sata ssd安装windows10以备不时之需
- 一块3.94t的服务器u2接口的nvme ssd用来给esxi使用
- 网卡
- 主板自带两个intel i210 千兆网卡,连接在千兆交换机上,可以访问外网
- 一块 aqn-108 五千兆网卡,用网线和另外一台开发主机(同样也有一个五千兆网卡)直连,不走交换机
- (计划)HP 544+ 40G网卡一对,分别插在 esxi 主机和开发主机上,也是直连
软件准备
从vmware官方下载页面下载 esxi 的最新版本 7.0.2:
Download VMware vSphere - VMware Customer Connect

备注
默认下载速度超级的慢,几K几K的速度,剩余2-3天,无法忍受。
由于vmware网站没有被墙,所以一般不会自动开启代理,因此需要在科学上网软件中设置全局代理或者手动将vmware.com网站设置为启用代理,之后便可以用几M的速度下载。
在 clash 中可以在控制面板临时将规则 “漏网之鱼” 从默认的 DIRECT 设置为 总模式,先临时启用,待下载完成之后再恢复为 DIRECT。
也可以在一些整理好的网站上下载:
然后刻录启动U盘。
注意
- balenaEtcher 有mac版本,但是刻录出来的u盘无法启动
- 在windows下用 rufus 刻录,刻录中提示要下载文件以提供支持时选择同意
安装
从u盘启动,然后按照提示一路安装,没有什么特别。
默认虚拟闪存的调整
在全新安装ESXI 7后,系统默认将会在数据存储中划分120G空间作为虚拟闪存。我目前硬盘足够大所以不介意这点占用。如果敏感则可以在安装过程中进行调整。
参考:虚拟闪存的作用
利用虚拟闪存可以通过使用本地 SSD 磁盘(为 ESXi 主机上运行的所选虚拟机提供闪存缓存)提高虚拟机性能。Virtual Flash Read Cache 可以为对延迟极度敏感的应用程序提供低延迟,从而使之前认为 I/O 过于密集因而似乎不可能实现虚拟化的一些计算机系统/应用程序实现虚拟化。
参考:
2 - 配置esxi
2.1 - 配置esxi控制台
在主机界面上进行配置
设置控制台的IP地址
主板自带两块intel千兆网卡,mac地址分别是:
- 04:d4:c4:5a:e2:77
- 04:d4:c4:5a:e2:78
在路由器的dhcp中手工指定这两个网卡的IP地址,分别为 192.168.0.40 和 192.168.0.41
在 esxi 主机的界面上(不是web页面)上,按 F2 Customize System/View Logs,输入root密码。
选择 “Configuration Management Network” -> “Network Adapter”,选择mac地址为 “04:d4:c4:5a:e2:77” 的网卡。如果默认选择的是另外一块网卡,注意取消勾选。
“Restart management network” 之后,就可以使用 192.168.0.40 这个IP地址访问 exsi 控制台了。
设置esxi主机的hostname
同样在 “Configuration Management Network” 选择 “DNS Configuration”,设置:
- Primary DNS Server: 192.168.0.1
- Hostname: skyserver
再次 “Restart management network” 即可生效。
使用控制台进行配置
用上面的IP地址 192.168.0.40,登录控制台页面。
开启ssh
登录 esxi web管理界面,进入 “管理” –> “服务”,在列表中找到 TSM-SSH,右键点启动。

也可以在策略中选择"随主机启动和停止"。
设置swap
登录 esxi web管理界面,进入 “管理” –> “系统” –> “交换”,点击"编辑设置"。
数据存储下拉框中选择需要使用的 datastore:

设置好之后需要重启 esxi 主机。
新增数据存储
为了方便备份数据,增加了一块闲置的3T容量的普通机械硬盘。
进入 “存储” -> “设备”,可以看到当前的存储设备:

点击这块硬盘,选择"操作" -> “清除分区表”。
再点击"新增数据存储",选择这块硬盘(注意如果没有删除分区表,会显示没有空闲的设备可以添加)。
3 - 通过补丁方式升级esxi
3.1 - 升级到esxi 7.0.2
给 exsi 打补丁以升级版本。
在线升级
在 google 中搜索 exsi patch,找到 VMware ESXi 7.0 Patch History (v-front.de) 的网站,选择最新的patch:

点击之后会弹出一个窗口,提示更新补丁的命令如下:

需要用到的命令有三个:
esxcli network firewall ruleset set -e true -r httpClient
esxcli software profile update -p ESXi-7.0U2a-17867351-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
esxcli network firewall ruleset set -e false -r httpClient
报错
如果遇到报错 MemoryError ,则应该是esxi “设置swap” 的步骤没有做或者没有重启:
[MemoryError]
Please refer to the log file for more details.
如果报错 “Got no data from process”:
Got no data from process: LANG=en_US.UTF-8 /usr/lib/vmware/esxcli-software profile.update -d "https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml" -p "ESXi-7.0U2a-17867351-standard"
没有找到解决的办法,一般建议离线升级。
- Solved: esxcli software profile update fails with “Got no … - VMware Technology Network VMTN
- How to update any VMware ESXi Hypervisor to the latest using ESXCLI for easy download and install | TinkerTry IT @ Home
离线升级
下载升级文件
下载离线升级文件:
Product Patches - VMware Customer Connect
选择 esxi 7.0 版本(注意不是7.0.0或者7.0.1),找到 VMware-ESXi-7.0U2a-17867351-depot ,开始下载。

备注
- 默认下载速度超级的慢,最好能科学上网或者找到他人整理好的补丁包。
上传离线文件到exsi主机
将文件上传到 exsi 主机的存储上,在控制台进入 “存储” –> “datastore1” ,注意这里的UUID,后面会用到:

点 “数据存储浏览器” 就能看到当前已有的文件。点击 “上载” 选择 VMware-ESXi-7.0U2a-17867351-depot.zip 文件。

离线升级
ssh登录 esxi 主机,运行 vmware -l 命令看一下当前 exsi 的版本,如我当前是 7.0 GA 版本
VMware ESXi 7.0 GA
先让 esxi 主机进入维护模式,也可以在控制台页面操作:
esxcli system maintenanceMode set -e true
Maintenance mode is already enabled.
之后执行更新命令:
esxcli software profile update -p ESXi-7.0U2a-17867351-standard -d /vmfs/volumes/61090e61-7519507d-1c82-04d4c45ae278/VMware-ESXi-7.0U2a-17867351-depot.zip
注意:这里的路径 /vmfs/volumes/61090e61-7519507d-1c82-04d4c45ae278/ 中的 61090e61-7519507d-1c82-04d4c45ae278 就是前面看到的 datastore 的 UUID。
等待大概20秒就可以看到更新成功的提示信息:
Update Result
Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
Reboot Required: true
VIBs Installed: VMW_bootbank_atlantic_1.0.3.0-8vmw.702.0.0.17867351, VMW_bootbank_bnxtnet_216.0.50.0-34vmw.702.0.0.17867351, VMW_bootbank_bnxtroce_216.0.58.0-19vmw.702.0.0.17867351, VMW_bootbank_brcmfcoe_12.0.1500.1-2vmw.702.0.0.17867351,
............
VIBs Skipped:
完成之后执行命令重启 exsi 主机:
boot
验证升级结果
exsi 启动时,界面上显示为 “vmware exsi 7.0.2 (vmkernel release build 17867351)” ,这说明已经更新成功。
登录控制台,在 “主机” 页面上 可以看到当前版本:

由于升级之前将主机设置为维护模式了,所以现在还要再修改为正常模式。可以通过控制台执行,点击 “操作” –> “推出维护模式”,或者ssh之后执行命令
esxcli system maintenanceMode set -e false
参考文章:
4 - 验证安装和配置
4.1 - 在esxi上运行iperf3
准备软件
在esxi6.7上准备iperf
ssh 登录 esxi 6.7, 然后执行以下命令:
mkdir /temp
cd /temp
wget http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip
esxcli software vib install -d /temp/iperf-2.0.5-1-offline_bundle.zip --no-sig-check
结果输出为:
Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: DAST_bootbank_iperf_2.0.5-1
VIBs Removed:
VIBs Skipped:
清理并进入目录:
rm -rf /temp
cd /opt/iperf/bin
cp iperf iperf.copy
准备网络
查看目前 esxi 的网络情况:
esxcli network ip interface ipv4 get
如果只有一个网卡(兼管理网络),输出类似:
Name IPv4 Address IPv4 Netmask IPv4 Broadcast Address Type Gateway DHCP DNS
---- ------------ ------------- -------------- ------------ ----------- --------
vmk0 192.168.0.58 255.255.255.0 192.168.0.255 STATIC 192.168.0.1 false
另外测试之前关闭esxi的防火墙:
esxcli network firewall set --enabled false
为了测试 hp544+ 网卡(连接为56G)在 esxi 下的性能,需要在 esxi 中取消直通,然后设置相关的网络
- virtual switches 中添加 virtual switch, 如 “vSwitch-56G”, uplink 选择 hp544+ 网卡
- port group 中添加新的 port group,如 “56G Network”,virtual switch 选择 “vSwitch-56G”
- vmkernel NICs 中添加新的 VMkernel NIC,port group, 选择 “56G Network”
再次查看网络:
esxcli network ip interface ipv4 get
可以看到新加的 56g 网络的 IP 地址:
Name IPv4 Address IPv4 Netmask IPv4 Broadcast Address Type Gateway DHCP DNS
---- -------------- ------------- --------------- ------------ ----------- --------
vmk0 192.168.0.28 255.255.255.0 192.168.0.255 STATIC 192.168.0.1 false
vmk1 192.168.100.28 255.255.255.0 192.168.100.255 STATIC 0.0.0.0 false
测试
作为服务器端启动:
/opt/iperf/bin/iperf.copy -s -B 192.168.100.28
作为客户端
作为客户端执行:
/opt/iperf/bin/iperf.copy -c 192.168.100.1 -t 10 -P 10
-t 表示测试的总时间长度,-P 启动多线程进行并发测试,一般 8-10 比较合适。
或者增加参数, -i 表示每隔多长时间打印一次测试结果,避免长时间等待(默认需要等测试时间 -t 结束才显示结果), -f g 表示用 Gbits 来显示带宽:
/opt/iperf/bin/iperf.copy -c 192.168.100.1 -t 10 -i 2 -f g -P 10
测试结果
场景1
-
服务器端是直通 + ubuntu server:之前测试 56g eth 模式下测速打开 48G
-
客户端为 esxi 6.7, 自带驱动,不直通,不开启
-
测试带宽为: 32G左右
-
cpu使用率有点高,大概20%-30%
结果:和正常的48G相比,只有 2/3 的性能,估计是 rdma 没有开启的原因。
esxcli software vib list | grep mlx
net-mlx4-core 1.9.7.0-1vmw.670.0.0.8169922 VMW VMwareCertified 2023-03-19
net-mlx4-en 1.9.7.0-1vmw.670.0.0.8169922 VMW VMwareCertified 2023-03-19
nmlx4-core 3.17.13.1-1vmw.670.2.48.13006603 VMW VMwareCertified 2023-03-19
nmlx4-en 3.17.13.1-1vmw.670.2.48.13006603 VMW VMwareCertified 2023-03-19
nmlx4-rdma 3.17.13.1-1vmw.670.2.48.13006603 VMW VMwareCertified 2023-03-19
nmlx5-core 4.17.13.1-1vmw.670.3.73.14320388 VMW VMwareCertified 2023-03-19
nmlx5-rdma 4.17.13.1-1vmw.670.2.48.13006603 VMW VMwareCertified 2023-03-19
参考
4.2 - 在esxi上运行iperf3
准备软件
在esxi7上准备iperf3
esxi 7 自带 iperf3,位于 /usr/lib/vmware/vsan/bin/iperf3,使用时注意先执行以下命令:
cp /usr/lib/vmware/vsan/bin/iperf3 /usr/lib/vmware/vsan/bin/iperf3.copy
复制一份作为服务器端使用,否则直接通过 iperf3 运行服务器端,会报错:
/usr/lib/vmware/vsan/bin/iperf3 -s -B 192.168.0.40
iperf3: error - unable to start listener for connections: Operation not permitted
iperf3: exiting
关于这一点请参考:
另外测试之前关闭esxi的防火墙:
esxcli network firewall set --enabled false
在windows10上准备iperf3
从 iperf 官方网站上下载 iperf3:
iPerf - Download iPerf3 and original iPerf pre-compiled binaries
准备网络
网络连接概述
两台机器之间一共有三组网络连接:
- 千兆网络:esxi主机和开发机器之间通过千兆交换机连接,都是千兆有线网卡, ip地址设置为 192.168.0.10 和 192.168.0.40
- 五千兆高速网络:esxi主机上插一块 aqn-108 五千兆网卡(支持windows、linux和exsi),开发机器主板自带一块 aqn-111c 五千兆网卡(支持windows、linux,不支持黑苹果),通过网线直连,ip地址设置为 10.0.0.10 和 10.0.0.40
- 40G超高速网络:esxi主机上插一块 hp 544+ 40G网卡(支持windows、linux,exsi不确定),开发机器同样插一块 hp 544+ 40G网卡(支持windows、linux,黑苹果不确定),通过40G QSFP网线直连,ip地址设置为 192.168.1.10 和 192.168.1.40
esxi网络设置
5G网络设置
首先确保5G物理网卡已经识别,链路速度为5000Mbps,全双工。

开始创建5g网络的虚拟交换机,上行链路选择上面的5g网卡:

再添加5g的端口组,虚拟交换机选择前面创建的5g交换机:

最后在vmkernel网卡中添加一个vmkernel网卡:

ip地址的设置为:

windows网络设置
5G网络设置
5g网卡的适配器设置如下:

测试
esxi7作为服务器端
测试千兆网络
服务器端 esxi ip地址为 192.168.0.40:
/usr/lib/vmware/vsan/bin/iperf3.copy -s -B 192.168.0.40
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
客户端为windows10,启动iperf3.exe,走千兆网络,带宽接近千兆的:
iperf3.exe -n 1000M -c 192.168.0.40
Connecting to host 192.168.0.40, port 5201
[ 4] local 192.168.0.10 port 65066 connected to 192.168.0.40 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 110 MBytes 923 Mbits/sec
[ 4] 1.00-2.00 sec 110 MBytes 921 Mbits/sec
[ 4] 2.00-3.00 sec 109 MBytes 917 Mbits/sec
[ 4] 3.00-4.00 sec 110 MBytes 918 Mbits/sec
[ 4] 4.00-5.00 sec 109 MBytes 918 Mbits/sec
[ 4] 5.00-6.00 sec 110 MBytes 919 Mbits/sec
[ 4] 6.00-7.00 sec 108 MBytes 902 Mbits/sec
[ 4] 7.00-8.00 sec 109 MBytes 918 Mbits/sec
[ 4] 8.00-9.00 sec 110 MBytes 918 Mbits/sec
[ 4] 9.00-9.15 sec 16.0 MBytes 910 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-9.15 sec 1000 MBytes 917 Mbits/sec sender
[ 4] 0.00-9.15 sec 1000 MBytes 917 Mbits/sec receiver
iperf Done.
测试五千兆网络
服务器端 esxi ip地址为 10.0.0.40:
/usr/lib/vmware/vsan/bin/iperf3.copy -s -B 10.0.0.40
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
客户端为windows10,启动iperf3.exe,走五千兆直连网络,单线程带宽只有2g多一点:
iperf3.exe -n 5000M -c 10.0.0.40
Connecting to host 10.0.0.40, port 5201
[ 4] local 10.0.0.10 port 63397 connected to 10.0.0.40 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 244 MBytes 2.05 Gbits/sec
[ 4] 1.00-2.00 sec 251 MBytes 2.11 Gbits/sec
[ 4] 2.00-3.00 sec 254 MBytes 2.13 Gbits/sec
[ 4] 3.00-4.00 sec 251 MBytes 2.11 Gbits/sec
[ 4] 4.00-5.00 sec 263 MBytes 2.20 Gbits/sec
[ 4] 5.00-6.00 sec 257 MBytes 2.15 Gbits/sec
[ 4] 6.00-7.00 sec 259 MBytes 2.17 Gbits/sec
[ 4] 7.00-8.00 sec 263 MBytes 2.20 Gbits/sec
[ 4] 8.00-9.00 sec 273 MBytes 2.29 Gbits/sec
[ 4] 9.00-10.00 sec 265 MBytes 2.23 Gbits/sec
[ 4] 10.00-11.00 sec 266 MBytes 2.23 Gbits/sec
[ 4] 11.00-12.01 sec 252 MBytes 2.10 Gbits/sec
[ 4] 12.01-13.00 sec 262 MBytes 2.22 Gbits/sec
[ 4] 13.00-14.00 sec 273 MBytes 2.29 Gbits/sec
[ 4] 14.00-15.00 sec 264 MBytes 2.21 Gbits/sec
[ 4] 15.00-16.00 sec 268 MBytes 2.25 Gbits/sec
[ 4] 16.00-17.00 sec 262 MBytes 2.20 Gbits/sec
[ 4] 17.00-18.00 sec 261 MBytes 2.19 Gbits/sec
[ 4] 18.00-19.00 sec 260 MBytes 2.18 Gbits/sec
[ 4] 19.00-19.19 sec 52.1 MBytes 2.27 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-19.19 sec 4.88 GBytes 2.19 Gbits/sec sender
[ 4] 0.00-19.19 sec 4.88 GBytes 2.19 Gbits/sec receiver
iperf Done.
通过 -P 参数指定多线程,可以使用更大的带宽,实测下来:
- 单线程带宽2.2g
- 两个线程带宽3.5g
- 三个线程带宽3.3g
- 四个线程带宽4.7g
- 再往上加线程带宽还是4.7g
iperf3.exe -c 10.0.0.40 -t 20 -P 5
Connecting to host 10.0.0.40, port 5201
[ 4] local 10.0.0.10 port 54228 connected to 10.0.0.40 port 5201
[ 6] local 10.0.0.10 port 54230 connected to 10.0.0.40 port 5201
[ 8] local 10.0.0.10 port 54231 connected to 10.0.0.40 port 5201
[ 10] local 10.0.0.10 port 54232 connected to 10.0.0.40 port 5201
[ 12] local 10.0.0.10 port 54233 connected to 10.0.0.40 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 106 MBytes 891 Mbits/sec
[ 6] 0.00-1.00 sec 106 MBytes 890 Mbits/sec
[ 8] 0.00-1.00 sec 106 MBytes 886 Mbits/sec
[ 10] 0.00-1.00 sec 125 MBytes 1.05 Gbits/sec
[ 12] 0.00-1.00 sec 123 MBytes 1.03 Gbits/sec
[SUM] 0.00-1.00 sec 567 MBytes 4.75 Gbits/sec
......
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-8.58 sec 921 MBytes 900 Mbits/sec sender
[ 4] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
[ 6] 0.00-8.58 sec 918 MBytes 897 Mbits/sec sender
[ 6] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
[ 8] 0.00-8.58 sec 912 MBytes 891 Mbits/sec sender
[ 8] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
[ 10] 0.00-8.58 sec 1.04 GBytes 1.04 Gbits/sec sender
[ 10] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
[ 12] 0.00-8.58 sec 1023 MBytes 999 Mbits/sec sender
[ 12] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
[SUM] 0.00-8.58 sec 4.73 GBytes 4.73 Gbits/sec sender
[SUM] 0.00-8.58 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated
参考: