ECS容灾故障演练
本文详细介绍了ECS在云盘数据、镜像备份以及跨可用区的故障演练与恢复操作。
应用场景
|
场景 |
说明 |
|
当云盘数据出现异常或丢失时,可利用快照将云盘数据恢复至创建快照时的状态。通过故障注入和演练恢复,能够加深对相关操作的理解。 |
|
|
镜像为ECS实例提供操作系统初始化的应用数据、预装软件和预配置数据,如果环境异常可以通过备份的镜像创建新的ECS实例,快速部署相同的操作系统和数据环境的ECS实例,以达到恢复的效果。通过故障注入和演练恢复,能够加深对操作的理解。 |
|
|
当单可用区存在风险或已有风险需要将实例迁移至其他可用区时,可通过SMC实现跨可用区迁移。同时在迁移过程中,如果目标可用区规格售空,也可以选择变更实例类型选取新的实例规格。通过单机故障和网络不通模拟出现宕机一次的风险,通过SMC迁移实例至新可用区,以避免受到风险影响。 |
准备工作
-
云盘数据与镜像备份演练:Linux操作系统实例,云助手为可用状态。具体操作,请参见创建ECS实例。
-
SMC跨可用区演练:Linux操作系统实例,并且有如下限制。
抢占式实例不支持跨可用区迁移。
更换实例规格时,仅限同规格族内变配(vCPU和内存),不支持跨规格族更改实例规格。关于实例规格族的详细信息,请参见实例规格族。
说明如果您想跨可用区更改到其他规格族,建议您执行跨可用区迁移操作后,再更改实例规格。具体操作,请参见包年包月实例升配规格或更改按量付费实例规格。
ECS 控制台支持单次最多跨可用区批量迁移 5 台实例,如需提升迁移数量,请联系人工支持。
以下实例规格族不支持跨可用区迁移。
异构计算
弹性裸金属服务器
超级计算集群
通用算力型实例规格族u2a
部分经济型实例规格族e(仅支持 e-c1m1、e-c1m2及e-c1m4)
x86计算
大数据型
本地SSD型
安全增强型
部分8代实例规格族(仅支持 hfr8i、hfc8i、hfg8i、r8ae、g8ae、c8ae、r8y、c8y、g8y、r8a、g8a、c8a、g8i、r8i及c8i)
部分9代实例规格族(仅支持r9i、 g9i及c9i)
云盘数据异常演练和恢复
-
连接实例并输入以下命令新建模拟数据。
远程连接实例具体操作,请参见使用Workbench登录Linux实例。
touch hello.txt echo "Hello, World!" > hello.txt -
ECS实例云盘进行快照备份,具体操作,请参见手动创建单个快照。
-
故障注入。
-
输入以下命令,模拟数据误删除。
rm hello.txt -
通过云助插件
ecs-fault-oscrash模拟被攻击导致云服务器异常宕机。sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject[ecs-user@iZuf69aocxxx ~]$ sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject Done
-
-
验证故障注入。
-
ECS非预期运维事件中,出现因实例错误实例重启类型的事件,说明故障注入成功。
该事件的事件等级为严重,事件状态为执行完毕,实例维护属性为自动重启恢复。
-
在ECS实例中,执行
uptime,查看系统运行时间来确定ECS实例是否重启。命令输出中
up 0 min表示系统刚启动 0 分钟,确认 ECS 实例已重启。[ecs-user@iZuf69aoc8c8u2 ~]$ uptime 18:21:46 up 0 min, 1 user, load average: 0.44, 0.10, 0.03
-
-
通过云盘快照恢复数据。具体操作,请参见使用快照回滚云盘。
-
验证数据正常且删除的数据是否已经成功恢复。
[ecs-user@iZ0jlxxx ~]$ ls hello.txt [ecs-user@iZ0jlxxx ~]$ cat hello.txt Hello, World! [ecs-user@iZ0xxx ~]$ pwd /home/ecs-user
镜像备份的故障演练和恢复
-
连接实例并新建模拟数据。
远程连接实例具体操作,请参见使用Workbench登录Linux实例。
-
输入以下命令,模拟新建数据。
touch hello.txt echo "Hello, World!" > hello.txt -
输入以下命令,查看系统环境。当前
$MY_VAR环境变量数据为空。echo $MY_VAR
-
-
对整个ECS实例的配置、操作系统、已安装的软件和数据进行全量备份。具体操作,请参见使用实例创建自定义镜像。
自定义镜像创建完成后,在 自定义镜像 列表中确认该镜像的 状态 列显示为 可用。
-
故障注入。
-
输入以下命令,模拟数据误删除。
rm hello.txt -
输入以下命令,模拟永久修改系统MY_VAR环境变量修改系统的运行环境。
echo 'export MY_VAR="value"' >> ~/.bashrc && source ~/.bashrc[ecs-user@iZxxx ~]$ echo $MY_VAR [ecs-user@iZxxx ~]$ echo 'export MY_VAR="value"' >> ~/.bashrc && source ~/.bashrc [ecs-user@iZxxx ~]$ echo $MY_VAR value [ecs-user@iZxxx ~]$ -
通过云助插件
ecs-fault-oscrash模拟被攻击导致云服务器异常宕机。sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject
-
-
验证故障注入。
-
ECS非预期运维事件中,出现因实例错误实例重启类型的事件,说明故障注入成功。
-
在ECS实例中,执行
uptime,查看系统运行时间来确定ECS实例是否重启。 -
宕机启动后查看hello.txt被删除且环境变量$MY_VAR是有效状态。
[ecs-user@iZxxx ~]$ pwd /home/ecs-user [ecs-user@iZxxx ~]$ ls [ecs-user@iZxxx ~]$ echo $MY_VAR value [ecs-user@iZxxx ~]$
-
-
使用预先备份的自定义镜像,创建具有相同操作系统、应用程序和数据的ECS实例,从而实现数据恢复。在同一地域的不同可用区中新建实例。具体操作,请参见使用自定义镜像或共享镜像创建实例。
-
登录使用自定义镜像创建ECS实例查看文件恢复,且环境变量也恢复到创建镜像时的状态。
[ecs-user@iZxxxZ ~]$ ls hello.txt [ecs-user@iZxxxZ ~]$ pwd /home/ecs-user [ecs-user@iZxxxZ ~]$ echo $MY_VAR [ecs-user@iZxxxZ ~]$
SMC跨可用区演练和恢复
-
连接实例并输入以下命令新建模拟数据。
远程连接实例具体操作,请参见使用Workbench登录Linux实例。
touch hello.txt echo "Hello, World!" > hello.txt -
通过SMC将ECS云服务器迁移到同地域的不同可用区。具体操作,请参见跨可用区迁移ECS。
迁移任务创建后,ECS 实例状态变为已停止并显示正在迁移标签,页面右上方弹出迁移进度提示(初始为 0%)。迁移期间请勿对实例执行停止、重启、释放等操作,且暂不支持快照和磁盘相关操作。
-
待迁移成功后登录验证,验证实例迁移到其他可用区且迁移前数据未发现丢失。
[ecs-user@xxx ~]$ ls hello.txt [ecs-user@xxx ~]$ cat hello.txt Hello, World! [ecs-user@xxx ~]$ pwd /home/ecs-user