分享

Linux on Power 技术及案例分享(详细步骤)

 allenhwl 2016-02-18
一、Linux on Power  技术简介

  在当今国内流行的企业基础平台构架中,X86 平台的计算设备基本都跑着基于 Linux 或 Windows 操作系统的多种应用, 在某些行业的一些关键业务还是会运行在 IBM Power 服务器的 AIX 系统平台上,这种明确的关系界限似乎已成为业界的普遍共识。

  而技术从来就没有真正的“国界” ,在今天这样一个多种 IT 技术与架构相互融合的时代,一次次的“跨界”打破着人们的浅常识。在2001年6月, Linux操作系统首次成功在IBM Power5系统上运行, 使Power成为第一个完全支持 64 位内核操作系统的计算机系统,而 Power 处理器发展到今天的 Power8 其实都能够完整支持 Linux 系统。 IBM 为血统纯正的 Power with AIX 硬件家族,专门开辟了专门针对 Linux 系统的子类硬件产品线(如 Power 7R1,Power 812L) 。


二、Power  服务器与 X86 服务器的 技术差异


  • 硬件基础结构差异

  要讲述这点就先从 Power 和 X86 两种处理器硬件架构的不同点说起。 首先两者所针对的主场对象有就有所不同, 从业界的普遍共识是 Power 主攻高端高性能服务器,X86 主攻中低端市场。

  而从两种 CPU 架构的技术差异看,两者的单核心性能差异不显著,甚至个别项目 X86 领选;而 Power CPU 的强项在于 SMP 结构,即内存对于所有 CPU 的访问的速度是一致的;而 X86 采用了 NUMA 结构,这就是说 CPU 和内存是分区的,每个CPU访问自己的这部分内存很快, 但是如果需要访问其它部分要走QPI总线了。这在客观上造成了随着 CPU 数量的增多, 处理性能的增长上 Power 架构的线性程度要好于 x86(这也是为什么很少会用 4 路以上的 x86 服务器) 。

  更重要的, 也是两者间最大的区别在于Power CPU具备较全面的可靠、 可用、可服务设计元素,即 RAS 特性。如:双晶体震荡器针对时钟校准、处理核心恢复针对寄存器错误并重置、GX+ IO 总线针对 IO 集线器的 ECC 保护、高能内存允许两颗内存芯片失效等。这些技术的运用使 Power 构架服务器的宕机时间较 X86有较明显的优势。

  • Linux 操作系统的支持上

  在商业领域中,X86 架构计算机的操作系统主要就是广为人知的 Windows 和Linux 两大家族,而 Power 服务器平台上的操作系统则长期是 AIX 的天下,主流发行版本的 Linux OS 对 Power 架构 CPU 的支持还是近些年的事情, 但势头突出。

  到目前为止, 四大常见的 Linux 发行版均已经有针对 Power 构架的主流版本发布。从Power平台上的Linux操作系统的可选范围看, 越来越能够适应大众口味。让广大的 Linux 系统运维人员多了一个选择, 而不会出现了硬件平台就玩不转的情况,当然这还需要中间件和应用上的配合。

  • 虚拟化平台技术比较

  在现如今这个言必谈“云计算”的时代, 大量企业的在基础架构层都做了虚拟化,其中尤以 VMWARE 的 vSphere 方案的最为主流。笔者因工作需要而一直在接触基础设施虚拟化, 在此也浅谈一下自己对 Power 和 X86 平台上对不同虚拟化技术的一点肤浅的经验和理解, 就以两者最为经典的 PowerVM 和 vSphere 技术为例。PowerVM 和 vSphere 两者都能够实现虚拟机的资源灵活调度,以及虚拟机的实时在线迁移。

  将差异聚焦在各自的底层实现、调度能力及可靠性上。PowerVM 能够在虚机运行时进行 CPU、内存以及虚拟适配器的在线动态增减,vSphere 也具备虚机在线变更网络配置的能力,但要调整 CPU、内存的配置就有操作限制了;可靠性上PowerVM 是基于硬件级别的(Power 内部置了“虚拟引擎 Virtualization” ,可以模拟存储、网络等硬件资源) ;vSphere 则都是软件级别的代码了(坦率说确实 vSphere 是 X86 虚拟化产品里相当成功的产品) ;虚拟化功能方面 PowerVM 比vSphere 有更丰富的表现,例如 NPIV 下的 SAN Boot;硬件可靠性上讲,IBM 的RAS 特性加上原厂较为一贯的品控,设备的故障率能够维持一个较低的水平,而X86 服务器由于品牌繁杂且型号众多,而难免有些拼 RP、碰运气。


