Search code examples
storagesimulationtraceblktrace

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


I want to compare different disk models using DiskSim. In many studies using DiskSim, researchers execute the trace files generated by DiskSim on both DiskSim and real devices. However, I didn't find out how to do so.

Therefore, I want to find the method to run the io traces generated by DiskSim in real devices. All the kinds of format are accepted including ascii, validate, blktrace, etc. Please help me.


The example of DiskSim trace in ascii format:

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

The paper about DiskSim traces: 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

I knew something about blktrace, btrecord and btreplay. However, i cannot transform the trace from DiskSim format into blktrace format. It missed some io information.

Anybody help?


Solution

  • You need to fake those missing information and convert DiskSim trace format into blktrace format. They use btrecord and btparse to replay those trace files on real system. The only information that you need to fake is CPU ID. Other columns important columns are present in your DiskSim trace. You may need to chenge the btrecord source code also to accept dismiss your faked information.

    Your other option is to convert DiskSim trace into fio log trace and replay with fio. This option might not be as accurate as the blktrace option.