高可用性可以在以下几个层面实现:
1 应用层高可用性:如实现mysql、oracle数据库应用程序的群集,主要是判断mysql、oracle应用程序是否停止运行。
2 操作系统高可用性:如windows的故障转移群集(windows failover clusteringWFC)。
3 虚拟化层的高可用性:如vsphere high availability(HA)和vsphere faulttolerance(FT)。
4 物理层的高可用性:如:多网络适配器、SAN等。
vSphere HA 和 Fault Tolerance(FT)功能分别通过提供中断快速恢复和连续可用性来最小化或消除非计划停机时间。
使用 vSphere,企业可以轻松提高为所有应用程序提供的基准级别,并且以更低成本和更简单的操作来实现更高级别的可用性。使用vSphere,你可以:
a 独立于硬件、操作系统和应用程序提供更高可用性。
b 减少常见维护操作的计划停机时间。
c 在出现故障时提供自动恢复。
一、vSphere HA 提供快速中断恢复
vSphere HA 利用配置为群集的多台ESXi 主机,为虚拟机中运行的应用程序提供快速中断恢复和具有成本效益的高可用性。
vSphere HA 通过以下方式保护应用程序可用性:
1 通过在群集内的其他主机上重新启动虚拟机,防止服务器故障。
2 通过持续监控虚拟机(通过vmware tools实现主机向虚拟机发送检测信号)并在检测到故障时对其进行重新设置,防止应用程序故障。
与其他群集解决方案不同,vSphere HA 提供基础架构并使用该基础架构保护所有工作负载:
a 无需在应用程序或虚拟机内安装特殊软件。所有工作负载均受vSphere HA 保护。配置 vSphere HA 之后,不需要执行操作即可保护新虚拟机。它们会自动受到保护。
b 可以将 vSphere HA 与 vSphere Distributed Resource Scheduler (DRS) 结合使用以防止出现故障,以及在群集内的主机之间提供负载平衡。
与传统的故障切换解决方案相比,vSphere HA 具有多个优势:
最小化设置 | 设置 vSphere HA 群集之后,群集内的所有虚拟机无需额外配置即可获得故障切换支持。 |
减少了硬件成本和设置 | 虚拟机可充当应用程序的移动容器,可在主机之间移动。管理员会避免在多台计算机上进行重复配置。使用 vSphere HA 时,必须拥有足够的资源来对要通过 vSphere HA 保护的主机数进行故障切换。但是,vCenter Server 系统会自动管理资源并配置群集。 |
提高了应用程序的可用性 | 虚拟机内运行的任何应用程序的可用性变得更高。虚拟机可以从硬件故障中恢复,通过监控和响应 VMwareTools 检测信号并重新启动未响应的虚拟机,可防止客户机操作系统崩溃。 |
DRS和vMotion 集成 | 如果主机发生了故障,并且在其他主机上重新启动了虚拟机,则 DRS 会提出迁移建议或迁移虚拟机以平衡资源分配。 |
vSphere HA 群集允许 ESXi 主机集合作为一个组协同工作,这些主机为虚拟机提供的可用性级别比ESXi 主机单独提供的级别要高。
群集中的主机均会受到监控,如果发生故障,故障主机上的虚拟机将在备用主机上重新启动。
创建 vSphere HA 群集时,你可以选择使用单个主机作为首选主机(master)以与 vCenterServer 通信并监控其他主机、从属主机(slave)及其虚拟机的状况。
如果为群集启用了 vSphere HA,则所有活动主机(未处于待机或维护模式的主机或未断开连接的主机)都将参与选举以选择群集的首选主机。挂载最多数量的数据存储的主机在选举中具有优势。每个群集只存在一台首选主机,其他所有主机都是从属主机。如果首选主机出现故障、关机或从群集中移除,则会进行新的选举。
群集中的首选主机具有很多职责:
1 监控从属主机的状况。如果从属主机发生故障或无法访问,首选主机将确定需要重新启动的虚拟机。
2 监控所有受保护虚拟机的电源状况。如果有一台虚拟机出现故障,首选主机可确保重新启动该虚拟机。使用本地放置引擎,首选主机还可确定执行重新启动的位置。
3 首选主机管理群集主机和受保护的虚拟机列表并对添加或删除cluster内部的主机进行管理即首选主机维护着群集内的清单。
4 首选主机管理被保护的虚拟机清单,在用户每次发起开关机操作时,更新这个清单。vcenter server会要求保护或不保护某些虚拟机。即当虚拟机打开电源,则该虚拟机要受保护,一旦主机出现故障就会在其他主机上重新启动虚拟机。当虚拟机关闭电源,就没有必要再保护它了。
5 首选主机缓存cluster的配置,master主机通知和提醒slave主机,cluster配置的修改。
6 master主机发送心跳信息给slave主机,让slave主机知道master的存在。如果slave主机接收不到心跳信息,则重新选举出新的首选主机。
7 master报告状态信息给vcenter,vcenter正常情况只与master主机通信。
首选主机执行的功能之一是虚拟机保护。虚拟机受保护时,vSphere HA 可保证在其出现故障后尝试重新打开电源。
首选主机在观察到虚拟机的电源状况由关闭电源变为打开电源时,会致力于保护虚拟
机。如果发生故障切换,首选主机必须重新启动所负责的受保护的虚拟机。该职责已分配给在包含虚拟机配置文件的数据存储上以独占方式锁定系统定义文件的首选主机。
群集中从主机的职责:
1 slave主机监视本地运行的虚拟机的状态,把这些虚拟机运行状态的显著变化发给master主机。
2 slave主机监视master主机的健康状态,如果master主机出现故障,slave主机参与master的选举。
3 slave运用vSphere HA 接入控制vSphereHA特性,这些特性不需要master的协调。这些特性包括VMHealth Monitoring。
查看master和slave的状态:
主机故障类型和检测
vSphere HA 群集的首选主机负责检测从属主机的故障。根据检测到的故障类型,在主机上运行的虚拟机可能需要进行故障切换。
在 vSphere HA 群集中,检测三种类型的主机故障:
1 主机停止运行(即发生故障)。
2 主机与网络隔离。
3 主机失去与首选主机的网络连接。
vSphere HA使用管理网络和存储设备来联系。当master通过管理网络联系不到slave时,master就会使用存储网络(heartbeat datastores)来检查slave是否存活。
首选主机监控群集中从属主机是通过交换网络检测信号来完成,此通信通过管理网络来完成。当首选主机不能通过管理网络(如首选主机或从属主机的网络接口出故障)从从属主机接收这些检测信号时,它会在声明该主机出现故障之前检查主机活跃度。首选主机执行的活跃度检查是要确定从属主机是否在与数据存储(即存储网络)交换检测信号。如果此从属主机与数据存储交换检测信号,则首选主机会假定它处于某个网络分区或网络隔离中,因此会继续监控该主机及其虚拟机。
网络分区:一个或多个slave通过管理网络联系不到master,即使它们的网络连接没有问题,这种情况下,vSphere HA能够了使用存储网络来检测分离的主机(上面的slaves)是否存活以及否要保护它们里面的虚拟机。
网络隔离:一个或多个slave丢失了所有的管理网络连接,这样的slave既不能联系到master也不能联系到其他ESXi hosts。这种情况下,slave主机通过存储网络来通知master,它已经是隔离状态。
注意:如果你确保网络基础结构具有足够的冗余度且至少有一个网络路径始终可用,则主机网络隔离应该在极少数情况下才出现。
在 vSphere HA 群集发生管理网络故障时,该群集中的部分主机可能无法通过管理网络与其他主机进行通信。一个群集中可能会出现多个分区。
已分区的群集会导致虚拟机保护和群集管理功能降级
1 虚拟机保护。vCenter Server 允许虚拟机打开电源,但仅当虚拟机与负责它的首选主机在相同的分区中运行时,才会对其进行保护。
2 群集管理。vCenter Server 只能与群集中的部分主机进行通信,且只能连接到一台首选主机。因此,只有在解决分区之后,配置中影响vSphere HA 的更改才能生效。此故障可能会导致其中一个分区在旧配置下操作,而另一个分区使用新的设置
总结:当 vSphere HA 群集中的首选主机无法通过管理网络与从属主机通信时,首选主机将使用数据存储检测信号来确定从属主机是否出现故障,是否位于网络分区中,或者是否与网络隔离。如果从属主机已停止数据存储检测信号,则认为该从属主机出现故障,并且其虚拟机已在别处重新启动。
vCenterServer 使用 vSphere HA 主机状况报告主机是首选主机还是从属主机。如果已启用“HA 状况”列,则会在 vSphere Client 中主机的摘要选项卡上和群集或数据中心的“主机列表”视图中报告此状况。HA 状况“正在运行 (master)”表示主机作为 vSphere HA 首选主机。“已连接 (slave)”状况表示主机作为 vSphere HA从属主机。
注意:如果断开主机与群集之间的连接,则所有向该主机注册的虚拟机均不受vSphere HA 保护。
vCenterServer 使用接入控制来确保群集内具有足够的资源,以便提供故障切换保护。
1、“群集允许的主机故障数目”接入控制策略:
使用“群集允许的主机故障数目”接入控制策略,vSphere HA 允许指定数目的主机出现故障,同时可以确保群集内留有足够的资源来对这些主机上的虚拟机进行故障切换。
使用“群集允许的主机故障数目”策略,vSphere HA 以下列方式执行接入控制:
1 插槽大小计算
插槽大小由两个组件(CPU 和内存)组成。
a vSphere HA 计算 CPU 组件的方法是先获取每台已打开电源虚拟机的 CPU 预留,然后再选择最大值。如果没有为虚拟机指定CPU 预留,则系统会为其分配一个默认值 32 MHz。
b vSphere HA 计算内存组件的方法是先获取每台已打开电源虚拟机的内存预留和内存开销,然后再选择最大值。内存预留没有默认值。
2、使用插槽数目计算当前故障切换容量
计算出插槽大小后,vSphere HA 会确定每台主机中可用于虚拟机的CPU 和内存资源。通过使用 vSphere Client 直接连接到主机,然后导航至主机的资源选项卡,可以找到由vSphere HA 使用的主机资源数据。然后,即可确定每台主机可以支持的最大插槽数目。为确定此数目,请用主机的CPU 资源数除以插槽大小的CPU 组件,然后将结果化整。对主机的内存资源数进行同样的计算。然后,比较这两个数字,较小的那个数字即为主机可以支持的插槽数。
通过确定可以发生故障并仍然有足够插槽满足所有已打开电源虚拟机要求的主机的数目(从最大值开始)来计算当前故障切换容量。
附录:高级运行时信息
如果选择“群集允许的主机故障数目”接入控制策略,高级运行时信息链接则会在 vSphere Client 中群集摘要选项卡上的 vSphere HA 区域中显示。单击此链接以显示有关群集的下列信息:
a 插槽大小。
b 群集内的插槽总数。
c 已使用的插槽数。分配给已打开电源的虚拟机的插槽数目。如果已使用高级选项定义插槽大小的上限,则此数目可以大于已打开电源的虚拟机的数目。这是因为有些虚拟机会占用多个插槽。
d 可用插槽数。可用于打开群集内其他虚拟机的电源的插槽数量。vSphere HA 保留故障切换所需的插槽数量。剩余的插槽可用于打开新虚拟机电源。
e 故障切换插槽数。除已使用的插槽和可用插槽之外的插槽总数。
f 群集中已打开电源虚拟机的总数。
g 群集中的主机总数。
h 群集中的正常主机总数。处于连接状态、未进入维护模式而且没有vSphere HA 错误的主机数目。
示例:使用“群集允许的主机故障数目”策略的接入控制
示例中展示了使用此接入控制策略计算和使用插槽大小的方式。对群集进行如下假设:
1 群集包括三台主机,每台主机上可用的CPU 和内存资源数各不相同。第一台主机 (H1) 的可用 CPU 资源和可用内存分别为 9 GHz 和 9 GB,第二台主机 (H2) 为 9 GHz 和 6 GB,而第三台主机 (H3) 则为 6 GHz和 6 GB。
2 群集内存在五个已打开电源的虚拟机,其CPU 和内存要求各不相同。VM1 所需的 CPU 资源和内存分别为 2 GHz 和 1 GB,VM2 为 2 GHz 和 1 GB,VM3 为 1 GHz 和 2 GB,VM4 为 1 GHz 和 1 GB,VM5 则为 1 GHz 和 1 GB。
3 “群集允许的主机故障数目”设置为1。
1 比较虚拟机的 CPU 和内存要求,然后选择最大值,从而计算出插槽大小。
最大 CPU 要求(由 VM1 和 VM2 共享)为 2 GHz,而最大内存要求(针对 VM3)为 2 GB。根据上述情况,插槽大小为 2 GHz CPU 和 2 GB 内存。
2 由此可确定每台主机可以支持的最大插槽数目。
H1 可以支持四个插槽。H2 可以支持三个插槽(取 9GHz/2GHz 和 6GB/2GB 中较小的一个),H3 也可以支持三个插槽。
3 计算出当前故障切换容量。
最大的主机是 H1,如果它发生故障,群集内还有六个插槽,足够供所有五个已打开电源的虚拟机使用。如果H1 和 H2 都发生故障,群集内将仅剩下三个插槽,这是不够用的。因此,当前故障切换容量为1。
群集内可用插槽的数目为 1(H2 和 H3 上的六个插槽减去五个已使用的插槽)。
建议最好不使用“群集允许的主机故障数目”策略的接入控制,因为如果群集内部的主机硬件性能不一时,就不好确定故障数目了。除非群集内部的主机硬件性能一致时可以使用此策略。
2、“预留的群集资源的百分比”接入控制策略
可以将 vSphere HA 配置为通过预留特定百分比的群集CPU 和内存资源来执行接入控制,用于从主机故障中进行恢复。
使用“预留的群集资源的百分比”接入控制策略,vSphere HA 可确保预留 CPU 和内存资源总量的指定百分比以用于故障切换。
使用“预留的群集资源”策略,vSphere HA 可强制执行下列接入控制:
1 计算群集内所有已打开电源虚拟机的总资源要求。
2 计算可用于虚拟机的主机资源总数。
3 计算群集的“当前的CPU 故障切换容量”和“当前的内存故障切换容量”。
4 确定“当前的 CPU 故障切换容量”或“当前的内存故障切换容量”是否小于对应的“配置的故障切换容量”(由用户提供)。如果是,则接入控制不允许执行此操作。
注意 “预留的群集资源的百分比”接入控制策略还会检查群集中是否至少有两个已启用 vSphere HA 的主机(不包括正在进入维护模式的主机)。如果只有一个已启用vSphere HA 的主机,即使可以使用足够的资源百分比,也不允许执行此操作。进行此次额外检查的原因在于如果群集中只有一个主机,则vSphere HA 无法进行故障切换。
计算当前故障切换容量
已打开电源的虚拟机的总资源要求由两个组件组成,即 CPU 和内存。vSphere HA 将计算这些值。
1 CPU 组件值的计算方法是:加总已打开电源虚拟机的 CPU 预留。如果没有为虚拟机指定 CPU 预留,则系统会为其分配一个默认值 32 MHz。
2 内存组件值的计算方法是:加总每台已打开电源虚拟机的内存预留(以及内存开销)。
计算出主机的 CPU 和内存资源总和,从而得出虚拟机可使用的主机资源总数。
先用主机 CPU 资源总数减去总 CPU 资源要求,然后再用这个结果除以主机 CPU 资源总数,从而计算出“当前的 CPU 故障切换容量”。“当前的内存故障切换容量”的计算方式与之相似。
示例:使用“预留的群集资源的百分比”策略的接入控制
示例中展示了使用此接入控制策略计算和使用“当前故障切换容量”的方式。对群集进行如下假设:
1 群集包括三台主机,每台主机上可用的CPU 和内存资源数各不相同。第一台主机 (H1) 的可用 CPU 资源和可用内存分别为 9 GHz 和 9 GB,第二台主机 (H2) 为 9 GHz 和 6 GB,而第三台主机 (H3) 则为 6 GHz和 6 GB。
2 群集内存在五个已打开电源的虚拟机,其CPU 和内存要求各不相同。VM1 所需的 CPU 资源和内存分别为 2 GHz 和 1 GB,VM2 为 2 GHz 和 1 GB,VM3 为 1 GHz 和 2 GB,VM4 为 1 GHz 和 1 GB,VM5 则为 1 GHz 和 1 GB。
3 “配置的故障切换容量”设置为25%。
已打开电源的虚拟机的总资源要求为 7 GHz CPU 和 6 GB 内存。可用于虚拟机的主机资源总数为24 GHz CPU和 21 GB 内存。
根据上述情况,“当前的 CPU 故障切换容量”为70% ((24GHz - 7GHz)/24GHz)。同样,“当前的内存故障切换容量”为 71% ((21GB-6GB)/21GB)。
由于群集的“配置的故障切换容量”设置为 25%,因此仍然可使用 45% 的群集 CPU 资源总数和 46% 的群集内存资源打开其他虚拟机电源。
3、“指定故障切换主机”接入控制策略
在配置 vSphere HA 时可以将特定主机指定为故障切换主机。
如果使用“指定故障切换主机”接入控制策略,则在主机发生故障时,vSphere HA 将尝试在指定的故障切换主机之一上重新启动其虚拟机
注意 如果使用“指定故障切换主机”接入控制策略,并指定多个故障切换主机,则 DRS 不会对故障切换主机进行负载平衡
vSphereClient 中群集的摘要选项卡的 vSphere HA 区域内显示了“当前故障切换主机”。每个主机旁边的状态图标可以是绿色、×××或红色。
1 绿色。主机处于连接状态、未进入维护模式且没有vSphere HA 错误。主机上没有任何已打开电源的虚拟机。
2 ×××。主机处于连接状态、未进入维护模式且没有vSphere HA 错误。但是,主机上驻留了已打开电源的虚拟机。
3 红色。主机已断开连接、处于维护模式或存在vSphere HA 错误。
vSphere HA 群集的要求
在设置 vSphereHA 群集之前,应满足以下要求:
1 所有主机必须获得 vSphereHA 许可。
2 群集中至少需要有两台主机。
3 需要为所有主机配置静态 IP地址。
4 所有主机应该至少有一个公共的管理网络,最佳做法则至少需要有两个。
5 版本 4.0 及更高版本的 ESXi 主机 - 已选中了复选框的 VMkernel 网络。
6 为了确保任何虚拟机都可以在群集内的任何主机上运行,所有主机都应该可以访问相同的虚拟机网络和数据存储。同样,虚拟机必须位于共享而非本地存储器上,否则在主机出现故障时它们将无法进行故障切换。
注意 vSphere HA 使用数据存储信号检测来区分已分区的主机、已隔离的主机和出现故障的主机。相应地,必须确保为vSphere HA 预留的数据存储始终立即可用。
7 为了使虚拟机监控工作,必须安装VMware Tools。
总结:vSphere HA 群集的要求和Vmotion的要要求类似。
创建 vSphere HA 群集
可以为群集启用 vSphere HA。启用了 vSphere HA 的群集是 Fault Tolerance 的必备条件。VMware 建议你首先创建空群集。在规划好群集的资源和网络架构之后,可以使用vSphere Client 将主机添加到群集,并指定群集的 vSphere HA 设置。
步骤
1 选择“主机和群集”视图。
2 右键单击清单树中的数据中心,然后单击新建群集。
3 完成新建群集向导。
此时不要启用 vSphere HA(或 DRS)。
4 单击完成,关闭向导并创建群集。
此时创建了一个空群集。
5 根据你的群集资源和网络架构计划,使用vSphere Client 将主机添加到群集。
6 右键单击群集,然后单击编辑设置。
在群集的“设置”对话框中,你可以修改群集的 vSphere HA(和其他)设置。
7 在“群集功能”页上,选择打开vSphere HA。
8 根据需要为群集配置vSphere HA 设置。
a 主机监控状态
b 接入控制
c 虚拟机选项
d 虚拟机监控
e 数据存储检测信号
9 单击确定关闭群集的“设置”对话框。
1、群集功能
新建群集向导中的第一个面板可用于为群集指定基本选项。
在该面板中,可以指定群集名称并选择一个或两个群集功能。
名称指定群集的名称。该名称显示在 vSphere Client 清单面板中。必须指定一个名
称,才能继续创建群集。
打开 vSphere HA 如果选中此复选框,则在主机出现故障时,虚拟机将在群集内的其他主机上重新启动。要在群集内的任何虚拟机上启用vSphere Fault Tolerance,必须打开vSphere HA。
打开 vSphere DRS 如果选中此复选框,则DRS 将平衡整个群集的虚拟机负载。即使虚拟机受 HA保护,DRS 也会放置并迁移虚拟机。
2、主机监控状态
创建群集后,请启用主机监控以便 vSphere HA 可以监控由群集内每个主机上的vSphere HA 代理发送的检测信号。
如果选择启用主机监控,则会检查群集内的每台主机以确保其正在运行。如果某台主机出现故障,则会在另一台主机上重新启动虚拟机。主机监控还是vSphere Fault Tolerance 恢复进程正常运行所必需的。
注意:如果需要执行可能会触发主机隔离响应的网络维护,VMware 建议首先禁用主机监控以挂起 vSphereHA。完成维护后,请重新启用“主机监控”。
3、启用或禁用接入控制
通过新建群集向导,可以为 vSphere HA 群集启用或禁用接入控制,并选择有关其执行方式的策略。可以为vSphere HA 群集启用或禁用接入控制。
启用:禁止违反可用性限制的打开虚拟机电源操作启用接入控制并执行可用性限制,同时保留故障切换容量。不允许在虚拟机上执行违反可用性限制的任何操作。
禁用:允许违反可用性限制的打开虚拟机电源操作
禁用接入控制。例如,即使打开虚拟机电源会造成故障切换容量不足,仍然可执行该操作。执行该操作时,不会显示任何警告,而且群集不会变为红色。如果群集的故障切换容量不足,vSphere HA 仍可以执行故障切换,并使用“虚拟机重新启动优先级”设置来确定要先打开电源的虚拟机。
如果启用了接入控制,vSphere HA 会提供三个强制接入控制的策略。
1 群集允许的主机故障数量
2 作为故障切换空间容量保留的群集资源的百分比
3 指定故障切换主机
4、虚拟机选项
默认虚拟机设置控制虚拟机的重新启动顺序(虚拟机重新启动优先级)以及在主机之间失去网络连接时vSphereHA 的响应方式(主机隔离响应)。
这些设置适用于主机发生故障或主机隔离时群集内的所有虚拟机。此外,也可以为特定虚拟机配置异常。
虚拟机重新启动优先级设置
虚拟机重新启动优先级确定主机发生故障后虚拟机的重新启动相对顺序。这些虚拟机在新主机上按顺序重新启动,首先启动优先级最高的虚拟机,然后是那些低优先级的虚拟机,直到重新启动所有虚拟机或者没有更多的可用群集资源为止。如果主机故障数目超过了接入控制所允许的数目,则系统可能会等到有更多资源可用时再重新启动优先级较低的虚拟机。如果指定了一个故障切换主机,则虚拟机将在该故障切换主机上重新启动。
此设置的值为:已禁用、低、中等(默认)和高。如果选择“已禁用”,则会为虚拟机禁用 vSphere HA,这意味着当其主机出现故障时不会在其他ESXi 主机上重新启动虚拟机。“已禁用”设置不会对虚拟机监控造成影响,这意味着当正常运行的主机上的某个虚拟机出现故障时,会在同一主机上重置该虚拟机。你可更改各个虚拟机的这种设置。
虚拟机的重新启动优先级设置因用户需求而有所不同。VMware 建议为提供最重要服务的虚拟机分配较高的重新启动优先级。
主机隔离响应设置
主机隔离响应确定当 vSphere HA 群集内的某个主机失去其管理网络连接但仍继续运行时出现的情况。
主机会执行其隔离响应。响应包括:保持打开电源(默认值)、关闭电源和关机。还可以为各个虚拟机自定义此属性。
要使用“关机”设置,必须在虚拟机的客户机操作系统中安装 VMware Tools。将虚拟机关机的优点在于可以保留其状况。关机操作优于关闭虚拟机电源操作,关闭虚拟机电源不会将最近的更改刷新到磁盘中,也不会提交事务。
5、虚拟机和应用程序监控
如果在设置的时间内没有收到单个虚拟机的 VMware Tools 检测信号,虚拟机监控将重新启动该虚拟机。同样,如果没有收到虚拟机正在运行的应用程序的检测信号,应用程序监控也可以重新启动该虚拟机。可以启用这些功能,并配置vSphere HA 监控无响应时的敏感度。
启用虚拟机监控后,虚拟机监控服务(使用 VMware Tools)将通过检查正在客户机内运行的 VMware Tools进程的常规检测信号和I/O 活动来评估群集内的每个虚拟机是否正在运行。如果没有收到检测信号或I/O 活动,则很有可能是客户机操作系统出现故障,或未分配给VMware Tools 用来完成任务的时间。在这种情况下,虚拟机监控服务会先确定虚拟机已发生故障,然后决定重新引导虚拟机以还原服务。
你可以配置监控敏感度的级别。高敏感度监控可以更快得出已发生故障的结论。然而,如果受监控的虚拟机或应用程序实际上仍在运行,但由于资源限制等因素导致未收到检测信号,高敏感度监控可能会错误地认为此虚拟机发生了故障。低敏感度监控会延长实际故障和虚拟机重置之间服务中断的时间。请选择一个有效折衷满足需求的选项。
二、vSphere Fault Tolerance提供连续可用性
vSphere HA 通过在主机出现故障时重新启动虚拟机来为虚拟机提供基本级别的保护。因此它的缺点就是存在宕机时间,可能是几分钟也可能是十几分钟。
可以为虚拟机启用 vSphere FaultTolerance,以获得比 vSphere HA 所提供的级别更高的可用性和数据保护,从而确保业务连续性。
vSphere FaultTolerance 通过创建和维护与主虚拟机相同,且可在发生故障切换时随时替换主虚拟机的辅助虚拟机,来确保虚拟机的连续可用性。
要获取 FaultTolerance 的最佳结果,应先熟悉其工作原理、如何为群集和虚拟机启用它及其最佳使用方法。
可以为大多数任务关键虚拟机启用 FaultTolerance。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步(vLockstep)方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。
如下图所示:Fault Tolerance 对中的主虚拟机和辅助虚拟机
主虚拟机和辅助虚拟机可持续交换检测信号。此交换使得虚拟机对中的虚拟机能够监控彼此的状态,以确保持续提供 Fault Tolerance 保护。如果运行主虚拟机的主机发生故障,系统将会执行透明故障切换,此时会立即启用辅助虚拟机以替换主虚拟机,并将启动新的辅助虚拟机,同时在几秒钟内重新建立Fault Tolerance 冗余。如果运行辅助虚拟机的主机发生故障,则该主机也会立即被替换。在任一情况下,用户都不会遭遇服务中断和数据丢失的情况。
主虚拟机及其辅助副本不允许在相同主机上运行。此限制可确保主机故障而导致两个虚拟机都丢失。
Fault Tolerance 不支持的 vSphere 功能
容错虚拟机不支持以下 vSphere 功能。
1 快照。在虚拟机上启用Fault Tolerance 前,必须移除快照。此外,不可能对已启用 Fault Tolerance的虚拟机执行快照。
2 Storage vMotion。不能为已启用 Fault Tolerance 的虚拟机调用 Storage vMotion。要迁移存储器,应当先暂时关闭 Fault Tolerance,然后再执行 Storage vMotion 操作。在完成迁移之后,可以重新打开 FaultTolerance。
3 链接克隆。不能在为链接克隆的虚拟机上启用Fault Tolerance,也不能从启用了 Fault Tolerance 的虚拟机创建链接克隆。
4 虚拟机备份。不能使用Storage API for Data Protection、VMware Data Recovery 或需要使用虚拟机快照(如 ESXi 所执行的那样)的类似备份产品来备份启用了 FT 的虚拟机。要以这种方式备份容错虚拟机,首先必须禁用FT,然后在执行备份后重新启用 FT。基于存储阵列的快照不影响 FT。
将 Fault Tolerance 功能与 DRS 配合使用
启用 EnhancedvMotion Compatibility (EVC) 功能时,可以将 vSphere Fault Tolerance 与 vSphere Distributed Resource Scheduler (DRS) 配合使用。此过程不但可使容错虚拟机受益于更好的初始放置位置,还可以将其纳入群集的负载平衡计算中。
当群集启用了 EVC 时,DRS 将为容错虚拟机提出初始放置位置建议、在重新平衡群集负载期间移动这些虚拟机,并允许你为主虚拟机分配DRS 自动化级别(辅助虚拟机总是采用与其关联的主虚拟机相同的设置。)
在初始放置或负载平衡期间,DRS 放置在主机上的主虚拟机或辅助虚拟机的数目不会超过一个固定的数目。此限制由高级选项das.maxftvmsperhost 控制。此选项的默认值为 4。但是,如果将此选项设置为 0,DRS 将忽略此限制。
Fault Tolerance要求:
以下是使用 vSphere FaultTolerance 之前需要了解的群集、主机和虚拟机要求。
FaultTolerance 的群集要求:
在使用 FaultTolerance 之前,必须满足以下群集要求。
1 主机证书检查功能已启用。稍后会讲到如何查看。
2 至少有两台通过 FT 认证的主机运行相同的 Fault Tolerance 版本号或主机内部版本号(即相同版本的ESXi包括补丁程序)。FaultTolerance 版本号显示在 vSphereClient 中主机的摘要选项卡上。
3 ESXi 主机可以访问相同的虚拟机数据存储(SAN、NAS、ISCSI)和网络。请参考后面的讲课资料
4 配置了 Fault Tolerance 日志记录和 vMotion 网络。请参考后面的讲课资料
5 vSphere HA 群集已创建并启用。请参见“创建 vSphere HA 群集”。打开要容错虚拟机电源或者将主机添加到已支持容错虚拟机的群集之前,必须启用 vSphere HA。
FaultTolerance 的主机要求:
在使用 FaultTolerance 之前,必须满足以下主机要求。
1 主机上的处理器必须来自与 FT兼容的处理器组。此外,强烈建议主机的处理器之间也相互兼容。有关受支持处理器的信息,网址为 http://kb.vmware.com/kb/1008027。
2 在配置每台主机时,都必须在 BIOS中启用硬件虚拟化 (HV)。
注意:当主机无法支持 Fault Tolerance 时,可在 vSphere Client 中主机的摘要选项卡上查看原因。单击已配置FT 的主机字段旁边的蓝色标题图标,查看主机不符合的Fault Tolerance 要求的列表。
FaultTolerance 的虚拟机要求
在使用 FaultTolerance 之前,必须满足以下虚拟机要求。
1 虚拟机必须存储在虚拟 RDM或厚置备的虚拟机磁盘 (VMDK) 文件中。如果虚拟机存储在精简置备的VMDK文件中,则在尝试启用Fault Tolerance 时将会出现一则指示必须转换 VMDK文件的消息。要执行该转换,必须关闭虚拟机电源。
2 虚拟机文件必须存储在共享存储器上。可接受共享的存储解决方案包括光纤通道、(硬件和软件)iSCSI、NFS 和 NAS。
3 只有带有单个 vCPU的虚拟机才能与 Fault Tolerance 功能兼容。
具体操作步骤如下:
为 Fault Tolerance 准备群集和主机:
要为群集启用FaultTolerance,必须满足此功能的必备条件,然后在主机上执行特定的配置步骤。完成这些步骤并创建群集后,还可以检查配置是否符合启用 Fault Tolerance 的要求。
为群集启用 FaultTolerance 之前,应当完成的任务包括:
1 启用主机证书检查(如果你要从先前版本的vCenter Server 升级)。
2 为每台主机配置网络。
3 创建 vSphere HA 群集,添加主机,并检查合规性。
在为群集和主机准备好 FaultTolerance 之后,便可为虚拟机打开 FaultTolerance
1、启用主机证书检查
使用主机证书检查,可以将 ESXi 主机配置为相互验证身份,确保维护一个更安全的环境。对于容错虚拟机所在的ESXi 主机来说,主机证书检查是必需的。
步骤
1 将 vSphere Client 连接到 vCenter Server。
2 选择系统管理,然后选择vCenter Server 设置。此时会出现 vCenter Server 设置窗口3 在左窗格中单击 SSL 设置。
4 选中 vCenter 需要已验证的主机 SSL 证书框。
5 单击确定。
2、为主机配置网络
在要添加到 vSphere HA 群集的每台主机上,必须配置两个不同的网络交换机,以便让主机支持Vmotion也能支持 vSphereFaultTolerance。
注:每台ESXi主机上至少要有三块网卡,一块用于与vcenter通信及虚拟机桥接收;另一块用于Vmotion通信用;第三块用于Fault Tolerance 日志记录使用
有关用于Vmotion端口组请参考Vmotion迁移的文档。
前提条件
需要多个千兆位网络接口卡 (NIC)。对于支持 Fault Tolerance 功能的每台主机,最少需要两个物理千兆位网卡。例如,你需要一个网卡专门用于 Fault Tolerance 日志记录,另一个则专门用于 vMotion。VMware 建议具备三个或更多网卡来确保可用性。
注意 vMotion 和 FT 日志记录网卡必须位于不同的子网上,并且 FT 日志记录网卡不支持 IPv6。
创建专门用于 FaultTolerance 日志记录的端口组:
步骤
1 将 vSphere Client 连接到 vCenter Server。
2 在 vCenter Server 清单中,选择主机,然后单击配置选项卡。
3 选择硬件下的网络,然后单击添加网络链接。此时会出现添加网络向导。
4 选择连接类型下的VMkernel,然后单击下一步。
5 选择创建vsphere标准交换机,然后单击下一步。
6 提供交换机的标签。
7 选择将此端口组用于Fault Tolerance 日志记录,然后单击下一步。
8 提供 IP 地址和子网掩码,然后单击下一步。
9 单击完成。
在其他ESXi主机上进行相同的操作完成用于 Fault Tolerance 日志记录的端口组。
要确认是否在主机上成功启用了 vMotion 和 Fault Tolerance,请在 vSphere Client 中查看该主机的摘要选项卡。在“常规”窗格中,vMotion 已启用和已配置 FT 的主机字段均应显示为“是”。
3、创建 vSphere HA 群集和检查合规性
vSphere FaultTolerance 在 vSphere HA 群集环境中使用。在每台主机上配置网络之后,创建vSphere HA 群集并向其中添加主机。可以查看群集配置是否正确以及是否符合成功启用Fault Tolerance 的要求。
步骤
1 将 vSphere Client 连接到 vCenter Server。
2 创建群集并向其中添加主机
3 在 vCenter Server 清单中,选择群集,然后单击配置文件合规情况选项卡。
4 单击立即检查合规性运行合规性测试。
要查看运行的测试,请单击描述。
合规性测试的结果将显示在屏幕的底部。主机将标记为“合规”或“不合规”。
为虚拟机提供 Fault Tolerance:
在采取了为群集启用 vSphere FaultTolerance 所需的全部步骤之后,可以为各个虚拟机打开 Fault Tolerance
功能。
如果符合下列任一情况,则用于打开 Fault Tolerance 的选项将不可用并变成灰色:
1 虚拟机所驻留的主机并未获得使用该功能的许可证。
2 虚拟机所驻留的主机处于维护模式或待机模式。
3 虚拟机已断开连接或被孤立(无法访问其.vmx 文件)。
4 用户没有打开此功能的权限。
为虚拟机打开 Fault Tolerance
可以通过 vSphereClient 打开 vSphere FaultTolerance
步骤
1 选择“主机和群集”视图。
2 右键单击一个虚拟机并选择Fault Tolerance > 打开 Fault Tolerance。
如果选择多个虚拟机,则 FaultTolerance 菜单处于禁用状态。一次只能为一个虚拟机打开 Fault Tolerance。
特定的虚拟机将指定为主虚拟机,并在另一台主机上建立辅助虚拟机。现在,主虚拟机已启用了容错功能。
查看有关容错虚拟机的信息
可以使用 vSphereClient 查看 vCenterServer 清单中的容错虚拟机。
注意:不能从辅助虚拟机禁用 FaultTolerance。
主虚拟机的摘要选项卡中显示了 vSphere FaultTolerance 区域(窗格),其中包含有关虚拟机的信息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。