通过 Chaos-Mesh 打造更稳定 TiDB 数据库高可用架构 (二)
作者: lqbyz 原文来源:https://tidb.net/blog/6e0e1e3c
Chaosd 组件简介
本文主要介绍 Chaosd 在物理机进行相关混沌工程的实验。 Chaosd 是 Chaos Mesh 提供的一款混沌工程测试工具(需要单独下载和部署),用于在物理机环境上注入故障,并提供故障恢复功能。
Chaosd 具有以下核心优势:
易用性强:输入简单的 Chaosd 命令即可创建混沌实验,并对实验进行管理。
故障类型丰富:在物理机的不同层次、不同类型上都提供了故障注入的功能,包括进程、网络、压力、磁盘、主机等,且更多的功能在不断扩展中。
支持多种模式:Chaosd 既可作为命令行工具使用,也可以作为服务使用,满足不同场景的使用需求。
支持故障类型
你可以使用 Chaosd 模拟以下故障类型:
进程:对进程进行故障注入,支持进程的 kill、stop 等操作。
网络:对物理机的网络进行故障注入,支持增加网络延迟、丢包、损坏包等操作。
压力:对物理机的 CPU 或内存注入压力。
磁盘:对物理机的磁盘进行故障注入,支持增加读写磁盘负载、填充磁盘等操作。
主机:对物理机本身进行故障注入,支持关机等操作。
对于每种故障类型的详细介绍和使用方式,请参考对应的说明文档。
1、运行环境
linux 系统内核必须为 2.17 及以上版本。
查询如下:
2、下载和部署
3、运行模式
可以通过以下模式使用 Chaosd
命令行模式:将 Chaosd 作为命令行工具,直接运行即可注入故障、恢复故障。
服务模式:将 Chaosd 作为服务运行在后台,通过发送 HTTP 请求来注入故障、恢复故障。 nohup chaosd server –port 31767 &
3.1、命令行模式
直接运行命令来创建、管理实验
3.2、服务模式
让 chaosd 在后台运行,通过发送 http 请求的方式来创建、管理实验。
4、使用示例
4.1、进程
4.2、网络
本章主要介绍如何使用 Chaosd 模拟网络故障的场景,该功能主要使用 iptables、ipsets、tc 等工具修改网络路由、流量控制来模拟网络故障。
https://chaos-mesh.org/zh/docs/simulate-network-chaos-in-physical-nodes/
通过命令行的方式:
4.3、主机
4.4、压力
该功能通过使用 stress-ng 在主机上生成 CPU 或者内存压力,支持通过命令行模式或服务模式创建压力实验。
4.5、JVM
4.5、磁盘
本文主要介绍如何使用 Chaosd 模拟磁盘故障场景。使用该功能,你可以在物理机器上模拟磁盘读写负载(通过 dd),或磁盘填充(通过 dd,或 fallocate)。
4,6、时间
5、查找和恢复实验
运行以下命令可查看搜索命令 (
1、查看网络任务
chaosd search –kind network –status success
2、查找实验
chaosd search –kind process –asc –limit 2 -o 1 –status destoryed
在创建完实验后,如果想撤销实验造成的影响,可以使用实验的恢复功能
Chaosd recover UID 的方式恢复实验。
6、出现的问题。
如果通过dashboard创建的实验,通过chaosd recover id,dashboard会出现
Failed to recover chaos: : Delete "http://172.16.4.169:31767/api/attack/a5adf7bd-72a0-4465-8b64-f37b8b785932": dial tcp 172.16.4.169:31767: connect: connection refused
解决步骤,如下:
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/7f81516e208ed41e20569abbf】。文章转载请联系作者。
评论