Home

【VMware ESXi】ESXi添加USB硬盘作为数据存储

通常在 ESXi 中插入 USB 硬盘后,设备会被优先当作可直通给虚拟机的 USB 设备,而不是直接作为 ESXi 可用的数据存储。因此如果想把 USB 硬盘直接挂成 ESXi 数据存储,需要额外做一些处理。

处理思路

核心思路是:

  1. 关闭 usbarbitrator,避免 USB 设备被优先拿去做虚拟机直通。
  2. 识别出目标 USB 设备名。
  3. 手动创建分区表并格式化为 VMFS。

1、开启主机SSH功能:主机-配置-服务,找到SSH服务,启用;

2、先不要插 USB 硬盘,执行以下命令:

/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off

3、插入 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 设备编号变化,还需要重新确认设备路径。
VMware 存储