通過VMware的PowerCLI配置集群內指定主機的vMotion功能


 

PowerCLIVMware開發的基於微軟(MSFT)的PowerShell的命令行管理vSphere的實現,因此在批量化操作方面CLI會減輕很多GUI環境下的繁瑣重復勞作。

 

現有場景中有大量的物理主機已經安裝好的ESXi,並且可以被vCenter所管理,由於默認情況下可供管理的那個Manage管理網卡是不開啟vMotion的,因此我們需要借用這個Manage管理網卡來開啟vMotion功能,從而實現集群內的HA功能。

 

說明:一般情況下,VMware建議,條件允許的情況下每個網卡的功能最好能獨立且分開,有專門跑iSCSI的網卡,有專門組建業務網絡的業務網卡,有專門用來節點管理的Manage網卡,有專門用來實現高可用HA和遷移vMotion的網卡。

 

通過官方文檔,我們很容易找到命令行開啟vMotion的方法(linkhttps://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/Set-VMHostNetworkAdapter.html ):

Get-VMHost Host | Get-VMHostNetworkAdapter -VMKernel | Set-VMHostNetworkAdapter -VMotionEnabled $true

該命令可以實現對Get-VMHost到的所有Host主機下的具有VMkernel的網卡進行vMotion的開啟

 

現有場景需要對特定的HOST進行操作,因此語句我們需要更改一下:

Connect-VIServer –Server 172.5.140.201

get-vmhost -name 172.5.140.160 | Get-VMHostNetworkAdapter -VMKernel | Set-VMHostNetworkAdapter -VMotionEnabled $true

該組合實現登陸一個vCenter服務器172.5.140.201 之后,對該管轄范圍內的172.5.140.160主機單獨進行vMotion的開啟

 

這個場景中有大量的新加入主機需要這般操作,因此我們需要准備一個包含這些主機IP文件列表我命名為“hosts.txt”文件,因此我們對語句進行了一些修改:

Connect-VIServer –Server 172.5.140.201

Get-Content hosts.txt | Foreach-Object {get-vmhost -name $_  | Get-VMHostNetworkAdapter -VMKernel | Set-VMHostNetworkAdapter -VMotionEnabled $true}

該組合實現登陸到vCenter之后,在這個hosts.txt內逐行尋找匹配項,通過PowerShellForeach-Object 進行自動填入“$_”關鍵信息,完成批量自動化開啟vMotion

 

clip_image001

Figure 1需要進一步確認的對話環節

 

這種輸出結果我們會有多次的確認,如vCenterSSL信息的警告內容顯示、VMKernel的多個確認,這里都需要按下更多次的回車才能完成。

因此我們想讓屏幕輸出更簡潔,對語句做了如下修改:

Connect-VIServer –Server 172.5.140.201 -WarningAction 0

Get-Content hosts.txt | Foreach-Object {get-vmhost -name $_  | Get-VMHostNetworkAdapter -VMKernel -name vmk0 | Set-VMHostNetworkAdapter -VMotionEnabled $true -Confirm:$false}

該組合實現了忽略SSL信息警告內容,只在vmk0上開啟vMotion,並且忽略確認 是的返回結果更加清爽

 

注意:這里需要注意一下,如果您的配置環境不是將vmk0上開啟vMotion的話,請使用Get-VMHostNetworkAdapter -VMKernel命令獲取當前所連接的vCenter內的所有ESXi主機上的VMKernel信息。

 

-=EOB=-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM