如何优化ext4的可靠性?


11

由于ext4的引入比带有块日志的ext3更加可靠,是否有机会假设它100%可靠?如果在其上启用块日记功能(默认情况下禁用)怎么办?

作为朋友的指南来详细解释我的情况:安装键盘和显示器后,我有一个嵌入式Linux设备,它可以独立工作。

我的职责是确保它具有可靠的文件系统,因此如果出现错误,则无法手动纠正设备上的错误。我不能强迫客户在每台设备上使用ups来确保不会因电源故障而出现故障。

ext4除了块日记功能还能为我提供什么?

提前致谢。


我知道我需要权衡启用块日志等功能,但是我坚持可靠性并愿意为此付出代价
2011年

另请参阅:serverfault.com/questions/244095/how-to-make-ext4-more-reliable,由于过于含糊而被关闭。
Olli

是的,我问了我的问题,没有任何帮助刚刚关闭!我的linux系统是一个嵌入式系统,没有连接显示器或键盘。所以我希望它在断电等情况下更可靠。我知道块日志是一种方法,但我想知道是否还有其他选择。我无法为客户提供每台设备的升级服务。
2011年

1
@amin有关用例的信息在您的问题中会更有用,这可能是为什么它因模棱两可而被关闭的原因。为您的问题添加更多信息!
豪尔赫·卡斯特罗

2
问题太模糊了。“ 100%可靠”是什么意思?假设通过“ block jounrnaling”您的意思是data = journal,那么那只是浪费时间。FS本质上是可靠的。日记只是确保您在崩溃后不必等待冗长的fsck。
psusi 2011年

Answers:


11

不能。您永远都不能假设某件东西是100%可靠的。

日志文件系统在意外中断的情况下最大程度地减少了数据丢失。范围和障碍可以提供更多帮助,但不能消除所有相关问题。就个人而言,我从未遇到过因使用日记文件系统而导致文件系统损坏而导致数据丢失的情况。

另外,默认情况下不会禁用日记功能。

这里是ext4及其改进的一个很好的概述:http : //kernelnewbies.org/Ext4


1
+1代表“您永远都不能假设某个东西是100%可靠的”
Lekensteyn 2011年

Comparison_of_file_systems块日志是关闭的,而元数据日志为ON,即贸易可靠性和速度之间断
阿明

我刚刚重新启动服务器,以便在文件包含无效数据的ext4上发现大量数据损坏。在zfs或btrfs上可能不会发生这种情况,因为数据具有校验和。
user239558 2014年

5

被添加到ext4并随内核3.5一起引入的一项新功能是所谓的“元数据校验和”,这是ext4的另一项功能,可以提高文件系统结构的可靠性和完整性。

内核新手很好地解释了整个实现:

诸如ZFS和Btrfs之类的现代文件系统已经证明,使用校验和确保文件系统的完整性是一项有价值的功能。Ext4添加了存储各种元数据字段的校验和的功能。每次读取元数据字段时,都会将读取数据的校验和与存储的校验和进行比较,如果它们不同,则意味着元数据已损坏(请注意,此功能不覆盖数据,仅覆盖内部元数据结构,并且它不具有“自我修复”功能)。

可以在创建时使用“ tune2fs -O metadata_csum”命令或“ mkfs -O metadata_csum”将任何ext4文件系统升级为使用校验和。一旦在文件系统中启用了此功能,则不具有校验和支持的旧内核将只能以只读模式挂载它。

kernel.org上的此类文章进一步详细地讨论了如何使用元数据校验和来防止损坏的元数据损坏文件系统结构。

但是,该文章还警告:

元数据校验和代码开始在Linux 3.5中进入主线,从3.7-rc1开始,它正在接受一些用户测试。这段代码还不是很可靠。

它不是默认在Ubuntu 12.10启动,并可能是最好不要启用它与EXT4文件系统近期问题后的瞬间作为注意到这里


1

您可以禁用ext4(nodelalloc)下的延迟分配,如果/在写入期间遇到断电的情况,这将使您更有可能恢复更多数据,但这是以文件碎片更多为代价的系统随着时间的推移。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.