位置和原因:揭开IBM PureApplication System中虚拟机放置神秘面纱

您已经听说IBM®PureApplication®System包含一个智能放置引擎,可帮助优化许可证,CPU和内存的使用。 您还听说过,如果计算节点丢失,此引擎有助于确保部署的高可用性。 但是,也许您一直想知道放置决策的背后是什么:放置引擎为什么选择在此处放置该虚拟机,并在此处放置该虚拟机? 为什么虚拟机从一个计算节点移动到另一个计算节点?为什么不呢?

本文研究了PureApplication System放置引擎,并简要比较和对比了该放置引擎在IBM PureApplication Software和IBM PureApplication Service中的工作方式。 您将了解两个不同的放置层,以及每个层在平衡和重新平衡工作负载中所扮演的角色。 您还将学习在首次部署模式,模式扩展时以及系统中何时发生其他更改时如何做出放置决策。 这些变化可能包括计算节点丢失或其他部署的来临。

两层放置引擎

PureApplication System具有两级放置引擎,用于为虚拟系统和虚拟应用程序模式实例放置和重新平衡虚拟机。 图1说明了两层放置在PureApplication System的平台即服务(PaaS)和基础架构即服务(IaaS)层中的作用。 它说明了使用多系统部署在两个系统之间进行部署的可能性,以及放置层次如何在每个系统上发挥作用。

图1.放置层在跨多个位置部署模式中的作用
放置层在跨多个位置部署模式中的作用

一线安置

放置的第一层是在最初部署模式时发生的。 该层用于选择将虚拟机部署到的位置(PureApplication Systems),云组和IP组。 在为各个虚拟机做出选择之后,这些虚拟机只能在其原始云组内移动(请参阅第二层放置 )。

外部管理的部署的虚拟机可以跨越不同的云组

如果部署到内部管理的环境配置文件,则所有虚拟机必须部署到同一云组。 您可以在初始部署屏幕上选择此云组, 如图2所示。

图2.用于部署到内部托管环境配置文件的云组选择
选择云组以部署到内部管理的环境配置文件

但是,如果部署到外部管理的环境配置文件,则不会为所有虚拟机选择单个云组( 图3 )。

图3.没有选择要部署到外部托管环境配置文件的云组
没有选择要部署到外部托管环境配置文件的云组

相反,您的虚拟机可以分布在云组之间,甚至分布在多个PureApplication System位置, 如图4所示。

图4.虚拟机跨云组和位置的分布
跨云组和位置分布虚拟机

展示位置引擎的第一层在此阶段起作用。 它计算虚拟机在位置和云组中的可能分布。 如果您对放置决策感到满意,请单击“ 快速部署”以接受放置建议。 但是,如果您希望查看并可能修改展示位置建议, 如图4所示,请单击“ 准备部署”以查看建议。 图5显示了这些部署选择。

图5.部署按钮
部署按钮

部署选定的计算机放置之后,放置引擎的第一层将重新验证放置(例如,确保有足够的IP地址或计算资源来满足请求)。 如果容量不足,则在此阶段拒绝部署。

如果要在多个PureApplication System位置之间部署模式,则第一层放置位置还将验证是否存在所有必需的构件(图像,脚本包,附加组件和系统插件),并且每个构件都具有匹​​配的版本系统。 如果该系统缺少组件,则第一层放置将拒绝将组件部署到另一个系统的尝试, 如图6所示。

图6.跨多个位置的工件检查

放置的第一层针对正在部署的模式中的每个虚拟机组件独立建立其建议。 在每个组件内,如果有足够的容量,它将尝试在环境配置文件中的所有云组中(无论位置如何)最大程度地平均分配虚拟机。 作为次要考虑因素,当在具有相同数量虚拟机的云组之间进行选择时,此放置层更喜欢具有较少虚拟机的位置(如果有)。 例如,一个基于基础扩展策略包含四个实例的WebSphere®Application Server定制节点将在位置和云组之间尽可能多地分布。 但是,WebSphere Deployment Manager(dmgr)节点独立于定制节点放置,并且没有对其进行任何考虑。 因此,如果您的模式中有几个单例节点(例如dmgr和DB2®节点),则同样有可能将它们放置在相同的位置或不同的位置。

二线安置

在验证了放置并将部署提交到每个单独的位置后,第二层放置用于确定每个云组中用于放置每个虚拟机的各个计算节点。 此放置层为云组实施了高可用性目标(请参阅VM高可用性 )。 因此,如果部署会阻止云组实现高可用性,则可以拒绝该部署。 在每个云组中,第二层放置尝试在该云组中的计算节点之间平均分布(反汇总)来自同一部署的所有虚拟机,这些虚拟机具有相同的CPU和内存设置。 此外,如果将系统配置为强制执行许可,则此放置层严格确保不超出许可权利,即使这意味着将虚拟机强制置于同一计算节点上,甚至导致部署失败。 由于放置引擎正在同时进行优化以满足各种目标,因此虚拟机的分布或内存和CPU的分配在云组中的计算节点之间显得不平衡是很正常的。

