如果你管理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。