存储空间写入缓存和写入速度

存储空间写入缓存和写入速度

我一直在使用带有存储空间的服务器 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 相关的错误)并使用新表示的(重新命名?代码已经存在多年了……)镜像加速奇偶校验设计。参见:

http://knowledgebase.45drives.com/kb/kb450193-creating-mirror-accelerated-parity-volumes-and-storage-tiers-in-storage-spaces-windows-server-2019/

顺便说一句,使用文件复制来衡量存储性能是个坏主意,请看这里的原因:

https://blogs.technet.microsoft.com/josebda/2014/10/13/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latency-for-both-local-disks-and-smb-file-shares/

祝你好运! :)

答案2

存储空间确保具有一致的状态。奇偶校验通常是所有选项中最慢的 - 你不会获得任何性能改进。

如果你愿意容忍在发生中断(或其他奇怪的崩溃)时丢失数据,你可以在空间上启用电源保护模式

设置存储池 -池名称-IsPowerProtected $true

编辑:当您深入研究存储空间如何处理元数据刷新时,您可能会发现更多关于底层概念的信息(除非您处于电源保护模式,否则元数据刷新是同步完成的)

当我没有记错的时候,您可以使用 SSD(至少两个)作为奇偶校验布局的日志磁盘。这里有一个很好的介绍:http://social.technet.microsoft.com/wiki/contents/articles/15200.storage-spaces-designing-for-performance.aspx

相关内容