Windows-Server-2012-R2

在 Windows Server 2012 R2 上添加驅動器後,儲存池上的鏡像虛擬磁槃無法擴展

  • March 13, 2017

我最近開始將幾個鏡像 RAID1 陣列轉換為一個大型儲存池。我有兩個 2TB 的磁碟和兩個 3TB 的磁碟,總共 10TB,鏡像後應該給我 5TB 的可用空間。

我用兩個 2TB 磁碟和兩個 3TB 磁碟之一啟動儲存池,使用最後一個 3TB 磁碟作為舊數據的備份以移動到新的池儲存。我在新池的頂部將虛擬磁碟設置為“鏡像”,並且可用空間略低於 3TB。

將備份從額外的 3TB 驅動器移動到新池後,我對其進行了清理,並將其添加到池中。但是,我現在無法擴展鏡像虛擬磁碟以利用增加的空間。

不幸的是,由於我的初學者聲譽,我無法發布圖片,但我的池顯示為 9.09TB 容量和 2.64TB 可用空間。嘗試擴展虛擬磁碟時,允許的最大大小為 3.22 TB,僅比我添加 3TB 驅動器之前多一點。物理磁碟顯示幾乎沒有新磁碟正在使用,而其餘磁碟已滿。

我在其他地方讀過,列數可以限制您擴展虛擬磁碟的方式,但我的列數設置為 1,這應該允許擴展到任意數量的磁碟。

這是我的虛擬磁碟的 powershell 輸出:

ObjectId                          : {1}\\SERVER\root/Microsoft/Windows/Storage/Providers_v2\SPACES_VirtualDisk.ObjectId
                                   ="{fdf741fe-cae8-11e4-80b4-806e6f6e6963}:VD:{d734cabd-cabf-11e4-80bf-000c41ebb9a3}{
                                   d734cad6-cabf-11e4-80bf-000c41ebb9a3}"
PassThroughClass                  :
PassThroughIds                    :
PassThroughNamespace              :
PassThroughServer                 :
UniqueId                          : D6CA34D7BFCAE41180BF000C41EBB9A3
Access                            : Read/Write
AllocatedSize                     : 3545495502848
DetachedReason                    : None
FootprintOnPool                   : 7090991005696
FriendlyName                      : McAfee Primary
HealthStatus                      : Healthy
Interleave                        : 262144
IsDeduplicationEnabled            : False
IsEnclosureAware                  : False
IsManualAttach                    : False
IsSnapshot                        : False
LogicalSectorSize                 : 4096
Name                              :
NameFormat                        :
NumberOfAvailableCopies           :
NumberOfColumns                   : 1
NumberOfDataCopies                : 2
OperationalStatus                 : OK
OtherOperationalStatusDescription :
OtherUsageDescription             :
ParityLayout                      : Unknown
PhysicalDiskRedundancy            : 1
PhysicalSectorSize                : 4096
ProvisioningType                  : Fixed
RequestNoSinglePointOfFailure     : False
ResiliencySettingName             : Mirror
Size                              : 3545495502848
UniqueIdFormat                    : Vendor Specific
UniqueIdFormatDescription         :
Usage                             : Other
WriteCacheSize                    : 0
PSComputerName                    :

這是池的 powershell 輸出:

PS H:\> Get-StoragePool -FriendlyName "McAfee Primary Pool"

FriendlyName            OperationalStatus       HealthStatus            IsPrimordial            IsReadOnly
------------            -----------------       ------------            ------------            ----------
McAfee Primary Pool     OK                      Healthy                 False                   False


PS H:\> Get-StoragePool -FriendlyName "McAfee Primary Pool" | FL


ObjectId                          : {1}\\SERVER\root/Microsoft/Windows/Storage/Providers_v2\SPACES_StoragePool.ObjectId
                                   ="{fdf741fe-cae8-11e4-80b4-806e6f6e6963}:SP:{d734cabd-cabf-11e4-80bf-000c41ebb9a3}"
