问题标签 [windows-clustering]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 用于检索故障转移群集磁盘大小/可用空间的 Powershell 命令?
我正在使用 Powershell 并尝试检索物理磁盘资源的大小和可用空间。
我希望此代码在一个 Windows Server 2008 R2 机器(监控服务器)上运行,并在同一域上的三个远程集群上轮询资源。其中 2 个集群也运行 Windows Server 2008 R2,但一个运行的是 Windows Server 2012 (x64)。返回的数据将作为监控应用程序的一部分插入数据库。
目前我使用的代码是:
“Get-ClusterResource | fc *”返回的数据不包括物理磁盘大小或可用空间,我不知道如何得出这些信息。返回的信息对所有集群资源都是通用的 - 可以在此处查看示例(示例 2)。下面的示例 3 几乎很有帮助,但不包括磁盘大小或可用空间。
我已经检查了这个问题,但答案使用了 WMI 查询,当我尝试这个时,我遇到了各种安全和兼容性问题。如果可能的话,我更愿意坚持直接使用 PowerShell,尤其是因为监控应用程序也使用纯 PowerShell 来检查 Exchange 邮箱大小和 DFS 复制积压。
请注意,我不是在尝试查询集群共享卷——它们有自己的、独立的 PowerShell 函数,我没有问题。它专门用于物理磁盘资源,我无法让它工作。
我知道物理磁盘是许多资源类型之一,因此通用 Get-ClusterResource 命令不会返回任何特定于磁盘的内容,但我希望我可以调用另一个函数,传入 Get-ClusterResource 的返回值来检索磁盘空间/可用空间
任何帮助将不胜感激,谢谢
山姆
Ansgar Wiechers 的更新
你的目标是什么?如前所述,创建一系列“数据收集器”powershell 脚本,从需要监控的多个系统收集数据,并将这些数据注入数据库,以提供警报、保留历史记录并普遍增强我们的监控能力。我们目前的监控工具套件涵盖了我们需要的 90%,但只是遗漏了一些小东西,我希望使用这种方法来纠正
为什么需要物理磁盘参数而不是 CSV 参数?因为 CSV 不是集群中唯一使用的磁盘类型。例如,我们有一个 2 个服务器、7 个实例、31 个卷的 SQL 集群。必须监视所有卷上的可用磁盘空间,原因我认为是显而易见的。此监控目前是手动完成的,缺乏历史保留
哪些物理磁盘?无论我指定哪个。一个理想的解决方案将能够监控任何正在使用(即不是“可用”)的集群磁盘资源。我不打算监控“无用”磁盘,例如我们 SQL 集群上的 DTC 卷或 Quorum 卷,但如果我选择监控这些,我没有理由不能监控
以及为什么要通过集群获取这些信息,而不是监视集群成员的物理磁盘信息 虽然可以通过 SNMP MIB 获取其中一些信息,但获取、解释和翻译这些信息要困难得多。我可以对此进行详细介绍,但这会分散问题的注意力,只要说 Powershell 是我的首选方法就足够了
powershell - 如何从 PowerShell get-clusterresource cmdlet 获取驱动器号,例如“c:”、“d:”等?
假设我有一些集群磁盘,我可以从 cmdlet get-clusterresource 中取出它们。
我怎样才能得到相应的驱动器号?这些磁盘可能不在同一个节点上。
我尝试使用 get-clusterparameter cmdlet,但它不包含此信息。
谢谢。
wmi - 奇怪的性能数据实例 Volume1#1 - 这是什么意思?
当我通过 WMI 监视 Hyper-V 集群时,WMI 性能提供程序为名为“Volume1#1”的集群共享卷实例提供了一个额外的性能数据。原始实例“Volume1”不再使用最新数据进行更新。
这些重复的实例是什么意思?可以有更多,如果有,我如何确定哪一个包含最近的数据?
sql-server - 移除 SQL 集群节点
我正在尝试从 Server 2012 R2 机器中删除 SQL 2012 群集节点。然而,windows 和 cluster 本身已经被破坏了,所以当试图删除节点时,设置在验证时出错,因为......
“本地计算机不是 Windows 故障转移群集的成员”
和
“SQL Server 故障转移群集服务未联机,或者无法从其中一个节点访问群集。要继续确定群集未联机的原因并重新运行安装程序。不要重新运行规则,因为该规则无法检测到群集环境” .
有谁知道如何强制删除 SQL 集群节点?
hadoop - 在异构环境中设置 2 节点 Hadoop 集群,即一台 64 位机器和另一台 32 位机器?
为了我的学习,我计划创建一个 2 节点 Cloudera Hadoop 集群。我有一台 32 位 Windows XP 机器,现在我买了一台 64 位 Windows 8 机器(因为现在所有机器大多都是 64 位的)。
所以我有两个选择:
- 在 64 位机器(即 i5 处理器和 8 GB RAM)中创建虚拟集群。但是,我不确定它是否会挂起(我不是在尝试处理数百万条记录。我的座右铭是简单地处理几个文件并检查 Hadoop 功能,同时从 Oracle 转储一些数据并进行操作)。
- 我可以在 64 位和 32 位机器之间创建一个物理 Hadoop 集群。但我的问题是,它是否可行(我可以在两台机器之间创建 Hadoop 集群:一台 32 位,另一台 64 位)?如果有,流程是什么?我对网络没有太多想法。
我还有一个基本问题,运行 2 节点虚拟集群的基本 RAM 和处理器配置应该是什么,操作简单,例如加载少量数据和检查功能?
sql-server-2008-r2 - 从虚拟机访问 SAN 磁盘/LUN。可能吗?
资源:
概要/目标: 我的网络上有两个节点/服务器。这两个节点(node1 和 node2)是用于托管我的所有虚拟机的集群(cluster1)的一部分。涉及的 SAN (san1) 在其上创建了许多 LUN,其中一个 (lun1) 将用于存储专用于虚拟机 (virtual1) 的所有数据。最终创建了 lun1,命名为“storage”,并严格用于虚拟机“virtual1”来存储和访问数据。
我目前拥有的:
问题: 是否可以让 lun1(驱动器 z)由 virtual1 启动和访问?
我试过的: 我在 node1 的磁盘管理中显示了 lun1 aka driveZ。然后我将它作为资源添加到集群存储区。我试图做两件不同的事情。(1) 在我意识到只有集群成员可以看到/访问它而不是虚拟机之后不久,我尝试将其添加为集群共享卷,即使它们是作为集群中的服务创建的。(2) 我试图将资源(driveZ) 移动到cluster1 中的虚拟机(virtual1)。之后,我进入虚拟机设置并将驱动器添加为 SCSI 驱动器(使用 lun1 @ 100GB)并刷新虚拟机上的磁盘管理(virtual1)。驱动器出现并允许我分配一个驱动器号,然后问我是否要格式化它......那我所有的数据呢?那是半身像吗?无论如何,这就是我的地方
想法: 我很清楚,所有这些都是为了测试atm......生产中资源的实际大小差异很大。我正在考虑将 driveZ (lun1) 添加为集群共享卷,然后添加一个新的 Hyper-V 虚拟 SCSI 驱动器(比如 50G,以便稍后我可以尝试扩展到 100G,即物理/SAN 驱动器的完整大小)到我的虚拟机。将固定的 VHD(虚拟硬盘)存储在集群共享卷“driveZ”中。我现在正在对其进行测试...但我有顾虑... 1) 当我尝试创建一个非常大的 VHD(大约 7TB)时会发生什么?2) 可以以任何方式扩展固定磁盘VHD吗?我计划将来使我的新 SAN 虚拟磁盘大于 7TB……目前它会保持在 7TB,但在某个时候会扩大……
c# - 从 C# 托管 Powershell,权限问题,模拟为域用户
我知道这有点基本,但如果有人能让我明白这一点,我将永远感激不尽。
- 我有一堆运行 Hyper-V 的 Windows 2012 R2 服务器。
- XML-RPC Web 服务在这些服务器上运行。这背后有一些托管的 Powershell。它完美地工作。
- 托管的 Powershell 代码通过模拟运行。再次,效果很好。
- 即使这些机器一直在一个域中,XML-RPC 身份验证的工作方式如下:
我在域中使用了句点(“.”)。我使用了用户名“管理员”。我为每个“本地”管理员帐户使用了不同的密码。
我最近在我的应用程序中添加了集群功能,这只是 Microsoft 的 Powershell cmdlet 的一些包装器的形式,加上我自己的东西。如果我正确阅读了 dcos,则只能使用域凭据管理集群。我希望我的 Web 服务在一组凭据下运行(以简化调用应用程序需要存储的详细信息)。
我以为我会像这样调整身份验证模型:
- 每个 Hyper-V 主机都有一个域用户。
- 确保此用户是本地管理员和 hyper-v 管理员组的成员。
- 将这些用户添加到“集群 hyper-v 主机”组,通过集群管理工具为该组授予“集群权限”。
我的问题:
- 当运行经过调整的模型时,我的代码已经爆炸并且不再工作,出现很多身份验证错误,我可以坐下来查看注册表中的内容并被拒绝。
- 如果我随机选择一个主机,使用这个新域用户(需要明确的是本地管理员组的成员)登录它并在没有 xml-rpc 包装器的情况下运行我的代码,我看到很多身份验证错误. 就好像该用户没有使用管理凭据运行,即使它具有这些权限。
- 这些用户似乎也具有受限的集群权限,即使他们应该具有完全访问权限。
- 如果我运行“test-cluster”命令,它会告诉我我在运行它的主机上没有权限。
我愿意承认我有一个损坏的目录,或者这里有真正的访问问题,但也许我对它应该如何工作存在固有的误解。我是一名 Linux 工程师和程序员,我对 Windows 有点了解。当我没有以真正的管理员帐户登录时,我对 UAC 在此上下文中的工作方式感到有些困惑,在域环境中...如果我右键单击 Powershell 窗口并以管理员身份运行,我的代码全部似乎工作,即使是集群的东西(我被引导相信,通过文档,不应该作为本地管理员运行)。
我在这里遇到某种海拔问题吗?如果域用户具有“有效权限”(希望该术语不会混淆事物)来做一些事情,它是否仍然需要以某种方式提升?
非常感谢。
powershell - PowerShell 'get-ClusterQuorum' 输出未显示 'QuorumType' 列
PowerShell cmdlet 'get-ClusterQuorum' 输出未显示“QuorumType”列。有人见过这个吗?谢谢
job-scheduling - 在所有可用内核上运行任务 - Windows HPC Pack 2008 R2 SP4
我正在使用 Windows HPC Pack 2008 R2 SP4 来运行 MPI 应用程序。我在让 Job Scheduler 在所有可用内核上运行应用程序时遇到问题。这是我的代码...
像上面那样运行,我在集群中的两个计算节点上的 16 个可用核心中分配了 1 个(微不足道的)核心。我能得到的最好的方法是取消注释该行newJob.IsExclusive = true;
,然后将所有核心分配给我一个计算节点(8 个核心)。
如果我从命令行运行,我可以使用mpiexec
开关/np *
来使用所有可用的内核,但这似乎被 Job Scheduler 覆盖。
如何在代码中获得相同的效果,如何在不明确声明任务的最小和最大内核数的情况下在所有可用内核上运行?
performance - 通过集群访问性能计数器
我试图找到如何在集群上进行性能监控,但在搜索时似乎找不到任何东西,除了如何访问集群的性能计数器。
情况是这样的:到目前为止,我们已经在单个服务器上设置了 MSMQ,并且我们访问了队列计数(出于健康检查的目的),如下所示:
但是,当我尝试通过 MSMQ 群集的客户端访问点名称(代替 MachineName)执行相同操作时,我得到System.Management.ManagementException: Invalid Class
,据我所知,这表明性能计数器不可用。这是有道理的,因为我们没有做任何特别的事情来使它们在集群上可用,因为我们不知道如何。
因此,任何方向都将不胜感激。几个星期以来,我一直在为此头疼。
编辑:好的,我们已经讨论了更多,如果我们直接进入集群,表/类就存在,但表中没有任何行。
确实找到了NetNameForPerfCounters注册表项,但它看起来不适合我们的情况,因为我们只有一个 MSMQ 实例在活动节点上运行,并且所有涉及的服务器都是 Windows Server 2008(我认为是 R2)。
我愿意将它们放入 NetNameForPerfCounters reg 键中,但我找不到资源来告诉我它的去向。它是否进入客户端访问点的注册表(因为您可以将 regedit 连接到客户端访问点)?它在集群上吗?在个别机器上?在客户端机器上?(猜想我们可以把它放在任何地方只是为了测试它。)
EDIT2:我们尝试了 NetNameForPerfCounters,但它不起作用。我们实际上已经在 Microsoft 有一个团队复制了我们的问题,所以我们已经打开了一个首要的支持案例,它应该作为一个 bug 提交给产品团队。当我收到回复时将发布结果。