如何从c#.net 3.5确定故障转移群集中的活动节点

时间:2010-12-06 20:46:28

标签: c# cluster-computing nodes

我们需要一种方法来从代码中确定应用程序集群的哪个节点当前处于活动状态。有没有办法用C#做到这一点?

2 个答案:

答案 0 :(得分:0)

您将针对MSCluster_Resource类进行编码: “MSCluster_Resource类是一个动态WMI类,代表一个集群资源。”

可以在此处找到API文档: http://msdn.microsoft.com/en-us/library/aa371464(VS.85).aspx

您可以在此处找到有关答案的更多详细信息: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/60589403-dd9a-4196-8d95-154a4a931e19/

答案 1 :(得分:0)

这不是C#代码,而是PowerShell。因此,这不是一个答案,但是我需要一个PowerShell解决方案来获得一般的节点(不一定是活动节点),并且这个问题出现在我的Google搜索中。 IMO,PowerShell FailoverClusters模块的编写效果很差,因此我必须恢复(主要是)非PowerShell对象(如WMI)才能正确完成工作。

$Clusters=Get-ADComputer -Server "<specific domain controller (optional)" -LDAPFilter "(servicePrincipalName=*MSClusterVirtualServer/*)" -SearchBase "OU=Servers,DC=<domain name>,DC=com" | Select-Object -ExpandProperty DNSHostName
$ClusterNodes=$Clusters | ForEach-Object { Get-WMIObject -Namespace "root\MSCluster" -ComputerName $_ -Query "SELECT Name FROM MSCluster_Node" -EnableAllPrivileges } | Select-Object -ExpandProperty Name