免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1890 | 回复: 0

[高级应用] (转贴)System p 中的虚拟化 [复制链接]

论坛徽章:
0
发表于 2007-12-04 16:48 |显示全部楼层
以比较概念的方式讲述了 p 系列主机的虚拟化技术,是比较基础的东西,很不错。如果希望了解虚拟化技术或者LPAR的话,还是比较有用的。

原文:http://www.ibm.com/developerworks/cn/aix/library/au-syspvirtualization/index.html


级别: 中级
Ramakrishnan Kannan ([email=rkrishnan@in.ibm.com?subject=System%20p%20%E4%B8%AD%E7%9A%84%E8%99%9A%E6%8B%9F%E5%8C%96]rkrishnan@in.ibm.com[/email]), 高级软件工程师, IBM India

2007 年  12 月  03 日
利用虚拟化的优势,可以最大程度地利用您的各种资源。虚拟化是一种现代方法,从 POWER4 开始,在所有的 System p™ 服务器中都提供了这种方法。本文介绍了物理和逻辑分区,特别是关于如何实现逻辑分区的内容。
            引言
            您可以使用逻辑分区来承载各种不同的操作系统,通过在分区中分配操作系统和应用程序所需的硬件资源,您就可以创建这些分区。System p™中的虚拟化为不同的逻辑分区之间提供了严格的隔离。虚拟化具有一个重要的特性,在对逻辑分区进行动态配置和重新配置时,无需重新启动整个物理计算机,也不会影响到其他分区。对于微分区( Micro-Partitioning)™ 和虚拟 I/O 的支持是 POWER5™ 特定的新功能。
            为了对虚拟化、硬件、固件和操作系统提供支持,我们需要必要的支持。对虚拟化的硬件支持包括在 POWER5中引入一些新的寄存器,以及对中断控制硬件的设计。POWER Hypervisor 是在 POWER5 中实现虚拟化的一个固件组件。本文介绍了POWER Hypervisor 的作用,以及它如何在一个分区的环境中提高性能。同步多线程(SimultaneousMulti-Threading)是 POWER5 中的一个特性,它支持独立的指令流、或者线程,以便在同一个物理处理器中进行同步地执行。AIX®操作系统提供了某些特性以支持虚拟化,包括各种分区性能监视命令。本文还讨论了在 System p 中虚拟化的硬件、固件和操作系统支持。
            什么是虚拟化呢?
            在计算的世界中,虚拟化是对物理资源进行抽象的一种机制。它提供一种逻辑的方式,以便查看物理资源、它们的组织独立性、实现或者地理位置。
            准虚拟化的介绍
                            准虚拟化 是一种在 System p 中实现的虚拟化,它定义了名为 Hypervisor 的新层。该层位于硬件之上,并且使用称为 hypervisor 调用的硬件,通过一组低层的例程进行操作。操作系统通过这些 Hypervisor 调用为 Hypervisor 提供了接口。
            逻辑分区
            Systemp中的准虚拟化是通过进行逻辑分区来实现的。逻辑分区不同于物理分区,后者以物理边界对资源和硬件进行划分以创建相应的分区。在进行物理分区时,每个分区可能运行相同的操作系统、或者相同操作系统的不同版本。I/O 资源、处理器和内存并不在多个分区之间进行共享,因此,它们是完全隔离的。
            在进行逻辑分区时,通常使用一些物理处理器、内存和 I/O设备来创建逻辑分区。对于要分配给一个分区的资源数量,并没有具体规定(尽管在建立一个分区时,存在必须分配的最少资源)。因此,物理处理器、内存和I/O可以分配给一个或多个分区。每种资源可以采取任何比例来进行分配。某些资源可以在所有的分区中共享,如电源供应。可以创建的分区的总数依赖于系统处理器模型和可用的资源。
            一个分区,也称为 LPAR,可以与其他分区进行通信,就好像每个分区都是一台独立的计算机一样。可以独立地激活和重新启动各个分区(独立于其他的分区)。
                           
