2024年8月22日发(作者:伏骊红)
前提:
ESXi支持硬件直通(需要CPU和主板都支持VT-d),可以将PCI的硬件直接配置给虚拟机来使
用。但也仅限于PCI设备,其他直接接在主板的磁盘、USB设备、CPU内置显卡等都是不能被直通
的。如果希望将某个磁盘也直通给虚拟机,有两种办法:
添置一块PCI的阵列卡,将其直通给虚拟机,所有需要直通的磁盘都接在这个阵列卡上面;
创建RDM虚拟磁盘;
创建RDM虚拟磁盘:
通过SSH登录ESXi,获取磁盘设备标识符:
ls -l /dev/disks
敲完命令后出来类似如下:
其中冒号后的数字为硬盘分区。复制不带数字的标识符,如:
_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZK
执行以下命令:
vmkfstools -z /vmfs/devices/disks/<直通硬盘的标识符> /vmfs/volumes/<保存vmdk的硬盘标识
符>/
例如:
mkfstools -z
/vmfs/devices/disks/_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZ
K /vmfs/volumes/SSD/
执行命令后将为该硬盘创建RDM直通的vmdk,然后在虚拟机中添加硬盘选择所创建的vmdk即
可。正常到这就结束了,如果报错请参考后文。
====================================================================================
=======
在创建RDM的时候,如果目标硬盘上面有ESXi能识别的分区,可能导致vmkfstools执行失败。
需要在确保重要数据已经备份的情况下,删除目标磁盘上的分区。
删除物理磁盘分区方法1:
以下操作有数据损坏的风险
显示现有分区:
partedUtil get /dev/disks/<硬盘标识符>
将看到类似输出:
1 2048 4982527 253 0
2 4982528 9176831 253 0
3 9437184 3907015007 15 0
5 9453280 3906822239 253 0
其中第一列为分区编号,然后通过以下命令删除所有分区:
partedUtil delete /dev/disks/<硬盘标识符> <分区编号>
如果在执行删除分区操作的时候,出现错误Error: Read-only file system during write on ...,在删除
之前,执行:
esxcli system coredump partition set --enable false
删除物理磁盘分区方法2:
如果试图用 partedUtil delete 命令删除分区,失败。
可以通过更改磁盘的卷标,可以破坏磁盘的所有分区。所以这里用 partedUtil mklabel 命令把磁
盘卷标改为 msdos 。
partedUtil mklabel /dev/disks/<硬盘标识符> msdos
提示:
如果使用到不正确的路径会出现以下错误信息 ,参考前文修正路径即可。
Failed to create virtual disk: The specified device is not a valid physical disk device (20).
最后上图
2024年8月22日发(作者:伏骊红)
前提:
ESXi支持硬件直通(需要CPU和主板都支持VT-d),可以将PCI的硬件直接配置给虚拟机来使
用。但也仅限于PCI设备,其他直接接在主板的磁盘、USB设备、CPU内置显卡等都是不能被直通
的。如果希望将某个磁盘也直通给虚拟机,有两种办法:
添置一块PCI的阵列卡,将其直通给虚拟机,所有需要直通的磁盘都接在这个阵列卡上面;
创建RDM虚拟磁盘;
创建RDM虚拟磁盘:
通过SSH登录ESXi,获取磁盘设备标识符:
ls -l /dev/disks
敲完命令后出来类似如下:
其中冒号后的数字为硬盘分区。复制不带数字的标识符,如:
_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZK
执行以下命令:
vmkfstools -z /vmfs/devices/disks/<直通硬盘的标识符> /vmfs/volumes/<保存vmdk的硬盘标识
符>/
例如:
mkfstools -z
/vmfs/devices/disks/_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZ
K /vmfs/volumes/SSD/
执行命令后将为该硬盘创建RDM直通的vmdk,然后在虚拟机中添加硬盘选择所创建的vmdk即
可。正常到这就结束了,如果报错请参考后文。
====================================================================================
=======
在创建RDM的时候,如果目标硬盘上面有ESXi能识别的分区,可能导致vmkfstools执行失败。
需要在确保重要数据已经备份的情况下,删除目标磁盘上的分区。
删除物理磁盘分区方法1:
以下操作有数据损坏的风险
显示现有分区:
partedUtil get /dev/disks/<硬盘标识符>
将看到类似输出:
1 2048 4982527 253 0
2 4982528 9176831 253 0
3 9437184 3907015007 15 0
5 9453280 3906822239 253 0
其中第一列为分区编号,然后通过以下命令删除所有分区:
partedUtil delete /dev/disks/<硬盘标识符> <分区编号>
如果在执行删除分区操作的时候,出现错误Error: Read-only file system during write on ...,在删除
之前,执行:
esxcli system coredump partition set --enable false
删除物理磁盘分区方法2:
如果试图用 partedUtil delete 命令删除分区,失败。
可以通过更改磁盘的卷标,可以破坏磁盘的所有分区。所以这里用 partedUtil mklabel 命令把磁
盘卷标改为 msdos 。
partedUtil mklabel /dev/disks/<硬盘标识符> msdos
提示:
如果使用到不正确的路径会出现以下错误信息 ,参考前文修正路径即可。
Failed to create virtual disk: The specified device is not a valid physical disk device (20).
最后上图