萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 用PowerShell管理異構數據中心

用PowerShell管理異構數據中心

   不要反對其他虛擬化平台進入你的數據中心。企業往往需要更低的成本或者需要找到替代的解決方案,IT專業人員在管理異構虛擬環境時往往面臨挑戰。不要讓這一挑戰超出必要的限度。作為一名IT專業人士,應該關注統一的管理平台,減少學習曲線,始終保持對控制異構數據中心大量系統的靈活性。

  圖形管理工具是解決之道嗎?

  在了解了不同廠商虛擬化平台之間的差異後,你面臨的挑戰就是如何對這些平台進行管理。你不想在不滿足需求的工具上浪費時間以及投資成本。

  很多IT專業人員首先傾向於找到一款GUI工具來幫助他們管理整個異構數據中心。圖形工具有其優點:易於使用,包括了完成復雜任務的向導而且提供了圖形化展示功能。

  很多虛擬化平台廠商比如VMware和微軟,已經推出了GUI管理工具,為管理其他廠商的產品提供了幫助。這些工具提供了統一的界面,減少了混淆因素及培訓成本,第三方管理產品也提供了同樣的功能。盡管具有界面統一的優點,但使用GUI管理工具要考慮其存在的一些不足之處:

  ? 你只能執行廠商已經開發出來的GUI管理任務,在執行未開發出來的任務時存在困難。

  ? 當一家廠商試圖通過圖形界面管理其他廠商的產品時,會遇到跨平台管理問題而且存在數不清的限制。

  ? 圖形管理工具通常無法提供眾多自動化功能,任務必須重復執行多次。

  ? 當需要使用時,在客戶端上安裝GUI工具並非總是很輕松。

  對特定圖形管理工具的優缺點進行權衡需要花一些時間而且要進行測試。對於圖形化工具來說往往是這樣。然而,作為一名需要在多種平台下工作並需要實現自動化的IT專業人員,我並不希望在限制我才能的工具上浪費時間。

  存在功能以及靈活性最強大的選擇

  我關注於使用PowerShell而不是浪費時間來研究圖形管理工具。在你開始對我表示憤怒之前,讓我通過一個例子來列舉PowerShell的一些優點與不足。

  PowerShell可以跨多個虛擬化平台。cmdlets適用於大多數流行的虛擬化平台,包括VMware(PowerCLI)、微軟(SCVMM和Hyper-V)以及Citrix(XenDesktop)。針對企業需要處理所有問題PowerShell都提供了足夠的靈活性。告別了使用GUI工具時所存在的限制,而且你還可以使用自動化來消除在使用圖形工具時經常要執行的重復性任務。自動化同樣排除了人為錯誤的可能性。

  當然,使用shell和腳本語言比如PowerShell時同樣存在缺點。你可以請教任意一名有經驗的Unix管理員,學習並使用工具可能會存在困難,而且可能要投入大量的精力。目前有一些很不錯的資源可以利用——包括圖書、視頻以及培訓班——但是你需要坐下來練習而不僅僅是搜集信息。

  使用PowerShell需要做一些研究。使用一些簡單的命令並不能解決所有問題。很多時候,你需要研究問題,然後編寫腳本解決。有時可能要在MSDN網站泡上幾個小時,還需要學習開發技能。你不需要成為一名全能的開發人員,但是卻需要學習腳本以及編程技能。

  一旦了解了哪種管理工具更適合你所在組織以及虛擬環境後,很多IT專業人員會選擇PowerShell來管理異構的數據中心。

  開始跨平台管理

  下面這些例子通過在PowerShell命令提示符下輸入了一些命令,描述了PowerShell能夠提供的部分功能。

  首先,通過加載多個模塊而非提供額外的cmdlets,PowerShell提供了靈活的以及可擴展的管理功能。如果廠商已經創建了相應的模塊而且你已經在本地計算機上安裝了這些工具,那麼就可以加載並使用這些模塊來管理異構的數據中心了。下面這個例子說明了如何加載用於管理VMware的cmdlets:

  PS> Add-PSSnapin VMware*

  你可以加載多個模塊並針對多個產品創建自動化的管理腳本。在下面這個例子中,我加載了VMware和微軟SCVMM cmdlets。請注意:多個廠商使用同樣的cmdlet名時可能會存在沖突。如果cmdlets屬於一個模塊,那麼Import-Module cmdlet提供了一個參數 -prefix,通過在cmdlet之前增加前綴可以避免沖突:

  PS> Add-PSSnapin VMware*

  PS> Import-Module –Name VirtualMachineManager -Prefix MS

  通常我不想在我的電腦上安裝管理工具。PowerShell有一個PowerShell Remoting功能,通過該功能你可以借用服務器上已經安裝的cmdlets。出現在你計算機上的cmdlets就像安裝在本地計算機上一樣,更准確地說是遠程服務器上安裝的cmdlets的一個快捷方式。下面這個例子調用了適用於VMware、Citrix以及SCVMM的遠程cmdlets。然而在你做實驗時,會發現並非所有廠商都為此做了規劃,而且可能會發現某些cmdlets無法使用。

  #VMware

  $VWsession = New-PSSession -ComputerName "NameOfVMWareServer"

  Invoke-Command -Session $VWsession -ScriptBlock {Add-PSSnapin VMware*}

  Import-PSSession -Session $VWsession -Module VMware* -Prefix VW

  #Citrix

  $CXSession = New-PSSession -ComputerName "NameOfCitrixZenDesktopServer"

  Invoke-Command -Session $CXSession -ScriptBlock {Add-PSSnapin Citrix*}

  Import-PSSession -Session $CXSession -Module Citrix* -Prefix CX

  #MS SCVMM

  $MSsession = New-PSSession -ComputerName "NameOfSCVMMServer"

  Invoke-Command –Session $MSSession -ScriptBlock {Import-Module –Name VirtualMachineManager}

  Import-PSSession -Session $MSsession -Module VirtualMachineManager -Prefix MS

  如果你已經開始使用PowerShell,我希望本文能夠在多虛擬化平台管理方面給你提供一些思路。如果你還沒有使用PowerShell,是時候考慮這款實現了靈活性以及自動化程度最大化的工具了。

copyright © 萬盛學電腦網 all rights reserved