vRealize Operations 能够帮助用户实现智能运维,优化数据中心的运行性能是智能运维的一个重要方面,从而使运行关键业务应用的虚机始终运行在最优状态。
vRealize Operations 性能优化的工作原理
基于 vSphere 的虚拟化平台可能对服务器上运行的虚机进行灵活地调度,可以根据运维和业务需要把一个虚机从一台服务器动态迁移到另一台服务器,或者是从一个集群迁移到另一个集群。vSphere 的 vMotion 技术保证了在迁移过程中虚机的正常运行,而不用担心应用服务的中断。 vRealize Operations 正是利用了底层操作系统的这种能力来对虚机工作负载进行调度,避免在一台服务器上运行过多的虚机,因为资源竞争而导致应用性能下降,并且实现对于服务器的均衡使用。
vRealize Operations 中的虚机调度能力称之为“Workload Placement (工作负载放置)”,它是利用 vSphere 的 DRS (Distributed Resource Scheduler) 功能来实现虚机迁移的。DRS 是 vSphere 的一个重要功能,用于在 vSphere 集群内部保持负载均衡,通俗地讲就是如果有服务器过于繁忙的话,就把它上面运行的部分虚机迁移到其他比较空闲的服务器上去,从而使整个集群内的服务器都运行在一个工作负载和资源消耗比较均衡的状态。DRS 对于虚机的调度局限于集群内部,Workload Placement 则是更高一级的调度功能,它可以跨集群来迁移虚机,实现多个集群之间的负载均衡。
自动驾驶式的运维体验
vRealize Operations 引入了“自动驾驶 (Self-driving)”的运维理念,它能够做到基于业务和运维意图来以最小的代价实现持续和自动的闭环性能优化。实现这种无人干预运维模式的关键是工作负载优化,在计算集群中合理调度工作负载以确保它们始终能够得到需要的资源,这种调度算法的依据就是管理员预先设定的意图 (Intent)。意图指明了业务和运维上的目标,例如保证关键业务应用的性能、尽可能地降低运营成本、保证一定的运营服务等级SLA等等。管理员只需要指定了运维意图,剩下的工作就可以交给 vRealize Operations 来自动完成,就像是设定一下汽车的驾驶模式,行车电脑就会自动地调整发动机和其他零部件的运行模式来实现车主的驾驶意图。
管理员通过什么方式来把运维或业务意图传递给 vRealize Operations 呢?vRealize Operations 中提供了各种负载调度的策略来供管理员选择。
运维意图 (Operational Intent)
运维意图是根据资源消耗来对工作负载进行优化,达到使虚机的性能最优、充分利用资源、灵活应对突发事件等目的。
1. 工作负载优化 (Workload Optimization)
vRealize Operations 提供了以下几种预定的负载调度策略来供管理员选择:
- Balance (均衡):尽可能地把虚机分布在每一台服务器上,让每一台服务器都均衡地承担工作负载,这种策略的好处是每台服务器上的资源都比较宽裕,一般情况下不容易造成资源申请的竞争,从而保证每个虚机的性能。要注意的是,这种策略可能会导致虚机比较频繁的迁移,所以它适用于工作负载比较稳定的场景。
- Consolidate (整合):尽可能把虚机集中到某一组服务器上去运行,这可以帮助节省服务器资源和电力消耗,负作用是容易造成资源竞争而导致性能下降,这是跟 Balance 相反的一种策略。
- Moderate (中性):介于 Balance 和 Consolidate 之间的一种策略,在负载均衡和集中之间保持一个平衡,仅在发生资源竞争的情况下才进行迁移,把虚机从过于繁忙的服务器或集群中迁移出来。这是 vRealize Operations 的缺省调度策略。
2. 集群预留空间 (Cluster Headroom)
管理员可以指定一个 0% ~ 50% 之间的比率来在一个集群内部保留一定的资源 (包括 CPU、内存、存储),当有突发的资源请求发生时,例如在某一时段应用的工作负载突然增加而导致 CPU 和内存用量大增,我们还是能够满足这种资源请求,从而保证应用的性能。集群预留空间能够保证虚机对于资源的突发访问需求,但是它也保留了一部分资源,这部分资源不参加平时的负载调度,有一点“浪费”,对整个集群的资源整体优化有一定的负面影响。
业务意图 (Business Intent)
管理员也可以从业务界度出发来设置虚机的调度策略,从而达到节省成本、提高运维质量的目的。
例1:降低商业软件许可成本
有一些商业软件如 Microsoft Windows 集群和 Oracle 数据库集群,它们的收费是基于集群的。在这种情况下,vRealize Operations 就可以通过优化工作负载,把运行同一商业软件的虚机调度到同一 vSphere 集群中运行,从而减少企业在软件许可方面的成本。
例2:实现分层的服务等级 SLA
为了同时满足关键应用高服务等级和控制成本的需要,可以在数据中心中实现分层的服务等级:
- 金牌服务:对应于关键应用,采用高配置的服务器硬件,如高性能CPU、高速SSD等;
- 银牌服务:对应一般的应用,采用较便宜的低端服务器和低成本的硬盘。
vRealize Operations 可以把关键应用虚机放在金牌集群中以获得更好的运行性能和可靠性,而把一般的应用虚机放在银牌集群中运行以节省成本。
例3:满足合规需求 (Compliance)
支付卡行业 (PCI – Pay Card Industry) 的合规标准要求支付相关的应用必须运行在 PCI 合规的服务器上,我们可以设置这一合规性策略,通过 vRealize Operations 的自动调度功能来满足合规要求。
业务意图是通过 vCenter 中的标签 (tag) 机制来实现的,vCenter 可以在所管理的对象 (集群、服务器、虚机等) 上打标签,通过标签来标注这些对象的额外属性。标签的形式为 key : value ,下面是一些标签的例子:
- OS: Windows, Linux, Oracle — 标注集群、服务器上将只运行这一类别的虚机或应用,虚机上的标签则代表虚机中操作系统或应用的类别;
- SLA Tiering: Gold, Silver — 标注集群、服务器所能提供的服务等级,虚机上的标签表示要求的服务等级。
vRealize Operations 会根据虚机和集群或服务器上的标签来进行调度,把虚机放对在具有相同标签的集群或服务器上运行,例如:Oracle 虚机只放在标记为 Oracle 的集群或服务器上运行,从而把所有的 Oracle 虚机都集中到同一组服务器上,以此来降低 Oracle 的许可证授权费用。
自动驾驶式运维的好处
总结一下,vRealize Operations 的自动驾驶式运维给数据中心带来了以下的好处:
- 充分利用服务器硬件资源,尽量做到物尽其用,尽可能降低每一台虚机所占用的硬件资源成本。
- 避免让服务器过于繁忙,总是有一定的空闲资源,当突发需求来临时能够满足资源访问需求,为突发事件或业务高峰做好准备。
- 用尽可能少的服务器运行尽可能多的虚机,实现最大化利用率。
- 通过集中工作负载来把服务器空闲出来改作他用,或是关机以节省电能。
- 提供分等级级的服务,以最小的代价实现最大的性能优化。
- 把同一类型的虚机整合到一个集群中,从而节省软件许可证费用。
- 把关键应用放在性能最优的服务器上运行,保证关键业务应用的性能。
下面给大家看一个利用 vRealize Operations 来进行工作负载优化的演示视频 (提示:请选择视频下方的“高清 720P”选项来观看)。