公司前不久搭建的cloudstack 4.0(3台XenServer 6.1节点,Centos 6.3管理机器,freenas)由于机房意外停电,造成管理机器无法联系节点,系统vm无法启动,加上时间紧迫,上面有没有上面重要数据,就进行全新安装。安装后,为防止相同事件再次发生,做了简单的灾难恢复测试。
故障模拟
1,系统vm维护
步骤:维护模式关闭系统ssvm cpvm所在物理主机,启用主机维护模式,重启主机
现象:ssvm cpvm 状态处于stop状态
恢复:主机启动完成后,取消维护模式,ssvm cpvm自动启动(5分钟左右)
2,系统vm故障
故障:系统vm丢失
步骤:删除ssvm,cpvm
现象:无法进行添加删除vm操作
恢复:删除的ssvm,cpvm 会自动重建,重建完成后功能恢复
3,系统vrouter故障
故障:系统vrouter丢失
步骤:停止并删除vrouter
现象:客户vm无法通过域名访问,通过ip访问无影响
恢复:重新执行创建vm操作,vrouter自动创建;客户vm需要重启网络服务
4,重启CS管理机器
故障:管理服务器宕机
步骤:直接重启管理机器
现象:无法登陆控制台
恢复:系统启动完成后,正常登陆
5, 存储意外关闭
故障:模拟主存储故障
步骤:重启关闭主存储并禁用网卡10分钟
现象:cpvm,ssvm状态系统正常,cs控制台会有disconneting提示;用户vm状态running,但是无法通过console连接,停止后,无法重启;添加用户vm
一直处于starting状态
恢复:恢复通信后,自动恢复,如果有问题,依次重启各个vm主机
6, 集群主机故障1
故障:所有主机网络故障
步骤:直接关闭主机网络交换机
现象:所有主机状态都为down,系统vm为starting,无法进行用户vm操作
恢复:恢复交换机故障,当master主机通信故障时,及时其他主机通信恢复,其他主机状态依旧为down;master主机恢复通信后,其他主机依次恢复;最后重启用户vm
7, 集群主机故障2
故障:非master主机网络故障
步骤:直接关闭主机网络接口
现象:主机状态都为down,该主机上的用户vm处于shutdown;管理主机日志提示故障主机设置master异常
恢复:直接启动状态为shutdown的用户vm(cloudstack会自动在其他可用主机节点部署用户vm);恢复故障主机故障后重新加入
8, 集群主机故障3
故障:master主机故障
步骤:直接关闭主机网络接口,模拟意外关闭
现象:主机状态为down,该主机上的用户vm处于shutdown
恢复:其他主机会自动成为master主机;恢复原故障主机通信,仍旧无法加入主机,cs中删除主机,重启;本机登陆命令行,执行xe
pool-join 加入到pool,cs中再次添加主机如果需要;资源池的每个成员都将包含担任主主机角色所需的所有信息。
在cloudstack一个cluster中的pool资源池中(通过xenCenter也可以创建资源池),有一个物理主机充当master主机,进行资源的分配;当一个pool中的master主机发生故障,将依次发生下列事件:
1. 成员意识到通信已中断,每个成员都重试 60 秒
2. 然后,各成员将自身置于紧急模式,这样,成员 XenServer 主机现在将仅接受池紧急命令(xe
pool-emergency-reset-master 和 xe
pool-emergency-transition-to-master)。此时,如果master主机恢复,它将重新建立与其成员的通信,成员退出紧急模式,操作恢复正常。不过,如果master主机已停用,您应该选择一个成员并对其执行
xe pool-emergency-transition-to-master 命令。当该成员成为master主机后,执行命令 xe
pool-recover-slaves,其他成员现在将指向此新master主机。如果修复或替换用作原始master主机的服务器,您只需启动服务器,安装
XenServer 主机软件,然后将它添加到池中。由于池中的 XenServer
主机强制为同类主机,因此实际上不需要将替换的服务器设为主主机。将成员 XenServer
主机转换为master主机后,您还应检查默认池存储库是否设置了适当的值。通过使用 xe pool-param-list 命令并验证
default-SR 参数是否指向有效存储库,可实现此操作。
名词解释:xenserver master
在一个xenserver
组成的资源pool中,会选举一个xenserver作为该pool的master,管理工具cloudstack或者xencerter通过操作master,让master决定vm的资源分配情况