我正在寻找在Windows Server 2016上的存储空间中构建镜像文件服务器,以用于小型视频编辑办公室.性能非常重要(因此写缓冲区考虑因素),我们的服务器主要处理两种类型的重要写入:上传素材,保存项目或文档文件.
这让我想知道在意外断电的情况下最糟糕的情况是什么.
对于上传素材,我预计服务器的任何中断都会导致正在进行的任何文件传输的可见网络故障.因此,除非在文件传输的网络部分完成几秒后发生电源故障,否则他们将意识到在服务器重新联机后需要重新启动文件传输.由于我知道服务器出现故障,我可以建议办公室使用同步程序来假设用本地主副本覆盖任何损坏的文件.
至于保存文档和项目文件,它们中的大多数应该非常小,以至于在发生故障时甚至在缓冲区中的风险最小.如果情况并非如此,那么在用户的计算机上使用自动保存或开放版本会给他们第二次机会.我能真正看到的唯一风险是,如果在保存和关闭文件时发生了电源故障,并且该程序没有存储滚动自动保存.
我的评估是准确的,还是我忽视了什么?在这种情况下,腐败是否会影响比正在编写的数据更多的数据?
谢谢
编辑:我应该强调,我并不是特别想要在这种情况下我应该做些什么.我只是想要正确理解可能性,以便我能够对这种风险的现实做出明智的决定.
到目前为止,我在这个问题上阅读的许多网页都令人沮丧地模糊不清,特别是在区分“写缓存”和“写缓存缓冲区刷新”方面.
HDD和SSD几乎普遍具有私有DRAM缓存,用于短暂存储和合并传入写入,大大加快了写入性能.作为参考,考虑快速SATA SSD在其缓冲器启用时抽取> 500 MB / s的顺序写入,并且仅禁用约5 MB / s的缓冲器. HDD显示出不太严重的性能下降,但仍然如此.
同时,如果这些私有DRAM缓存不受电源损失保护,则可能发生严重的数据损坏(直至丢失整个文件系统).为了在不完全破坏性能的情况下防止此问题,存在一些可能性:
>使用带有powerloss保护的写缓存的驱动器(即:企业级SSD和一些新的支持NV的机械硬盘)
>使用具有powerloss保护缓存的硬件RAID控制器,禁用专用磁盘的DRAM缓存
>使用廉价的消费者硬件,启用无保护的DRAM缓存,但定期刷新以保证文件系统(但不是数据,因为性能影响会非常大)的一致性.
当使用类似软件RAID的方法(即:Linux MDRAID,ZFS,存储空间,ecc)时,除非您准备支付非常高的性能成本,否则不应禁用磁盘缓存.相反,您最好的选择是启用写入缓存,并让您的OS /文件系统随时发出DRAM同步/刷新命令.通过这种方式,您可以获得已启用缓存的性能加速,而不会冒整个文件系统的负担.请注意,应用程序数据不会自动受到保护:任何想要确保数据持久性的应用程序都必须定期刷新(数据库就是一个很好的例子).
另一方面,除非您100%确定您的驱动器/ RAID卡具有受保护的写回缓存,否则不应禁用DRAM缓存刷新.但是,在这种情况下,启用刷新功能不会造成太大的伤害,因为当受保护的DRAM缓存处于健康状态时,几乎任何最近的驱动器/卡都会忽略刷新.