【问题标题】:FIO repeatable buffer fillFIO 可重复缓冲区填充
【发布时间】:2020-01-23 23:00:20
【问题描述】:

是否可以使用 FIO 实现伪随机缓冲区填充模式?即,块的填充模式会将种子+块编号或偏移量合并到伪随机填充生成器中。这样,整个填充数据可以 100% 可重复和可验证,但比--verify=pattern 提供的静态模式更加多样化。

我对命令的猜测是这样的:

  1. 以可验证的方式写出伪随机数据
fio --filename=/home/test.bin --direct=1 --rw=write --bs=512 --size=1M --name=verifiable_write --verify=psuedo_rand --verify_psuedo_rand_seed=0xdeadbeef --do_verify=0
  1. 读回伪随机数据并验证
fio --filename=/home/test.bin --direct=1 --rw=read --bs=512 --size=1M --name=verify_written_data --verify=psuedo_rand --verify_psuedo_rand_seed=0xdeadbeef --do_verify=1

显然,我在这里提出了一些选择,但我希望它可以让大家明白这一点。

【问题讨论】:

    标签: linux io


    【解决方案1】:

    (这不是此类问题的正确网站,因为它与编程无关 - Super UserServerfault 看起来更合适)

    fio documentation for buffer_pattern 表示您可以选择固定的字符串或数字(以十进制或十六进制给出)。但是,查看您的示例表明您正在进行验证,因此 documentation for verify_pattern 是相关的。这表明您可以使用设置块偏移量的%o。然而,一旦你设置了一个固定的模式就可以了 - 除了%o 之外,没有更多的变量了。这意味着如果选择使用固定模式(例如通过verify_patterncurrent fio(撰写本文时为 3.17),则无法包含可验证的种子随机数据。

    如果您不使用固定模式并指定通过校验和进行验证,那么 fio 实际上将使用种子随机数据,但我认为拆分验证不会检查种子 - 只是写入块的校验和与块的其余部分。

    是否可以使用 FIO 实现伪随机缓冲区填充模式?

    如果默认的随机缓冲区填充是可以的,那么可以,但是如果您想在旁边包含块偏移量和其他附加数据,那么在撰写本文时不可以(除非您修补 fio 源)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-20
      • 2013-02-21
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 2021-12-22
      相关资源
      最近更新 更多