处理机器故障
本节详细介绍如何从各种失败场景中恢复。所有故障恢复场景都要求使用中列出的一种或多种备份类型备份.
成员失败
在无HA的情况下,主节点通过定时接收心跳消息来检测成员故障。如果在600秒内没有接收到心跳,则主服务器认为该成员已经死亡。有两种方法可以解决这个问题:
修复死亡的主机(例如,通过物理重新启动它)。当恢复到成员的连接时,主服务器将该成员再次标记为活动状态。
方法关闭主机并指示主机忘记成员节点
xe host-forget
CLI命令。一旦该成员被遗忘,在该成员中运行的所有vm将被标记为脱机,并可以在其他Citrix Hypervisor服务器上重新启动。务必确保Citrix Hypervisor服务器实际上处于脱机状态,否则可能会发生虚拟机数据损坏。
不要将您的池拆分为单个主机的多个池使用
xe host-forget
.此操作可能导致它们都映射到相同的共享存储并破坏VM数据。
警告:
- 如果您打算再次使用被遗忘的主机作为活动主机,请重新安装Citrix Hypervisor软件。
- 不要使用
xe host-forget
如果该资源池已开启HA功能,则执行命令。先关闭HA,然后忘记主机,再重新启用HA。
成员Citrix Hypervisor服务器发生故障时,可能仍有虚拟机注册在运行状态。如果您确定成员Citrix Hypervisor服务器确实宕机,请使用xe vm-reset-powerstate
命令,将虚拟机的电源状态设置为停止
.看到vm-reset-powerstate欲知详情。
警告:
该命令使用不当可能导致数据损坏。仅在必要时使用该命令。
在启动其他Citrix Hypervisor服务器上的虚拟机之前,还需要释放虚拟机存储上的锁。在同一时间,只有一台主机可以使用sr中的每个磁盘。当一台主机发生故障时,关键是要让其他Citrix Hypervisor服务器可以访问该磁盘。为此,在包含受影响虚拟机磁盘的每个SR的主池上运行以下脚本:/ opt / xensource / sm / resetvdis.py
host_UUID SR_UUID master
如果故障主机在崩溃时是SR主主机,则只需要提供第三个字符串(“master”)。(SR主机是池主机或使用本地存储的Citrix Hypervisor服务器。)
警告:
执行该命令前请确保主机已关闭。该命令使用不当可能导致数据损坏。
如果在运行该命令之前,试图在其他Citrix Hypervisor服务器上启动虚拟机resetvdis.py
脚本,然后您会收到以下错误消息:VDI
.
大师的失败
资源池的每个成员都包含在必要时接管master角色所需的所有信息。当主节点故障时,会发生以下事件:
如果启用了HA,系统将自动选出另一个master。
如果没有启用HA,每个成员都等待主服务器返回。
如果master在此时恢复,它将重新与它的成员建立通信,操作将恢复正常。
如果主服务器已死亡,则选择其中一个成员并运行该命令xe pool-emergency-transition-to-master
在上面。一旦它成为主服务器,运行该命令xe pool-recover-slaves
现在成员们都指向了新主人。
如果要修复或更换原来的主服务器,只需将其调出,安装Citrix Hypervisor软件,并将其添加到池中。由于池中的Citrix Hypervisor服务器强制是同质的,因此实际上没有必要将替换的服务器设置为主服务器。
当成员Citrix Hypervisor服务器转换为主服务器时,请检查默认池存储存储库是否设置为适当的值。可以使用xe pool-param-list
命令并验证default-SR
参数指向有效的存储库。
池失败
在整个资源池发生故障的不幸情况下,必须从头重新创建池数据库。方法定期备份池元数据xe pool-dump-database
CLI命令(见pool-dump-database
).
恢复一个完全失效的存储池。
安装一组新的主机。在这个阶段不要把它们放在一起。
对于指定为主主机的主机,使用
xe pool-restore-database
命令(见pool-restore-database).使用XenCenter连接主主机,确保所有共享存储和虚拟机恢复可用。
在剩余新安装的成员主机上执行加入池操作,并在相应的主机上启动虚拟机。
处理配置错误导致的故障
如果物理主机运行正常,但软件或主机配置已损坏:
使用实例恢复主机软件和配置。
Xe host-restore host=host file-name=hostbackup
重新启动到主机安装光盘并选择从备份恢复.
物理机器故障
如果物理主机出现故障,请使用以下列表中的适当步骤进行恢复。
警告:
运行在前一个成员(或前一个主机)上的虚拟机,如果出现故障,仍然会被标记为
运行
在数据库中。这种行为是为了安全。在两台不同的主机上同时启动虚拟机将导致严重的磁盘损坏。如果确定计算机(和虚拟机)处于脱机状态,则可以将虚拟机电源状态重置为停止
:
Xe vm-reset-powerstate vm=vm_uuid——force
可通过XenCenter或命令行方式重启虚拟机。
用一个仍在运行的成员替换一个失败的主节点:
执行如下命令:
Xe pool-emergency-transition-to-master——NeedCopy >
命令执行成功后,重启虚拟机。
使用实例恢复所有主机的存储池失败。
执行如下命令:
Xe pool-restore-database file-name=backup
警告:
该命令仅在目标计算机具有适当数量的名称适当的nic时才会成功。
如果目标计算机具有与原始计算机不同的存储视图,则使用
pbd-destroy
命令。接下来使用pbd-create
命令,重新创建存储配置。看到pbd命令获取这些命令的文档。如果您已经创建了存储配置,请使用
pbd-plug
或Storage >修复存储库菜单项中使用新的配置。重启所有虚拟机。
当虚拟机存储不可用时,恢复虚拟机。
执行如下命令:
Xe vm-import filename=备份元数据=true
如果导入元数据失败,执行以下命令:
Xe vm-import filename=备份元数据=true——force
此命令尝试在“尽最大努力”的基础上恢复VM元数据。
重启所有虚拟机。