我一直在使用带有存储空间的服务器 2012r2 的 NAS 进行工作。
- 这些驱动器是现成的 7200 rpm 驱动器
- 驱动器采用 bitlocker 加密
- 驱动器采用 8 磁盘奇偶校验布局
我的问题是这样的。使用 SMB 多通道,我能够在大约 2.5 秒内以每秒约 200MB 的速度将 500 MB 文件传输到我的 NAS,但我发现 NAS 在接下来的 10 秒内将该文件复制到磁盘。为什么复制到磁盘需要那么长时间?存储空间中的 8 个磁盘每秒可以写入超过 20-40MB...
当我尝试将 3+ GB 的大文件写入服务器时,问题就出现了,因为当服务器将所有已缓存的内容写入磁盘时,传输速度会从 200MB/s 下降到几乎 0。
答案1
这种延迟写入的发生是因为 aa) 文件系统级写回 RAM 缓存,以及 b) 奇偶校验 Spaces 设计,它首先将所有写入吸收到内部日志中,以避免“关键路径”上的“读取-修改-写入”急剧减速。写入完成后,文件系统会继续在“惰性写入器”工作线程中刷新数据,而 Spaces 会继续读取内部日志并在后台执行实际写入。
您可以通过以下方式加快此过程:a) 为 Spaces 日志提供专用闪存设备,以及 b) 避免奇偶校验并使用镜像条带(日志记录闪存在这里也会有所帮助)。请参阅:
https://mrickert.com/2016/04/25/adding-journal-drives-to-windows-storage-spaces-2012/
另一个选择是升级到 Windows Server 至少 2016(建议升级到 2019,因为那里修复了大量与 Spaces 相关的错误)并使用新表示的(重新命名?代码已经存在多年了……)镜像加速奇偶校验设计。参见:
顺便说一句,使用文件复制来衡量存储性能是个坏主意,请看这里的原因:
祝你好运! :)
答案2
存储空间确保具有一致的状态。奇偶校验通常是所有选项中最慢的 - 你不会获得任何性能改进。
如果你愿意容忍在发生中断(或其他奇怪的崩溃)时丢失数据,你可以在空间上启用电源保护模式
设置存储池 -池名称-IsPowerProtected $true
编辑:当您深入研究存储空间如何处理元数据刷新时,您可能会发现更多关于底层概念的信息(除非您处于电源保护模式,否则元数据刷新是同步完成的)
当我没有记错的时候,您可以使用 SSD(至少两个)作为奇偶校验布局的日志磁盘。这里有一个很好的介绍:http://social.technet.microsoft.com/wiki/contents/articles/15200.storage-spaces-designing-for-performance.aspx