vdbench的作用_Vdbench—-文件系统IO,一致性校验,常见问题

vdbench的作用_Vdbench—-文件系统IO,一致性校验,常见问题Linux 环境 多客户联机运行 注意 此时会出现 avahi daemon 服务的报错日志信息 关闭即可 systemctl stop avahi daemon avahi daemon 是一种 Linux 操作系统上运行在客户机上实施查找基于网络的 Zeroconf service 的服务守护进程 该服务可以为 Zeroconf 网络实现 DNS 服务发现及 DNS 组播规范 用户程序通过 Linux

Linux环境—-多客户联机运行

注意,此时会出现avahi-daemon服务的报错日志信息:

关闭即可:systemctl stop avahi-daemon

avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。该守护进程配合缓存用户程序的答复,以帮助减少因答复而产生的网络流量。 每个客户的都需要安装vdbench,路径保持一致

SSH互联,选一个客户的为父节点,把每个子节点都信任父节点

父节点为93.93.41.5,子节点为93.93.41.6

ssh-keygen -t rsa 生成秘钥

chmod 755 /root/.ssh/ 修改生成秘钥的权限

scp /root/.ssh/id_rsa.pub 93.93.41.6:/root/.ssh/authorized_keys 拷贝公钥

3. 验证SSH互信

在父节点上ssh每一个子节点,如果不需要输入秘钥就能登录,则互信成功。

4 多客户端配置文件

hd=default,dbench=/home/Vdbench/,user=root,shell=ssh

hd=hd1,system=93.93.31.7

hd=hd2,system=93.93.41.8

hd=hd3,system=93.93.41.9

fsd=fsd1,anchor=/tmp/yht/client1,depth=2,width=100,files=2000,size=100m,shared=yes

fsd=fsd2,anchor=/tmp/yht/client2,depth=1,width=1000,files=2000,zies=(20m,40,100m,60),shared=yes

fsd=fsd3,anchor=/tmp/yht/client3,depth=1000,width=1,files2000,size=1m,shared=yes

fwd=fwd1,fsd=fsd1,host=hd1,operation=read,xfersize=(1m,40,64k,60),fileio=random,fileselect=sequantial,threads=32

fwd=fwd2,fsd=fsd2,host=hd2,operation=write,xfersize=64k,fileio=random,fileselect=sequantial,threads=32

fwd=fwd3,fsd=fsd3,host=hd3,rdpct=60,xfersize=4k,fileio=random,fileselect=sequantial,threads=32

rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapesed=600,interval=10

注:fsd中shared,vdbench不允许不同的slave之间共享同一个目录结构下的所有文件,因为这样会带来很大的开销,但是它们允许共享同一个目录结构。加入设置了shared=yes,那么不同的slave可以平分一个目录下所有的文件来进行访问,相当于每个slave有各自等分的访问区域,因此不能测试多个客户的对同一个文件的读写。 vdbench的数据一致性校验参数

推荐参数:-jn

打开vdbench校验数据的参数为-v或-j,这个过程会为每一次写操作记录日志用于后续校验。

使用-v参数,则生成的校验日志直接保存于内存中,使用-j参数则生成一个校验日志的文件,第二次校验时,-jr即可进行日志恢复进行校验。-v直接记录于内存之中,速度更快,但如果存储系统出现重启或内存清理,那么-v参数记录的校验日志就丢失了;-j直接写到磁盘上,安全有保证但速度会慢一下,此时可选择-jn,异步写到磁盘上,速度和安全都有一定的保证。 数据校验原理

数据校验的工作流程如下:每一个在存储系统中的第一次写操作记录在一个表中,假定写操作的块大小是1m,那么这个块大小中的每512字节中包含的两项–8字节的逻辑字节地址(LBA)和一个字节的数据校验key值(标记是第几次写,范围为0-125,00代表创建写,01代表第一次覆盖写,以此类推,当到达126后折返00,重新来一轮)会被记录,这个过程为生成校验日志;第二次重新运行脚本(使用参数-jr或者-vr)则根据第一次记录的日志进行数据校验 vdbench 过滤多余系统日志

messagescan=no 参数说明—vdbench常见问题(转载整理)

1、-f参数后面多个配置文件是同时执行还是顺序执行;

-f后面的配置文件里的参数通过parseParameterLines()函数进行顺序解析,写入并生成输出文件parmfile.html和parmscan.html(包含了完整的参数配置)。

执行时,首先运行rd,进入RD中调用的wd或fwd,然后进入WD或FWD中的sd或fsd(若有HD,同上调用)。

2、-v校验中逻辑字节地址/数据校验关键字是存储在哪个位置;

数据块的大小是xfersize的值,数据校验时,每写入数据块512个字节包含一个8字节的lba和一个1字节的key值。

其中lba指的是字节地址,与文件系统的偏移量和文件的偏移量有关。

Key值记录了写入块的次数,每写入块一次,key值加1,加到126后直接返回1。

3、-v校验中的校验是发生在什么时候;

每写入一次数据块时,先读后写,写前写后内容进行校验。

