Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96480
  • 博文数量: 8
  • 博客积分: 105
  • 博客等级: 民兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-07 11:26
文章分类

全部博文(8)

文章存档

2013年(8)

我的朋友

分类: 服务器与存储

2013-01-07 13:47:58

转载自 http://blog.sina.com.cn/s/blog_658a9bfd0100jdki.html

Install Disksim 4.0 and SSD in ubantu
    DiskSim is a low-level storage simulation tool, which can generate timing-accurate simulation result. It is developed by Greg Ganger. Current version is 4.0 and it is out in June 2008.
    SSD extension for DiskSim is an extensional module of DiskSim which implments SSD I/O Models. It is implemented by Microsoft Research.
    Compiling DiskSim and SSD extension is very simple, but when I tried, there was some problem. This article addresses those problems.
    DiskSim does not compile in 64bit environment. Never try it. Even if you succeded compilation, it will not run -- just produces segmentation fault.
    DiskSim requires bison and flex, which are parser generators for parameter file parsing codes.
Step 0. Install bison and flex, if you have not installed already.
$ sudo apt-get install bison flex
Step 1. Download and unzip.Sources can be downloaded from the links above. I downloaded DiskSim 4.0 with dixtrac.
$ tar xfz disksim-4.0-with-dixtrac.tar.gz
$ cd disksim-4.0
$ unzip ../ssd-add-on.zip
Step 2. Apply SSD add on patch.
$ patch -p1 < ssdmodel/ssd-patch
Step 3. Append SSD model library path to dixtrac.
add these lines to dixtrac/.paths
# path to ssdmodel
export SSDMODEL_PREFIX=../ssdmodel
export SSDMODEL_INCL=$(SSDMODEL_PREFIX)/include
export SSDMODEL_CFLAGS=-I$(SSDMODEL_INCL)
export SSDMODEL_LDPATH=$(SSDMODEL_PREFIX)/lib
export SSDMODEL_LDFLAGS=-L$(SSDMODEL_LDPATH) -lssdmodel
modify dixtrac/Makefile like this :
$(LIBDISKSIM_LDFLAGS) \
$(MEMSMODEL_LDFLAGS) \
$(DISKMODEL_LDFLAGS) \
$(SSDMODEL_LDFLAGS) \
$(LIBPARAM_LDFLAGS) \
$(LIBDDBG_LDFLAGS) \
$(ST_LDFLAGS)

CFLAGS = -Wall -g -MD -I. $(DEFINES) -I$(STHREADS) $(DMINCLUDES) \
$(LIBDISKSIM_CFLAGS) \
$(DISKMODEL_CFLAGS) $(LIBPARAM_CFLAGS) $(LIBDDBG_CFLAGS) \
$(SSDMODEL_CFLAGS)

Step 4. Compile~~~!
$ make

Step 5. Check if it works well.
$ cd valid; ./runvalid
$ chmod a+x ../ssdmodel/valid/runvalid
$ cd ../ssdmodel/valid; ./runvalid
Ok. It is all.
(我没有用dixtrac版本,直接step1,2,4,5就能正常运行,跳过了step3)

    disksim是一个高效、准确、高度可配置的磁盘系统模拟器,用以支持对各种存储体系的方方面面的性能的研究,它由c编写且开源。它具有多种模块,配置多样,已在许多存储系统效率及性能的研究中应用,被证明能很很真实的模拟存储系统的工作情况。

     disksim的运行需要5个命令行参数。格式如下:
disksim [par_override...]
    其中:disksim是程序可执行名;parfile为运行参数文件(按照特定的格式);outfile为输出文件;tracetype区分trace 输入的格式;tracefile表示出输入的tracefile的形式;synthgen表示是否激活相应工作量的显示;par_overrides可以 从命令行中将parfile中的参数修改。

    参数文件:parameter file可以为各种存储子系统建模。disksim通过libparam来输入参数文件。一个parameter file中有三类东东:block(块,位于一对“{ }”之间),实体,以及拓扑规范。尽管parameter file(一下简称parfile)需要一些规定的block,它的组成还是很灵活的。同大多数情况一样,组件不可以在定义前引用。每个parfile必须定义两个block---Glabal block和Stats block。然后再定义一些bus(总线)、controller(控制器)以及一个(iodriver)输入输出驱动,然后定义或引入一些存储设备的描述,之后将其实例化,最后以一种拓扑规范定义这些组件之间的联系。磁盘阵列以logorg block来描述,必须在parfile中定义至少一个logorg block;设备的轮转同步可选地在syncet block中描述;调整trace中的时间规模和和映射请求可在iosim block中描述。

    输入负载(trace 及合成负载):
    1,disksim 支持的trace格式有默认格式(ASCII)、验证格式(validate)、原始格式(RAW)。原始格式为普通的ascii流或者文件,每一行包括五个参数的值(以空格隔开)以描述一个磁盘请求。这5个参数为:
(1)请求到达时间(Float型,表示从模拟开始0.0到请求发生的时间,必需按时间顺序)
(2)设备号码(int型)
(3)block号(int型)
(4)请求大小(int型,请求的大小)
(5)请求选项(十进制int型,每一位是0或1表示一个选项是否开启,每一位的定义见disksim_global.h )       
    2,合成工作负载:parameter file设置了负载合成器的数量和合成负载的格式。每一个合成器以一个处于系统态的进程,在一定的“思考时间”后发出io请求,然后等待io请求完成。

    输出文件:Disksim生成了各存储组件的大量的工作数据。output file的项目内容及大小可以在parafile中设置,以去掉一些不感兴趣的内容。

    源文件分析
    解压的disksim(disksim-4.0)有一些子文件夹。对这些子文件夹得内容的分析如下: diskmodel-----该文件夹是为磁盘阵列物理组织和外布局的库;
doc----包含disksim的manual和一些说明文档;
include、lib---头文件和库文件
libddbg----disksim的调试库
libparam---解析disksim/diskmodel的parameter file的库
memsmodel-----MEMS-based的存储系统的一个模型
src----disksim的所有工具(包括可执行程序、源码)
valid----示例及测试
阅读(4364) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:openwrt下mentohust认证失败的原因

给主人留下些什么吧!~~