【问题标题】:how ext4 works with fallocateext4 如何与 fallocate 一起工作
【发布时间】:2017-08-09 10:34:17
【问题描述】:

最近,我正在测试 ext4 文件系统的正确用法。我的专家是:

当系统崩溃时,数据已经被write return ok不会丢失,但是metadate可以。
这是我的用法:
1. 调用 fallocate 分配一个空间 fallocate(fd, 0, 0, 4*1024*1024); //4MB
2. 调用 fsync(fd) 让数据和元数据写入磁盘
3.然后我调用函数随机写入4k大小的文件(随机数据但不是0)。带有 O_DRICT 标志,但不调用 fsync。我用 return write ok 记录偏移量。
4.检查记录的偏移量。但我发现在一些偏移量中,读取 4k 数据是 0。这似乎意味着偏移量不像孔文件那样使用。

我的问题是:

Thanks.

【问题讨论】:

    标签: ext4 fallocate


    【解决方案1】:

    只有写入文件空间才能消除漏洞。不写就没有脏页,fsync 什么也不做。

    我想知道您是如何执行第 4 步的。您似乎是通过手动崩溃完成的,是吗?如果您在写入后读取它而没有崩溃,则它不应该为零,前提是您写入了非零。如果您在崩溃后读取它,如果存在磁盘缓存,则可能会发生零。但是,这种零不像孔,它们是从磁盘读取的零(很可能磁盘包含零)。

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 1970-01-01
      • 2011-10-13
      • 2015-06-07
      • 2018-07-13
      • 2012-06-22
      • 2011-07-20
      • 2021-07-14
      • 1970-01-01
      相关资源
      最近更新 更多