|
Linux on POWER 概览
Linux 为您的业务解决方案带来了开放标准,以及最大限度的可用性和灵活性。它提高了基于POWER处理器的IBM System p系列服务器的性能和可靠性,应用程序可以充分利用 Linux on POWER的优点。本文简要介绍了Linux on POWER所采用的硬件和软件环境,目的是为应用和开发人员提供一些在入门时需要了解的知识。
Linux on POWER 硬件概述
IBM System p5 OpenPower edition、IBM System p5以及IBM System i5服务器都是基于相同的 POWER5/POWER5+ 基础架构的,这是最新的 POWER 技术,是一系列具有相同的基本基础架构的处理器。基于 POWER5 处理器的服务器可以扩展为64路对称多处理器(SMP)机器,在一个芯片中可以具有两个64位的处理器核心。POWER5处理器的优点包括:
同步多线程(SMT)
同时可以允许 POWER5 核心运行两个单独的指令序列。
虚拟引擎
设计用来将服务器、存储和网络资源汇集到一个虚拟环境中,从而对它们在多个应用环境和操作系统之间的使用进行优化。
大型机级别的可靠性、可用性和可服务性(RAS)技术
- 服务处理器:服务处理器是一个单独的微处理器,它实现了很多监视和故障记录功能,例如在启动时所出现的问题。服务处理器中的监视器可以自动启用,用来检查启动固件中的 "心跳信息"。如果在一段默认的时间内没有检测到心跳信息,那么服务处理器就会不断地查询系统电源的状态,并试图重新启动机器,直到系统成功启动为止。
- 首次故障数据捕捉(First Failure Data Capture,FFDC):软件可以使用FFDC来记录一些持久的故障和重要的软件事件。FFDC还可以提供一种方法在故障之间进行关联,让软件可以从故障的现象链接到产生故障的根源上,从而促进快速定位故障的根源。
- IBM Chipkill内存:Chipkill内存可以让计算机主板和固件检测计算机内存的问题,并可以有选择地禁用内存中有问题的部分。
- 错误检查和纠正(ECC)内存:内存卡上具有单错纠正和双错检测的 ECC 电路,可以纠正一位的内存错误。通过检测并报告超出 ECC 电路纠正能力的多位错误,双位错误检查可以帮助维护数据的完整性。内存芯片的组织方式可以确保任何特定的内存模块出现故障只会影响ECC字(位序列)中的一位,这样就可以在一个芯片完全不能用时,依然可以继续操作(这种技术就称为 Chipkill 恢复)。
- 动态处理器分配和逻辑分区(LPAR)容错技术:如果一个处理器上发生的错误超过了它可以恢复的上限,例如在访问二级缓存时出现了错误,那么就会记录这个事件。除了要记录这个错误之外,实际上还会对处理器进行标记,并对系统重新进行配置,这一切都是在保证操作系统继续运行的情况下进行的。这种特性可以让处理器得以延期修理,这样就可以减少非预期的系统宕机时间。
IBM System p5 ,OpenPower
2004年IBM提出两款针对Linux的OpenPower服务器:OpenPower 710 和OpenPower 720。2006年在所有的System p服务上安装Linux系统均统称为IBM System p5 OpenPower Edition,在IBM内部有相应的团队支持客户的Linux on Power的应用,这些团队也统称自己为OpenPower Team。
OpenPower 710和OpenPower 720服务器的目标客户是那些长期使用Linux的用户,以及那些希望获得最佳的性价比同时又要保证企业级可靠性和虚拟化技术的用户。
而更新款的IBM System p5是下一代的基于POWER5+的IBM System p服务器。System p5服务器是为那些企业级的UNIX/Linux客户以及那些希望使用可扩展性最好并且最可靠的 Linux和AIX服务器的用户设计的。在IBM内部对Linux和AIX支持是由不同的团队来进行的,以更切合客户的需要。
IBM System i5
IBM System i5是下一代的IBM System i服务器。System i5服务器为IBM i5/OS、IBM AIX 5L、Microsoft Windows和Linux解决方案提供了一种随需应变的计算环境。这些高度集成的服务器设计用来通过增强服务器的能力来降低复杂度并提高服务器的生产率。
System i5模型包括 System i5 520、System i5 550和System i5 570。这些服务器与它们的 pSeries 对应型号的配置非常类似,但是都有自己的区别。System p5和System i5之间的主要区别在于服务分区的定义。简而言之,服务分区就是一个可以用来更新POWER Hypervisor(POWER 处理器的基础固件)的分区。这是 IBM 虚拟引擎的神经中枢。System i5 Linux分区不能用作服务分区,而System p5 Linux分区则可以用作服务分区。
IBM BladeCenter JS21
BladeCenter JS21为客户提供了一种高密度型的服务器。在一个42U的机架中,最大可以安装 84 个 2 路或者 4 路的刀片服务器,这降低了对空间和制冷的要求。其模块化的设计可以帮助客户安全地进行扩充,并最有效地控制成本。
IBM BladeCenter JS21是基于64位的PowerPC 970处理器的,这些处理器的特性是具有惟一的 VMX(多媒体扩展)执行。VMX 是一种SIMD(单指令多数据流)实现。通常对于一台计算机来说,一条指令只会完成一个任务。但是SIMD指令不但可以完成一个任务,而且可以一次对多个数据执行这个任务。如果利用这种特性,某些应用程序(尤其是多媒体和图形程序)可以极大地提高性能。
Linux on POWER 操作环境概述
有很多Linux发行版都可以在POWER和PowerPC架构上运行。IBM目前在自己的基于 POWER 处理器的服务器上可以支持以下发行版:
- SUSE LINUX Enterprise Server(SLES)
- Red Hat Enterprise Linux Advance Server(RHEL AS)
- Red Flag DateCenter Linux(RedFlag DC)
这些发行版的最新版本都是在Linux 2.6版本的内核基础上构建的,与早期的2.4版本的内核相比,有很多特性和功能的改进,还可以利用POWER5的很多虚拟化技术。
2.6内核的特性
SLES 9和 RHEL4都是基于2.6版本的内核的。2.6版本的内核是最新的Linux 内核。通过运行2.6版本的内核,Linux可以从使用2.4版本的内核所不具备的很多新特性获益。尽管您可以下载并编译自己定制的内核,但是值得注意的是,Linux发行商自己会决定自己使用并支持哪个内核。因此,如果您的发行版本碰巧运行的是一个打过补丁的2.4版本的内核,那么您就无法使用以下这些2.6版本的内核所提供的新特性,但新线程模型除外,它在某些 2.4版本的内核也是可用的。
巨页
2.6版本的内核支持两种虚拟页的大小:传统的4KB页和16MB页。巨页的使用主要是为了改进那些对内存访问敏感的程序的性能。使用巨页支持之后,应用程序就可以将自己的文本段和数据段放在一个巨页(16MB)中运行了,而不用修改任何代码。性能的改进是由于降低了TLB(translation lookaside buffer)的缺页率。这是因为TLB可以映射一个更大的虚拟内存范围了。巨页还可以改进内存预取的效率:它不用根据4KB的边界来反复执行预取操作了。
PCI 热插拔
这种功能允许您在保证操作系统持续运行时将PCI热插拔适配器插入一个可用的PCI插槽中。这个适配器可以与目前安装的适配器类型相同,也可以是不同类型的PCI适配器。不必重新启动系统,操作系统和应用程序就可以直接使用这些新资源。也无需关闭系统,就可以使用一块相同类型的适配器来替换一块有问题的PCI热插拔适配器。当您更换适配器时,现有的设备驱动程序可以支持新的适配器,因为它们的类型相同。设备配置和有关适配器底层的设备配置信息在替换设备时都可以保留下来。
虚存(VM)
2.6版本的内核为虚存到物理页面的映射提供了一种有效的算法,称为反向映射(reverse mapping)。它可以对内存交换进行更智能的判断。在特殊的负载情况下,这可以极大地改进 VM 操作的性能。
调度程序
2.4 版本的内核中的调度程序在SMP系统中当进程完成自己的时间片并等待重新分配时会导致大部分CPU都处于空闲状态。另外,当空闲的CPU开始执行处于等待状态的进程时,有时会导致将某些进程在多个处理器之间产生乒乓效应。而2.6版本的内核解决了这个问题。新的调度程序还可以提高负载均衡能力和交互式应用程序的性能。
内核抢占
在2.4版本的内核中,不可能抢占正在内核态下执行的任务,包括使用系统调用进入内核态的用户任务,除非该任务自动放弃CPU。在2.6版本的内核中,内核任务是可以被抢占的。这不但可以提高用户的交互式应用程序的性能,而且可以用于嵌入式设备和实时系统。
线程模型
在 2.6 版本的内核中采用了改进的线程模型NPTL(Native POSIX Thread Library),其中内核线程与用户线程的相关度为1:1。NPTL 的性能可以显著地超过 Linux Threads(在 2.4 版本的内核中实现的线程模型)。NPTL对于多线程的企业级应用程序非常有价值,尤其是 Web 服务器和基于Java的应用程序。而且, 2.6版本的内核还可以处理10亿个进程id(PID),在2.4版本的内核中,这个限制是32,000。
异步 I/O(AIO)
尽管在用户级的线程基础上已经可以支持异步I/O 操作,但是直到2.版本的内核开始,这种功能的实现才使用了内核的支持。AIO操作是在后台运行的,它不会阻塞用户的应用程序,从而可以提高性能,这是因为 I/O操作可以与用户的应用程序同时运行了。很多应用程序,例如Web服务器、数据库和文件服务器,都可以利用这种功能进行重叠的处理和I/O操作。
其他改进
- 2.6版本的内核中的其他改进包括:
- 所支持的用户和组数目已经从65,000增加到了40亿。
- PID 的数目已经从 32,000增加到了10亿。
- 最大可以支持16 TB的文件系统。
- 打开文件个数的限制不再需要提前设置。
软件和中间件
IBM 已经向 Linux on Power 系统上移植了很多软件,包括基本的 DB2 Universal Database、Tivoli、WebSphere和 Java (IBM JDK)。
很多其他商业公司,例如 SAP、Oracle、Sybase 以及BEA 等公司也已经将自己的软件移植到了 Linux on POWER 平台上。
关于作者
Calvin Sze是IBM System Solutions Enablement组织的一名Linux顾问。他在得克萨斯州的奥斯汀市工作。Calvin 的主要职责是帮助解决方案开发人员将他们的应用程序引入Linux on POWER。Calvin致力 Linux和AIX平台上的软件开发和系统集成已经1 多年了。您可以通过calvins@us.ibm.com与Calvin联系。或者您也可以通过在北京的文章修订者李建文来提交您对Linux on Power的各种想法,他的联系方式:lijianw@cn.ibm.com。
|