可靠性故障模式与观察点
一、可靠性故障模式
1、网络类故障
网络断开类:
网络闪断5s:
ifdown ib5e-0 && sleep 5 && ifup ib5e-0
nmcli device disconnect ib5e-0 && sleep 5 && nmcli device connection ib5e-0
ifconfig ib5e-0 down && sleep 5 && ifconfig ib5e-0 up
网络长时间断开120s:
ifdown ib5e-0 && sleep 120 && ifup ib5e-0
nmcli device disconnect ib5e-0 && sleep 120 && nmcli device connection ib5e-0
ifconfig ib5e-0 down && sleep 120 && ifconfig ib5e-0 up
nmcli、ifup/down、ifconfig的区别
nmcli主要是用于与NetworkManager交互的命令行工具,up和down一个特定的网络连接。这里的“连接”是NetworkManager管理的一个配置组,包含了接口名、IP地址、DNS设置、Wi-Fi SSID等信息。
ifup&ifdown:读取系统网络配置文件(如/etc/sysconfig/network-scripts/ centos系统上)以配置网络接口,意味着不仅接口本身被激活,可能还会应用其他网络设置(如IP地址、路由等)。
ifconfig up&down命令用于简单地激活(启用)指定的网络接口,不会读取系统的网络配置文件或应用额外的配置。
网络亚健康:
网络高时延:tc qdisc add dev eth0 root netem delay 100ms 10ms 30% # 延迟100ms, 30% ± 10ms
网络丢包:tc qdisc add dev ens3f0 root netem loss 5%
网络压力大:dd if=/dev/urandom of=ddbigfile bs=1M count=100000; scp ddbigfile ip:path # 拷贝大文件过去
网络包重复:tc qdisc add dev eth0 root netem duplicate 1%
网络包损坏:tc qdisc add dev eth0 root netem corrupt 5%
网络包乱序:tc qdisc add dev eth0 root netem delay 10ms reorder 25% 50% #将 eth0 网卡的传输设置为:有 25% 的数据包乱序,25%的包中50%失去乱序
tc qdisc add dev eth0 root netem delay 10ms reorder 25% # 有 25% 的数据包乱序
tc qdisc基本参数:
tc qdisc add dev eth0 root netem duplicate 1% # 添加规则
tc qdisc change dev eth0 root netem duplicate 1% # 修改规则
tc qdisc del dev eth0 root netem duplicate 1% # 删除规则
tc_qdisc常常会默认带fq_codel队列管理规则
qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64
操作场景扩展:
1、管理网、前端网、后端网
2、硬盘类故障
硬盘IO超时:模拟
/opt/h3c/spdk/scripts/rpc.py bdev_nvme_list_all # 查看盘
/opt/h3c/spdk/scripts/rpc.py bdev_nvme_error_injection -e # 打开故障注入开关
/opt/h3c/spdk/scripts/rpc.py bdev_nvme_io_latency_error_injection -c 0000:64:00.0 -e -v 5000 -p 50 # 50%概率注入5000ms超时时间
onestor dpe osd disk force recover disk sn xxx # 恢复被隔离的盘,其中sn为查看盘里的serial number
慢盘:模拟
拔盘:物理、模拟
坏盘:模拟
换盘:原盘更换、新盘更换
osd down:
onestor mon osd down osd_id 1
onestor mon osd up osd_id 1
盘空间不足:单个盘、多个盘
3、进程类故障
进程停止后启动:systemctl stop service,systemctl start service
进程重启:systemctl restart service
进程杀死:kill -9 service
场景扩展:
1、数据库异常
2、kvdb异常
业务相关进程类汇总:dpe、uds、osd、epc、mon
4、节点类故障
节点重启:reboot、HDM操作、echo b >/proc/sysrq-trigger(重启主机)
主机关机:shutdown、HDM操作、echo o >/proc/sysrq-trigger(关闭主机)
节点断电:power off 、HDM操作
主机死机:echo c >/proc/sysrq-trigger
内存高占用:
CPU高占用:
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
ps -ef| grep 'dd'| grep -v grep|awk '{print $2}'|xargs kill -9;date # 解除高占用
操作场景扩展:
1、mon-leader节点、mon_follow节点
2、VIP节点、非VIP节点
3、handy节点、非handy节点
5、基础故障模式扩展
1、故障模式之间组合
2、节点间轮流故障
3、拷机反复故障
4、业务功能与故障组合(升级+故障or扩缩容+故障)
6、可靠性业务背景
1、非对齐混合随机读写IO
2、大小IO
3、不同挂载方式(epc、nfs)
4、文件组合op
5、元数据加压
二、观察点检查
1、业务类
业务连续性,掉0时间
业务性能下降,性能下降时间,幅度
数据一致性
2、日志文件类
有无corefile
日志可定位、打印速度,空间占用
3、资源类
CPU、内存资源占用是否异常
各相关进程状态是否异常
页面显示是否异常
告警是否正常上报,且恢复可消除
数据均衡性: