嗨,大家好,
我在存储空间和基于硬件的 LSI 控制器之间切换了一段时间。硬件控制器提供 8 个端口,我的板载 LSI sas 有 16 个,我的机箱有 12 个驱动器插槽。目前我正在运行 MS Server 2016 Datacenter。
我想知道我是否可以从 6x4Tb Raid 5(硬件控制器)切换到更灵活的 SS 解决方案,其中 7x4 TB + 5x2 TB(HDD)+ 2x256Gb SSD 作为缓存。我过去使用 SS 的体验并不好,有很多驱动器消失和问题 + 数据丢失,而且 MS 的警报系统非常糟糕(我认为 SS 完全没有问题) - 但大多数 HDD 问题是由我的 PSU 引起的,现在已经解决了 - 所以我决定试试 SS,因为我可以将所有驱动器放在一个控制器上 + 摆脱 HW 控制器。板载 LSI(XEON D 板)运行良好,包括 HDD 待机。
我读过这篇文章 在 Windows Server 2012 R2 上添加驱动器后,存储池上的镜像虚拟磁盘无法扩展
我将引用一些非常有趣的发现:
因此,要扩展 4 列的存储池 - 您不需要添加 4 个磁盘 - 您只需要确保池中还有 4 个磁盘且剩余磁盘空间!
因此,如果 1 已满,但 3 有剩余空间,则添加一个磁盘后,该池将再次运行!
现在我通过以下方式测试了池和磁盘:-> 创建了一个带有 3x2 TB + 2x256GB SSD 的池(在 GUI 中)
-> Get-StoragePool MyStoragePool | New-StorageTier –FriendlyName SSDTier –MediaType SSD
-> Get-StoragePool MyStoragePool | New-StorageTier –FriendlyName HDDTier –MediaType HDD
-> Get-StoragePool MyStoragePool | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 1
-> $SSD = Get-StorageTier -FriendlyName SSDTier
-> $HDD = Get-StorageTier -FriendlyName HDDTier
-> $vd1 = New-VirtualDisk -StoragePoolFriendlyName MyStoragePool -FriendlyName Mirror -StorageTiers @($SSD) -StorageTierSizes @(175GB) -ResiliencySettingName Mirror -WriteCacheSize 0GB
-> $vd1 = New-VirtualDisk -StoragePoolFriendlyName MyStoragePool -FriendlyName Parity -StorageTiers @($HDD) -StorageTierSizes @(3700GB) -ResiliencySettingName Parity -WriteCacheSize 1GB
在 Powershell 中运行良好,但在 GUI 中没有提供正确的设置。当我执行
-> Get-VirtualDisk | Format-List
我明白了
PS C:\Users\Administrator> Get-VirtualDisk | Format-List
ObjectId : {1}\\HOMESERVER\root/Microsoft /Windows/Storage/Providers_v2\SPACES_VirtualDisk.ObjectId="{ae6f3b40-843d-11e6-8239-806e6f6e6963}:VD:{4b713005-eb2e-4ac4-bf03-71a8ae7e05dc}{018a9f90-33a5-4c4e-a8e
b64e55}"
PassThroughClass :
PassThroughIds :
PassThroughNamespace :
PassThroughServer :
UniqueId : 909F8A01A5334E4CA8E4E55ECBB64E55
Access : Read/Write
AllocatedSize : 3972844748800
AllocationUnitSize :
ColumnIsolation :
DetachedReason : None
FaultDomainAwareness :
FootprintOnPool : 5963025219584
FriendlyName : Parity
HealthStatus : Healthy
Interleave :
IsDeduplicationEnabled : False
IsEnclosureAware :
IsManualAttach : False
IsSnapshot : False
IsTiered : True
LogicalSectorSize : 512
MediaType :
Name :
NameFormat :
NumberOfAvailableCopies :
NumberOfColumns :
NumberOfDataCopies :
NumberOfGroups :
OperationalStatus : OK
OtherOperationalStatusDescription :
OtherUsageDescription :
ParityLayout :
PhysicalDiskRedundancy :
PhysicalSectorSize : 4096
ProvisioningType :
ReadCacheSize : 0
RequestNoSinglePointOfFailure : False
ResiliencySettingName :
Size : 3972844748800
UniqueIdFormat : Vendor Specific
UniqueIdFormatDescription :
Usage : Other
WriteCacheSize : 1073741824
PSComputerName :
ObjectId : {1}\\HOMESERVER\root/Microsoft/Windows/Storage/Providers_v2\SPACES_VirtualDisk.ObjectId="{ae6f3b40-843d-11e6-8239-806e6f6e6963}:VD:{4b713005-eb2e-4ac4-bf03-71a8ae7e05dc}{bc5374c5-e4c0-4fbe-b4d
094b26}"
PassThroughClass :
PassThroughIds :
PassThroughNamespace :
PassThroughServer :
UniqueId : C57453BCC0E4BE4FB4D9036AED094B26
Access : Read/Write
AllocatedSize : 472446402560
AllocationUnitSize :
ColumnIsolation :
DetachedReason : None
FaultDomainAwareness :
FootprintOnPool : 472446402560
FriendlyName : SSD_VD
HealthStatus : Healthy
Interleave :
IsDeduplicationEnabled : False
IsEnclosureAware :
IsManualAttach : False
IsSnapshot : False
IsTiered : True
LogicalSectorSize : 512
MediaType :
Name :
NameFormat :
NumberOfAvailableCopies :
NumberOfColumns :
NumberOfDataCopies :
NumberOfGroups :
OperationalStatus : OK
OtherOperationalStatusDescription :
OtherUsageDescription :
ParityLayout :
PhysicalDiskRedundancy :
PhysicalSectorSize : 4096
ProvisioningType :
ReadCacheSize : 0
RequestNoSinglePointOfFailure : False
ResiliencySettingName :
Size : 472446402560
UniqueIdFormat : Vendor Specific
UniqueIdFormatDescription :
Usage : Other
WriteCacheSize : 0
发现 1:我对这里缺失的大量数据感到疑惑。
发现 2:以 150MB/s 的速度运行顺畅 + 将 MP3 复制到新驱动器。得益于 1 Gb WBC,存储空间奇偶校验写入性能非常好。
我的目标是一开始就拥有一个可扩展的池,其中至少有 6 个 4 TB 驱动器 + 2 个 256 GB SSD,并利用 SSD 上的写回缓存,这在我上面的示例中运行良好。我可以将奇偶校验固定到 HDD,将镜像固定到 SSD(因为我的 Vms 不会一直唤醒我的 HDD)
使用 6 个磁盘时,我可以将奇偶校验的列号设置为 3 吗?我是否可以再添加 3 个 4TB 磁盘,以便轻松扩展我的池?例如 6x4TB -> 9x4TB = 8x4TB 可用于奇偶校验……?
假设我将 6 个 4 TB 和 5 个 2 TB 以及 2 个 SSD 放在一个池中... 最大奇偶校验卷是多少?我可以通过随后更换 2 TB 驱动器来扩展它吗?引用的帖子的意思是:
我现在不能投反对票,但我想概述一下,bviktors 帖子中给出的基本信息是错误的 - 他仍然在思考 Raid,说你不能用半个磁盘组进行扩展:
如果您有一个有 4 列的存储池 - 您可以使用任意数量的磁盘,从 4 开始。存储空间将始终使用您拥有的所有磁盘!列数仅定义同时写入多少磁盘数据(这称为条带化)下一个条带(默认大小为 256 KB,称为交错)但是可以(并且将)写入 4 个不同的磁盘!
因此,要扩展 4 列的存储池 - 您不需要添加 4 个磁盘 - 您只需要确保池中还有 4 个磁盘且剩余磁盘空间!
因此,如果 1 已满,但 3 有剩余空间,则添加一个磁盘后,该池将再次运行!
(这允许按需要混合容量 - 无需保持相等磁盘大小的 raid 约束)
作为最佳实践,您应该始终添加更多磁盘,而不是#NumberOfDataCopies * #NumberofColumns:
考虑 2 列 2 复制磁盘 - 它至少需要 4 个磁盘。如果您丢失了一个磁盘,您仍然可以访问您的数据 - 但您无法再写入任何内容,因为您没有剩余的 4 列来存储数据!
假设您已向该池添加了 5 个磁盘(存储空间子系统将根据大小使用这些磁盘,以最佳方式填充以使所有磁盘同时达到 100%) - 丢失一个磁盘仍会保留您的数据 - 并使您的池继续进行新的写入,因为您仍然至少剩下 4 列。
此外,如果一个磁盘出现故障,您可以立即重建池,而无需先购买新磁盘!
Set-PhysicalDisk -FriendlyName“BrokenDisk”-Usage Retired Get-PhysicalDisk -FriendlyName“BrokenDisk”| Get-VirtualDisk | Repair-VirtualDisk -AsJob
如果剩余空间足够,数据现在将被“移动”到剩余磁盘。重建后:
$disk = Get-PhysicalDisk -FriendlyName "BrokenDisk" Remove-PhysicalDisk -StoragePoolFriendlyName "我的池" -PhysicalDisks $disk
(您可以使用相同的命令来淘汰“功能性”磁盘并将数据移动到其他磁盘 - 一旦添加磁盘,这将允许某种形式的数据重新分配 - 但最后您将始终有一个磁盘“空”。但是,由于磁盘数量较少,因此在您的情况下它不起作用。例如,在 10 个磁盘池中,您可以通过将少至 200 MB 的数据分配给其他每个磁盘来释放 2 TB 磁盘。重新运行该操作现在将优先写入空磁盘。存储空间基本上总是说:“我必须写入:8 个块(列数 * 数据副本数),每个块的大小为 64 KB(交错/列数) - 从 10 个磁盘中给我 8 个使用率最低的不同磁盘,这样我就可以把数据放在那里!”)
如果能够将所有数据从 2TB 驱动器转移到其他池设备(当空间可用时),然后向池中添加新驱动器,那就太好了。我想知道存储空间是否可以进行内部迁移 - 但重要的是列是固定的。如果我从 6x4 Tb 切换到 12x4TB(所有奇偶校验),存储空间会做什么?列呢?在标准中应该是 6(使用 6x4TB),- MS 指南告诉我我需要再扩展 6 个驱动器(这很糟糕)。
性能不是那么关键,因为我受到 1 Gbit Lan 的限制(即使 3x2 Tb Parity 和 1GB WBC 也运行得足够快)。因此列数可以尽可能低。
我愿意通过简单的冗余(奇偶校验)从该池中提取最大容量。我的 8 TB 驱动器上有一个额外的备份,每 3 天运行一次,因此我的重要数据无论如何都会得到保存。
感谢您提供答案和想法。