歡迎您光臨本站 註冊首頁

在Power System自動部署Linux開源系統

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

 在信息技術變化日新月異的今天, Linux 開源系統以其突出的高性價比,穩定性和靈活的跨平台支持,迅速滲透到各個行業的應用領域; Power System 憑藉其在性能上的優勢一直在伺服器領域處於前列。 藉助日漸成熟的虛擬化技術,Linux 開源系統和 Power System 將會更加有效的結合,在生產應用中發揮出更大的作用。然而在Power System 上自動部署 Linux 並不像在x86架構下那麼為人熟悉,常常會因為各種原因而導致部署失敗。本文將用實例介紹其部署特點及應注意的問題,這會使在Power System 上管理維護Linux工作變得簡單方便。

  本文以在IBM Power 7邏輯分區LPAR( Logic Partition )中部署 Linux (主要發行版 Redhat, SuSE)為例,總結在 Power System 上自動部署 Linux 系統的實踐及經驗。

  1. Power Linux部署技術背景

  1.1. 背景簡介

  Linux 誕生至今,它作為一種開源操作系統,已經可以在大多數計算機體系結構上部署,涉及平台從嵌入式晶元系統到大型超級計算機。

  一直以來 Power 伺服器都支持 Linux 操作系統,但限於其應用範圍,普及度和使用度都不高,而與具體系統部署相關描述就更加寥寥。隨著 IBM 宣布在北京成立 Power System Linux 中心,這標誌著 Power 伺服器將在支持 Linux 企業服務方面發力,越來越多的企業級應用會運行在 Power Linux 上。相應地各種 Linux 系統的安裝需求會越來越多,如果能使 Linux 自動部署將會給日常維護工作帶來極大的方便。

  1.2. Power System 7邏輯分區的兩種運行模式

  與 x86 平台不同的是, Power 伺服器的硬體可擴展性,硬體虛擬化功能。 本文介紹基於 POWER7 的系統針對邏輯分區可以提供 2 種模式:P6/P6+模式和P7模式。其區別如下表所示:

P6 / P6+ MODE P7 MODE Customer Value
2-Thread SMT 4-Thread SMT 吞吐能力、CPU 利用率
8 Storage Keys 32 Storage Keys  RAS、數據隔離的顆粒度、提升應用鍵的使用
VMX (Vector Multimedia Extension / AltiVec)支持單精度浮點運算,不支持雙精度浮點運算 VSX (Vector Scalar Extension)支持雙精度浮點運算 高性能計算
Affinity OFF by Default 3-tier Memory, MicroPartition Affinity 提升系統性能
64-core/128-thread Scaling 32-core / 128-thread Scaling
 64-core / 256-thread Scaling  256-core / 1024-thread Scaling
高可擴展、伺服器整合
EnergyScale CPU Idle EnergyScale CPU Idle and Folding with NAP and SLEEP  提升能源效率
N/A  Active Memory Expansion 擴展內存容量

  註:同一台 POWER7 伺服器內的不同 LPAR 可以運行在不同模式下。

  通過以上對比,不難看出系統運行在 Power 7 模式下會使Power system的各方面性能得到更有效地發揮。

  1.3. Linux對Power System 7支持情況

  許多Linux發行版都可以運行在Power系列伺服器上,這裡主要列舉Redhat 和 SuSE 對Power 7支持的具體情況:

  SUSE Linux Enterprise Server 11 SUSE Linux Enterprise Server 10 Red Hat Enterprise Linux 6 Red Hat Enterprise Linux 5
支持運行模式(Power7/Power6兼容) Power7 Power6兼容  Power7 Power6兼容
最早支持的版本  SLES 11 base SP3 RHEL 6 base U5
最新更新版本 SP3 GA 2013-07  SP4 GA 2011-04 U4 2013-02-21 U9 2013-01-07

  Linux在Power 7 邏輯分區上支持處理器及線程情況:

