# 1. 检查系统版本
Get-ComputerInfo -Property WindowsProductName, WindowsVersion
# 2. 检查网络配置
Get-NetIPConfiguration
# 3. 验证服务器时间同步
w32tm /query /status
# 安装故障转移集群功能
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
# 安装后验证
Get-WindowsFeature -Name Failover* | Where-Object Installed
# 查看当前网卡
Get-NetAdapter
# 重命名网卡(示例)
Rename-NetAdapter -Name "Ethernet" -NewName "Public"
Rename-NetAdapter -Name "Ethernet 2" -NewName "Cluster"
# 配置专用网络(集群通信)
New-NetIPAddress -InterfaceAlias "Cluster" `
-IPAddress "10.0.0.1" `
-PrefixLength 24 `
-DefaultGateway $null
# 配置公共网络
New-NetIPAddress -InterfaceAlias "Public" `
-IPAddress "192.168.1.101" `
-PrefixLength 24 `
-DefaultGateway "192.168.1.1"
# 1. 连接到 iSCSI 目标
New-iSCSITargetPortal -TargetPortalAddress "192.168.1.200"
Connect-iSCSITarget -NodeAddress "iqn.1991-05.com.microsoft:target"
# 2. 初始化和格式化磁盘
Get-Disk | Where-Object PartitionStyle -eq "RAW" |
Initialize-Disk -PartitionStyle GPT -PassThru |
New-Partition -AssignDriveLetter -UseMaximumSize |
Format-Volume -FileSystem NTFS -NewFileSystemLabel "ClusterDisk1"
# 1. 启用 S2D
Enable-ClusterS2D
# 2. 创建存储池和虚拟磁盘
New-StoragePool -StorageSubsystemName "S2D*" `
-FriendlyName "S2DPool" `
-PhysicalDisks (Get-PhysicalDisk -CanPool $true)
New-VirtualDisk -StoragePoolFriendlyName "S2DPool" `
-FriendlyName "ClusterDisk1" `
-ResiliencySettingName "Mirror" `
-Size 100GB
# 运行集群验证测试
Test-Cluster -Node "Server01", "Server02" -Include "Inventory", "Network", "Storage", "System Configuration"
# 查看验证报告
Get-ClusterValidationReport
# 创建新集群
New-Cluster -Name "CLUSTER01" -Node "Server01", "Server02" `
-StaticAddress "192.168.1.250" `
-NoStorage
# 或使用 GUI
# 打开"故障转移集群管理器" -> 创建集群
# 使用文件共享见证
Set-ClusterQuorum -NodeAndFileShareMajority "\\FileServer\ClusterWitness"
# 或使用云见证(Azure)
Set-ClusterQuorum -CloudWitness -AccountName "AzureStorageAccount" `
-AccessKey "AccessKey" `
-Endpoint "core.windows.net"
# 查看可用磁盘
Get-ClusterAvailableDisk
# 添加磁盘到集群
Get-ClusterAvailableDisk | Add-ClusterDisk
# 重命名集群磁盘
Get-ClusterResource -Name "Cluster Disk 1" | Rename-ClusterResource -Name "DataDisk1"
# 创建文件服务器角色
Add-ClusterFileServerRole -Storage "DataDisk1" -Name "FileServer01" `
-StaticAddress "192.168.1.251"
# 创建通用服务或应用程序角色
Add-ClusterGenericApplicationRole -Name "AppService01" `
-Storage "DataDisk1" `
-StaticAddress "192.168.1.252" `
-ApplicationName "MyApplication.exe"
# 1. 配置网络优先级
(Get-ClusterNetwork "Cluster Network").Metric = 1000
# 2. 启用网络压缩和加密
Set-ClusterNetwork -Name "Cluster Network" `
-CompressionEnabled $true `
-EncryptionEnabled $true
# 3. 配置网络绑定顺序
Set-NetAdapterBinding -InterfaceAlias "Cluster" -ComponentID "ms_tcpip" -Enabled $true
# 查看集群基本信息
Get-Cluster
# 查看所有节点状态
Get-ClusterNode
# 查看所有资源状态
Get-ClusterResource
# 查看集群网络
Get-ClusterNetwork
# 查看事件日志
Get-WinEvent -LogName "Microsoft-Windows-FailoverClustering/Operational" -MaxEvents 10
# 手动移动角色到另一个节点
Move-ClusterGroup -Name "FileServer01" -Node "Server02"
# 模拟节点故障
Stop-ClusterNode -Name "Server01" -Force
# 查看故障转移历史
Get-ClusterLog -TimeSpan 10
# 设置反亲和性规则(防止两个角色在同一节点)
Get-ClusterGroup "Role1" |
New-ClusterAffinityRule -RuleName "AntiAffinity_Role1_Role2" -AntiAffinity
Get-ClusterGroup "Role2" |
Add-ClusterAffinityRule -RuleName "AntiAffinity_Role1_Role2"
# 设置故障转移优先级
(Get-ClusterGroup "CriticalApp").FailoverThreshold = 1
(Get-ClusterGroup "NonCriticalApp").FailoverThreshold = 3
# 为集群名称注册 DNS
Add-DnsServerResourceRecordA -Name "CLUSTER01" `
-ZoneName "domain.local" `
-IPv4Address "192.168.1.250" `
-CreatePtr
# 检查依赖服务
Get-Service -Name ClusSvc
# 重新启动集群服务
Restart-Service ClusSvc -Force
# 重置集群配置(谨慎使用)
Clear-ClusterNode -Force
# 检查磁盘路径
Get-ClusterSharedVolume
# 重新扫描存储
Update-HostStorageCache
# 修复集群磁盘
Repair-ClusterSharedVolume -Name "Cluster Disk 1"
# 测试节点间连接
Test-Cluster -Node "Server01", "Server02" -Include "Network"
# 检查防火墙规则
Get-NetFirewallRule -Name "*Cluster*"
# 启用必要的防火墙规则
Enable-NetFirewallRule -Name "FPS-SMB-In-TCP"
Export-ClusterDefinition -Path "C:\Backup\ClusterConfig.xml"
监控告警:配置性能监控和告警
测试计划:定期进行故障转移测试
文档更新:保持集群配置文档最新
注意:在生产环境部署前,务必在测试环境中验证所有配置。建议使用至少三节点配置以获得最佳可用性。