ext4 文件系统经常损坏

ext4 文件系统经常损坏

我们的环境中偶尔会出现断电,这似乎会导致使用 ext4 文件系统的 Ubuntu 计算机上的数据损坏。

据我了解 ext4 的默认设置是使用 data=ordered

这被描述为“在将元数据提交到日志之前,所有数据都被强制直接发送到主文件系统。”

这是否意味着如果停电并且写入磁盘的操作被中断,则可能会出现文件系统损坏?

如果我想完全消除由于断电而导致的文件系统损坏,我想我会使用data=journaled,除了性能影响之外,还有什么负面影响吗?

奖励:如何将文件系统上的日志类型更改为data=ordered另一种。我猜我需要对日志进行修改,但我不太确定如何或以什么顺序执行这些操作。

Ubuntu (initramfs) 没有任何文件系统恢复实用程序,这真的很烦人,所以我们可以采取任何方法来防止我们不得不弹出 live CD。

我的/etc/fstab

# /etc/fstab:静态文件系统信息。
#
# 使用 'blkid -o value -s UUID' 打印通用唯一标识符
# 对于设备;这可以与 UUID= 一起使用作为更可靠的命名方式
# 即使添加和删除磁盘也能正常工作的设备。请参见 fstab(5)。
#
#                
proc /proc proc 默认 0 0
# 安装期间 / 位于 /dev/sda1
UUID=9cd71f51-53bb-44c7-affa-14293e59d596 / ext4 错误=重新安装-ro 0 1
# 安装期间交换位于 /dev/sda5
UUID=5568cee1-a50b-4409-ad67-cdc5bfb592a3 无交换 sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 用户,noauto,exec,utf8 0 0

操作系统版本

-bash-4.0# uname -a
Linux LG-F3-19 2.6.31-14-server #48-Ubuntu SMP 10 月 16 日星期五 15:07:34 UTC 2009 x86_64 GNU/Linux
-bash-4.0# lsb_release -a
没有可用的 LSB 模块。
发行商 ID:Ubuntu
说明:Ubuntu 9.10
发布:9.10
代号:业力

失败图片:https://i.stack.imgur.com/BMtlZ.jpg

参考: https://www.kernel.org/doc/Documentation/filesystems/ext4.txt http://www.ibm.com/developerworks/library/l-journaling-filesystems/

答案1

所有三种数据日志模式都应在电源故障后保持文件系统本身完好无损。所以它应该总是安装而不会出现错误。区别仅在于文件中的数据;data=writeback模式可能会留下过时的数据(即,在应用程序写入之前存储在磁盘扇区中的数据)。data=ordered并且data=journaled不应该这样做。

您最有可能看到的是 I/O 屏障在您的设置中不起作用。首先,确保您没有使用barrier=0/进行安装nobarrier。这会提高性能,但会导致断电时损坏。

如果 I/O 屏障打开,您也可能正在通过不支持它们的存储层。在旧版本中,LVM 没有,各种 mdraid 级别也没有。 (这个问题已在 Linux 2.6.33 中修复;只有当您仍然运行 Lucid 时才如此。)

最后,您的磁盘可能会撒谎。磁盘具有写缓存。尤其是 NCQ,他们应该仅在操作系统实际写入数据时才告诉操作系统它们已写入数据,但众所周知,当数据仅在磁盘的写入缓存中时,它们才会告诉操作系统其已写入。提高性能。至少只要电源保持开启状态。您可以尝试禁用磁盘上的写入缓存,尽管这样做会降低性能。

另请注意,闪存磁盘在后台有很多工作要做,其中许多不能很好地处理电源故障。 (例如,磨损均衡有时需要移动整个闪存数据块。如果中途断电,某些闪存磁盘上会发生不良情况。)

最后...您考虑过使用 UPS 吗?

相关内容