Kar*_*ick 9 failovercluster storage-spaces windows-server-2016
在托管使用存储空间直通 (S2D) 的 SQL 故障转移群集实例 (FCI) 的 2016 年 Windows Server 故障转移群集 (WSFC) 上遇到问题。在每台服务器上,初始创建成功后,S2D 会自动将一个其他未使用的 RAID 卷添加到存储池中(尽管 S2D 无法在 RAID 卷上创建,并且绝对坚持未突袭的磁盘)。现在它坏了,因为——据我所知——正是这样。结果,虚拟磁盘处于脱机状态,整个集群也随之宕机。由于缺少集群网络资源,它不会重新联机。有问题的磁盘可以报废,但不能删除。虚拟磁盘修复未运行,群集兼容性测试声称配置无效。
这是一个新的设置。所以我可以简单地删除虚拟磁盘、集群甚至服务器,然后重新开始。但在我们提高生产力之前,我需要确保这种情况不会再发生。仅仅通过不必要和错误地添加不受支持的磁盘而使系统在虚拟膝盖中自行崩溃的系统不是我们可以部署的平台。所以主要我需要一种方法来防止这种情况发生,而不是现在就修复它。我的猜测是,防止 S2D 设置获取比创建时更多的磁盘会成功。在真正的磁盘更换过程中可能需要更多手动交互的成本对于集群来说可以忽略不计......我们在这里。到目前为止,尽管我浏览了文档,但我找不到任何方法来控制它。除非我遗漏了什么,否则 Set-StoragePool,
任何帮助或提示将不胜感激。
以下是有关上述内容的更多详细信息: 我们有 2 台 HPE DL380 Gen9 服务器机器,它们通过支持 RDMA 的 10GB 以太网相互连接,并通过 1GB 连接到客户端网络。每个功能一个 RAID 控制器 HP ??? 和一个简单的 HBA 控制器 HP ??? (因为 S2D 绝对需要并且仅适用于直接连接的、未受攻击的磁盘)。存储配置包括 RAID 控制器上的 OS-RAID、RAID 控制器上的 Files-RAID 以及 HBA 上用于 S2D 的一组直接连接的磁盘。
我在 OS-RAID 上设置了 2 个 Windows Servers 2016 数据中心版本,安装了 WSFC 功能,运行并通过了包括 S2D 选项的集群兼容性测试,创建了没有存储的集群,添加了文件共享见证(在单独的机器上),启用了 S2D在存储池上,它自动包含所有未突袭的磁盘,并在该池的顶部创建了一个镜像类型的虚拟磁盘并使用 NTFS 作为文件系统,因为这应该是 SQL FCI 的首选文件系统安装。
然后,我在该集群上安装了 SQL 2016 标准版作为 FCI,导入了一个数据库并对其进行了全部测试。一切都很好。数据库就在那里,而且比以往任何时候都快。强制和自动故障转移是轻而易举的。一切看起来都很好。
第二天,我们尝试利用剩余的 Files-RAID。首先是更改 RAID 级别,因为我们不喜欢预配置。在删除预配置的 RAID 卷并构建新的 RAID 卷(在每台服务器上)后不久,我们检测到集群已关闭。据我目前所知,预配置的 Files-RAID 卷同时已自动添加到池中,当我们刚刚删除它时,它现在从池中丢失了。当我检查时,我发现新的 Files-RAID 在仍在创建时,也已显示为池的物理驱动器。因此,该池现在在每台服务器上包含 2 个 RAID 卷,其中一个甚至不存在。这些卷(但不是它们的磁盘)由 Get-PhysicalDisk 与 HBA 上的实际物理磁盘一起列出,不确定这是否正常。
我能够报废那些物理磁盘(即那些实际上是 RAID 卷的磁盘),现在它们被标记为已报废。但是它们仍然在池中,我现在无法删除它们,尝试这样做失败了。Repair-VirtualDisk 应该将虚拟磁盘重建为仅在剩余磁盘上的正确状态(我这样做了:https : //social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2/storage-spaces-remove-physical-disk?forum=winserver8gen),但这项工作立即结束,当然“成功”,没有任何影响。
尝试将虚拟磁盘切换回联机失败,说明联网群集资源不可用。据我了解,这只能指(可用)存储池,因为缺少的磁盘不是集群资源。池显示没有要修复的错误。运行集群兼容性测试声称配置不适合集群。
我找不到任何可以再移动一英寸的部分,整个事情看起来永远陷入僵局。关于如何防止正在运行的 WSFC 以这种方式自我修复的任何想法?
我没有遇到任何我认为特别有启发性的错误消息,而且我不想通过发布所有这些消息来进一步轰炸页面。如果有人想知道任何具体细节,请告诉我。
非常感谢您的时间,伙计们!
卡斯滕
小智 6
是的,您可以禁用自动池行为。体验不是很好,但它肯定是可行和支持的。设置名称和示例 cmdlet 语法位于此公共文档的“设置”部分:
https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview
本质上,以管理员身份运行:
Get-StorageSubSystem 集群* | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoPool.Enabled" -Value False
希望这可以帮助!- Cosmos (@cosmosdarwin),微软产品经理
归档时间: |
|
查看次数: |
6667 次 |
最近记录: |