三、 X86 Linux 应用程序迁移到 Power Linux 上所需要考虑的问题


  成功的应用系统迁移,其成败取决于应用程序本身架构要有充分了解。现今运行在 Linux 操作系统上的应用大致可分为“Java+开源”和“GNU C++”两类。

  Java 和开源结构的程序由于运行于 JVM 之上,理论上讲可以“直接”跑在主流厂商的 Linux for Power 版本上。以 RedHat 和 SUSE 为 Power 发布的版本中最流行的开源应用程序如 Apache,Tomcat,MySQL,Squid,Postfix 为例,都没有问题。

  对于这类应用迁移的工作主要考虑的是如何通过于中间件应用的调优或JVM 的参数设置,使应用程序能够充分发挥 Power 硬件平台的性能。而对于 GNU 等 C/C++工具编译的程序在两类平台上的差异主要体现在以下几个方面:

  • 字节顺序;

  • 32 位和 64 位应用程序环境中的数据类型长度;

  • 架构中的数据对齐方式差异;

  以上 3 点主要在 C/C++程序的编译当中,有兴趣了解一下的技术朋友可以更多了解一下(如 “将 Linux on x86 应用程序移植到 Linux on Power 的指南”

http://www.ibm.com/developerworks/cn/linux/l-port-linux-on-x86-application/index.html)


四、 利用 PowerVM  技术搭建 PowerLinux  操作系统 实战( 基于 RedHat Enterprise Linux 6.5 for PowerPC )


  接下来笔者分享一段在 PowerVM 环境下搭建一个 Linux 系统 LPAR 的经验,为便于对 Power 系统接触有限的朋友学习更易于了解,操作上主要通过 HMC 的Web 界面执行。

  首先,我们先制定基础设施的配置规划:

  A.  服务器使用一台 Power 780(9179-MHC) ,Lpar 资源分配采用共享式分配 0.5C/8G;

  B.  IP 地址设置为 111.1.1.209;

  C.  操作系统为 RedHat Enterprise Server 6.4 for Power;

  D.  在此我们使用PowerVM的NPIV模式连接存储, 连接2块50G的LUN,在操作系统级配置 RAID。

  1、VIOS 配置(双 VIOS 模式)

  首先创建 分区 :登录 HMC,找到需要创建 LPAR 分区的物理机,执行“配置—>创建分区—>AIX”


  创建 LPAR, 分区标识 ID 为 59 (自动) , 分区名称为 “PowerLinux_Sample”。

  CPU 配置如下:


  处理器分配模式为“共享”式


  内存设置如下:


  不用添加物理 I/O 适配器,接着点击“下一步”配置虚拟适配器。

  先添加一块“虚拟以太网卡” ,设置好相应的 VLAN_ID。



  连接 SAN 存储所需虚拟光纤适配器稍后添加。


  配置完成后确认并保存


  HMC 开始创建 LPAR


  2、接下来添加连接存储所需的光纤通道适配器

  在这台 P780 上的 2 个 VIOS,各配置一个虚拟光纤卡,ID 均设置为“99”,并指定客户机分区为 PowerLinux_Sample,客户端适配器 ID 分别为 4 和 5,如下图:  


  对于使用 ISO 镜像进行操作系统的安装,需要使用虚拟光驱。在 VIOSA 上增加服务器 SCSI 适配器,设置 ID 为 25,对象为“任意分区” 。


  接下来修改新建客户分区“PowerLinux_Sample”的 Profile 文件,添加 2个对应于 VIOSA/B “客户端光纤通道”的虚拟光纤适配器 ID 分别为 4 和 5,服务器端适配器标识均为 99。


  最后添加一个对应于 VIOSA 上适配器 ID 为 25 的 1 个“客户机 SCSI”虚拟适配器,从而形成如下的虚拟适配器配置清单。

  记录下每个两个客户机光纤通道虚拟适配器的 WWPN 号,交由存储管理员进行存储的划分和 ZONE 的配置。

  接下来登录到VIOSA/B上分别进行虚拟光纤通道卡和与物理HBA卡之间的映射。 (注:XX 代表实际适配器的 ID 编号,以下类同)

  $ vfcmap –vadapter vfchostXX -fcp fcsXX

  为 VIOSA 上的虚拟 SCSI 适配器创建虚拟光驱,如成功,将显示生成虚拟CD-ROM 适配器标识“vtopXX”。

  $ mkvdev -fbo -vadapter vhostXX

  将复制到 VIOS 介质库内的 ISO 文件挂载到新生成的虚拟 CDROM 适配器上。

  $ lsrep

  Size(mb)  Free(mb)  Parent Pool  Parent Size  Parent Free

  40797   17289    rootvg   571392   367616

  Name           File Size   Optical Access

  AIX6100-07-04_DISK1.iso   4326 None   rw

  AIX7100_03_disk1.iso     3983 None   rw

  RHEL6.5-Server-ppc64-DVD1.iso 3193 None  rw

  $loadopt -disk RHEL6.5-Server-ppc64-DVD1.iso -vtd vtoptXX

  以上便完成了 VIOS 和新建 LPAR 的配置,启动分区检查 SAN 盘的连通性。如验证通过,接下来我们就可以进行 RedHat Linux for Power 操作系统的安装了。


  启动分区按“1”,进入 SMS 菜单按“5”手工选择引导设备。

  再选择“3”CD/DVD 引导。



  到此,可能一些用户会感到困惑,在 Red Hat 和 SUSE 的字符安装界面相对于图形安装界面实在不友好,且字符界面的能配置的内容很少、操作不方便。尤其是 Red Hat 6,通过字符安装界面无法选择要安装的软件包,只能安装出一个基本的,不含 X Windows 和 Desktop 的系统。

  而由于 RedHat 6 和 SUSE 都支持 VNC (Virtual Network Computing)远程图形安装 PowerLinux。用户不需要显卡,也不用在机房内,即可通过图形界面来安装 PowerLinux (包括 Red Hat 和 SUSE) ,这个对 Power 用户,尤其是刚开始接触 PowerLinux 的来讲是非常有用和方便的。

  在出现 boot:提示后,输入启动参数

boot: linux vnc ip=111.1.1.209 gateway=111.1.1.254 netmask=255.255.255.0


  之后便进入了介质检查的字符界面


  选“skip”跳过介质检查,安装程序接下来便启动 VNC 服务器,以及显示相关 session 编号“111.1.1.209:1”。


  接下来我们便开始通过 VNC 进行操作系统的安装了。


  鼠标点击“Next” ,语言使用“简体中文”和键盘布局为“美国英语”等的步骤图在此忽略。

  接下来配置主机名和以太网适配器的 IP 地址。


  设置 Root 口令


  接下来存储配置工作是重要的,在此我们使用“指定的存储设备”,Power Linux 版本的 Redhat 集成了驱动程序, 自动识别到两块 60G 的 SAN磁盘 LUN。


  在此需要先规划好各文件系统的 RAID 配置和空间分配(对引导和重要的文件系统配置成 RAID 1“镜像”模式) 。



  从源驱动器的选择清单中可以看到两块硬盘。


  创建 RAID 分区。

  

  再创建的 RAID 分区、RAID 设备、以及 LVM 物理卷和卷组等不再重复描述,文件系统规划配置如下图所示:

  在此有两点重要提醒:

  1) 每块分区一定要先分一个 4~10MB 的 PPC prep Boot 类型的分区,用于Power LPAR 的启动,这是与 X86 上安装 RedHat 6 的重要区别;


  2) 第二块分区一定要是/boot,如果使用 RAID 的话,只能设定为 RAID 1;

  分区设置验证通过后,操作系统安装程序会要求将存储配置写入磁盘,点击“将修改写入硬盘”。


  接下来便开始进入操作系统组件的选装阶段:


  这部分内容由于各独特的环境和应用的需要来选择安装, 在此就不特别描述了。

  只是有一点需要注意的, 在选择 Desktop 组件时, 一定要把 tigervnc-server软件包勾选上,这样安装完成后便能够配置启动 VNC server,以实现远程图形方式访问这个 Linux 环境。


  开始进行系统安装了。

  安装完毕后可以重新引导。



  重新启后需要对部分选项进行调整,如关闭防火墙的自运等,之后使用 VNCView 远程进行图形访问。

  到此,其实并没有完整地对 Linux on Power 安装,PowerVM 下的多种特性的支持还需要为这个 LPAR 安装一些 tools,类似于 VMWare Tools,只是这个过程需要完全手工操作。

  (介质的下载,可以访问如下地址:

http://www14.software.ibm.com/support/customercare/sas/f/lopdiags/red

hat/hmcmanaged/rhel6.html)

  登录操作系统,将介质上传到安装目录下,按照如下顺序进行这些 RMC 资源调度工具的安装。

