我有 4 个 HDD 驱动器,并希望通过 1 级弹性来最大化读取性能。
为此,我想问一下我是否可以使用存储空间中的 4 个驱动器中的 3 个并创建一个具有 3 列的简单虚拟磁盘,本质上是跨 3 个磁盘进行条带化,然后在其上在此简单卷和第 4 个磁盘之间创建镜像?更重要的是,我可以在 PowerShell 中指定设置以从简单卷条带执行读取,以最大化读取性能吗?
我仔细研究过,但目前还没有在 Windows 中找到任何解决方案,允许在所有 4 个磁盘上创建镜像,然后像 Raid 0 条带一样在所有镜像上执行并行读取。FlexRaid 和 DrivePool 接近所需的设置,但它们在执行文件传输时跨镜像的读取与宣传的性能不符。
有什么想法或解决方案吗?请注意,我很高兴最终得到一个磁盘大小的总容量。这个问题涉及在实现单个磁盘故障弹性的约束下,使用 4 个 HDD 驱动器最大化读取性能。
答案1
A)
对于要创建的具有 1 个磁盘故障弹性的 4 HDD 存储空间(在存储空间中术语)4列单奇偶校验虚拟磁盘。
# Init
$storageSubSystem = Get-StorageSubSystem
$poolName = "POOL"
$poolDisks = Get-PhysicalDisk -CanPool $true | Where-Object {$_.MediaType -eq "HDD"}
$spaceName = "MyStorage"
$spaceSize = 1TB
# Create pool
$pool = New-StoragePool -FriendlyName $poolName -StorageSubSystemID $storageSubSystem.UniqueId -PhysicalDisks $poolDisks
# Create storage space
$spaceDisk = New-VirtualDisk -FriendlyName $spaceName -StoragePoolFriendlyName $poolName -NumberOfColumns 4 -NumberOfDataCopies 2 -ResiliencySettingName Parity -ProvisioningType Thin -Size $spaceSize
# or possibly
#$spaceDisk = New-VirtualDisk -FriendlyName $spaceName -StoragePoolFriendlyName $poolName -NumberOfColumns 4 -PhysicalDiskRedundancy 1 -ResiliencySettingName Parity -ProvisioningType Thin -Size $spaceSize
(我没有测试过,但你应该明白)
B)
但是在第二段中你明确要求3 列简单/无弹性虚拟磁盘用于双向镜使用另一个物理驱动器。
这是不可能的,因为虚拟磁盘无法池。我没有说明这一点的文档链接,但我确实依赖:
C)
但你问的是想法——如果你创建了 3 个磁盘会怎么样跨越甚至有条纹的 动态的然后把它放在普通的双向镜。如果运气好的话,动态音量可以显示在 中Get-PhysicalDisk -CanPool $true
,那就太好了(见我的基准)。但这可能毫无意义,而且我也没有空闲的磁盘可以尝试。
更重要的是,我可以在 PowerShell 中指定设置以从简单卷条带执行读取,从而最大限度地提高读取性能吗?
我不知道有任何选项可以优先考虑读取访问。存储层(新存储层)无法使用。我想你可以考虑将一个磁盘配置为杂志,即Set-PhysicalDisk -Usage Journal
。我怀疑它能否按您想要的方式使用。
答案2
我有 4 个 HDD 驱动器,并希望通过 1 级弹性来最大化读取性能。
您可以部署 MSFT 的 RAID10 等效物。请查看哪些列与冗余和性能有关。