有没有一个文件系统是完全安全的基于电源故障的腐败? 如果我们假设关键数据在没有UPS的情况下被存储并且性能不相关,文件系统是否存在从电源故障中完全不可破坏?
不是真的。 但是,您可以采取几项措施来降低风险。
正如已经回答的那样,日志文件系统是最近的,尽pipe不能保证。 这就像一个日志式数据库系统。 有些时候,尽pipe他们可能是数据仍处于交易中但尚未完全写入期刊的地方。 在这种情况下的损害可能是非常小的,但如果这恰好是一个真正的关键点,你仍然是谚语小溪。
现实:尽pipe一些非常优秀的开发人员做出了最好的努力,但是我们仍然因为掉电而遭受文件系统损坏
ZFS定义你正在寻找什么。
有很多方法可以防止数据损坏。 最有意义的例子是它只提交已经写入磁盘的数据。 这应该防止大部分(如果不是全部的话)数据损坏。
另一种方法是校验和,它检查写入磁盘的数据是否正确。 当只有部分数据被写入磁盘时,这将有助于停电。
此外,电池支持的RAID卡真的是一个不费脑筋的…
没有任何东西可以100%安全地从电源掉落下来。 最好的办法是使用备份电池的RAID控制器上的磁盘(电池位于RAID控制器上)使用日志文件系统(例如EXT3或NTFS的新版本)。 电池支持的RAID控制器将允许卡写入caching之前,为时已晚。
根据您的使用情况,您可能会考虑一个只读的文件系统,其更改只存储在内存中。 如果电源丢失,磁盘状态只是恢复到您原来的良好形象。 适用于像网亭/networkingterminal或处理networking资源数据的服务器。
为了有兴趣的其他人的利益,在写这个问题之后,我遇到了两个关于可行的电源安全文件系统的市场解决scheme。 两者都使用copy-on-write原则。 (有趣的是,他们很难find)。 他们是:
从HCC Embedded开始 ,他们提供了两种文件系统解决scheme – SafeFAT和SafeFLASH,它们被认为是完全的电源故障安全。 前者是FAT兼容选项,后来针对磨损均衡和性能进行了优化。 虽然好,但这些产品往往是为大量用户定价的。
从QNX软件系统公司和在这里审查 ,他们提供了一系列不同的文件系统解决scheme,其中之一是我所阅读的潜在的电源故障安全。 该公司提供商业许可和开源许可,这是很好看。 不幸的是,他们只支持'nix变种的驱动程序。
另一个需要考虑的select是真正的交易文件系统,如Datalight Reliance或Reliance Nitro。 与保护文件系统结构的其他文章中build议的日志文件系统不同,真正的事务文件系统可以保护用户数据和文件系统结构免受因功率损失而导致的损坏。 此外,Reliance和Reliance Nitro在期刊重放要求导致的电源故障后不会受到非确定性启动时间的影响。
Reliance系列文件系统可用于任何存储介质:HDD,SSD,CF卡,NOR闪存,NAND闪存等。
更多信息,包括Datalight.com上的文件系统比较
[全面披露:我是Datalight公司销售和营销总监]