PowerShell cmdlets增強Win Server故障轉移群集管理
如果你管理Windows故障轉移群集,你會發現安裝Windows Server 2012故障轉移群集之后,Cluster.exe CLI 命令沒了。這些年,系統管理員們一直使用Cluster.exe腳本創建集群、轉移故障轉移組、修改資源屬性和解決集群宕機問題。是的,Cluster.exe命令仍在遠程服務器管理工具(RSAT)中。但不是默認安裝。
你可能會在Windows Server 2012中發現任務欄上的PowerShell和Server Manager圖標,但可能會疏忽Windows Server 2012操作系統默認安裝的是Server Core,包含2300多個PowerShell cmdlet。微軟明確表明了,就像其他任何數據中心服務器一樣,可以遠程或者使用腳本管理Windows服務器。在Windows中,意味著PowerShell。
幸運的是,Windows Server故障轉移群集對PowerShell來說不再陌生了。Windows Server 2008 R2 中就有69個群集相關的PowerShell cmdlet協助配置集群、組織和資源。本文探討Windows Server 2012故障轉移集群中的新PowerShell cmdlet。
Windows Server 2012中,總共有81個故障轉移群集cmdlet可以用來管理PowerShell組件。新的群集cmdlet可以執行群集資源注冊表檢查點(Add-ClusterCheckpoint)、監控虛擬機服務故障(Add-ClusterVMMonitoredItem)和配置兩個新角色:Scale-Out File Servers(Add-ClusterScaleOutFileServerRole)和iSCSI Target Server (Add-ClusteriSCSITargetServerRole)。
圖1. Windows PowerShell ISE幫助管理員熟悉故障轉移集群cmdlets
圖1中,使用PowerShell cmdlet“Get-command –module FailoverClusters”列出了所有的故障轉移群集cmdlets。我正在使用內置的Windows PowerShell腳本集成環境(ISE)編輯器,它可以幫助管理員們熟悉所有的故障轉移群集cmdlets。
除了故障轉移群集cmdlets之外,微軟還有一些新的PowerShell cmdlets模塊,包括ClusterAwareUpdating(17個新cmdlets)、ClusterAware ScheduledTasks(19個新cmdlets)和iSCSITarget(23個新cmdlets)。還有很多群集識別更新 cmdlets,比如Add-CauClusterRole(添加CAU角色)、Get-CauReport(獲得更新報告)以及Invoke-CauRun(調用執行掃描和安裝任何新的更新)
群集識別任務調度是Windows Server 2012的新功能,并且任務調度程序目前與故障轉移群集集成。一個調度任務可以以下面三種方式運行:
- ClusterWide on all cluster nodes
- AnyNode on a random node in the cluster
- ResourceSpecific on a node that owns a specific cluster resource
新的ScheduledTasks cmdlets創建一個群集識別調度任務。在表格中,你可以看到cmdlets可以注冊、獲取和設置集群預定任務屬性。
想要使用這些PowerShell cmdlets,首先你要指派一個動作和Trigger變量。這個動作變量指定執行程序,比如下面例子中的Windows計算器。Trigger變量在執行任務前設置。生成的cmdlets安排群集中的任務在每天14:00執行,就像下面這樣:
- PS C:\> $action = New-ScheduledTaskAction –Execute C:\Windows\System32\Calc.exe
- PS C:\> $trigger = New-ScheduledTaskTrigger -At 14:00 –Daily
- PS C:\> Register-ClusteredScheduledTask -Action $action -TaskName ClusterWideCalculator -Description "Runs Calculator cluster wide" -TaskType ClusterWide -Trigger $trigger
- TaskName TaskType
- -------- --------
- ClusterWideCa... ClusterWide
- PS C:\>
圖2. 在Task Scheduler中,管理員可以瀏覽所有的群集任務
但是,只有PowerShell能用來注冊、獲得/設置和注銷群集識別調度任務。你可以在Computer Management中使用Task Scheduler瀏覽群集任務(圖2)。
圖3.管理員以使用新的iSCSI Target cmdlets配置iSCSI LUNs
***,可以使用高可用的iSCSI Target Server配置故障轉移群集。使用Install-WindowsFeature –name FS-iSCSITarget-Server(或使用Server Manager)安裝iSCSI Target Server角色。然后使用新的cmdlet Add-ClusteriSCSITargetServerRole創建iSCSI Target資源并產生共享存儲。然后,你可以使用新的iSCSI Target cmdlets配置iSCSI LUNs(圖3)。
Windows Server 2012中的PowerShell cmdlets完全可以幫助你管理你的故障轉移群集。除了創建、配置和解決群集問題,你還可以使用PowerShell cmdlets添加新的擴展文件服務器、iSCSI Target Server角色、集群調度的任務和Cluster-Aware Updating。