图 1. 逻辑分区
                            
            每个逻辑分区都可以运行一个独立的操作系统、或者相同操作系统的不同版本,但是在不同的分区之间,软件是相互隔离的。如果一个分区中的操作系统出了故障,在其他分区中运行的操作系统不会受到任何影响。类似地,一个分区中运行的应用程序不会对在其他分区中运行的应用程序产生任何影响。
            所有的分区都共同使用整个物理内存空间。然而,每个分区都有它自己的内存空间,这对性能不会有任何影响。可以通过独立的地址映射机制来维护地址的隔离。
            可以在不同的分区之间动态地分配和重新分配资源,而不会影响其他分区,也无需重新启动这些分区。对软件而言,对物理资源所做的更改和重新分配也可能是透明的。在执行应用程序期间,当为一个逻辑分区分配物理 CPU 失败的时候,这种透明性的意义非常重大。对正在 CPU中运行的应用程序而言,对出现问题的 CPU 的替换是透明的。
            POWER Hypervisor 的介绍
            POWERHypervisor 也称为来自 POWER5 的 phyp,是在 System p中实现准虚拟化的重要组件。它是一个全局固件映像,位于分区内存之外的物理地址零处的第一个物理内存块中。在启动系统的时候,它将获得控制权,并收集相关的信息(该系统中提供了多少内存、I/O 和其他资源)。POWER Hypervisor拥有并控制系统的全局资源,并且它负责建立逻辑分区,并定义分区的边界。它将跟踪分配给分区的资源,并在各个分区之间提供隔离。
            POWER Hypervisor 使用全局分区页表执行虚拟内存管理,并管理分区尝试访问超出其分配限制之外的内存的请求。我们将在后面的部分中更详细地讨论 POWER Hypervisor 的功能,包括调度和内存管理。
            分区特定的固件支持
            分区特定的固件实例负责处理特定于该分区的固件活动。它可以在分区中定位操作系统映像,将启动映像加载到内存中,并为启动传输控制。它还可以生成特定于该分区的设备树。因此,操作系统可以识别它拥有的设备,并使用这些设备。每个设备树仅包含分配给这个分区的设备。
            分区特定的固件提供了一组特定于 AIX 和 System p 的服务,称为运行时抽象服务(Run-Time AbstractionServices,RTAS)。固件通过这些服务对硬件的特定属性进行抽象。操作系统将调用这些服务,而不是直接地操作硬件。从而减少了在硬件更改时为每个平台修改操作系统的需要。对硬件的后续更改将仅影响 RTAS 服务。
            专用的和共享的分区
            使用逻辑分区的概念,您可以在 System p 中创建两种类型的分区。即专用的分区和共享的分区。
            正如在逻辑分区部分中指出的一样,在准虚拟化中,将对物理处理器进行逻辑上的划分。其结果是得到三类基于分区类型的处理器,即专用处理器、共享处理器和虚拟处理器。本文还介绍了与处理器执行相关的 Hypervisor 的作用。
            当整个物理处理器专用于单个逻辑分区的时候,将其称为专用的处理器。而在多个逻辑分区之间共享的物理处理器则称为共享的处理器。换句话说,在共享处理器模式中,对一个逻辑分区仅仅分配物理处理器的一部分。所分配的这部分物理处理器称为虚拟处理器。
            每个虚拟处理器的容量可以从物理处理器的 10% 到整个物理处理器。可以采用 0.01 处理单元的容量增量来定义处理能力。1.00 处理单元的能力与一个物理处理器相等。
            专门的分区由专门的物理处理器组成,而在共享的分区中,将在一组分区之间共享物理处理器的处理能力。
            在共享一个处理器的时候,应该确定为该分区所分配的处理单元的数目,以及将处理能力分布到多个分区的分区数目。一个系统可以包含共享同一组处理器的多个分区,并在它们之间划分处理容量。
            可以考虑下面的示例,以帮助理解专门的处理器和共享的处理器。假定有四个物理处理器:
  • P1
  • P2
  • P3
  • P4
P1 和 P2 是专用的处理器,而 P3 和 P4 是共享的处理器。             处理器对 P1 和 P2 以及 P3 和 P4 都拥有 2.0 的处理单元。您可以将 P1 和 P2 分配给 LPAR1 分区,同时您可以在 LPAR2 和 LPAR3 分区之中共享 P3 和 P4。
            LPAR2 和 LPAR3 提供了从 0.1 到 2.0 的处理单元。P3 和 P4 的组合能力属于一个共享池。也就是说,LPAR2 和 LPAR3 总的处理周期属于该共享池。可以共享的最大容量是 2.0。必须为每个分区分配的最小容量是 0.1。
            为 LPAR2 分配0.5 处理单元的虚拟处理器。剩余的 1.5 单元则分配给 LPAR3,LPAR3 有两个虚拟处理器。LPAR3 中的每个虚拟处理器都有 0.75 的处理能力。
                            图 2 描述了这个示例。
                           
