VMware vSphere

5.1

Clustering Deepdive

 

HA.DRS.Storage DRS.Stretched Clusters

 

 

Duncan Epping &Frank Denneman

Translate By Tim2009 / 翻译:Tim2009

 

 

目录

版权

关于作者

知识点

前言

第一部分 vSphere高可用性

第一章 介绍vSphere高可用性

第二章 高可用组件

第三章 基本概念

第四章 重新启动虚拟机

第五章 增加高可用灵活性(网络冗余)

第六章 访问控制

第七章 虚拟机和应用监控

第八章 集成

第九章 汇总

第二部分 vSphere分布式资源调度

第一章 vSphere DRS介绍

第二章 vMotion和EVC

第三章 DRS动态配额

第四章 资源池与控制

第五章 DRS计算推荐

第六章 DRS推荐向导

第七章 DPM介绍

第八章 DPM计算推荐

第九章 DPM推荐向导

第十章 汇总

第三部分 vSphere存储DRS

第一章 vSphere存储DRS介绍

第二章 存储DRS算法

第三章 存储I/O控制(SIOC)

第四章 数据存储配置

第五章 数据存储架构与设计

第六章 对存储vMotion的影响

第七章 关联性

第八章 数据存储维护模式

第九章 总结汇总

第四部分 群集架构的扩展

第一章 群集架构的扩展

第二章 vSphere配置

第三章 故障排错

第四章 总结汇总

第五章 附录

 

第七章 虚拟机和应用监控

虚拟机和应用监控是一个经常被人忽视,但又确实是HA的一个强大功能,可能由于它是HA的新功能、新组件,且通常默认配置下该功能没被启用。我们将试图收集所有虚拟机和应用监控的相关信息,但它是一个非常简单的产品,实际不是你期望的那样。

图40:虚拟机与应用监控

VMware vSphere 5.1 群集深入解析(七)_应用监控

为什么你需要虚拟机和应用监控?

虚拟机和应用监控和HA分别扮演着不同的响应级别,虚拟机和应用监控是单个主机或者应用程序发生故障时响应,而HA是主机发生故障时响应。举个例子,一个虚拟机发生故障,如机器蓝屏,那么应用监控就会触发,反应给管理员或者应用开发者。

 

虚拟机/应用监控是如何工作的?

当需要时,虚拟机监控可以重置个别虚拟机,虚拟机和应用监控同HA类似,也使用心跳检测,在这个例子中,如果虚拟机上VMware Tools的心跳有一段时间未收到,虚拟机将被重新启动,这个心跳时被HA检测的,并不会跨越网络,只在主机上。

图41:虚拟机监控敏感性

VMware vSphere 5.1 群集深入解析(七)_vsphere 5.1_02

当开启了虚拟机/应用监控,如图41,敏感级别将被配置,默认配置应该适用于很多场景中,低敏感度意味着允许丢失较多的心跳信号,机器运行在错误的位置较高,但是,如果发生故障,而敏感度较低,那么停机时间就越长,当发生故障需要快速响应时,应该选择高敏感度,和你预计的一样,它正好和低敏感度相反,高级设置见表5,该表已被启用,但有普及意义。

表5:虚拟机监控敏感度

VMware vSphere 5.1 群集深入解析(七)_虚拟机_03

要记住一件重要的事,那就是虚拟机监控不会无限重启虚拟机,除非客户根据需求设置相关策略,这是为了避免重复发生的问题,默认情况下,当虚拟机在一个小时内重启了三次,接下来将不再进行尝试,除非设定的时间值已经过去,接下来可以在默认的值中改变高级设置,可以在图41中选择。

尽管VMware Tools产生心跳信号相当可靠,VMware进一步增加了验证机制,为了避免虚拟运行在错误的位置,虚拟机监控还会监控虚拟机的活动I/O,当没有收到心跳信号或者没有磁盘读写或者网络活动已经过去120秒,默认情况下,虚拟机都会被重置,高级设置里可以通过 “das.iostatslnterval”参数修改时间值。

建议调整das.iostatsinterval”配合HA使用。

 

基本设计原则

正确配置”“das.iostatsinterval”时间值。

 

虚拟机监控实现细节

在vSphere 5.0之前,虚拟机/应用监控是通过HA的VPXA组件来实现的,而在vSphere5.0中,HA代理自身可以启动它,意思是说“虚拟机/应用监控”逻辑上是和HA代理一起的,代理使用性能管理来监控磁盘和网络I/O,虚拟机/应用监控使用量计算磁盘和网络,一旦足够的心跳信号丢失,将会触发配置策略。

在开始之前,虚拟机/应用监控使用的心跳信号就像是主机级别的HA,HA 代理监控心跳信号,并负责重启虚拟机,当然,信息还会被上传到vCenter中,但是是通过的管理网络,而不是业务网络,这意味着,当虚拟机的业务网络发生故障时,仍会收到虚拟机的心跳信号,当发生故障,且以下三个条件都出现后,将触发HA重新启动虚拟机。

1. 没有收到来自VMware Tools的心跳信号

2. 超过120秒没有网络I/O

3. 超过120秒没有存储I/O

就像主机级别的HA,当虚拟机即将重启,HA的代理在vCenter上独立工作。

 

时间选择

