Windows-Server-2016

有什麼方法可以防止 Storage Spaces Direct 自動添加磁碟?

  • March 4, 2019

在託管使用儲存空間直通 (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 的首選 FS安裝。

然後,我在該集群上安裝了 SQL 2016 標準版作為 FCI,導入了一個數據庫並對其進行了全部測試。一切都很好。數據庫就在那裡,而且比以往任何時候都快。強制和自動故障轉移輕而易舉。一切看起來都很好。

第二天,我們嘗試使用剩餘的 Files-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 以這種方式自行執行的任何想法?

我沒有遇到任何我覺得特別有啟發性的錯誤消息,我不想通過發布所有這些來進一步轟炸頁面。如果有人想知道任何具體細節,請告訴我。

非常感謝您的時間,伙計們!

卡斯滕

根據覆盆子先生的要求進行更新 在此處輸入圖像描述

是的,您可以禁用自動池行為。體驗不是很好,但它肯定是可行的和支持的。設置名稱和範例 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),微軟項目經理

引用自:https://serverfault.com/questions/850478