在 ESXi 4 上的虛擬機器中指派和刪除多個 LUN

在 ESXi 4 上的虛擬機器中指派和刪除多個 LUN

我們目前有一個測試環境,在 SAN 連接的儲存陣列上建立數百個 LUN,將它們匯出到一台或多台(實體)伺服器,對 LUN 上包含的資料執行測試,然後銷毀它們並重複。

我們希望使用虛擬機器作為伺服器,但在手動將數百個LUN 分配給每個單獨的虛擬機器時遇到問題(與之前的實體伺服器一樣,我們只需設定分區即可執行此操作並重新掃描HBA ) 。

關於如何處理這種情況有什麼建議嗎?一種解決方案可能是虛擬機器直接路徑 IO(但我們目前沒有所需的硬體),或者設定腳本來自動重新掃描 ESX 層級的新 LUN,然後自動將 LUN 指派給特定的 LUN。認為可以透過API 來完成?

答案1

我不明白為什麼您不能使用任何標準 ESX\ESXi 設定來執行此操作。

您應該能夠使用原始設備映射來完成此操作。假設 SAN 端的分割區和 LUN 呈現過程保持不變,您可以使用 vmkfstools 告訴 ESX 在主機層級重新掃描和偵測新的 LUN。找到後,您可以建立 VMDK 並將其新增至 VM,或將整個磁碟區呈現為原始裝置對應 (RDM)。

對於 ESX,您可以在服務控制台命令列上編寫此腳本,但對於 ESXi,您需要使用 PowerCLI (Powershell) 或 Perl CLI 工具。這vSphere 管理設備是一個 Linux 設備,如果您想採取這種方式,它已經預先安裝了所有工具。可以找到所有三種 CLI 方法的文檔這裡

您想要做的事情的整體輪廓是:

1. 重新掃描主機上的新LUN。

vicfg-rescan [vmhbaX]   

您可能只想掃描 LUN 所提供的相關 HBA,因此將 vmhbaX 替換為連接到 SAN 的相關 HBA 名稱。

2. 建立對應到新 LUN 的 RDM 存根

vmkfstools –a lsilogic -r /vmfs/devices/disks/vmhba1:0:0:0 /vmfs/volumes/storage1/testluns/testrdmlun.vmdk

您需要找出 LUN 的 LUN 引用,並將 vmdk 設定為在您的環境中有意義的位置和名稱。此格式有幾個語法變體,我沒有在 ESXi 4 上使用過此格式,但此格式在 3.5 上對我來說工作得很好。有兩種 RDM 模式,如果您需要更多 SCSI 功能,則原始裝置映射直通模式可能更適合您,在這種情況下,請將 -r 替換為 -x。

3. 將新磁碟提供給您的虛擬機器。

以這種方式準備好磁碟後,可以透過多種方法將這些磁碟呈現給虛擬機器內的作業系統。您可以編輯 VM 配置並為此設備新增一個條目,或者您可以在 VM 中配置此特定目標 vmdk,並且可以在 VM 關閉時執行上述發現步驟。如果你想要一個更動態的機制,最好的方法就是使用VMware 磁碟安裝實用程式- 這允許您直接從來賓作業系統安裝 RDM(或任何其他 VMDK),而不必弄亂 VM 配置。

如果您使用遠端 CLI 進行重新掃描和 vmkfstools 部分,則可能必須在命令中指定目標主機和驗證憑證。

相同的方法可用於標準 VMDK 文件,但您需要先將 LUN 格式化為 VMFS,然後在其上建立合適的 VMDK。就我從你的描述來看,這樣做對你沒有任何好處。

相關內容