blog

パワーシステムにおけるLinuxオープンソース導入の自動化

本稿では、IBM Power 7 論理パーティション LPAR 上での Linux のデプロイを例にとり、Power System 上での Linux の自動デプロイの実践と経験を要約します。...

Oct 17, 2013 · 13 min. read
シェア

I. パワーリナックス導入の技術的背景

1.簡単な背景

Linux は、その誕生以来、オープンソースのオペレーティングシステムとして、組み込みシステムオンチップから大型スーパーコンピュータまで、ほとんどのコンピュータアーキテクチャに導入されています。

Powerサーバーは常にLinuxオペレーティングシステムをサポートしていますが、その適用範囲に限定され、人気と使用率は高くなく、さらに特定のシステム展開記述に関連していません。IBMが東京にPower System Linux Centreを設立すると発表したことは、PowerサーバーがLinuxエンタープライズ・サービスのサポートに力を入れることを意味し、ますます多くのエンタープライズ・レベルのアプリケーションがPower Linux上で実行されるようになるでしょう。それに伴い、様々なLinuxシステムを導入したいという要望も増えてくるでしょうし、Linuxを自動で導入できれば、日々の保守作業にも大変便利です。

2.パワーシステム7論理パーティションの2つの動作モード

x86 プラットフォームとは異なり、POWER サーバーはハードウェアのスケーラビリティとハードウェア仮想化機能を備えています。 この記事では、論理パーティションに P6/P6+ モードと P7 モードの 2 つのモードを提供する POWER7 ベースのシステムを紹介します。違いは下表のとおりです:

注記:同じ POWER7 サーバー内の異なる LPAR は異なるモードで実行できます。

上記の比較を通じて、Power 7 モードでシステムを稼働させることで、Power システムのすべての側面がより効果的に機能することが容易にわかります。

3.パワーシステム7のLinuxサポート

多くのLinuxディストリビューションがPowerシリーズサーバー上で動作可能です。これは、Power 7のRedhatとSuSEサポートの仕様のリストです:

LinuxはPower 7論理パーティション上でプロセッサとスレッドのプロファイルをサポートします:

特筆すべき点がいくつかあります:

1. POWER7 上の SLES10 SP3 および RHEL 5.5 は、Power6 互換モードでの実行のみをサポートしています。

2. SLES 11 と RHEL6 は、デフォルトでは POWER7 での Power7 モードでの実行のみをサポートしています。

3.Power6 システムから Power6 モードで Power7 に移行された SLES 11 または RHEL 6 を実行している論理パーティションは、システムの再起動時に Power7 モードで実行されるように適応されます。

4.Power7の論理パーティションをPower6に移行した後、再起動するとPower6モードで動作します。

#p#

Power Linux ネットワーク展開の原則と方法

1、Power Linuxネットワーク展開の原則

PowerPC アーキテクチャはブート時にオープンファームウェアを使用しますが、x86 アーキテクチャは BIOS を使用します。 この違いにより、pxelinux をネットワークブートマネージャとして使用して PowerPC に Linux を直接インストールすることは不可能であり、PowerPC のネットワークブートマネージャである Yaboot が pxelinux の代わりにネットワークブートインストールを行います。この違いにより、PowerPC に Linux を直接インストールするネットワークブートマネージャとして pxelinux を使うことができなくなり、PowerPC のネットワークブートマネージャとして Yaboot が pxelinux の代わりにネットワークブートのインストールを行います。

PowerPCでのLinuxネットワークブートプロセスを下図に示します:

PowerPCでのLinuxネットワークブートプロセス

ネットワーク起動プロセスの説明:

  • ネットワーク環境の準備ができたら、インストールしたノードの電源を入れ、起動します。
  • インストールされたノードはブート方法を選択します:ハードディスク、CD-ROM、ネットワーク。図はネットワークブートを選択し、dhcpリクエストを送信します。
  • インストールサーバーはdhcp要求を取得し、dhcpd.confの設定に従ってインストールノードにIPを割り当てます。
  • yaboot経由でカーネルイニシャライザーを取得し、起動します。
  • インストールされたノードのカーネルが起動し、インストールメディアを見つけてインストールプロセスを開始します。
  • インストールされたノードシステムは正常にインストールされました。

2、Power Linuxネットワーク展開モード

1つはAIX NIMサーバーをベースとしたもので、もう1つはLinux DHCPサーバーをベースとしたものです。

この2つの方法の使い分けの特徴は以下の通り:

  • ダイレクトBootpリクエストの使用
  • ネットワークカードのMACアドレスは必要ありません。

Linux用のネットワークブートイメージファイルをインストールする必要があります。

このインストールは、Linuxネットワークブートイメージファイルが32MB以下であれば動作します。

注意:ネットワーク起動イメージファイルが32MBを超える場合、ネットワークインストールには別の方法を使用する必要があります。

(例:RHEL6 GA 64ビットシステムのネットワークブートイメージファイル - images/netboot/ppc64.imgが32MBより大きい場合、このファイルを直接使用することはできませんし、この方法に基づいてネットワークインストール)

  • ブロードキャストBootpリクエストの使用
  • ネットワークカードのMACアドレスを要求
  • Yaboot定義によるネットワークブートのインストール
  • ネットワーク起動なし イメージサイズ制限

以上の特徴から、管理者はハードウェアの環境に応じて適切なインストール方法を選択することができます。#p#

自動デプロイと実践の例としてのRedhatとSuSE

1.論理パーティションとインストールメディアの準備

論理パーティションに Linux システムをインストールする場合、事前に論理パーティションを分割し、十分なハードディスク容量を確保する必要があります。 インストール CD/DVD を購入するか、インターネットからインストール Image ファイルをダウンロードしてください。インストールメディアを入手したら、対応するインストールファイルを共有サーバに移行します。

