背景
本文內容基於ESXi 6.7,其他版本僅供參考。一般情況下,如果硬件支持良好,在虛擬機編輯界面應該能夠使用“Add raw disk”的選項,例如當我使用SLI 9200-8i陣列卡就可以直接向虛擬機添加RDM磁盤。但如果硬件不被支持,也沒有關係,我們仍然可以通過ESXi命令行來實現RDM的功能。
方法
首先,開啓ESXi命令行,如下圖所示,在"Host" > “Manage” > “Services"中運行"TSM-SSH"服務。
然後,來到"Storage” > “Devices”,選中想要直通的磁盤,然後複製該磁盤的路徑名(“Path”):
接下來,通過ssh
登陸ESXi的命令行,在/vmfs/volumes
路徑下找到你的DataStore,你將在這裏創建RDM虛擬磁盤文件,用於完成後續的操作。如下所示,我的DataStore名稱爲DS-KST240-SSD-1
:
[root@localhost:/vmfs/volumes] ls -l
total 1792
drwxr-xr-x 1 root root 8 Jan 1 1970 5e6665dd-db0ae4d0-1c64-4437e69a0876
drwxr-xr-t 1 root root 77824 Apr 28 22:23 5e66ce9b-1ecc8d9d-8f80-4437e69a0876
drwxr-xr-x 1 root root 8 Jan 1 1970 769fadef-ff010ea9-00e8-3f64163062ee
lrwxr-xr-x 1 root root 35 May 3 18:59 DS-KST240-SSD-1 -> 5e66ce9b-1ecc8d9d-8f80-4437e69a0876
drwxr-xr-x 1 root root 8 Jan 1 1970 e461cbeb-515f10d0-bfe6-681dbda62443
[root@localhost:/vmfs/volumes]
不用擔心,這個虛擬磁盤文件並不會真的佔用DataStore的存儲空間。
再然後,使用vmkfstools -z
命令創建RDM虛擬磁盤文件,你需要給它起個便於區分的名字,例如RDM-CD02-WD2T.vmdk
:
[root@localhost:/vmfs/volumes] vmkfstools -z /vmfs/devices/disks/t10.ATA_____WDC_WD20EARX2D00PASB0______________________
___WD2DWMAZA5280395 /vmfs/volumes/DS-KST240-SSD-1/RDM-CD02-WD2T.vmdk
[root@localhost:/vmfs/volumes]
最後,在虛擬機配置界面,通過添加現有磁盤的方式,將這塊RDM磁盤掛載到虛擬機中:
經驗
通過這種方式掛載的RDM磁盤,性能基本上可以達到“無損”的程度,文件格式也沒有發生變化,完全跟“物理連接”是一樣的,你甚至可以在虛擬機中更改分區表類型,重新分區,格式化硬盤,檢查磁盤壞道等等,除了無法讀取磁盤S.M.A.R.T信息以外,幾乎所有操作跟物理機都是等效的!
補充
如果你像我一樣,有多塊相同規格的磁盤,你可能會搞混它們,vmkfstools -q
命令將幫助你找到RDM虛擬磁盤與物理磁盤的對應關係。例如,下面的命令爲找到RDM-WD2T-HDD.vmdk
所對應的物理磁盤提供了線索:
[root@localhost:/vmfs/volumes/5e66ce9b-1ecc8d9d-8f80-4437e69a0876] vmkfstools -q RDM-WD2T-HDD.vmdk
Disk RDM-WD2T-HDD.vmdk is a Passthrough Raw Device Mapping
Maps to: vml.0100000000202020202057442d5743415a4135383835313231574443205744
[root@localhost:/vmfs/volumes/5e66ce9b-1ecc8d9d-8f80-4437e69a0876]
通過UUID
你將可以定位到相應的物理磁盤: