有没有办法阻止直接存储空间自动添加磁盘?

在承载使用存储空间直接(S2D)的SQL故障转移群集实例(FCI)的2016年Windows Server故障转移群集(WSFC)上遇到问题。 在每台服务器上,成功初始创build后,S2D会自动将一个未使用的RAID卷添加到存储池(尽pipe无法在RAID卷上创buildS2D,并且坚持使用未configuration的磁盘)。 现在它已经坏了,因为 – 据我所知,正是如此。 因此,虚拟磁盘处于脱机状态,整个集群都随之closures。 由于缺less集群networking资源,它将不会恢复在线状态。 有问题的磁盘可以停用但不能删除。 虚拟磁盘修复不运行,集群兼容性testing声明无效configuration。

这是一个新的设置。 所以我可以简单地删除虚拟磁盘,集群甚至服务器,然后重新开始。 但是,在我们开始生产之前,我需要确保,这不会再发生。 系统在虚拟膝盖上投掷自己以致崩溃,只是不必要的和错误地添加不支持的磁盘,这是我们无法部署的平台。 所以主要我需要一种方法来防止这种情况发生,而不是现在修复它。 我的猜测是,防止S2D设置抓取比创build更多的磁盘会做的伎俩。 在真正的磁盘更换期间,潜在的更多人工交互的成本对于我们在这里的clusterf是微不足道的。 就像我浏览文档到目前为止,但是,我找不到任何方法来控制。 除非我错过了一些东西,否则Set-StoragePool,Set-VirtualDisk和Set-Volume都不会提供任何扩展的参数。

任何帮助或暗示将不胜感激。

以下是关于上述的更多细节:我们有2个HPE DL380 Gen9服务器机器通过RDMA 10GB以太网和1GB的客户机networking互相双向连接。 每个function的RAID控制器HP? 和一个简单的HBA控制器HP? (因为S2D绝对需要并且只能在直接连接的未经备份的磁盘上运行)。 存储configuration包括RAID控制器上的OS-RAID,RAID控制器上的Files-RAID和HBA上用于S2D的一组直接连接的磁盘。

我在OS-RAID上安装了2个Windows Servers 2016数据中心版本,安装了WSFCfunction,运行并通过了包括S2D选项的集群兼容性testing,创build了没有存储的集群,在另一台机器上添加了文件共享见证,启用了S2D在自动由所有未经备份的磁盘组成的存储池上,并在该池之上创build了一个镜像types的虚拟磁盘,并使用NTFS作为文件系统,因为这应该是SQL FCI的首选FS安装。

然后,我在该群集上安装了SQL 2016标准版作为FCI,导入了一个数据库并进行了全部testing。 一切都很好。 数据库是在那里,比以往更快。 强制以及自动故障转移是一件轻而易举的事情。 一切看起来不错。

第二天,我们试图利用剩余的文件-RAID。 首先是改变RAID级别,因为我们不喜欢预configuration。 在删除预先configuration的RAID卷并build立一个新的(在每个服务器上)之后不久,我们检测到该集群已经closures。 从我目前所知道的情况来看,预先configuration的Files-RAID卷在此期间已经自动添加到池中,并且在我们刚刚删除它时,现在从池中丢失了。 当我检查时,我发现新的Files-RAID在创build时也已经显示为池的物理驱动器。 所以池现在在每个服务器上包含2个RAID卷,其中一个甚至不存在。 这些卷(而不是它们的磁盘)由Get-PhysicalDisk和HBA上的实际物理磁盘列出,不确定是否正常。 池本身仍处于联机状态,不会发出抱怨,但虚拟磁盘不会因缺less磁盘而被降级,而会完全脱机(因此整个群集也是如此)。

我能够退休这些物理磁盘(即那些实际上是RAID卷),他们现在被标记为退休。 但是他们仍然在池子里,我现在不能删除它们,试图这样做是失败的。 一个修复虚拟磁盘应该重build虚拟磁盘到剩余的磁盘上的适当的状态(我去了这个: https : //social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / storage-spaces-remove-physical-disk?forum = winserver8gen ),但是这个工作立刻就结束了,当然是成功了,没有任何效果。

尝试将虚拟磁盘切换回联机失败,指出networking集群资源不可用。 据我所知,这只能引用(可用)存储池,因为丢失的磁盘不是集群资源。 该池显示没有错误来解决。 运行群集兼容性testing声明一个不适合群集的configuration。

我找不到任何剩余的部分,再一寸一寸,整个事情看起来僵持不下。 有关如何防止正在运行的WSFC以这种方式进入自己的想法?

我没有遇到任何我觉得特别有启发性的错误信息,而且我不想通过发布所有这些信息来进一步炸毁页面。 如果有人想要具体的细节,请告诉我。

非常感谢你的时间,伙计!

卡斯滕

根据Raspberry先生的要求更新 在这里输入图像说明

是的,您可以禁用自动池化行为。 经验不是很好,但是它确实是可行的和支持的。 设置名称和示例cmdlet语法位于此公用文档的“设置”部分:

https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview

基本上,以pipe理员身份运行:

Get-StorageSubSystem集群* | Set-StorageHealthSetting -Name“System.Storage.PhysicalDisk.AutoPool.Enabled”-Value False

希望这可以帮助! – 宇宙(@cosmosdarwin),微软下午