在计算节点之间重新平衡虚拟机

每5分钟在您的PureApplication System上安排一次重新平衡作业。 该作业在第二层布置中运行,并比较每个云组中计算节点之间虚拟机的当前分配和使用情况。 如果重新平衡作业能够通过移动计算节点在虚拟机之间实现更好的平衡,则可以安排一些虚拟机从其当前计算节点实时迁移到另一个计算节点。 图7显示了作业队列上的内部重新平衡作业。

图7.显示内部重新平衡作业的系统作业队列
显示内部重新平衡作业的系统作业队列

重新平衡作业调整虚拟机在计算节点之间的分配,如下所示:

  • 如果删除或存储了任何虚拟机,从而释放了计算节点上的空间,则重新平衡作业可能会迁移虚拟机,如果1)迁移更好地满足了反并置目标,或者2)迁移导致了许可证使用量超出限制的情况下的恢复权利。
  • 如果将云组配置为允许CPU过度分配(即,云组的“类型”设置为“平均”),则重新平衡作业可能迁移虚拟机,前提是它能够更好地在整个云组中使用CPU。 如果一个计算节点的虚拟机未收到全部分配,并花时间等待CPU,而另一个计算节点的CPU空闲,则重新平衡作业会从繁忙的节点迁移虚拟机,前提是重新平衡未引起对虚拟机的争用。目标计算节点。 重新平衡作业考虑了最近几分钟的虚拟机活动。

如果有几个虚拟机适合迁移,则优先级较低的虚拟机将获得优先级。 图8在虚拟系统或虚拟应用程序实例视图中显示了部署优先级指示器。 您可以在部署时或在部署后通过单击“ 更改”更改部署的优先级。

图8.部署优先级
部署优先级

PureApplication Service和PureApplication软件

PureApplication Service和PureApplication Software产品与PureApplication System不同,因为它们当前不支持多云或多位置部署。 结果,第一层放置不适用于它们,因为在多个位置或云组之间永远都不会做出选择。 但是,第二层放置完全适用于PureApplication Service和软件。

高级注意事项

PureApplication提供了几种自定义系统的方法。 您可以选择配置系统以实现高可用性,可以在自动水平缩放或手动缩放之间进行选择,或者创建影响第一层放置操作的放置策略。 在实施任何这些高级配置之前,您需要了解实施这些配置时放置引擎的行为。 此外,部署GPFS群集时也存在重要的限制。

VM高可用性

您可以选择将云组配置为在计算节点发生故障时为高可用性保留资源。 您可以通过多种方式进行选择, 如图9所示。

图9.高可用性的云组选项
云组选项可实现高可用性

如果选择在系统级别保留资源,则必须指定一个或多个计算节点作为整个系统的备用节点。 如果云组中的计算节点发生故障,则备用计算节点将自动添加到您的云组中,并且故障的虚拟机将在恢复计算节点上重新启动。

如果您选择在云组级别保留资源,则一个计算节点的容量值将保留在您的云组中,并且不可用于部署。 如果您的云组中的计算节点发生故障,则发生故障的虚拟机将被迁移到云组中其余计算节点上的保留空间中,然后重新启动。

请注意,第二层布置基于云组中存在多少个计算节点来计算要在每个单独的计算节点上保留的特定余量。 例如,如果有四个计算节点,则将每个计算节点上的CPU和内存的四分之一留出,以实现高可用性。 放置引擎可确保新的部署保留此空间,并且重新平衡作业还可将虚拟机从一个计算节点迁移到另一个计算节点,如下所示:

  • 在每个计算节点上保留此空间(例如,如果您增加了虚拟机的CPU或内存分配)
  • 恢复余量(例如,在恢复故障的计算节点或重新启动先前置于维护模式的计算节点之后)

如果不保留资源,则计算节点发生故障时,云组中仍可能有备用容量。 系统尝试按其优先级顺序将尽可能多的虚拟机迁移到云组中的其余计算节点。 要更改优先级,请使用图8所示的部署优先级指示器。

通过访问Cloud |,您可以快速查看系统中所有云组的高可用性状态。 高可用性页面( 图10 )。

图10.系统高可用性摘要
系统高可用性摘要
水平缩放

无论您使用的是自动水平缩放还是手动缩放,您都需要在实例缩放其虚拟机时考虑放置引擎的动作。

向外扩展