Linux 版本 支持的最多處理器數&線程數
P6 Mode P7 Mode
RHEL5 update U5 及更高 64/128 N/A
SLES10 SP3及更高 64/128 N/A
SLES11 64/128 256/1024
RHEL6  64/128 256/1024

  值得注意的幾點:

  1. SLES10 SP3 and RHEL 5.5 在POWER7上只支持以Power6兼容模式運行

  2. SLES 11 and RHEL6 默認情況下在POWER7上只支持以Power7模式運行

  3. 運行SLES 11或RHEL 6的邏輯分區,如果以Power6模式從Power6系統上遷移到Power7上,當重新啟動系統的時候將被自適應為Power7模式運行

  4. 當Power7的邏輯分區被遷移到Power6以後,重啟系統以後將以Power6模式運行

 

  2. Power Linux網路部署原理及方式

  2.1. Power Linux網路部署原理

  Power 上 Linux 的網路安裝原理與 x86 架構基本類似,不同的是:在系統啟動的時,PowerPC 架構系統使用的是 Open Firmware,x86 架構系統使用的是 BIOS。 這種差異就導致Power上無法直接使用 pxelinux 作為網路引導管理器(boot loader)來安裝Linux系統,Yaboot 作為 PowerPC 下的網路引導管理器(boot loader)將代替pxelinux完成網路引導安裝操作。

  Yaboot 是一個針對 PowerPC 的網路引導管理器,主要用於基於Open Firmware 啟動引導的機器,包括Apple Macintosh, IBM RS/6000, IBM pSeries and IBM OpenPower。

  PowerPC 下的 Linux 網路啟動過程,如下圖所示:


▲PowerPC 下的 Linux 網路啟動過程

  網路啟動過程描述:

  1. 在網路環境準備好后,被安裝節點加電啟動;

  2. 被安裝節點選擇啟動方式:硬碟、光碟、網路。圖中選擇網路啟動,發送 dhcp 請求;

  3. 安裝伺服器獲取 dhcp 請求后,根據 dhcpd.conf 的配置給被安裝節點分配IP;

  4. 通過yaboot獲取並啟動內核初始化程序;

  5. 被安裝節點內核啟動,尋找安裝介質並開始安裝工作;

  6. 被安裝節點系統安裝成功。

  2.2. Power Linux網路部署方式

  Power 平台下 Linux 可以選擇兩種網路安裝方式:一種是基於 AIX NIM 伺服器,另外一種是基於Linux DHCP 伺服器。

  兩種方式的使用特點具體如下:

  基於 AIX NIM 伺服器:

  使用直接的 Bootp 請求

  不要求提供網卡的 MAC 地址

  需要被安裝 Linux 的網路啟動鏡像文件(即,安裝光碟目錄下文件 images/netboot/ppc64.img 下同)

  在 Linux 的網路啟動鏡像文件不大於32MB的情況下,本安裝方式可以工作。

  特別注意:當網路啟動鏡像文件大於32MB時,不得不採用另外的方式進行網路安裝

  (例如:RHEL6 GA 64位系統的網路啟動鏡像文件--images/netboot/ppc64.img是大於32MB的,將不能直接採用此文件並基於這種方式網路安裝)

  基於 Linux DHCP 伺服器:

  使用廣播的Bootp 請求

  要求提供網卡的 MAC 地址

  使用 Yaboot 定義進行網路啟動安裝

  沒有網路啟動鏡像大小限制

  根據以上特點,管理員可以根據自己硬體的環境情況,選擇合適的安裝方式。

 

  3. 以Redhat和SuSE為例介紹自動部署及實踐

  介紹網路自動化部署 Linux 的文章已經很多,這裡就不再詳細描述安裝步驟,請參考相關文章。本節將偏重介紹 Linux 在具體的 Power 邏輯分區網路自動安裝時應注意的問題和實踐。

  3.1. 準備邏輯分區和安裝介質

  如果在邏輯分區上安裝 Linux 系統,需要事先劃分邏輯分區,並分配足夠大小的硬碟空間。 可以通過購買安裝 CD/DVD,或者從網路上下載安裝鏡像文件。獲得安裝介質后,將對應安裝文件遷移到共享伺服器上。

  注意:獲得介質必須是針對 PowerPC 平台的安裝文件;檢查實際存放的安裝介質路徑與NFS服務共享目錄保持一致。

  3.2. 配置安裝伺服器

  分別以兩種安裝方式介紹 TFTP/DHCP 的配置情況:

  a. 基於NIM伺服器:

  TFTP資源定義:將 Red Hat/SuSE Linux 網路引導鏡像,從安裝介質中複製到 /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 文件,確認網路安裝需訪問的目錄定義生效

