https://blog.csdn.net/u011434330/article/details/81951986
有时候很尴尬需要把整个物理硬盘都给虚拟机使用,就好比NAS系统,好在ESXi提供了RDM直通功能,可以按照以下办法实现
打开vSphere Client,在服务器>配置>存储器页面中找到要创建RDM链接的物理设备,并记下ID
SSH连接到ESXi,使用 vmkfstools -r /vmfs/devices/disks/ /<路径>/file.vmdk即可,具体操作如下
~ # vmkfstools -r /vmfs/devices/disks/naa.6782bcb05600390020ae8ce955723213 /vmfs/volumes/SAS-SYS/sea.vmdk
/vmfs/volumes/59032095-fcac8d1a-20a8-782bcb77b96c # du -sh sea*
0 sea-rdm.vmdk
0 sea.vmdk
再次查看文件类型,发现RDM映射的文件已经跟传统的虚拟磁盘文件类型已经有不同
RW 8388608 VMFS “sea.vmdk”
RW 8388608 VMFSRDM “sea-rdm.vmdk”
https://www.cnblogs.com/dreamdale/p/7633406.html
执行以下命令:
vmkfstools -z /vmfs/devices/disks/< 直通硬盘的标识符 > /vmfs/volumes/< 保存 vmdk 的硬盘标识符 >/<VMDK 名字 >.vmdk
https://hacpai.com/article/1484576134587
ESXi 支持硬件直通(需要 CPU 和主板都支持 VT-d),可以将 PCI 的硬件直接配置给虚拟机来使用。但也仅限于 PCI 设备,其他直接接在主板的磁盘、USB 设备、CPU 内置显卡等都是不能被直通的。如果希望将某个磁盘也直通给虚拟机,有两种办法:
添置一块 PCI 的阵列卡,将其直通给虚拟机,所有需要直通的磁盘都接在这个阵列卡上面;
创建 RDM 虚拟磁盘;
创建 RDM 虚拟磁盘
通过 SSH 登录 ESXi,获取磁盘设备标识符:
ls -l /dev/disks
例如:
naa.200049454505080f
naa.200049454505080f:1
naa.200049454505080f:5
naa.200049454505080f:6
naa.200049454505080f:7
naa.200049454505080f:8
naa.200049454505080f:9
t10.ATA_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZK
t10.ATA_____LITEONIT_LMT2D256M3M_____________________TW0V6PN8550852CJ1446
t10.ATA_____LITEONIT_LMT2D256M3M_____________________TW0V6PN8550852CJ1446:4
vml.01000000002020202020204a443130353043434733584a5a4b484753542048
vml.01000000005457305636504e38353530383532434a313434364c4954454f4e
vml.01000000005457305636504e38353530383532434a313434364c4954454f4e:4
vml.0200000000200049454505080f4d6173732053
vml.0200000000200049454505080f4d6173732053:1
vml.0200000000200049454505080f4d6173732053:5
vml.0200000000200049454505080f4d6173732053:6
vml.0200000000200049454505080f4d6173732053:7
vml.0200000000200049454505080f4d6173732053:8
vml.0200000000200049454505080f4d6173732053:9
其中冒号后的数字为硬盘分区。复制不带数字的标识符,如:t10.ATA_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZK
执行以下命令:
vmkfstools -z /vmfs/devices/disks/<直通硬盘的标识符> /vmfs/volumes/<保存vmdk的硬盘标识符>/<VMDK名字>.vmdk
例:
vmkfstools -z /vmfs/devices/disks/t10.ATA_____HGST_HTS541010A9E680__________________________JD1050CCG3XJZK
/vmfs/volumes/5851c14c-7f3006b5-33e4-000ec4ce7958/DSMdisk.vmdk
执行命令后将为该硬盘创建 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 。
提示:
如果使用到不正确的路径如 /dev/disks/ vmkfstools -z /dev/disks/naa.6c81f660f45937001bd9044a07056f67 /vmfs/volumes/datastore1/db600gbhdd.vmdk
错误信息 Failed to create virtual disk: The specified device is not a valid physical disk device (20).