【VMware ESXi】ESXi添加USB硬盘作为数据存储
通常在 ESXi 中插入 USB 硬盘后,设备会被优先当作可直通给虚拟机的 USB 设备,而不是直接作为 ESXi 可用的数据存储。因此如果想把 USB 硬盘直接挂成 ESXi 数据存储,需要额外做一些处理。
处理思路
核心思路是:
- 关闭
usbarbitrator,避免 USB 设备被优先拿去做虚拟机直通。 - 识别出目标 USB 设备名。
- 手动创建分区表并格式化为 VMFS。
1、开启主机SSH功能:主机-配置-服务,找到SSH服务,启用;
2、先不要插 USB 硬盘,执行以下命令:
/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off3、插入 USB 硬盘后,执行下面的命令确认设备是否被识别:
esxcli storage core device list | grep -i usb
如果看到 Is USB: true,说明 ESXi 已经识别到该 USB 设备。记下对应设备名,例如 mpx.vmhba34:C0:T0:L0。
4、列出所有磁盘,再次确认设备名:
ls /dev/disks/
5、输入命令,注意替换(如果是mpx.vmhba34:C0:T0:L0则变成mpx.vmhba34:C0:T0:L0)
partedUtil mklabel /dev/disks/mpx.vmhba34\:C0\:T0\:L0 gpt
partedUtil getptbl /dev/disks/mpx.vmhba34\:C0\:T0\:L0


6、如上图,得到一串硬盘的数值,这里是4000731136,注意每个硬盘数值都不同。
eval expr $(partedUtil getptbl /dev/disks/mpx.vmhba34\:C0\:T0\:L0 | tail -1 | awk '{print $1 " \\* " $2 " \\* " $3}') - 1

7、如上,会换算出另外一个数值:4000715144,运行如下命令
partedUtil setptbl /dev/disks/mpx.vmhba34\:C0\:T0\:L0 gpt "1 2048 4000715144 AA31E02A400F11DB9590000C2911D1B8 0"

8、挂载USB硬盘,注意后面有个:1
vmkfstools -C vmfs5 -S USB_Datastore /dev/disks/mpx.vmhba34\:C0\:T0\:L0:1

9、完成后,就可以在 ESXi 的数据存储界面看到新增的 USB_Datastore。

注意事项
- 这种方式更适合实验环境、临时使用或低要求场景。
- USB 硬盘的稳定性和性能通常不如正常 SAS / SATA / NVMe 存储。
- 如果主机重启后 USB 设备编号变化,还需要重新确认设备路径。