自定义虚拟机布局规则虚拟化

2015-09-10    来源:TechTarget中国    编辑:王学强
借助于厂商提供的多种特性,现在管理员能够轻松实现应用负载在不同主机之间的自由迁移。但是需要注意的是并非所有主机服务器都适合运行任意种类的虚拟机。

  借助于厂商提供的多种特性,现在管理员能够轻松实现应用负载在不同主机之间的自由迁移。但是需要注意的是并非所有主机服务器都适合运行任意种类的虚拟机。

  虚拟机可移植性的出现使得管理员能够采用多种方式移动应用负载,而这些功能在原有物理数据中心当中是无法实现的。借助于VMware vMotion或者微软Live Migration for Hyper-V等特性,管理员能够将一台处于运行状态的虚拟机从一台虚拟主机迁移到另外一台当中,并且不会导致任何停机时间。管理员可能希望手动初始化迁移过程,这样就能够关闭主机服务器进行维护,或者希望虚拟机可以在负载迁移器的调度下进行自动迁移。不论哪种情况,最终结果都是虚拟机顺利迁移到其他可用主机服务器上。

  表面上看,将虚拟机从一台主机移动到另外一台主机当中并不会产生任何问题。然而,实际操作过程中可能存在主机服务器不适合某些虚拟机的情况。对于这种情况来说,为虚拟机迁移设定某些基本原则是非常重要的。

  布局规则的使用流程可能因hypervisor不同而存在很大差异。比如,VMware和Hyper-V所支持的规则种类非常类似,但是规则的创建方式却完全不同。这篇文章将会介绍一些能够起到帮助作用的虚拟机布局规则,但不会讲解所有规则的详细创建流程。

  法律法规

  管理员需要创建虚拟机布局规则的最常见情况之一就是法律规定需要将某些虚拟机运行在不同主机当中。在公有云环境当中,这种需求是非常常见的,但是有时在企业环境当中也需要遵守这些法规。

  假设一家公有云提供商同时为可口可乐和百事可乐公司提供服务。对于这种情况来说,很有可能需要根据合同需求将可口可乐公司的资源放置在单独的虚拟化容器当中,而不能和百事公司的虚拟机放在一起。类似地,在企业环境当中可能也需要将审计人员的资源和财务部门的资源相互分离。

  对于这种级别的隔离需求来说,相比于设定布局规则,有时将不同租户或者部门之间的虚拟机放置在不同的主机集群当中更加容易实现,但是两种方式都能够正常工作。

  多层应用程序

  有时创建虚拟机布局规则是为了保护多层应用程序。假设企业拥有一个包含前端web服务器和后端数据库服务器的自定义web应用程序,并且进一步假设web前端和数据库被存放在不同的虚拟机当中,由于这两种虚拟机是同一个应用程序的不同组成部分,因此你可能希望确保它们永远位于同一台虚拟化主机当中。相反地,考虑到性能或者安全因素,你也可能希望将虚拟机放置于不同的主机当中。

  如果你希望将所有虚拟机运行在同一台通用主机当中,那么最好的方式就是使用关联性规则。关联性规则强制要求特定虚拟机必须和其他虚拟机运行在同一台虚拟化主机当中,即便迁移也需要同时进行。

  Guest cluster

  通常Guest cluster也需要使用虚拟机布局规则。Guest cluster虽然是应用程序层集群,但是虚拟机也是其中的重要组成部分。Guest cluster结点通常不应该位于同一台通用主机服务器当中,因为如果主机服务器发生故障,那么整个Guest cluster都将受到影响。

  幸运的是,大部分hypervisor都在主机层建立了集群机制,如果主机出现故障,那么虚拟机会被自动故障转移到另外一台主机当中,这种方式能够保证即便所有guest cluster结点全部位于同一台主机服务器当中,也能够在主机出现故障之后正常运行。但是这种方式的问题在于主机集群当中的其他主机也许没有足够的可用资源来接收故障主机转移而来的所有虚拟机。因此,最好将guest cluster结点放置在不同的主机服务器当中,这样就不用担心guest cluster会受到主机层面故障影响了。

  保证guest cluster结点位于不同主机的最佳机制是使用非关联规则。除非已经没有足够的可用主机,否则非关联规则不允许特定虚拟机位于同一台通用主机当中,这样就能够保证非关联规则当中的所有虚拟机都位于不同的主机当中了。

  系统资源可用性

  需要考虑的另外一种因素是系统资源可用性。管理员肯定不会希望将虚拟机迁移到一台可用系统资源不足的主机服务器当中。如果有其他更好的方式可供选择,大多数hypervisor都不会将虚拟机放置在资源使用率很高的主机当中,但是有时候移动所有虚拟机的确有可能导致主机服务器处于高度负载状态。

  防止虚拟机完全耗尽可用硬件资源的方式之一是设定主机资源预留规则。主机资源预留机制被设计用来预留部分硬件资源供hypervisor使用,因此能够确保主机服务器资源不会被完全耗尽。

  如你所见,在多种不同情况当中都需要使用虚拟机布局规则。幸运的是,大多数主流hypervisor都已经支持创建主机布局规则了。

1
3