我想知道有哪些选项可以加快使用奇偶校验的存储空间的写入速度。
设置
- Windows 10 64位版本1607
- 英特尔 i7-7700k
- 16 GB 内存
- 三星 960 EVO
- 6x 6 TB 西部数据红盘(5200rpm)
我使用 PowerShell 设置了存储空间,因为我尝试使用奇偶校验执行 ReFS,尽管它是 GUI 中的一个选项,但 GUI 给我带来了麻烦。 Format-Volume
说“不支持指定的文件系统。”所以,它是一个 26.1 TB 的 NTFS 卷,配置类型是固定的,弹性是部分的,物理磁盘冗余是 1。
传输速度
- 其他 Windows 10 64x PC --> 存储空间 =~45 MB/秒
- NAS --> 存储空间 =~45 MB/秒
- 三星 960 EVO --> 存储空间 =~45 MB/秒
- 存储空间 --> 三星 960 EVO =~610 MB/秒
在传输过程中,我发现大约有 1.5 GB 的内存在使用中,而 CPU 的使用率只有 3-4%。我读到过,你可以告诉存储空间它连接到电池备份(计算机插入 UPS)或使用 SSD 缓存阵列,但我不知道这样做的利弊,也不知道执行此操作的 PowerShell 命令。我认为写入性能应该比这好一点,对吧?有了如此强大的处理器,我预计奇偶校验计算不会使其速度减慢太多。
答案1
重新发布我在technet上发布的信息: Parity 存储空间太慢,无法使用
在 Server 2019 / Windows 10 RS5 及更高版本上试验 RS5 奇偶校验写入性能的人们可能会发现以下信息很有用。
RS5(Build 17763,Windows 10 1809)更新为存储空间带来了改进的奇偶校验写入性能。改进来自能够绕过奇偶校验空间写入缓存进行全条带写入。以前创建的存储空间也将受益于这些改进(一旦使用 Update-StoragePool 升级存储池)。为了获得最佳效果,您需要创建具有特定交错大小的新存储空间。
步骤1
将您的存储池升级到最新版本。
Get-StoragePool <NameOfPool> | Update-StoragePool
确认
Are you sure you want to perform this action?
This will upgrade the StoragePool "TestPool" to the latest version. This is an irreversible action.
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Verify that your pool is at least at "Server 2019" version or later
Get-StoragePool | ? IsPrimordial -eq $false | ft FriendlyName,Version
FriendlyName Version
------------ -------
NameOfPool Windows Server 2019
第2步
创建一个新的奇偶校验虚拟磁盘,其交错大小为 32KB,3 列。这可最大程度地提高您为空间添加容量的灵活性,并确保数据条带大小为 64KB,这将与您在下一步中使用的 64KB NTFS 分配单元(群集)大小相匹配。(如果您使用存储空间控制面板 UI 创建空间,则其交错大小通常为 256KB,NTFS 群集大小为 4KB,这并不能保证所有写入都与数据条带边界对齐)
New-VirtualDisk -StoragePoolFriendlyName <NameOfPool> -ProvisioningType Thin -Interleave 32KB `
-FriendlyName FastParity -Size 1TB -ResiliencySettingName Parity -NumberOfColumns 3
步骤3
进入磁盘管理,初始化新创建的虚拟磁盘对应的磁盘,并使用分配单元(簇)大小为 64KB 的 NTFS(或 REFS)文件系统对其进行格式化。
步骤4
验证将大文件复制到此卷是否快速。假设您正在从以下源复制:不同的从存储池中的任何虚拟磁盘,您都应该能够实现接近存储池中最慢物理磁盘写入性能 2 倍的写入性能。使用典型的消费级 SATA 硬盘,如果您的源速度足够快(例如内部 SSD),您应该能够达到 200MB/秒的速度来复制大文件。
您可以使用性能监视器 (perfmon.exe) 来验证您的新虚拟磁盘是否具有较高的“写入绕过 %”。正确配置后,您应该预期此值 >99%。计数器集名称为“存储空间写入缓存”
答案2
将文件复制用作任何进度指示器都是一个坏主意。坚持使用 DiskSPD,否则您将获得随机且不可重现的数字。
您可以使用 Windows 内置的基于 SSD 的缓存软件或配置分层存储空间,其中您的 SSD 将充当 WBC 或性能层。
https://msdn.microsoft.com/en-us/library/windows/hardware/dn567634(v=vs.85).aspx
我建议不要使用任何第三方 DRAM 和 SSD 缓存。
答案3
微软明确建议仅在几乎只进行读取的存档类场景中使用不带 WBC 的“Parity” Spaces 布局。
对于您的配置来说,您所实现的写入性能绝对正常。
考虑添加 SSD 驱动器作为 WB Cache 或将您的空间切换到分层配置。
如果您无法添加 SSD,请考虑使用“双向镜像”(又名 RAID10)配置,这将显著提高写入性能。
答案4
我找到了一个可行的答案。我的配置是:
- i3 550,
- 2×2GB内存,
- Windows 10 专业版,
- 3×1TB 三星 103UJ/SJ 磁盘以奇偶校验模式插入主板(Asrock H55M USB3)。
之前的写入速度约为 20-23 Mbytes/s,使用以下设置(PS 和设备管理器设置)可提高到 47-50 Mbytes/s。读取速度在 gbit 连接上达到最大值(113 MBytes/s)。使用更快的磁盘写入速度可能会更快,但对于这些 7 年以上的老旧产品来说,写入速度还是可以接受的。
我Set-StoragePool -FriendlyName <Storage Pool Name> -IsPowerProtected $True
最初尝试过,但没有成功。但随后我进入“设备管理器”→“磁盘驱动器”→“策略”,并确保所有磁盘都只启用了“在设备上启用写入缓存”,除了我为存储空间创建的一个名为“Microsoft 存储空间设备”的新磁盘驱动器,然后我选中了第二个框“关闭设备上的 Windows 写入缓存缓冲区刷新”。由于我的服务器确实有外部 UPS,所以我并不担心关闭它的警告。在缓冲区刷新和写入磁盘时写入磁盘暂停的问题已经全部消失。