模拟磁盘故障
本文主要介绍如何使用 Chaosd 模拟磁盘故障场景。使用该功能,你可以在物理机器上模拟磁盘读写负载(通过 dd)或磁盘填充(通过 dd 或 fallocate)。
#
使用命令行模式创建实验本节介绍如何在命令行模式中创建磁盘故障实验。
在创建磁盘故障实验前,可运行以下命令行查看 Chaosd 支持的磁盘故障类型:
输出结果如下所示:
目前 Chaosd 支持创建磁盘读负载实验、磁盘写负载实验、磁盘填充实验。
#
模拟磁盘读负载#
模拟磁盘读负载命令输出结果如下所示:
#
模拟磁盘读负载相关配置说明配置项 | 配置缩写 | 说明 | 值 |
---|---|---|---|
path | p | 指定所读数据的文件路径。如果没有设置此参数,或者设置参数值为空字符串,则从目录“/”所挂载的虚拟磁盘文件读取。根据读取文件的权限不同,会需要用户使用一定的权限运行本程序。 | string 类型,默认为"" |
process-num | n | 指定使用多少个并发运行的 dd 进程执行程序。 | uint8 类型,默认值为 1,范围为 1-255 |
size | s | 指定读取多少数据。size 为 多个 dd 读数据的总量。 |
#
模拟磁盘读负载示例输出结果如下所示:
#
模拟磁盘写负载#
模拟磁盘写负载命令输出结果如下所示:
#
模拟磁盘写负载相关配置说明配置项 | 配置缩写 | 说明 | 值 |
---|---|---|---|
path | p | 指定所写数据的文件路径。如果没有设置此参数,或者设置参数值为空字符串,则会在程序执行目录下创建一个临时文件。根据写入文件的权限不同,会需要用户使用一定的权限运行本程序。 | string 类型,默认为 "" |
process-num | n | 指定使用多少个并发运行的 dd 进程执行程序。 | uint8 类型。默认值为 1,范围为 1-255 |
size | s | 指定写入多少数据,size 为 多个 dd 写数据的总量。 | string 类型,默认为"",合法形式为一个整数加一个单位。例如:1M、512kB。支持的单位有 c=1、w=2、b=512、kB=1000、K=1024、MB=1000*1000,M=1024*1024、GB=1000*1000*1000、G=1024*1024*1024 BYTE 等。size 不能为 "" 。 |
#
模拟磁盘写负载示例输出结果如下所示:
#
模拟磁盘填充#
模拟磁盘填充命令输出结果如下所示:
#
模拟磁盘填充相关配置说明配置项 | 配置缩写 | 说明 | 值 |
---|---|---|---|
destroy | d | 如果此参数为 true ,则在填充文件后立即删除填充文件 | bool 类型,默认为 false。 |
fallocate | f | 如果此参数为 true ,则使用 linux 调用 fallocate 来快速申请磁盘空间,此时 size 必须大于 0。如果此参数为 false,则使用 linux 调用 dd 以相对较慢速度填充磁盘。 | bool 类型,默认为 true。 |
path | p | 指定所写数据的文件路径。如果没有设置此参数,或者设置参数值为空字符串,则会在程序执行目录下创建一个临时文件。根据写入文件的权限不同,会需要用户使用一定的权限运行本程序。 | string 类型,默认为 "" |
percent | c | 指定填充多少百分比磁盘。 | string 类型,默认为 "",可以填入 uint 类型的正整数, size 不能和 percent 都为 "" |
size | s | 指定写入多少数据。 | string 类型,默认为"",合法形式为一个整数加一个单位。例如:1M、512kB。支持的单位有 c=1、w=2、b=512、kB=1000、K=1024、MB=1000*1000,M=1024*1024、GB=1000*1000*1000、G=1024*1024*1024 BYTE 等。size 不能和 percent 都为 "" 。 |
#
模拟磁盘填充示例输出结果如下所示:
#
使用服务模式创建实验(正在持续更新中)