图 2. 虚拟处理器
                            
            根据分区中应用程序的用途为该分区分配相应的处理能力。
            对于共享的分区类型,我们将所分配的物理处理器容量称为有权使用的容量。
            有两类分区模式:有上限的 (capped) 和无上限的 (uncapped)。如果共享的分区已经使用了分配给它的所有容量,那么它可以通过Hypervisor 调用,使用共享池中的空闲周期、或者还没有使用的周期。如果共享的分区配置为无上限的,那么这种情况是可能的。
            如果共享的分区配置为有上限的,那么它不能使用共享池中的任何空闲周期、或者还没有使用的周期。在缺省情况下,所有的专用分区都是有上限的。
            Hypervisor 在共享池中存储虚拟处理器的整个处理周期。它负责在特定的物理处理器中分配虚拟处理器。在分配的过程中所使用的两个 Hypervisor 调用是 hcede 和 hconfer。
            如果所分配的虚拟处理器在分配周期结束之前完成了它的工作,那么操作系统将调用 hcede Hypervisor 调用,以便将将剩余的周期交还给Hypervisor。Hypervisor可以使用这些周期来完成它自己的某些任务,如分配或者内存管理。如果虚拟处理器在同一周期中获得了新的工作,那么 Hypervisor会返回未使用的周期。
            hconfer 是操作系统在共享分区中使用的一个 Hypervisor调用,用以将一个虚拟处理器的某些处理器周期交换给同一个分区中的另一个特定的虚拟处理器,它能够判断出第二虚拟处理器需要使用第一个虚拟处理器所拥有的多余周期。例如,假定一个虚拟处理器持有一个锁,并且它没有足够的周期来释放这个锁。如果另一个虚拟处理器需要这个锁,并且拥有多余的周期,那么它通过这个调用将剩余周期交换给第一个处理器。
            如果某些专用分区有未使用的处理器容量,那么它可以将这些未使用的容量贡献给共享池,以便使用专门分区的系统能够获取更好的性能和更高的 CPU使用率。专门的分区提供了一个属性和贡献标记(可以对它们进行相应的设置),用于确定该分区是否可以将其未使用的周期贡献给共享池。
            从 POWER5 开始,Hypervisor 可以从专用的分区强制地窃取周期以进行 Hypervisor 的工作。尽管 Hypervisor通常在分区中的处理器处于空闲状态时才进行窃取,但它也可能在另一种情况下窃取周期,即当分区中的处理器等待某种 Hypervisor活动完成的时候。如果所窃取的空闲周期不足以完成 Hypervisor的工作,那么它还可以在处理器处于忙碌状态的时候挪用周期。这种周期的窃取操作与处理器贡献的启用以及任何分区设置无关。
            同步多线程
            处理器的类型或者数目,以及它们的能力都不能单独地决定系统的性能。可用硬件资源的有效使用率在系统性能中起到了重要的作用。
             这一点是广为认可的,因此在 POWER5 系统中引入了同步多线程。
             为了讨论同步多线程,您需要了解单线程执行过程在处理器中的正常执行。请参见下面的图 3
                           
图 3. 处理器的执行
                            
            其中,FX、FP 和 BRX 是不同的硬件执行单元。在硬件级别中,物理处理器是作为不同的执行单元进行组织的,例如定点和浮点操作单元。单个线程将通过这些执行单元中的其中一个来执行。
            在同步多线程中,在同一个物理处理器的不同硬件单元中,同步地执行来自同一个分区的两个独立的指令流(线程)。在硬件级别中,通过使用流水线操作来完成这个任务。
            同步多线程可以确保同步地利用所有不同的单元。在 POWER5 中,对于每个处理器,您最多可以拥有两个同步多线程的线程。物理处理器将负责处理这两个线程之间的同步问题。
[/td][/tr][/table]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP