如何在真实环境中执行DiskSim生成的io trace?

How to execute the io trace generated by DiskSim in real environment?

我想使用 DiskSim 比较不同的磁盘模型。在许多使用 DiskSim 的研究中,研究人员在 DiskSim 和真实设备上执行由 DiskSim 生成的跟踪文件。但是,我没有找到如何这样做。

因此,我想找到运行 DiskSim 在真实设备中生成的io traces 的方法。接受各种格式,包括 ascii、validate、blktrace 等。请帮助我。


ascii 格式的 DiskSim 跟踪示例:

ARRIVE_TIME DEVICE_NUM BLK_NUM BLK_COUNT R/W
0.46 0 50631816 8 1
0.53 0 50631824 8 1
0.53 0 50631832 8 1
0.54 0 50631840 8 1

关于DiskSim痕迹的论文: https://www.usenix.org/legacy/event/fast03/tech/full_papers/zedlewski/zedlewski_html/paper.html http://www.sersc.org/journals/IJGDC/vol7_no3/7.pdf

我对 blktrace、btrecord 和 btreplay 有所了解。但是,我无法将跟踪从 DiskSim 格式转换为 blktrace 格式。它遗漏了一些 io 信息。

有人帮忙吗?

您需要伪造那些缺失的信息并将DiskSim 跟踪格式转换为blktrace 格式。他们使用 btrecordbtparse 在真实系统上重放这些跟踪文件。您唯一需要伪造的信息是 CPU ID。其他列重要列存在于您的 DiskSim 跟踪中。您可能还需要更改 btrecord 源代码才能接受驳回您的伪造信息。

您的另一个选择是将 DiskSim 跟踪转换为 fio 日志跟踪并使用 fio 重播。此选项可能不如 blktrace 选项准确。