在Power System自動(dòng)部署Linux開源系統(tǒng)
在信息技術(shù)變化日新月異的今天, Linux 開源系統(tǒng)以其突出的高性價(jià)比,穩(wěn)定性和靈活的跨平臺(tái)支持,迅速滲透到各個(gè)行業(yè)的應(yīng)用領(lǐng)域; Power System 憑借其在性能上的優(yōu)勢(shì)一直在服務(wù)器領(lǐng)域處于前列。 借助日漸成熟的虛擬化技術(shù),Linux 開源系統(tǒng)和 Power System 將會(huì)更加有效的結(jié)合,在生產(chǎn)應(yīng)用中發(fā)揮出更大的作用。然而在Power System 上自動(dòng)部署 Linux 并不像在x86架構(gòu)下那么為人熟悉,常常會(huì)因?yàn)楦鞣N原因而導(dǎo)致部署失敗。本文將用實(shí)例介紹其部署特點(diǎn)及應(yīng)注意的問題,這會(huì)使在Power System 上管理維護(hù)Linux工作變得簡(jiǎn)單方便。
本文以在IBM Power 7邏輯分區(qū)LPAR( Logic Partition )中部署 Linux (主要發(fā)行版 Redhat, SuSE)為例,總結(jié)在 Power System 上自動(dòng)部署 Linux 系統(tǒng)的實(shí)踐及經(jīng)驗(yàn)。
一、Power Linux部署技術(shù)背景
1、背景簡(jiǎn)介
Linux 誕生至今,它作為一種開源操作系統(tǒng),已經(jīng)可以在大多數(shù)計(jì)算機(jī)體系結(jié)構(gòu)上部署,涉及平臺(tái)從嵌入式芯片系統(tǒng)到大型超級(jí)計(jì)算機(jī)。
一直以來 Power 服務(wù)器都支持 Linux 操作系統(tǒng),但限于其應(yīng)用范圍,普及度和使用度都不高,而與具體系統(tǒng)部署相關(guān)描述就更加寥寥。隨著 IBM 宣布在北京成立 Power System Linux 中心,這標(biāo)志著 Power 服務(wù)器將在支持 Linux 企業(yè)服務(wù)方面發(fā)力,越來越多的企業(yè)級(jí)應(yīng)用會(huì)運(yùn)行在 Power Linux 上。相應(yīng)地各種 Linux 系統(tǒng)的安裝需求會(huì)越來越多,如果能使 Linux 自動(dòng)部署將會(huì)給日常維護(hù)工作帶來極大的方便。
2、Power System 7邏輯分區(qū)的兩種運(yùn)行模式
與 x86 平臺(tái)不同的是, Power 服務(wù)器的硬件可擴(kuò)展性,硬件虛擬化功能。 本文介紹基于 POWER7 的系統(tǒng)針對(duì)邏輯分區(qū)可以提供 2 種模式:P6/P6+模式和P7模式。其區(qū)別如下表所示:
注:同一臺(tái) POWER7 服務(wù)器內(nèi)的不同 LPAR 可以運(yùn)行在不同模式下。
通過以上對(duì)比,不難看出系統(tǒng)運(yùn)行在 Power 7 模式下會(huì)使Power system的各方面性能得到更有效地發(fā)揮。
3、Linux對(duì)Power System 7支持情況
許多Linux發(fā)行版都可以運(yùn)行在Power系列服務(wù)器上,這里主要列舉Redhat 和 SuSE 對(duì)Power 7支持的具體情況:
Linux在Power 7 邏輯分區(qū)上支持處理器及線程情況:
值得注意的幾點(diǎn):
1. SLES10 SP3 and RHEL 5.5 在POWER7上只支持以Power6兼容模式運(yùn)行
2. SLES 11 and RHEL6 默認(rèn)情況下在POWER7上只支持以Power7模式運(yùn)行
3. 運(yùn)行SLES 11或RHEL 6的邏輯分區(qū),如果以Power6模式從Power6系統(tǒng)上遷移到Power7上,當(dāng)重新啟動(dòng)系統(tǒng)的時(shí)候?qū)⒈蛔赃m應(yīng)為Power7模式運(yùn)行
4. 當(dāng)Power7的邏輯分區(qū)被遷移到Power6以后,重啟系統(tǒng)以后將以Power6模式運(yùn)行
#p#
二、Power Linux網(wǎng)絡(luò)部署原理及方式
1、Power Linux網(wǎng)絡(luò)部署原理
Power 上 Linux 的網(wǎng)絡(luò)安裝原理與 x86 架構(gòu)基本類似,不同的是:在系統(tǒng)啟動(dòng)的時(shí),PowerPC 架構(gòu)系統(tǒng)使用的是 Open Firmware,x86 架構(gòu)系統(tǒng)使用的是 BIOS。 這種差異就導(dǎo)致Power上無法直接使用 pxelinux 作為網(wǎng)絡(luò)引導(dǎo)管理器(boot loader)來安裝Linux系統(tǒng),Yaboot 作為 PowerPC 下的網(wǎng)絡(luò)引導(dǎo)管理器(boot loader)將代替pxelinux完成網(wǎng)絡(luò)引導(dǎo)安裝操作。
Yaboot 是一個(gè)針對(duì) PowerPC 的網(wǎng)絡(luò)引導(dǎo)管理器,主要用于基于Open Firmware 啟動(dòng)引導(dǎo)的機(jī)器,包括Apple Macintosh, IBM RS/6000, IBM pSeries and IBM OpenPower。
PowerPC 下的 Linux 網(wǎng)絡(luò)啟動(dòng)過程,如下圖所示:
PowerPC 下的 Linux 網(wǎng)絡(luò)啟動(dòng)過程
網(wǎng)絡(luò)啟動(dòng)過程描述:
- 在網(wǎng)絡(luò)環(huán)境準(zhǔn)備好后,被安裝節(jié)點(diǎn)加電啟動(dòng);
- 被安裝節(jié)點(diǎn)選擇啟動(dòng)方式:硬盤、光盤、網(wǎng)絡(luò)。圖中選擇網(wǎng)絡(luò)啟動(dòng),發(fā)送 dhcp 請(qǐng)求;
- 安裝服務(wù)器獲取 dhcp 請(qǐng)求后,根據(jù) dhcpd.conf 的配置給被安裝節(jié)點(diǎn)分配IP;
- 通過yaboot獲取并啟動(dòng)內(nèi)核初始化程序;
- 被安裝節(jié)點(diǎn)內(nèi)核啟動(dòng),尋找安裝介質(zhì)并開始安裝工作;
- 被安裝節(jié)點(diǎn)系統(tǒng)安裝成功。
2、Power Linux網(wǎng)絡(luò)部署方式
Power 平臺(tái)下 Linux 可以選擇兩種網(wǎng)絡(luò)安裝方式:一種是基于 AIX NIM 服務(wù)器,另外一種是基于Linux DHCP 服務(wù)器。
兩種方式的使用特點(diǎn)具體如下:
基于 AIX NIM 服務(wù)器:
- 使用直接的 Bootp 請(qǐng)求
- 不要求提供網(wǎng)卡的 MAC 地址
需要被安裝 Linux 的網(wǎng)絡(luò)啟動(dòng)鏡像文件(即,安裝光盤目錄下文件 images/netboot/ppc64.img 下同)
在 Linux 的網(wǎng)絡(luò)啟動(dòng)鏡像文件不大于32MB的情況下,本安裝方式可以工作。
特別注意:當(dāng)網(wǎng)絡(luò)啟動(dòng)鏡像文件大于32MB時(shí),不得不采用另外的方式進(jìn)行網(wǎng)絡(luò)安裝
(例如:RHEL6 GA 64位系統(tǒng)的網(wǎng)絡(luò)啟動(dòng)鏡像文件--images/netboot/ppc64.img是大于32MB的,將不能直接采用此文件并基于這種方式網(wǎng)絡(luò)安裝)
基于 Linux DHCP 服務(wù)器:
- 使用廣播的Bootp 請(qǐng)求
- 要求提供網(wǎng)卡的 MAC 地址
- 使用 Yaboot 定義進(jìn)行網(wǎng)絡(luò)啟動(dòng)安裝
- 沒有網(wǎng)絡(luò)啟動(dòng)鏡像大小限制
根據(jù)以上特點(diǎn),管理員可以根據(jù)自己硬件的環(huán)境情況,選擇合適的安裝方式。#p#
三、以Redhat和SuSE為例介紹自動(dòng)部署及實(shí)踐
介紹網(wǎng)絡(luò)自動(dòng)化部署 Linux 的文章已經(jīng)很多,這里就不再詳細(xì)描述安裝步驟,請(qǐng)參考相關(guān)文章。本節(jié)將偏重介紹 Linux 在具體的 Power 邏輯分區(qū)網(wǎng)絡(luò)自動(dòng)安裝時(shí)應(yīng)注意的問題和實(shí)踐。
1、準(zhǔn)備邏輯分區(qū)和安裝介質(zhì)
如果在邏輯分區(qū)上安裝 Linux 系統(tǒng),需要事先劃分邏輯分區(qū),并分配足夠大小的硬盤空間。 可以通過購買安裝 CD/DVD,或者從網(wǎng)絡(luò)上下載安裝鏡像文件。獲得安裝介質(zhì)后,將對(duì)應(yīng)安裝文件遷移到共享服務(wù)器上。
注意:獲得介質(zhì)必須是針對(duì) PowerPC 平臺(tái)的安裝文件;檢查實(shí)際存放的安裝介質(zhì)路徑與NFS服務(wù)共享目錄保持一致。
2、配置安裝服務(wù)器
分別以兩種安裝方式介紹 TFTP/DHCP 的配置情況:
a. 基于NIM服務(wù)器:
TFTP資源定義:將 Red Hat/SuSE Linux 網(wǎng)絡(luò)引導(dǎo)鏡像,從安裝介質(zhì)中復(fù)制到 /tftpboot 下,如下所示:
- 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 Aug 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 文件,確認(rèn)網(wǎng)絡(luò)安裝需訪問的目錄定義生效
- # NIM access for network boot
- allow:/tftpboot
在每次更改 Bootp 配置之后,需要運(yùn)行如下命令使新的配置生效。
- refresh -s inetd
b. 基于 Linux DHCP服務(wù)器:
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 AA: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 AA:BB:CC:DD:11:33;
- fixed-address 192.168.0.11;
- }
- }
Yaboot的配置定義:
- default=test1-rhel5
- timeout=100
- image=pSeries/rhel/vmlinuz #指定內(nèi)核鏡像文件路徑
- label=test1-rhel5
- initrd=pSeries/rhel/ramdisk.image.gz#指定內(nèi)存鏡像文件路徑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文件及網(wǎng)絡(luò)安裝參數(shù)
- read-only
- image=pSeries/rhel/sles11-sp2-inst64#指定網(wǎng)絡(luò)引導(dǎo)內(nèi)核鏡像文件路徑
- label=test2-sles10#定義安裝標(biāo)簽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文件及網(wǎng)絡(luò)安裝參數(shù)
- #此處添加”\”僅為顯示需要,實(shí)際配置中均為連續(xù)一行。
3、NFS服務(wù)定義:
共享對(duì)應(yīng)安裝介質(zhì)存放目錄,為網(wǎng)絡(luò)安裝提供安裝介質(zhì)連接。
- root@dhcp:/tftpboot> exportfs
- /export <world>
#p#
4、自動(dòng)安裝應(yīng)答文件kickstart/AutoYaST:
定義自動(dòng)安裝應(yīng)答文件是自動(dòng)部署中的重要環(huán)節(jié)。kickstart/AutoYaST2分別是Redhat和SuSE下的自動(dòng)化安裝管理工具,在此工具中不僅可以定義幾乎所有交互安裝時(shí)需要的信息(包括指定分區(qū)大小,需要安裝軟件等),還可以定義在安裝之前或之后執(zhí)行自定義的腳本。這讓系統(tǒng)安裝操作范圍得到很大的擴(kuò)展,使得系統(tǒng)部署工作可以很輕松地滿足各種系統(tǒng)安裝需求。
關(guān)于這兩個(gè)工具的使用說明,讀者可以訪問本文給出的相關(guān)連接進(jìn)行了解,下面分別給出 Redhat 的kickstart 和 SuSE 的AutoYaST2 兩個(gè)實(shí)例模板
- #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 Asia/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 由于篇幅限制,本例在保證定義完整情況下對(duì)具體配置有所刪減,請(qǐng)使用時(shí)參考相關(guān)文檔
- <?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>
- #在此處定義網(wǎng)絡(luò)配置信息,具體請(qǐng)格式參考AutoYaST2文檔
- </interface>
- </interfaces>
- </networking>
- <scripts>
- #可以在此處定義安裝前/后執(zhí)行的腳本,具體請(qǐng)格式參考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>Asia/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>
5、HMC中網(wǎng)絡(luò)啟動(dòng)邏輯分區(qū)
本文介紹在HMC中使用 lpar_netboot 命令,通過指定網(wǎng)絡(luò)引導(dǎo)服務(wù)器來啟動(dòng)邏輯分區(qū)。
詳細(xì)命令如下所示:
啟動(dòng)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 "LPAR01" "test1-rhel5" "POWER01"
啟動(dòng)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 "LPAR02" "test1-sles10" "POWER01"
通常情況下,在運(yùn)行啟動(dòng)命令大約十幾分鐘后,整個(gè)安裝部署工作將完成。你將得到一個(gè)全新的運(yùn)行在Power System 7上的按照模板定制好的pLinux環(huán)境。
四、Linux在Power System上的自動(dòng)部署經(jīng)驗(yàn)總結(jié)
本文從Power Linux的技術(shù)背景介紹出發(fā),分析了Linux在Power虛擬化環(huán)境自動(dòng)部署的原理及方式,并以具體安裝實(shí)例來說明自動(dòng)部署的要點(diǎn)和使用網(wǎng)絡(luò)安裝命令的實(shí)踐,極大簡(jiǎn)化了系統(tǒng)安裝的操作步驟,為Power平臺(tái)的Linux部署提供有力的技術(shù)支持。
本文著重介紹了Linux在Power system上自動(dòng)部署的特點(diǎn)和常見問題及相應(yīng)解決辦法,并結(jié)合實(shí)例詳細(xì)說明 PowerPC 下的系統(tǒng)引導(dǎo)管理器-- Yaboot 及其在網(wǎng)絡(luò)安裝中的使用方法。
【作者簡(jiǎn)介】曲家富(系統(tǒng)工程師),任職于某大型外資IT企業(yè),從事系統(tǒng)管理工作,專注于系統(tǒng)自動(dòng)化部署。