项目地址:https://github.com/zhangyoujia/hd_write_verify
序言
hd_write_verify & hd_write_verify_dump 是测试磁盘稳定性和验证数据一致性的工具。可以测试 物理磁盘、虚拟机磁盘 等。相对于fio和vdbench等工具,此工具更加专注于数据对丢失、数据错误等问题。
- hd_write_verify : 测试磁盘稳定性
- hd_write_verify_dump : 验证磁盘数据一致性
1. 实现原理
1.1 整体布局
磁盘、簇、扇区、全局bitmap关系如下
-
- 每个磁盘/文件被划分为M个IO数据簇;
-
- 每个IO数据簇包含N个扇区;
-
- IO数据簇N个扇区中的数据:每个扇区除index字段表示簇中的扇区序号外,其它数据均相同;
-
- 测试磁盘/文件时,为每个磁盘/文件分配全局bitmap内存。
1.2 多线程、随机线程校验
2. hd_write_verify
工具
2.1 参数说明
2.2 输出信息说明
3. hd_write_verify_dump
工具
3.1 参数说明
3.2 输出信息说明
4. 测试场景
-
各种类型存储及文件系统的稳定性、可靠性测试
-
存储
内核存储协议栈、 spdk、ceph、glusterfs、linstor、ipsan/fcsan/multipath/nas/… -
文件系统:
本地文件系统:ext2/ext3/ext4/xfs/…;分布式文件系统:gfs2/…;内存文件系统: tmpfs/… -
复杂场景
- 虚拟机热迁移:内存数据一致性测试(tmpfs + loop设备)
- 查看内存变脏速度 (适用于虚拟机热迁移场景)
- 簇IO对齐、簇IO随机拆分:测试存储栈IO合并(高级功能)
- 全0数据测试,参数:–zero-ratio 和 --zero-sectors
- 数据回写(负载保持),参数:–writeback
- 设备指令/文件系统特性测试,参数:–write-zeroes 和 --discard