扩展新虚拟机时,将调用第一层模式放置,以选择新虚拟机扩展到的云组和位置。 在PureApplication System V2.1中,只能在已经有相同虚拟机实例的云组中扩展新虚拟机。 从PureApplication System V2.2开始,即使虚拟机不包含任何现有虚拟机实例,新虚拟机也可以扩展到满足工件和容量的位置检查的任何位置或云组。 无论哪种情况,放置的第一层都会尝试选择虚拟机最少,可用容量最少的云组或系统,否则它将随机选择一个云组。

然后,在启动虚拟机时,将调用第二层放置以选择在其上运行虚拟机的计算节点。 第二层放置尽可能尝试将此新虚拟机平均分配给计算节点,以及同一部署中具有相同CPU和内存设置的所有其他虚拟机。

放大

当由于自动缩放或手动缩放而删除虚拟机时,不会调用放置引擎来选择虚拟机。 而是,伸缩代理通过使用以下步骤序列选择虚拟机:

  1. 搜索处于非运行状态的虚拟机。
  2. 搜索具有非运行状态角色的虚拟机。
  3. 搜索具有最低CPU使用率的虚拟机。
  4. 如果虚拟机的CPU使用率相同,则随机选择一个虚拟机。

但是,如果该虚拟机是部署的主虚拟机,则代理会跳过该虚拟机。 主虚拟机是承载模式实例的实例控制台的虚拟机。

要确定哪个虚拟机是主虚拟机,请单击管理以访问部署的管理UI。 在浏览器中记下IP地址; 该地址是作为部署当前主机的虚拟机的地址。

安置政策

您可以通过在模式编辑器中向虚拟机添加一个放置策略来影响第一层放置的决策过程( 图11 )。

图11.放置策略组件

放置策略会影响第一层放置如何尝试放置一组缩放的虚拟机。 回想一下,默认行为是在第一层放置中跨云组和位置反整理单个虚拟机组件的实例。 通过使用放置策略,您可以跨位置(系统)或云组指定这些虚拟机的硬配置或软配置或反配置。 如果不能满足您的约束,则硬约束将阻止部署模式,而软约束将使模式即使不满足约束也可以继续部署。

请注意,放置策略不能用于在模式编辑器中指定单独的虚拟机组件之间的放置行为。 它只能用于指定单个虚拟机的扩展实例之间的行为。 此策略在初始部署时以及在任何水平扩展时都会影响虚拟机的放置。

通用并行文件系统(GPFS)和共享块存储

在PureApplicationIntel®环境(包括PureApplication System,PureApplication Software和PureApplication Service)上,可以使用IBM Pattern for GPFS™来部署多节点GPFS集群。 群集可以包含多个GPFS服务器虚拟机,它们共享一个块存储卷,以提高性能和可用性。 在IBMPOWER®环境中,PureApplication System和PureApplication Software(V2.2及更高版本)支持多节点GPFS集群。

GPFS模式在其拓扑中编码特殊的放置指令,以确保GPFS虚拟机(1)强制分布在不同的计算节点上,并且(2)固定在这些计算节点上,以便即使计算节点发生故障也不会迁移它们。 这些说明绝对可以确保GPFS群集的高可用性。 在三节点群集中,如果将任何虚拟机放置在同一计算节点上,则如果该计算节点发生故障,则该群集不再可用。

这些特殊的放置说明不能在虚拟系统模式编辑器中使用。 如果您想以自己的模式使用共享块存储,例如用于DB2®pureScale®,Oracle®,Real Application Clusters(RAC)或Microsoft®Windows®集群,请与IBM联系以获取帮助,以将这些特殊放置说明编码到您的数据库中。模式拓扑。

禁用自动重新平衡和手动迁移虚拟机

客户偶尔会对禁用第二层PureApplication放置的自动重新平衡功能表示兴趣。 例如,如果您具有高可用性群集解决方案,并且想要手动管理虚拟机的放置,则可能要禁用自动重新平衡。 PureApplication System提供了可用于此目的的REST API。 “资源”部分包含有关禁用自动重新平衡和手动迁移虚拟机的信息。

IBM建议您继续启用重新平衡,并允许PureApplication放置引擎管理虚拟机的放置。

结论

在本文中,您了解了放置引擎在PureApplication System中的工作方式,以及它在PureApplication Software和PureApplication Service中的作用如何不同。 您了解了两层放置如何在模式的初始部署期间以及如何在以后扩展模式以添加或删除虚拟机时决定如何定位虚拟机。 本文介绍了较低层次的布置为重新平衡虚拟机使用情况而做出的持续决策。 它还描述了用于规划高可用性的各种选项,以及如果计算节点发生故障,较低的放置层如何实现这种高可用性。


翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/1605_moonen-trs/1605_moonen.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值