在Power System自动部署Linux开源系统

2013-10-17 09:09:49 | 新闻来源:叶凡网络 | 点击量:1068

分析了LinuxPower虚拟化环境自动安排的原理及方式,本文从PowerLinux技术背景介绍动身。并以具体装置实例来说明自动部署的要点和使用网络装置命令的实践,极大简化了系统装置的操作方法,为Power平台的Linux布置提供有力的技术支持。

Linux开源系统以其突出的高性价比,信息技术变化日新月异的今天。稳定性和灵活的跨平台支持,迅速渗透到各个行业的应用领域;PowerSystem凭借其在性能上的优势一直在服务器领域处于前列。借助日渐幼稚的虚拟化技术,Linux开源系统和 PowerSystem将会更加有效的结合,生产应用中发挥出更大的作用。然而在PowerSystem上自动部署 Linux并不像在x86架构下那么为人熟悉,经常会因为各种原因而导致布置失败。本文将用实例介绍其布置特点及应注意的问题,这会使在PowerSystem上管理维护Linux工作变得简单方便。

总结在PowerSystem上自动部署 Linux系统的实践及经验。本文以在IBMPower7逻辑分区LPA RLogicPartit中部署 Linux主要发行版 RedhatSuSE为例。

一、PowerLinux布置技术背景

0,1背景简介

作为一种开源操作系统,Linux诞生至今。已经可以在大多数计算机体系结构上部署,涉及平台从嵌入式芯片系统到大型超级计算机。

但限于其应用范围,一直以来 Power服务器都支持 Linux操作系统。普及度和使用度都不高,而与具体系统布置相关描述就更加寥寥。随着 IBM宣布在北京成立 PowerSystemLinux中心,这标志着 Power服务器将在支持 Linux企业服务方面发力,越来越多的企业级应用会运行在PowerLinux上。相应地各种 Linux系统的装置需求会越来越多,如果能使 Linux自动布置将会给日常维护工作带来极大的方便。

0,2PowerSystem7逻辑分区的两种运行模式

硬件虚拟化功能。本文介绍基于 POWER7系统针对逻辑分区可以提供 2种模式:P6/P6+模式和P7模式。其区别如下表所示:与 x86平台不同的Power服务器的硬件可扩展性。

注:同一台 POWER7服务器内的不同 LPA R可以运行在不同模式下。

不难看出系统运行在Power7模式下会使Powersystem各方面性能得到更有效地发挥。通过以上对比。

0,3Linux对PowerSystem7支持情况

这里主要列举Redhat和 SuSE对Power7支持的具体情况:许多Linux发行版都可以运行在Power系列服务器上。

LinuxPower7逻辑分区上支持处置器及线程情况:

值得注意的几点:

1.SLES10SP3andRHEL5.5POWER7上只支持以Power6兼容模式运行

2.SLES11andRHEL6默认情况下在POWER7上只支持以Power7模式运行

如果以Power6模式从Power6系统上迁移到Power7上,3.运行SLES11或RHEL6逻辑分区。当重新启动系统的时候将被自适应为Power7模式运行

重启系统以后将以Power6模式运行4.当Power7逻辑分区被迁移到Power6以后。

二、PowerLinux网络布置原理及方式

0,1PowerLinux网络布置原理