进行数据校验需要执行-v,也可以在参数文件中写入Validate=yes,也就是说,在配置文件执行生成系统文件后,校验一直进行。

4、-vt时间戳显示在哪,是什么意思,是否可以查看;

内存中最后一次写入或读取成功的时间戳。可以在输出结果中查看:

5、逻辑地址有啥用。

Lba记录了每个数据块的地址,校验时根据lba方便查找校验错误的地方。

6、校验错输出script_name什么意思,data_errors参数的作用;

返回校验错误,描述出错的位置,方便测试人员定位查阅。如问题5,定位在fsd=fsd1文件系统中出错及第二行中显示的文件名字及出错的位置。

7、-v该末尾一个字节。是否能校验么,报错的位置是否正确;

在文件末尾插入字节,可以被校验出。报错位置正确,定位在文件的结尾位置。

8、lba后面的值有什么意思;

lba指的是逻辑字节地址,与文件系统的偏移量和文件的偏移量有关。校验错误返回的lba指的是在文件中的出错位置。

9、-j和-v之间的区别;

-v的数据校验,校验文件会输出到内存中,但是一旦vdbench关闭或者系统重启,校验就会失败。而-j能进行持续校验,等下次重启时,会恢复原始数据重新校验。如果只写-j而不加-v,也会进行-v操作。

10、-j中有几个fsd就有几个jnl文件map文件

是的

运行./vdbench –j –f testcount ,生成日志文件所在的目录如下:

11、jnl和map文件有什么区别么?

开始执行时,vdbench会生成两个文件Map backup file 和journal file。系统出现故障时(仅仅丢失了内存映射表中的数据),这两个文件由于保留了原始数据(恢复数据时首先读取journal文件的数据,如果失败,再从Map backup文件中写入),方便测试人员继续进行读写和校验。

(1)正常时:内存中数据校验映射表的内容写入到backup和journal文件。日志更新内容持续写入到journal文件结尾部分并生成日志记录。

(2)系统出现问题时: Vdbench重启并进行数据修复,从journal文件开始部分读出原始数据,并把数据更新到内存映射表中。一旦journal到达文件结尾,读取并验证用“modified” 标记的所有数据块。接着执行(1)过程。

如果由于系统崩溃,journal文件的原始数据写入内存映射表中失败,直接读取backup文件内容并写入。

综上,可以看出,map backup文件修复数据性能更高。

12、命令之间有没有冲突

没有,但是命令设置时必须-f后面加 parmfile文件,如果有-s命令则会模拟执行文件。如果命令中只有-j却无-v,则隐含着进行数据校验生成日志文件。

13、count参数的意思

count=(nn,mm) 快速创建SD序列(nn是开始数字,mm是数字个数)

如fsd=fsd,anchor=/ww,count=(1,5)在/ww1-/ww5中创建fsd1-fsd5

如运行:

/mnt目录下显示的目录结构如下:

若在wd中限定fsd1,则只显示wwz1一个目录:

若在fsd中限定fsd1,则会出错,如下

14、range的wd的寻找范围,是否可以运用到fsd中

文件系统中不可用, 测试过程如下:

15、rdpct-rhpct-whpct区别

Sd中: rdpct=nn 读操作的比例,默认为100%。rdpct=80代表读写比例4:1。

rhpct=nn 只在读裸设备时使用,读缓存命中率,默认值为0。

whpct=nn 只在写裸设备时使用,写缓存命中率,默认值为0。

Fsd中不存在rhpct及whpct参数:

rdpct在文件上的读写操作比例。rdpct=80代表读写比例4:1。必须同时添加fileio=random参数,不能留空(系统默认fileio=sequential)

计算公式如下:

rdpct = read.operations * 100. / (read.operations + write.operations);

16、缓存命中,rhpct部分,1M的意思。

只针对sd而言。

每一个存储体积被分成两部分:hit area指用于缓存命中部分(这由hitarea=nn设定,hitarea默认为1M),miss area 指SD剩下的部分缓存未命中的部分。

17、xfersize=(1-64k,d)执行顺序

在文件系统中不支持这种方式。只支持xfersize=nn或xfersize=(x1,nn1,x2,nn2,…)其中nn1+nn2+…=100,报错如下:

18、xfersize=(1k,10)这种格式,是报错还是按照4k块大小执行剩余的90%

19、skew,IO倾斜比,没有IOrate参数时,参数是否生效;

直接会报错

在fsd中,fwdrate不存在时

20、skew对IOPS生效还是对带宽生效

iops生效,skew时对fwdrate或iorate的分配

21、iorate指的是带宽还是iops

iops

22、rd的名字是否有要求

没有要求,可以任意定义,只是个名字而已。

23、count中,是否创建多个fsd?还是创建了5个目录?

多个fsd,每个fsd下又存在多个目录,见问题13

24、count中,rd引入部分fsd是否可以?

可以,见问题13

编程小号
上一篇 2025-03-22 13:51
下一篇 2025-02-06 07:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/141939.html