johnzhang518
作者johnzhang518·2021-01-26 16:15
技术支持·IPS

Power的CPU虚拟化技术和应用

字数 2868阅读 3390评论 1赞 3

众所周知, PowerVM 是 Power 小型机上的虚拟化技术的集合,包括 Hypervisor 、微分区( Micro-Partitions )、虚拟 IO 服务器( Virtual I/O Server )、动态分区迁移( Live Partition Mobility )以及 HMC 管理功能等,能够为用户提供一个动态共享的基础架构,实现计算资源的动态调配,从而提高资源的利用率,从容应对业务需求的变化。

CPU 虚拟化可以说是 PowerVM 的核心功能之一,很多用户都是从了解 CPU 虚拟化开始入手的。 PowerVM 的 CPU 和内存虚拟化是一种基于固件层( firmware )的虚拟化技术,这使得 PowerVM 能够提供比其他虚拟化技术更加灵活的使用方式和更高的安全性。

本文就重新梳理一下 Power 小型机上的 CPU 虚拟化技术,并结合实际应用场景,看看 CPU 虚拟化能够给我们带来什么价值。下面我们先看看跟 CPU 相关的功能和概念:

逻辑分区( Logical Partition ):逻辑分区是大家平时使用最多的一种分区方式,它是将一个物理的服务器划分成若干个逻辑的服务器,每个逻辑分区运行自己独立的操作系统,有自己独享的处理器、内存和 I/O 资源 , 这些资源在各个 LPAR 之间是隔离的。在逻辑分区中,所有 CPU 都是整颗分配的,也就是增加和减少的粒度为 1 个 CPU 核心。

微分区:微分区技术是对 CPU 资源更精细化使用的技术,它允许我们每个微分区最少分配 1/20 颗 CPU 核心,并且可以以 1/100 颗内核的粒度进行分区资源的增加或者减少。虽然每个分区可以最小分配 0.05 颗核心,但是这在实际生产中的意义并不是很大,没有哪个业务会只使用这么少的 CPU 资源,但使用微分区能使得我们宝贵的 CPU 资源的调度更加细粒度化,从而有效提高了资源的利用率。

共享处理器池( Shared-Processor Pools ):共享处理器池是先将物理 CPU 放置于一个共享的处理器池中,由 Hypervisor 统一的调度并分配到微分区之中使用。共享的 CPU 一般情况下是放在默认的 SPP 中,但是对于纵向扩展的服务器, CPU 核数较多,不同 CPU 有着不同的业务场景和需要时,可以设置多个 SPP ,也就是 MSPP ( Multiple Shared-Processor Pools )的概念。

Capped 或 Uncapped :共享 CPU 的模式可以设置为 Capped ( 封顶 ) 或者 Uncapped( 不封顶 ) , capped 的意思是分区在运行过程中不能获取超过 PU ( Processing Units )的期望值的处理能力; uncapped 的意思是分区在运行过程中可以获得超过 PU 的处理能力,最大可以达到 VP ( Virtual Processors )的值,如果 CPU 设置为共享模式,通常建议设置为 uncapped 模式。

Weight :如果设置了 uncapped 选项,就需要设置一个 weight( 权重 ) 值, weight 值的大小从 0 到 255 ,其中 0 表示是 capped 分区, 255 表示权重最大,在资源空闲的时候, Weight 值越大,优先级最高。当多个 uncapped 的微分区同时需要资源时, Hypervisor 会根据各微分区的 Weight 值的比例对 CPU 资源进行调度和分配。

CPU虚拟化的常见用法:

谈了很多概念上的内容,其实我认为 PowerVM 与其他虚拟化技术最大的不同点就是其灵活性。当我们使用其他虚拟化技术的时候,由于使用了软件进行虚拟化,因此一旦选择使用虚拟化,那么所有功能均是通过虚拟化软件来实现的。而对于使用 PowerVM 的 Power 小型机,选择就非常丰富了:

1) 整机部署,即一个 Power 小型机只有一个 LPAR ;

2) 一台 Power 小机部署多个 LPAR ,各 LPAR 间均物理隔离,互不影响;

3) LPAR 和微分区同时使用,也就是在一台物理机上既有独立的 LPAR ,也有微分区;

4) 仅使用 CPU 和内存的虚拟化,但不使用 IO 的虚拟化,即不通过 VIOS 提供虚拟化服务;

5) 除了部署 2 个 VIOS 分区,其余资源全部采用微分区。

案例:

现在大量企业级客户已经在其生产环境和开发测试环境使用了 PowerVM 虚拟化技术,下面我们看看 CPU 虚拟化如何在实际环境中帮助大家的。

案例一:某城商行开发测试云平台

该客户使用 6 台 POWER8 机器,并利旧 2 台 POWER7+ 机器,构建了开发测试云环境。 8 台 Power 服务器通过 PowerVM 实现了虚拟化,所有虚拟化分区均采用微分区模式,设置为 uncapped 模式,构建 CPU 资源池, 并通过 VIOS 提供网络和存储的连接。结合 PowerVC 的图形化界面,给日常管理和资源调整提供了极大的便捷性。

通过构建开发测试云平台,能够带来以下帮助:

Ø 帮助用户简化 Power 虚拟化资源的管理,实现快速的虚拟机部署和资源调整;

Ø 具备了对接用户私有云管理平台的能力。

案例二:某城商行生产环境 CPU 虚拟化的使用

该客户在 2020 年新采购的 POWER9 小型机上,大量采用了 LPAR 和微分区混合部署的模式。其基本部署原则是对于 A 类和 B 类业务系统的数据库,采用 LPAR 的部署方式,对于部分 A 类、 B 类的应用服务器和部分 C 类以下业务系统的数据库,采用虚拟化微分区的部署模式。

以 1 台 32 核心的 K1 Power E950 上应用部署为例, A 类应用网上银行的数据库服务器 A 节点采用 LPAR 方式, B 类应用财务管理系统数据库服务器 B 节点采用 LPAR 方式, 2 个 VIOS 各分配 1 core ,剩余的 12 core 放在共享处理器池中,部署包括国际结算系统、综合报表系统等 5 个微分区。

通过这种部署方式,能够带来以下帮助:

Ø 用户选择了企业级高端小型机 K1 Power E950 这种纵向扩展服务器,获得了更好的单机可靠性;

Ø 通过 LPAR 部署方式,为重要的 A 类和 B 类业务提供了高性能保障;

Ø 通过微分区技术提高了 CPU 资源的利用率,使得更多的业务系统能够运行在稳定性更高的服务器上。

综上,可以看出 PowerVM 及其 CPU 虚拟化技术在提高资源利用率和业务灵活性上,能够给我们提供很多有利的帮助。虽然 PowerVM 是非常优秀的虚拟化技术,但是如果我们想很好地利用起来,也不能一蹴而就,需要先在开发测试环境进行尝试,熟悉 PowerVM 上的各种功能和日常运维方法,循序渐进,才能逐渐过渡到生产环境中,使 PowerVM 得到更好的使用。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论1 条评论

匿名用户
2022-02-23 15:00
写的不错,值得学习
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广