不同的系统启动的时,Power上 Linux网络装置原理与 x86架构基本类似。PowerPC架构系统使用的OpenFirmwarx86架构系统使用的BIOS这种差异就导致Power上无法直接使用 pxelinux作为网络引导管理器(bootloader来安装Linux系统,Yaboot作为 PowerPC下的网络引导管理器(bootloader将代替pxelinux完成网络引导装置操作。

主要用于基于OpenFirmwar启动引导的机器,包括AppleMacintosh,Yaboot一个针对 PowerPC网络引导管理器。IBMRS/6000,IBMpSeriandIBMOpenPow 

PowerPC下的Linux网络启动过程

网络启动过程描述:

  • 网络环境准备好后,被装置节点加电启动;
  • 被装置节点选择启动方式:硬盘、光盘、网络。图中选择网络启动,发送 dhcp请求;
  • 装置服务器获取 dhcp请求后,根据 dhcpd.conf配置给被装置节点分配IP;
  • 通过yaboot获取并启动内核初始化程序;
  • 被装置节点内核启动,寻找装置介质并开始装置工作;
  • 被装置节点系统装置胜利。

0,2PowerLinux网络布置方式

另外一种是基于LinuxDHCP服务器。Power平台下 Linux可以选择两种网络装置方式:一种是基于 AIXNIM服务器。

两种方式的使用特点具体如下:

基于 AIXNIM服务器:

  • 使用直接的Bootp请求
  • 不要求提供网卡的MA C地址

装置光盘目录下文件 images/netboot/ppc64.img下同)需要被安装 Linux网络启动镜像文件(即。

本装置方式可以工作。Linux网络启动镜像文件不大于32MB情况下。

不得不采用另外的方式进行网络装置特别注意:当网络启动镜像文件大于32MB时。

例如:RHEL6GA 64位系统的网络启动镜像文件--images/netboot/ppc64.img大于32MB将不能直接采用此文件并基于这种方式网络装置)

基于 LinuxDHCP服务器:

  • 使用广播的Bootp请求
  • 要求提供网卡的MA C地址
  • 使用 Yaboot定义进行网络启动装置
  • 没有网络启动镜像大小限制

管理员可以根据自己硬件的环境情况,根据以上特点。选择合适的装置方式。

三、以Redhat和SuSE为例介绍自动布置及实践

这里就不再详细描述装置方法,介绍网络自动化安排 Linux文章已经很多。请参考相关文章。本节将偏重介绍 Linux具体的Power逻辑分区网络自动装置时应注意的问题和实践。

0,1准备逻辑分区和安装介质

需要事先划分逻辑分区,如果在逻辑分区上安装 Linux系统。并分配足够大小的硬盘空间。可以通过购买装置 CD/DVD或者从网络上下载装置镜像文件。获得装置介质后,将对应装置文件迁移到共享服务器上。

注意:获得介质必需是针对 PowerPC平台的装置文件;检查实际存放的装置介质路径与NFS服务共享目录坚持一致。

0,2配置装置服务器

分别以两种装置方式介绍 TFTP/DHCP配置情况:

a.基于NIM服务器:

从装置介质中复制到/tftpboot下,TFTP资源定义:将 RedHat/SuSELinux网络引导镜像。如下所示:

root@nim:/tftpboot> ls -l * 

  • -rw-r--r-- 1 root system 11333732 Nov 15 2012 rhel5u5-netboot.img -rw-r--r-- 1 root system 11612524 Nov 15 2012 rhel5u6-netboot.img 
  • -rw-r--r-- 1 root system 15006880 A ug 27 17:19 rhel5u7-netboot.img -rw-r--r-- 1 root system 9512595 Nov 15 2012 sles10-sp3-inst32 
  • -rw-r--r-- 1 root system 10682935 Nov 15 2012 sles10-sp3-inst64 -rw-r--r-- 1 root system 10082439 Nov 15 2012 sles10-sp4-inst32 
  • -rw-r--r-- 1 root system 11307427 Sep 9 18:08 sles10-sp4-inst64 -rw-r--r-- 1 root system 19809567 Sep 9 18:18 sles11-inst64 
  • -rw-r--r-- 1 root system 23733099 Sep 9 19:20 sles11-sp1-inst64 

    BOOTP配置定义:

    #/etc/bootptab: 
  • test1-rhel5:bf=/tftpboot/test1-rhel5:ip=192.168.0.10:ht=ethernet:sa=192.168.0.100:sm=255.255.255.0: test2-sles10:bf=/tftpboot/test2-sles10:ip=192.168.0.11:ht=ethernet:sa=192.168.0.100:sm=255.255.255.0: 
  • root@nim:/tftpboot> ls -l test* lrwxrwxrwx 1 root system Sep 9 18:15 test1-rhel5 -> rhel5u5-netboot.img 
  • lrwxrwxrwx 1 root system Sep 9 18:30 test2-sles10 -> sles10-sp3-inst64 

    确认网络装置需访问的目录定义生效注:检查 /etc/tftpaccess.ctl文件。

    # NIM access for network boot 
  • allow:/tftpboot 

    需要运行如下命令使新的配置生效。每次更改 Bootp配置之后。

    refresh -s inetd 

    b.基于 LinuxDHCP服务器:

    TFTP资源定义:

    root@dhcp:/tftpboot> tree /tftpboot 
  • | |--pSeries/ 
  • | |-- rhel | | |-- vmlinuz 
  • | | `-- ramdisk.image.gz | |-- sles 
  • | | `-- sles11-sp2-inst64 | `-- yaboot 
  • `-- yaboot.conf 

    DHCP配置情况:

    #/etc/dhcp/dhcpd.conf 
  • option domain-name "test.power.com"; option domain-name-servers 192.168.0.8; 
  • option routers 192.168.0.1; ddns-update-style none; 
  • ignore unknown-clients; allow bootp; 
  • subnet 192.168.0.0 netmask 255.255.255.0 { default-lease-time 86400; 
  • max-lease-time 604800; host test1-rhel5 { 
  • next-server 192.168.0.102; filename "pSeries/yaboot"; 
  • hardware ethernet A A :BB:CC:DD:11:22; fixed-address 192.168.0.10; 
  • } host test2-sles10 { 
  • next-server 192.168.0.102; filename "pSeries/yaboot"; 
  • hardware ethernet A A :BB:CC:DD:11:33; fixed-address 192.168.0.11; 
  • } } 

    Yaboot配置定义:

    default=test1-rhel5 
  • timeout=100 image=pSeries/rhel/vmlinuz #指定内核镜像文件路径 
  • label=test1-rhel5 initrd=pSeries/rhel/ramdisk.image.gz#指定内存镜像文件路径append="ks=nfs:9.181.0.102:/export/ksFiles/test1-rhel5.ks.cfg ksdevice=eth0\ 
  • initrd=pSeries/rhel/ramdisk.image.gz\ dns=192.168.0.8 ip=192.186.0.10 gateway=192.186.0.1 netmask=255.255.255.0\ 
  • method=nfs:9.181.0.102:/export/redhat5u5p\ keymap=us lang=en_GB.UTF-8 vnc"#指定kickstart文件及网络装置参数 
  • read-only image=pSeries/rhel/sles11-sp2-inst64#指定网络引导内核镜像文件路径 
  • label=test2-sles10#定义装置标签append="autoyast=nfs://192.186.0.102:/export/autoyast/test2-sles10.yast.xml\ dns=9.181.2.101\install=nfs://192.186.0.102:/export/SLES11SP2\ 
  • hostip=192.186.0.11 gateway=192.186.0.1 netmask=255.255.255.0"#指定AutoYaST2文件及网络装置参数 #此处添加”\仅为显示需要,实际配置中均为连续一行。 

    3NFS服务定义:

    为网络装置提供装置介质连接。共享对应装置介质存放目录。

    root@dhcp:/tftpboot> exportfs 
  • /export <world> 

    4自动装置应答文件kickstart/A utoYaST

    此工具中不只可以定义几乎所有交互装置时需要的信息(包括指定分区大小,定义自动装置应答文件是自动布置中的重要环节。kickstart/A utoYaST2分别是Redhat和SuSE下的自动化装置管理工具。需要装置软件等)还可以定义在装置之前或之后执行自定义的脚本。这让系统装置操作范围得到很大的扩展,使得系统布置工作可以很轻松地满足各种系统装置需求。

    读者可以访问本文给出的相关连接进行了解,关于这两个工具的使用说明。下面分别给出 Redhatkickstart和 SuSEAutoYaST2两个实例模板

    #test1-rhel5.ks.cfg 
  • install nfs --server 192.168.0.102 --dir /export/redhat5u5p 
  • key --skip lang en_US.UTF-8 
  • network --device eth0 --bootproto static --ip 192.168.0.10 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 192.168.0.8 --hostname test1-rhel5 rootpw 123456 
  • firewall --disabled authconfig --enableshadow --enablemd5 
  • selinux --permissive timezone --utc A sia/Shanghai 
  • reboot bootloader --location=partition --driveorder=sda --append="console=hvc0 rhgb quiet" 
  • clearpart --all --initlabel --drives=sda part prepboot --fstype "PPC PReP Boot" --size=10 --ondisk=sda 
  • part / --fstype ext3 --size=1024 --ondisk=sda part swap --size=2048 --ondisk=sda 
  • part pv.5 --size=100 --grow --ondisk=sda volgroup basevg --pesize=32768 pv.5 
  • logvol /tmp --fstype ext3 --name=tmp --vgname=basevg --size=1024 logvol /opt --fstype ext3 --name=opt --vgname=basevg --size=1024 
  • logvol /usr --fstype ext3 --name=usr --vgname=basevg --size=2976 logvol /var --fstype ext3 --name=var --vgname=basevg --size=2048 
  • logvol /home --fstype ext3 --name=home --vgname=basevg --size=1024 %packages 
  • @admin-tools @base 
  • @core @editors 
  • @base-x @gnome-desktop 
  • %post echo "search test.power.com" > /etc/resolv.conf 
  • echo "nameserver 192.168.0.8" >> /etc/resolv.conf BOOT=`nvsetenv | grep boot-device | sed s/:.*$/,0/ | cut -d '=' -f 2` 
  • nvsetenv boot-device $BOOT #test2-sles10.yast.xml 由于篇幅限制,本例在保证定义完整情况下对具体配置有所删减,请使用时参考相关文档 
  • <?xml version="1.0"?> <!DOCTYPE profile SYSTEM "/usr/share/autoinstall/dtd/profile.dtd"> 
  • <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"> <configure> 
  • <networking> <interfaces config:type="list"> 
  • <interface> #此处定义网络配置信息,具体请格式参考AutoYaST2文档 
  • </interface> </interfaces> 
  • </networking> <scripts> 
  • #可以在此处定义装置前/后执行的脚本,具体请格式参考AutoYaST2文档 </scripts> 
  • </configure> <install> 
  • <bootloader> <global> 
  • <activate>true</activate>   <boot_chrp_custom>/dev/sda1</boot_chrp_custom> </global> 
  • <loader_type>ppc</loader_type> </bootloader> 
  • <general> <clock> 
  • <hwclock>localtime</hwclock> <timezone>A sia/Shanghai</timezone> 
  • </clock> </general> 
  • <partitioning config:type="list"> <drive> 
  • <device>/dev/sda</device> <initialize config:type="boolean">true</initialize> 
  • <use>all</use> </drive> 
  • </partitioning> <runlevel> 
  • <default>3</default> </runlevel> 
  • <users config:type="list"> <user> 
  • <encrypted config:type="boolean">false</encrypted> <home>/root</home> 
  • <shell>/bin/bash</shell> <uid>0</uid> 
  • <user_password>123456</user_password> <username>root</username> 
  • </user> </users> 
  • <software> <packages config:type="list"> 
  • <package>perl-Digest-MD4</package> </packages> 
  • <patterns config:type="list"> <pattern>Basis-Devel</pattern> 
  • <pattern>x11-64bit</pattern> </patterns> 
  • </software> </install> 
  • </profile> 

    0,5HMC中网络启动逻辑分区

    通过指定网络引导服务器来启动逻辑分区。本文介绍在HMC中使用 lpar_netboot命令。

    详细命令如下所示:

    启动test1-rhel5

    lpar_netboot -f -i -T off -t ent -s auto -d auto -S 192.168.0.100 -G 192.168.0.1 -C 192.168.0.0 "LPA R01" "test1-rhel5" "POWER01" 

    启动test2-sles10

    lpar_netboot -f -i -T off -t ent -s auto -d auto -S 192.168.0.100 -G 192.168.0.1 -C 192.168.0.0 "LPA R02" "test1-sles10" "POWER01" 

    运行启动命令大约十几分钟后,通常情况下。整个装置布置工作将完成。将得到一个全新的运行在PowerSystem7上的依照模板定制好的pLinux环境。

    四、LinuxPowerSystem上的自动布置经验总结

  • 上一篇:美媒:NASA数年前还震惊中国航天 如今注定衰落 下一篇:习近平会晤缅军总司令:望缅北早日稳定