状态变化类故障注入测试指南

 

1.1.  故障场景

状态变化类故障包括机器重启、掉电、意外关机、kernel panic、应用意外停止、进程被杀,进程hang死,时间漂移等。

1.2.  演练目标

是否能监控发现

应用是否支持故障自动恢复&资源转移,是否有对应的预案

故障恢复的时长

1.3.  模拟手段

1.3.1.  机器重启

直接在shell中执行reboot

reboot

1.3.2.  机器掉电

拔掉机器电源(VMware虚拟机在控制终端执行关机操作,ESXI虚拟机在控制终端执行关闭电源操作)

1.3.3.  机器关机

直接在shell中执行init 0

init0

1.3.4.  kernel panic

kernel panic用于模拟系统崩溃,在shell中执行如下命令

echo c > /proc/sysrq-trigger

其他用法

# 立即重新启动计算机

echo "b" > /proc/sysrq-trigger

# 立即关闭计算机

echo "o" > /proc/sysrq-trigger

# 导出内存分配的信息 (可以用/var/log/message 查看)

echo "m" > /proc/sysrq-trigger

# 导出当前CPU寄存器信息和标志位的信息

echo "p" > /proc/sysrq-trigger

# 导出线程状态信息

echo "t" > /proc/sysrq-trigger

# 故意让系统崩溃

echo "c" > /proc/sysrq-trigger

# 立即重新挂载所有的文件系统

echo "s" > /proc/sysrq-trigger

# 立即重新挂载所有的文件系统为只读

echo "u" > /proc/sysrq-trigger

1.3.5.  应用意外关闭

Kingbase意外停止,bin目录下手动执行

./sys_ctl –D xxx/data stop

1.3.6.  进程被杀死

kill  pid:

发送TERM(Terminate,终止)信号

Kill -9  pid:

该信号信号不会被发送到目标程序,而是通过内核立即终止这个进程。当一个进程以这种方式终止的时候,它没有机会去做些“清理”工作,或者是保存工作。

killall processname:

给匹配特定程序或用户名的多个进程发送信号

推荐工具:

blade create process kill --process  processname

1.3.7.  进程hang住

#注入

kill -s SIGSTOP pid

killall -s SIGSTOP processname

#恢复

kill -s SIGCONT pid

killall -s SIGCONT processname

推荐工具:

blade create process stop --process processname

1.3.8.  磁盘只读

立即重新挂载所有的文件系统为只读

echo "u" > /proc/sysrq-trigger

1.3.9.  时间漂移

date –s 修改系统时间

date -s "2020-09-08 10:40:40"

原文地址:https://www.cnblogs.com/mingfan/p/14295645.html