如何使用PowerShell获取Win2012R2故障转移集群卷信息?
解决Win2012R2故障转移集群FC SAN卷的PowerShell信息获取问题
我明白你遇到的困扰——明明集群里有FC映射的SAN卷,但常用的集群命令都拿不到数据。咱们一步步排查解决:
先确认基础前提
首先要确保两个关键:
- 你是在集群节点上以管理员身份运行PowerShell
- 集群本身状态正常,执行这条命令验证:
Get-ClusterNode
如果能返回集群节点列表,说明集群连接没问题。
第一步:先确认操作系统层面能识别FC磁盘
有时候集群命令没返回,是因为磁盘在操作系统层面都没被正确识别。先检查FC磁盘是否存在:
Get-Disk | Where-Object { $_.BusType -eq "Fibre Channel" }
如果这里能看到你的SAN磁盘,说明硬件映射没问题;如果看不到,先排查FC链路、SAN zoning配置。
第二步:获取集群内的物理磁盘资源
你提到Get-ClusterDisk没返回,可能是这些卷属于**非CSV(集群共享卷)**的角色绑定磁盘,试试筛选集群里的物理磁盘资源:
Get-ClusterResource | Where-Object { $_.ResourceType -match "Physical Disk" }
这个命令会列出所有被集群管理的物理磁盘资源,包括那些挂载到特定集群角色(比如文件服务器)的卷。
第三步:关联磁盘资源与卷的详细信息
如果需要拿到盘符、卷标、容量这些更具体的信息,可以把集群资源和系统卷信息关联起来:
# 先获取集群物理磁盘资源 $clusterDiskResources = Get-ClusterResource | Where-Object { $_.ResourceType -eq "Physical Disk" } # 遍历关联卷信息 foreach ($diskRes in $clusterDiskResources) { $diskGuid = $diskRes.PrivateProperties.DiskIdGuid $volumeInfo = Get-Volume | Where-Object { $_.UniqueId -eq $diskGuid } [PSCustomObject]@{ 集群资源名称 = $diskRes.Name 磁盘GUID = $diskGuid 盘符 = $volumeInfo.DriveLetter 卷标 = $volumeInfo.FileSystemLabel 总容量 = $volumeInfo.Size 剩余容量 = $volumeInfo.SizeRemaining } }
特殊情况处理:磁盘未加入集群
如果上面的命令都没结果,大概率是这些FC磁盘还没被添加到集群管理中。先初始化磁盘(注意:这会清除磁盘数据,只在新磁盘上执行!):
# 扫描并初始化FC磁盘 Update-StorageProviderCache Get-Disk | Where-Object { $_.OperationalStatus -eq "Online" -and $_.PartitionStyle -eq "RAW" } | Initialize-Disk -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false # 将磁盘添加到集群 Add-ClusterDisk
执行完后再用Get-ClusterDisk就能看到这些磁盘了。
检查磁盘状态
如果磁盘已经在集群里但没返回,可能是处于离线/维护状态,先查看状态:
Get-ClusterResource | Where-Object { $_.ResourceType -eq "Physical Disk" } | Select-Object Name, State
如果状态是Offline,可以尝试启动资源:
Start-ClusterResource "你的磁盘资源名称"
内容的提问来源于stack exchange,提问作者Root Loop
相关产品推荐
相关产品推荐