# NIM access for network boot
allow:/tftpboot

  在每次更改 Bootp 配置之後,需要運行如下命令使新的配置生效。

refresh -s inetd

  b. 基於 Linux DHCP伺服器:?

  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 #指定內核鏡像文件路徑
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文件及網路安裝參數
#此處添加”\”僅為顯示需要,實際配置中均為連續一行。

 

  3.3. NFS服務定義:

  共享對應安裝介質存放目錄,為網路安裝提供安裝介質連接。

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

  3.4. 自動安裝應答文件kickstart/AutoYaST:

  定義自動安裝應答文件是自動部署中的重要環節。kickstart/AutoYaST2分別是Redhat和SuSE下的自動化安裝管理工具,在此工具中不僅可以定義幾乎所有交互安裝時需要的信息(包括指定分區大小,需要安裝軟體等),還可以定義在安裝之前或之後執行自定義的腳本。這讓系統安裝操作範圍得到很大的擴展,使得系統部署工作可以很輕鬆地滿足各種系統安裝需求。

  關於這兩個工具的使用說明,讀者可以訪問本文給出的相關連接進行了解,下面分別給出 Redhat 的kickstart 和 SuSE 的AutoYaST2 兩個實例模板

#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 由於篇幅限制,本例在保證定義完整情況下對具體配置有所刪減,請使用時參考相關文檔
<?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>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>

  3.5. HMC中網路啟動邏輯分區

  本文介紹在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 "LPAR01" "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 "LPAR02" "test1-sles10" "POWER01"

  通常情況下,在運行啟動命令大約十幾分鐘后,整個安裝部署工作將完成。你將得到一個全新的運行在Power System 7上的按照模板定製好的pLinux環境。

  4. Linux在Power System上的自動部署經驗總結

  本文從Power Linux的技術背景介紹出發,分析了Linux在Power虛擬化環境自動部署的原理及方式,並以具體安裝實例來說明自動部署的要點和使用網路安裝命令的實踐,極大簡化了系統安裝的操作步驟,為Power平台的Linux部署提供有力的技術支持。

  本文著重介紹了Linux在Power system上自動部署的特點和常見問題及相應解決辦法,並結合實例詳細說明 PowerPC 下的系統引導管理器-- Yaboot 及其在網路安裝中的使用方法。

 

  作者簡介:


▲曲家富 系統工程師

  任職於某大型外資IT企業,從事系統管理工作,專註於系統自動化部署。

  參考資料:

  Tuning Linux OS on System p – The POWER of Innovation

  IBM Redbook SG24-7338

  Deploying Mission Critical Applications with Linux on POWER

  IBM Redbook SG24-7286

  Virtualizing an Infrastructure with System p and Linux

  IBM Redbook SG24-7499

  PowerLinux Servers

  http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaam/

  Red Hat Enterprise Linux Documentation

  https://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

  SuSE Linux Documentation

  https://www.suse.com/products/server/technical-information/#Documentation

  Linux/PPC Netbooting Analyzed

  http://staff.science.uva.nl/~vdham/research/publications/asp-report.pdf

  Yaboot

  http://yaboot.ozlabs.org/



[火星人 ] 在Power System自動部署Linux開源系統已經有941次圍觀

http://coctec.com/docs/linux/show-post-68534.html