[root@dntosu001 vdbench]# cat pbd.conf
*SD: Storage Definition
*WD: Workload Definition
*RD: Run Definition
*validate= yes(-v)/read_after_write(-vr)/no_preread(-vw)/time(-vt)
*journal= yes/recover/only/noflush
monitor=/root/vdbench/shutdown
data_errors=(1000000000,6000)
sd=sd1,lun=/dev/pbd0,size=500g,journal=/root/journal,openflags=o_direct,threads=256
wd=wd1,sd=sd1,xfersize=8192,rdpct=0
rd=pbdtets,wd=wd1,iorate=max,elapsed=30m,interval=1
参数说明:
journal:指定数据存储路径,使用数据校验功能时可以通过设置journal保存测试数据,第二次运行vdbench时通过journal参数读取
上次的测试数据.
data_errors:当发生IO错误时,如果error总数超过1000000000或者运行时间超过6000s则退出
threads: 并行IO数,默认为8
open_flags=o_direct: 测试裸块设备时,必须是o_direct
xfersize: 测试数据块大小,默认4096,4K
monitor: 通过CTRL-C,Kill关闭vdbench,下次恢复journal继续校验数据将失败,设置monitor后,vdbench将检查参数指定的文
件内容,通过设置文件可以正常关闭vdbench
[root@dntosu001 vdbench]# ./vdbench -f pbd.conf -jn -v
[-jn: 将测试数据异步方式写入journal日志,同步方式性能太差,测不出压力]
[-v: 启用数据校验功能]
-jn,-v参数可以放入配置文件pbd.conf中(journal=noflush,validate=yes)
测试一段时间后,dd写入数据到pbd0,模拟数据丢失
[root@dntosu001 vdbench]# echo "end_vdbench" > /root/vdbench/shutdown
正常关闭vdbench
[root@dntosu001 vdbench]# ./vdbench -f pbd.conf -jnr -v
启动vdbench,并读取上次测试数据进行校验并继续测试. 校验完成结果:
localhost-0: 16:35:47.087 Total amount of key blocks read and validated: 13,904,362; key blocks marked in error: 0
dd写后会立马报错.
vdbench errorlog分析

写入时间戳: 0x53c4c79d79c66
[root@dntosu002 ~]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> int(0x53c4c79d79c66)
1473674042907750
>>> s, ms = divmod(1473674042907750, 1000000)
>>> '%s.%06d' % (time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms)
'2016-09-12 09:54:02.907750'
读取errorlog中报错的块数据内容
[root@dntosu001 vdbench]# ./vdbench print /dev/pbd0 0x29acab6000 8192

vdbench 数据校验测试方法的更多相关文章

  1. SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

    在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1. ...

  2. JSR教程2——Spring MVC数据校验与国际化

    SpringMVC数据校验采用JSR-303校验. • Spring4.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. • Spring在进行数据绑定时,可同时调用校验框架完成数据 ...

  3. Struts2数据校验

    Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...

  4. Spring MVC数据校验

    在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Jav ...

  5. spring mvc 数据校验

    1.需要导入的jar包: slf4j-api-1.7.21.jar validation-api-1.0.0.GA.jar hibernate-validator-4.0.1.GA.jar 2.访问页 ...

  6. SpringMvc中的数据校验

    SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...

  7. springmvc的数据校验

       springmvc的数据校验 在Web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对数据进行验证,输入验证分为客户端验证与服务器端验证. 客户端验证主要通过javaScript脚本 ...

  8. Struts 2 数据校验要用到的类和两种校验方式以及一些校验问题的解决

    通过继承ActionSupport类来完成Action开发,ActionSupport类不仅对Action接口进行简单实现, 同时增加了验证.本地化等支持 .真实开发中自定义Action都需要继承该类 ...

  9. Struts 2的数据校验

    既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢? 就让我带着大家一起来走进Struts 2的数据校验吧. 首先我们会想到在Stuts 2的登录案例中我们定义了一个Act ...

随机推荐

  1. Android 自定义简易的方向盘操作控件

    最近在做一款交互性较为复杂的APP,需要开发一个方向操作控件.最终用自定义控件做了一个简单的版本. 这里我准备了两张素材图,作为方向盘被点击和没被点击的背景图.下面看看自定义的Wheel类 publi ...

  2. mac下 安装tomcat 后项目无法启动以及 错误 找不到或无法加载主类

    按照网上的步骤,在mac上安装tomcat后,写个简单的测试类报错:错误 找不到或无法加载主类 Class JavaLaunchHelper is implemented in both /Libra ...

  3. java线程面试手写题

    1.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1.写出程序. public class Question1 { private int j = 0; /** * @param ...

  4. 京东原来你运用的这玩意,不错,我也要!! ContainerDNS

    转自社区 ContainerDNS 本文介绍的 DNS 命名为 ContainerDNS,作为京东商城软件定义数据中心的关键基础服务之一,具有以下特点: 分布式,高可用 自动发现服务域名 后端探活 易 ...

  5. Sql Server关于日期查询时,如果表中日期到具体某个时间

    1.如果查询日期参数为'2017/02/21',而数据库表中的字段为'2017/02/21 12:34:16.963',则需要格式化一下日期才能查询出来,如下 select * from table ...

  6. Oracle与EntityFramework(EF)的一些事情

    概要 Oracle 和EF 一起用的时候总会有各种问题,这里总结一下解决办法. 模式 Schema 用过Oracle的人应该知道,其实Oracle的用户名一般就是它的模式名称,如果你在用databas ...

  7. 求最长公共子串 Longest Common Subsequence

    最长公共子串 // Longest Common Subsequence 子串有别于子序列, 子串是连续的, 而子序列可以不连续 /*--------------------------------- ...

  8. CCControlExtension/CCControl

    #ifndef __CCCONTROL_H__ #define __CCCONTROL_H__ #include "CCInvocation.h" #include "C ...

  9. pip-修改为国内镜像源

    pip 常用命令 pip install ./downloads/SomePackage-1.0.4.tar.gz pip install http://my.package.repo/SomePac ...

  10. 【QT】QString类型转换为const char*(toLatin1)

    Qstring str = "helloworld"; char *s; QByteArray ba = str.toLatin1(); s = ba.data(); toLati ...