PassThroughClass                  :
PassThroughIds                    :
PassThroughNamespace              :
PassThroughServer                 :
UniqueId                          : {d734cabd-cabf-11e4-80bf-000c41ebb9a3}
AllocatedSize                     : 7092601618432
ClearOnDeallocate                 : False
EnclosureAwareDefault             : False
FriendlyName                      : McAfee Primary Pool
HealthStatus                      : Healthy
IsClustered                       : False
IsPowerProtected                  : False
IsPrimordial                      : False
IsReadOnly                        : False
LogicalSectorSize                 : 4096
Name                              :
OperationalStatus                 : OK
OtherOperationalStatusDescription :
OtherUsageDescription             :
PhysicalSectorSize                : 4096
ProvisioningTypeDefault           : Fixed
ReadOnlyReason                    : None
RepairPolicy                      : Parallel
ResiliencySettingNameDefault      : Mirror
RetireMissingPhysicalDisks        : Auto
Size                              : 9998683865088
SupportedProvisioningTypes        : {Thin, Fixed}
SupportsDeduplication             : False
ThinProvisioningAlertThresholds   : {70}
Usage                             : Other
Version                           : Windows Server 2012 R2
WriteCacheSizeDefault             : Auto
WriteCacheSizeMax                 : 107374182400
WriteCacheSizeMin                 : 0
PSComputerName                    :
FileSystem                        : Unknown

有什麼想法可以回收我的空間嗎?

我遇到了同樣的問題。Neograph 的評論在這種情況下無關緊要,他說的是傳統的 Windows Server 磁碟鏡像,而不是儲存空間。在這種情況下,精簡配置也完全無關緊要。您可以將其用作解決方法,但我認為更謹慎的計劃在預算和性能方面都會更好,請繼續閱讀,您會看到。

在伺服器管理器中花費了相當長的時間閱讀和玩耍之後,我想我弄清楚了發生了什麼。問題是,SS 有一個叫做“列”的東西。這定義了有多少磁碟數據被條帶化。如果您的虛擬磁碟創建為 4 列,則數據僅分佈在 4 個具有簡單佈局的磁碟(即 RAID0)或 8 個具有雙向鏡像(即 RAID10)的磁碟上,而不是全部。現在,對於來自傳統硬體 RAID 的人(比如我)來說,這可能會讓人感到困惑,但事實就是如此。

注意:從現在開始,我將列數稱為列大小,因為這樣對我來說更直覺。

所以無論如何,列大小還定義瞭如何擴展虛擬磁碟。顯然,如果您目前的 VD 有 4 個磁碟組(= 列大小為 4),則不能通過添加 2 個新磁碟來添加“半”組。所以擴容所需的磁碟數量基本上是

n x NumberOfColumns x NumberOfDataCopies

所以如果你有一個雙向鏡像,列大小為1,你只能添加磁碟對。如果你的鏡像的列大小為 3,則只能添加 6、12、18 個左右的磁碟。

據我了解,VD 的預設列大小是磁碟數除以副本數,但最多為 8,例如,如果您在雙向鏡像中有 10 個磁碟,則列大小將為 5,如果您有 16磁碟,列大小將為 8,但如果您有 24 個磁碟,列大小仍為 8 - 預設情況下。注意:您可以在 VD 屬性下查看這些數字(NumberOfColumnsNumberOfDataCopies屬性和詳細資訊)。

這裡有很多令人頭疼的問題:

  • 如果要擴展 VD(在大多數情況下),預設列大小要求您將磁碟數加倍
  • 如果在創建池期間將磁碟使用率設置為手動,則只能選擇列大小
  • 預設磁碟使用是自動(當然)
  • 創建 VD 後,您無法更改列大小
  • 創建池後,您無法將磁碟使用情況更改為手動

因此,要正確設置此設置,您需要刪除:

  • 音量
  • 虛擬磁碟
  • 儲存池

即一切。作為旁注,如果磁碟使用設置為自動,則條帶大小(在 SS 中稱為交錯大小)也不可用。

現在您可能想知道為什麼有人會使用大於 1 的列大小。答案當然是性能。列大小越大,您獲得的性能就越好。實際上,它可能非常引人注目,這是列大小為 1 和 6 的基準:

列數:1

列數:6

你需要明智地計劃。如果您確定一旦磁碟空間用完就可以購買大量磁碟,請僅使用較大的列大小。

關於該主題的一些好讀物:

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