注:取得メディアはPowerPCプラットフォーム用のインストール・ファイルである必要があります。実際のインストール・メディアへのパスがNFSサービスの共有ディレクトリと一致していることを確認してください。

2、サーバーの設定とインストール

TFTP/DHCPの設定は、2回に分けて説明します:

a. NIMサーバーに基づきます。

TFTP Resource Definition (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.:ht=ethernet:sa=192.0:sm=255.255.255.0: 
test2-sles10:bf=/tftpboot/test2-sles10:ip=192.:ht=ethernet:sa=192.0: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.; 
option routers 192.; 
ddns-update-style none; 
ignore unknown-clients; 
allow bootp; 
subnet 192. netmask 255.255.255.0 { 
default-lease-time 86400; 
max-lease-time 604800; 
host test1-rhel5 { 
next-server 192.2; 
filename "pSeries/yaboot"; 
hardware ethernet AA:BB:CC:DD:11:22; 
fixed-address 192.; 
} 
host test2-sles10 { 
next-server 192.2; 
filename "pSeries/yaboot"; 
hardware ethernet AA:BB:CC:DD:11:33; 
fixed-address 192.; 
} 
} 

Yabootの設定定義:

default=test1-rhel5 
timeout=100 
image=pSeries/rhel/vmlinuz #カーネルイメージファイルのパスを指定する 
label=test1-rhel5 
initrd=pSeries/rhel/ramdisk.image.gz#メモリーイメージファイルを追加するパスを指定する="ks=nfs:9.2:/export/ksFiles/test1-rhel5.ks.cfg ksdevice=eth0\ 
initrd=pSeries/rhel/ramdisk.image.gz\ 
dns=192. ip=192. gateway=192. netmask=255.255.255.0\ 
method=nfs:9.2:/export/redhat5u5p\ 
keymap=us lang=en_GB.UTF-8 vnc"#キックスタートファイルとネットワークインストールパラメーターを指定する 
read-only 
image=pSeries/rhel/sles11-sp2-inst64#ネットワークブートカーネルイメージファイルへのパスを指定する。 
label=test2-sles10#インストールタグを定義する="autoyast=nfs://192.2:/export/autoyast/test2-sles10.yast.xml\ 
dns=9.1\install=nfs://192.2:/export/SLES11SP2\ 
hostip=192. gateway=192. netmask=255.255.255.0"#AutoYaST2ファイルとネットワークインストールパラメーターを指定する 
#追加”\”表示のみを目的として、実際の設定は連続した行にある。 

3、NFSサービス定義:

ネットワークインストール用のインストールメディア接続を提供するために、対応するインストールメディアストレージディレクトリを共有します。

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

#p#

4.応答ファイルkickstart/AutoYaSTを自動的にインストールします:

kickstart/AutoYaST2 はそれぞれ Redhat と SuSE 用の自動インストール管理ツールで、対話型インストールに必要なほぼすべての情報を定義できるだけでなく、インストール中やインストール後に実行するカスタムスクリプトも定義できます。これにより、システムインストール操作の範囲が大幅に拡張され、さまざまなシステムインストールニーズに対応するシステムを簡単に導入できます。

これら2つのツールの使用方法については、この記事に記載されているリンクを参照してください。以下は、それぞれ Redhat の kickstart と SuSE の AutoYaST2 の2つのテンプレートの例です。

#test1-rhel5.ks.cfg 
install 
nfs --server 192.2 --dir /export/redhat5u5p 
key --skip 
lang en_US.UTF-8 
network --device eth0 --bootproto static --ip 192. --netmask 255.255.255.0 --gateway 192. --nameserver 192. --hostname test1-rhel5 
rootpw 123456 
firewall --disabled 
authconfig --enableshadow --enablemd5 
selinux --permissive 
timezone --utc Asia/Tokyo 
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." >> /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://..com/.0/yast2ns" xmlns:config="http://..com/.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/Tokyo</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のネットワークブート論理パーティション

この記事では、ネットワークブートサーバを指定して論理パーティションをブートするためのHMCのlpar_netbootコマンドの使用について説明します。

コマンドの詳細を以下に示します:

test1-rhel5の開始

lpar_netboot -f -i -T off -t ent -s auto -d auto -S 192.0 -G 192. -C 192. "LPAR01" "test1-rhel5" "POWER01" 

test2-sles10 を開始します。

lpar_netboot -f -i -T off -t ent -s auto -d auto -S 192.0 -G 192. -C 192. "LPAR02" "test1-sles10" "POWER01" 

通常、スタートアップコマンドを実行して約 10 分後には、インストールとデプロイメント全体が完了します。テンプレートに従ってカスタマイズされた Power System 7 上で動作する、まったく新しい pLinux 環境が得られます。

IV.電力系統へのLinux自動導入の教訓

本稿では、Power Linuxの技術的背景の紹介から始まり、Power仮想化環境におけるLinuxの自動デプロイの原理と方法を分析し、自動デプロイの要点とネットワークインストールコマンドの使用方法を具体的なインストール例を用いて説明することで、システムインストールの操作手順を大幅に簡略化し、PowerプラットフォームへのLinuxデプロイを強力に技術的にサポートします。

Read next

ツイッターとその有利なデータビジネス

ツイッター社が最近提出した目論見書には、誰もが見落としている重要なサイドビジネスが書かれています。ツイッターは、自社のプラットフォームから第三者にデータをライセンスすることで、昨年だけで4,750万ドル、つまり総収入の15%を稼ぎ出しました。そして、ニュースイベントを追跡するためにこれらのデータ分析に依存するビジネスが急速な成長を示しているという事実は、収益のこの部分が将来的にますます有利になることを示しています。

Oct 17, 2013 · 5 min read