断电后零字节文件 - ext4 centos 6.4

断电后零字节文件 - ext4 centos 6.4

断电后一分钟内写入的文件在系统恢复时为零字节。测试系统时我们无法保证会有 ups 备份。

Centos 6.4
内核 2.6.32-358.14.1.el6.x86_64
ext4 使用默认设置挂载

看到这种情况发生在两个不同的系统上(我只在这两个系统上尝试过)

第一个是 PERC h710 控制器 RAID 6,带有 4 个 3TB 驱动器。
无论有没有 lvm,都会发生
这种情况。无论是在写通缓存中还是写回缓存中都会发生这种情况。

第二个没有 RAID 控制器的 2TB 磁盘
仅在没有 lvm 的情况下进行了测试

关于如何防止这种情况的建议?

答案1

根据您的描述,这听起来好像操作系统尚未将您的数据刷新到磁盘,因为您确实有文件元数据,只是没有任何内容/长度。

写入(2)并不能保证你的数据已经到达磁盘(除非你打开(2)通过使用 O_DIRECT 来刷新文件,您将听从操作系统/文件系统的指令,并决定何时将数据/元数据刷新到磁盘。为了保证您的数据安全,您有两个选择:

其中最大的警告是缓存(可能有也可能没有)在驱动器和 raid 控制器上都有电池备份,值得注意的是,有些驱动器会将您的写入放在其内部 RAM 缓存中并声明它们已经写入,在此期间存在断电会导致您丢失数据的时间窗口。

相关内容