librtas-1.3.11-1.el6.ppc.rpm

librtas-1.3.11-1.el6.ppc64.rpm

librtas-devel-1.3.11-1.el6.ppc.rpm

libservicelog-1.1.14-3.el6.ppc.rpm

libservicelog-devel-1.1.14-3.el6.ppc.rpm

src-3.1.5.10-15068.ppc.rpm

rsct.core.utils-3.1.5.10-15068.ppc.rpm

rsct.core-3.1.5.10-15068.ppc.rpm

devices.chrp.base.ServiceRM-2.4.0.0-15068.ppc.rpm

DynamicRM-1.3.9-9.ppc.rpm

  安装成功后,从 HMC 上操作就会性,动态微分区的功能可能实现操作了,例如调整 CPU、内存,甚至 LPM。

  接下来试试 PowerVM 的 CPU 调整功能,如当前 CPU 运行数是 1C、8G,


  调整目标为 2C/12G


  内存的调速界面与 CPU 类似。

  操作稍后,HMC 就会将调整后的结果显示于用户界面中。

  接下来, 我们测试Linux微分区在PowerVM下的重要功能在线迁移——LPM,将这个新建的 Linux 分区在不关机的情况下迁移到另外一台 Power 服务器上。


  输入新的 Profile 名称。


  选定目标物理服务器。


  HMC 开始进行迁移前的验证。


  验证时间可能会比较长,一般会持续 3-5 分钟。

  迁移验证的结果是如下一条警告,在此可以忽略而不会影响 LPM 迁移。


  一些配置参数确认后便开始在线迁移操作了。


  迁移的同时打开操作系统的“系统监视器”, 显示在迁移过程中 CPU 和网络流量的状态发生了一定变化。


  迁移即将完成后的性能波动


  迁移成功,从 HMC 上可以看到分区已经置于另外一台 Power 服务器的计算容器内。


  以此的说了这么多,无非是让运维人员在老板给出问题面前能多一种选择,不是有句话么——更多选择,更多欢笑。


长按下图二维码关注“AIX专家俱乐部”公众号,或直接搜索公众号名称


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多