虚拟机/应用监控功能监控来自客户端的心跳信号,如果满足配置策略,心跳信号丢失,将会重置虚拟机,HA能监控的不只是VMware Tools进程中的心跳信号故障,还能监控来自客户代理的心跳信号加强故障。

如果虚拟机监控心跳在T-0停止,在HA将宣告心跳故障时间范围为81s到119s之间,那么最短时间在此时间段之前,而对于客户端应用心跳,HA会在61s到89s的范围内宣告故障,一旦应用心跳被声明故障,HA会尝试重置虚拟机,但是,对于VMware Tools的心跳,HA会首先检查虚拟机在过去的2分钟内IO是否有问题,如果没有IO,虚拟机将重置,由于HOSTD需要发布I/O状态,这个检查将使重置延迟20秒,大约在T-0后一分钟重置虚拟机。

时间细节:范围取决于当监视到心跳停止关联HOSTD文件,对于比较弱的VMware Tools心跳,在HOSTD运行后心跳停止。这意味着,在T+31,主机上的FDM代理将会被通告tools的×××状态,然后在HA反应的T+61时刻变成红色状态,HA最少30秒监控到心跳失败,导致最小时间为T+91,HA可以通过设置das.failureterval的策略增加30s的监测时间,对于以上的场景,只到T+59s,FDM都不会被通知到(T=0发生故障,T+29HOSTD宣告它,开启心跳失败计时,在T+59 HOSTD报告×××状态,T+89报告红色状态)。

当心跳故障来自于来宾代理,将不会有×××状态发出,所以没有额外增加的30秒时间。

 

截屏

作为虚拟机监控的一部分,还有一个非常实用的功能,我们称之为虚拟机控制台截屏,在虚拟机监控重置虚拟机之前,将会截取正确的屏幕,这个功能被加入到vCenter 4.0中,当虚拟机因为不知名的原因冻结时,它是非常有用的功能,截屏可以被用作虚拟机操作系统的排错,它存储了虚拟机的工作目录,可以在虚拟机的监控选项中查看记录的事件。

 

基本设计原则

虚拟机和应用监控可以大幅提高可用性,它是HA的一部分,所以我们强烈推荐。

 

应用监控

在vSphere 4.1中,VMware介绍应用监控是虚拟机监控的一部分,应用监控是一个全新的功能,它可以增加组件的弹性,如图42所示,在vSphere 4.1的应用监控中,一个隐藏的API被创建,在vSphere 5.0中,SDK以HA SDK的形式出现在大家面前,在vSphere5.1中它是客户SDK的一部分。

图42:虚拟机和应用监控

VMware vSphere 5.1 群集深入解析(七)_应用监控_04

客户端SDK目前主要用于应用程序开发人员,如提供给像赛门铁克这样的合作伙伴来开发解决方案,从而提高虚拟机监控以及HA在不同的响应级别的应变能力,在一个赛门铁克的案例中,一个简易版本的Veritas Cluster Server(VCS)用于开启应用程序的可用性监控,包括响应问题。请注意,VCS本身不是一个多节点的群集解决方案,而是一个单点的解决方案。

赛门铁克应用HA,之所以这么叫,因为它触发应用程序起来,并再次重新启动运行,赛门铁克的应用HA知道哪些服务应该被启动,哪些服务应该被停止,然后,如果一定数量的服务发生故障,HA将被要求采取重新启动虚拟机的行动。

虽然应用监控相对较新,只有少数的合作伙伴目前具备探索能力,在我们看来,它给整个水平增加了弹性,你的内部开发团队可以利用API提供的接口功能,或者你可以使用VMware合作伙伴开发的解决方案。我们已经测试了有赛门铁克开发的应用HA,个人觉得它是架构中缺失的一环,它可以使你的虚拟化层和应用层一体化,它确保你作为一个系统管理员,能保护复制按照正确的顺序重新启动,它避免了在重启或者维护中出现常见的错误。

 

应用认知API

在vSphere 5.0之前,应用认知API是不向客户公开的,只提供给合作伙伴,在vSphere 5.0中,应用认知API向所有人开放,我们觉得此处不适合深入分析怎样使用它,但是我们确实想简要的讨论它。应用认知API允许任何人和它沟通,包括脚本,它能够制造无限可能,当前有6个功能定义:

  • VMGuestAppMonitor_Enable()

  • Enables Monitoring

  • VMGuestAppMonitor_MarkActive()

  • Call every 30 seconds to mark application as active

  • VMGuestAppMonitor_Disable()

  • Disable Monitoring

  • VMGuestAppMonitor_IsEnabled()

  • Returns status of Monitoring VMGuestAppMonitor_GetAppStatus()

  • Returns the current application status recorded for the application

  • VMGuestAppMonitor_Free()

  • Frees the result of the VMGuestAppMonitor_GetAppStatus() call

这些功能可以被你的开发团队使用,但是应用监控还提供一个新的可执行文件,这使得您可以使用这个功能而不需要编译完整的二进制。这个命令时vmware-appmonitoring.exe,采用下列的参数,这不是巧合相似的功能。

  • Enable

  • Disable

  • markActive

  • isEnabled

  • getAppStatus

在执行此命令时输出如下介绍

C:\VMware-GuestAppMonitorSDK\bin\win32>vmware-appmonitor.exe Usage: vmware-appmonitor.exe {enable | disable | markActive | isEnabled | getApp Status}

有多种方式利用应用监控增加弹性,提高应用水平。