4.4. 隔离
在 Red Hat Virtualization 环境中,隔离操作(fencing)就是由 Manager 通过使用隔离代理发起的、由电源管理设备负责执行的主机重启操作。隔离操作可以使集群对意料外的主机故障做出相应的响应;或根据预先设定的规则实现省电、负载均衡、虚拟机可用性策略等功能。
隔离功能可以保证 SPM 角色一直被一个正常工作的主机所具有。如果被隔离的主机是 SPM,这个 SPM 角色会被系统收回并分配给另外一台正常工作的主机。因为拥有 SPM 角色的主机是唯一一个可以修改数据域结构元数据的主机,所以如果作为 SPM 的主机没有配置隔离功能,当它出现故障时,环境中的所有需要修改数据域元数据的操作(如创建和销毁虚拟磁盘、进行快照、扩展逻辑卷等)都将无法进行。
当一个主机处于“无响应”状态时,在它上面运行的所有虚拟机也会处于“无响应”状态,而虚拟机对虚拟磁盘镜像操作所留下的“锁定”记录仍然会保留在主机上。这时,如果没有使用隔离功能,而直接在其它主机上重启那些无响应的虚拟机,并且虚拟机有写操作权限时,虚拟机原来的磁盘镜像中的数据可能会被破坏。
使用隔离功能可以避免这个问题的出现。当主机被重启后,以前的”锁定“记录会被释放。Red Hat Virtualization Manager 会使用一个隔离代理来确认出现问题的主机是否已经被重启。当 Manager 收到了主机已经重启成功的确认后,就可以在其它主机上运行原来在出现问题的主机上运行的虚拟机,而不会造成数据的破坏。隔离是实现高可用性虚拟机的基础,没有这个功能,高可用性虚拟机将无法在其它主机上运行。
当一个主机无响应时,Red Hat Virtualization Manager 会等待 30 秒的宽限期后决定是否进行其它操作,这可以避免因为主机的临时性错误造成的不必要的操作。当宽限期过后,主机仍然没有响应,Manager 就会自动启动隔离操作。Manager 使用电源管理设备的隔离代理来停止主机的运行;在确认主机已经停止后,再次启动主机,并确认主机已经被成功启动。当主机启动完成后,它会尝试重新加入到原来的集群中。如果主机的故障在启动后已被解决,它的状态会变为 Up,并可以继续正常运行虚拟机。