blade create disk fill
磁盘填充混沌实验

介绍

模拟磁盘填充,可以指定填充的目录和填充大小。
验证磁盘满下对系统服务的影响,比如监控告警、服务稳定性等。

参数

1
--path string 需要填充的目录,默认值是 /
2
--size string 需要填充的文件大小,单位是 M,取值是整数,例如 --size 1024
3
--reserve string 保留磁盘大小,单位是MB。取值是不包含单位的正整数,例如 --reserve 1024。如果 size、percent、reserve 参数都存在,优先级是 percent > reserve > size
4
--percent string 指定磁盘使用率,取值是不带%号的正整数,例如 --percent 80
5
--retain-handle 是否保留填充
6
--timeout string 设定运行时长,单位是秒,通用参数
Copied!

案例

1
# 执行实验之前,先看下 /home 所在磁盘的大小
2
df -h /home
3
4
Filesystem Size Used Avail Use% Mounted on
5
/dev/vda1 40G 4.0G 34G 11% /
6
7
# 执行磁盘填充,填充 40G,即达到磁盘满的效果(可用34G)
8
blade create disk fill --path /home --size 40000
9
10
# 返回结果
11
{"code":200,"success":true,"result":"7a3d53b0e91680d9"}
12
13
# 查看磁盘大小
14
df -h /home
15
16
Filesystem Size Used Avail Use% Mounted on
17
/dev/vda1 40G 40G 0 100% /
18
19
# 销毁实验
20
blade destroy 7a3d53b0e91680d9
21
22
{"code":200,"success":true,"result":"command: disk fill --debug false --help false --path /home --size 40000"}
23
24
# 查看磁盘大小
25
df -h /home
26
27
Filesystem Size Used Avail Use% Mounted on
28
/dev/vda1 40G 4.0G 34G 11% /
29
30
# 执行按百分比填充磁盘,并且保留填充磁盘的文件句柄
31
blade c disk fill --path /home --percent 80 --retain-handle
32
33
{"code":200,"success":true,"result":"f1fa65e70950d0eb"}
34
35
df -h
36
/dev/vda1 40G 30G 8.1G 79% /
37
38
# 查看文件句柄
39
lsof /home/chaos_filldisk.log.dat
40
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
41
chaos_fil 19297 root 3r REG 253,1 17697865728 394174 /home/chaos_filldisk.log.dat
42
43
# 执行保留固定大小实验场景
44
blade c disk fill --path /home --reserve 1024
45
46
df -h
47
Filesystem Size Used Avail Use% Mounted on
48
49
/dev/vda1 40G 37G 1.1G 98% /
Copied!

实验原理

使用 fallocate、dd 命令实现

场景问题

Last modified 1mo ago