Linux on POWERの動的論理パーティショニング

動的LPARのセットアップと使用

POWER5™ アーキテクチャーの強力な特長は、論理パーティショニング(LPAR)の使用によってサーバー統合をサポートできる点にあります。動的な論理パーティショニングは、分割されたシステムの柔軟性を高め、管理者はパーティションをリブートしなくても、システム・リソースの追加、削除、または移動を行うことができます。この記事は、Linux® on Power™システム管理者またはアプリケーション開発者を対象として、Linuxで動的LPARを有効にする方法、動的LPARを使用してパーティションのリソースを制御する方法、およびこれらのリソースの変化を調べる方法を解説します。

Clifford Spinac (spinac@us.ibm.com), Senior e-business architect, IBM

Clifford Spinacは、テキサス州オースチン(Austin)にあるIBM Systems and Technology Groupのシニア・ソフトウェア・エンジニアです。Linux on POWER Technical Consultantとして、IBM eServer ISV Solutions Enablementに勤務しています。彼はこれまでIBMの中で、ソフトウェア開発や設計、アーキテクチャー、計画、コンサルティングなど、様々なの立場で活躍してきました。88件の特許を申請しており、アメリカで発効した特許を14件持っています。また13本の公開記事を発表し、IBM Master Inventorでもあります。



2005年 9月 29日

はじめに

論理パーティショニング(LPAR)によって、POWERプロセッサー搭載のIBMサーバーは、1台で複数のシステム要件をサポートすることができます。LPARはサーバー統合機能を提供し、システム・リソースの最適化とシステムの複雑さの軽減に役立ちます。POWER5プロセッサー搭載のサーバーでは、プロセッサーあたり最大10個の論理パーティションを構成することができます。各パーティションが個別のサーバーとして扱われるので、全体として、より効率的なソリューションを提供できる能力があります。ただし、要件はアプリケーション環境によって多様であり、製品群やテスト環境によっても異なるので、パーティション間で追加のリソース制御が必要なこともあります。動的論理パーティショニングは、このようにリソース割り当てを制御する際に必要となる柔軟性を提供します。

動的LPARによって、システム管理者は、パーティション間でI/OアダプターとCPU割り当てなどのシステム・リソースの追加、削除、または移動を行うことができ、変更後にパーティションをリブートする必要がありません。動的LPARでは、仮想リソースだけでなく、物理リソースも移動することができます。このため、管理者は、必要なときに、必要なパーティションにリソースを動的に割り当てることができます。これにより、管理者は、システムの可用性に影響を与えることなく、LPARのハードウェア割り当てを調整することもできます。

さまざまなアプリケーション例で、動的LPARサポートによってサーバーのリソースの利用率を高めることができます。一例としては、PCI I/Oアダプターを必要とする複数のパーティション間でのアダプターの移動があります。パーティション内のアプリケーションがアダプターを使用する必要があるときには、リソースがそのパーティションに移動されます。もう一つの例としては、パーティションの作業負荷要件に基づいたパーティション間でのCPUリソースの移動があります。これは、勤務シフトによってパーティション利用要件が変動するシステムでは、きわめて一般的です。たとえば、Webコマース・アプリケーション・パーティションとレポート生成アプリケーション・パーティションがあるサーバーでは、第1シフトと第2シフト中はCPUリソースの大半がWebコマース・パーティションに向けられますが、第3シフトではレポート生成パーティションに向けられます。

動的LPARサポートには、Linux on POWER用のIBM生産性ツール・パッケージをインストールする必要があります。これらのパッケージをインストールすると、付属のハードウェア管理コンソール(HMC)を使用して、実行中のパーティションからプロセッサーまたはI/Oスロットを動的に追加または削除することができます。この記事では、動的LPARのためのLinux環境のセットアップ方法、この動的機能の使用方法、およびソフトウェアでリソースの変化を検出する方法を解説します。


動的LPARの操作

この記事では、読者にLinux、POWER5プロセッサー・ベースのサーバー・ハードウェア、パーティショニングの概念、およびHMCに関する実用的知識があることを前提としています。動的LPARをセットアップして使用するには、以下のステップを実行します。

  1. Advanced Virtualization FeatureがインストールされたPOWER5プロセッサー搭載のサーバーをセットアップします。
  2. サーバーにHMCを接続して構成し、HMCからLinuxパーティションに接続できることを確認します。
  3. 論理パーティションを作成して、SUSE LINUX Enterprise Server 9(SLES9)またはRed Hat Enterprise Linux AS 4(RHEL4)をインストールします。
    注:最新の動的LPARサポートのためには、SLES9 Service Pack 2をインストールする必要があります。必ず最新のSLES9 Service PackまたはRHEL4 Updateをインストールしてください。
  4. 動的LPAR用のIBM生産性ツール・サポートをダウンロードして、インストールします。
  5. HMCを使用して、動的LPARのリソースに変更を加えます。
  6. (オプション)動的IDE CD/DVD ROMサポート用のlibATAモジュールをインストールします。
  7. パーティション内のPCIアダプターまたはプロセッサー・リソースの動的変更を検出するホットプラグ・スクリプトを作成します。

項目1~3に関する情報は、Linux on POWER ISV Resource CenterとLinux on POWER Architecture developer's cornerの記事にあります。また、IBM Redbooks™を参照してください(「参考文献」を参照)。この記事では、項目4~7を中心に説明します。


Linuxの動的LPARサポートをインストールする

動的LPAR機能をサポートするには、Linuxをインストールした後、IBM生産性ツール・パッケージをインストールする必要があります。これらのパッケージには、HMCと通信するResource Monitoring and Control(RMC)デーモンも含まれています。

動的LPARのサポートは、SUSE LINUX Enterprise Server 9またはRed Hat Enterprise Linux AS 4を実行しているPOWER5で使用可能です。パッケージは、下記のWebページからダウンロードできます。

すでに述べたように、動的LPAR機能をフルに活用するには、SLES9 Service Pack 2も必要です。さらに、rpmパッケージrdistおよびcompatが前提条件となるので、SLES9ディストリビューションからインストールしてください。今後の動的LPARツール・サポートの追加要件については、サービスおよび生産性ツールWebサイトをチェックしてください。

このWebサイトから、必ず最新のサービスおよび生産性ツールをダウンロードしてインストールしてください。また、使用しているLinuxディストリビューション用のすべてのパッケージをインストールすることも検討してみてください。信頼性、可用性、およびサービス性(RAS)ツールなどがあります。

この記事の執筆時点では、動的LPARツールには、次のような生産性ツールが含まれています。

表1. 動的LPAR生産性ツール
Platform Enablement Librarylibrtas-1.2-1.ppc64.rpm
SRCsrc-1.2.2.1-05054.ppc.rpm
RSCT utilitiesrsct.core.utils-2.4.1.2-05070.ppc.rpm
RSCT corersct.core-2.4.1.2-05070.ppc.rpm
CSM corecsm.core-1.4.0.12-98.ppc.rpm
CSM clientcsm.client-1.4.0.12-98.ppc.rpm
ServiceRMdevices.chrp.base.ServiceRM-2.2.0.0-2.ppc.rpm
DynamicRM DynamicRM-1.1-2.ppc.rpm
PCI Hotplug Toolsrpa-pci-hotplug-1.0-12.ppc64.rpm
Dynamic Reconfiguration Toolsrpa-dlpar-1.0-13.ppc64.rpm

動的LPARツールをダウンロードした後、rpmコマンドを使用して、表1にリストされている順にパッケージをインストールしてください。たとえば、次のように入力します。

# rpm -Uvh librtas-1.2-1.ppc64.rpm

RPMは動的LPARサービスをインストールして、起動します。サービスが起動するのを待つか、システムをリブートします。サービスが実行しているかどうかを確認するには、lssrc - aコマンドを使用します。

# lssrc -a

以下のサービスがアクティブ・ステータスであることが表示されるはずです。

  • ctrmc
  • IBM.ERRM
  • IBM.AuditRM
  • IBM.DRM
  • IBM.CSMAgentRM
  • IBM.ServiceRM
  • IBM.HostRM

サービスがアクティブ(実行状態)になった後、パーティションはHMCから動的LPARコマンドを受け取ることができます。正常に通信するためには、LinuxパーティションとHMCが同じネットワークにアクセスできなければならず、互いに接続できなければなりません。したがって、HMCをパーティションから分離したり、接続を妨げるファイアウォールを設置したりすることはできません。


論理パーティション・リソースを変更する

動的LPARツールがインストールされて、サービスが実行を開始したら、HMCを使用してCPUまたはI/Oアダプター・スロット・リソースに動的変更を加えることができます。現時点では、SLES9およびRHEL4 Linuxカーネルの制約から、動的LPARはメモリー変更をサポートしていません。

HMCを使用してパーティション・リソースを変更する

動的LPARのリソースを変更するには、HMCで以下のステップを実行します。

  • [Server and Partition]を開いて、[Server Management]を選択します。
  • パーティションを含んでいるサーバーを開いて、パーティションを開きます。
  • 論理パーティションを右クリックして、[Dynamic Logical Partitioning]を選択します。
  • 変更するリソース・タイプを選択します(Physical Adapter Resources、Processor Resources、またはVirtual Adapter Resources)。
  • [Add]、[Remove]、または[Move]を選択します。

変更固有のダイアログに従って、動的変更を完了します。

図1は、[Physical Adapter Resources]-[Add]を使用して、PCI I/Oアダプター・スロットを追加する例を示しています。

図1. 物理アダプター・リソースの追加
図1. 物理アダプター・リソースの追加

図2は、パーティションに追加するPCI 1Gbpsイーサネット・アダプターの選択を示しています。

図2. パーティションにPCI 1Gbpsイーサネット・アダプターを追加する
図2. パーティションにPCI 1Gbpsイーサネット・アダプターを追加する

同様に、CPUリソースを変更することができます。図3は、共有プロセッサー・パーティションの仮想プロセッサー数を変更するためのダイアログを示しています。このダイアログを使用して、処理単位やプロセッサー資格を増やすこともできます。

図3. パーティションに仮想プロセッサーを追加する
図3. パーティションに仮想プロセッサーを追加する

パーティション・リソースの変更を確認する

HMCを使用して動的LPARの変更を行った後、パーティション・リソースの変更を確認して、変更の効果を見ることができます。パーティションのPCIデバイスの現在の状態を確認するには、lspciコマンドを使用します。

# lspci
PCI bridge: IBM RADS-X PCI-X to PCI-X Bridge 
Ethernet controller: Intel Corporation 82545GM Gigabit

/prc/ppc64/lparcfgファイルの内容は、LPARのプロセッサー・リソースの現在の状態を示しています。リスト1は、仮想プロセッサーを追加した後のパーティションのlparcfgファイルを示しています。仮想プロセッサーの数、すなわち、専用パーティションのプロセッサー数は、partition_active_processorsです。共有プロセッサー・パーティションの処理単位の値は、partition_entitled_capacityに示されています。また、これは共有プロセッサー・パーティションなので、shared_processor_modeが1であることに注目してください。

リスト1. パーティションのlparcfgファイルの例
# cat /proc/ppc64/lparcfg
lparcfg 1.6 
serial_number=IBM,0210BE5ED
system_type=IBM,9113-550
partition_id=7
R4=0x32
R5=0x0
R6=0x80070000
R7=0xc80000040004
BoundThrds=1
CapInc=1
DisWheRotPer=2070000
MinEntCap=20
MinEntCapPerVP=10
MinMem=512
MinProcs=1
partition_max_entitled_capacity=50
system_potential_processors=4
partition_entitled_capacity=40
group=32775  
system_active_processors=4
pool=0
pool_capacity=400
pool_idle_time=0
pool_num_procs=0
unallocated_capacity_weight=0
capacity_weight=128
capped=0
unallocated_capacity=0
purr=3347190012092
partition_active_processors=3
partition_potential_processors=4
shared_processor_mode=1

動的LPARとHMCを使用したリソースの変更、また、動的LPAR生産性ツールのインストールについては、IBM eServer Hardware Information Centerにも情報があります。(「参考文献」を参照してください。)


IDE CD/DVD ROMの動的サポートを追加する

CD/DVD ROM用のLinux IDEデバイス・インターフェースは、ホット・スワッピングをサポートしていません。したがって、これを使用してIDE CD/DVD RPMドライブに動的LPAR変更を加えることはできません。しかし、Linux Parallel ATA(PATA)およびlibATAモジュールの最近のサポートを使用すると、IDE CD/DVD ROMドライブを動的LPARデバイスとしてサポートすることができます。このサポートにより、LinuxはIDE CD/DVD ROMをSCSIデバイスとして認識します。このサポートは、SLES9 Service Pack 2に含まれています。

動的LPAR IDE CD/DVD ROMサポートを使用するには、pata_pdc2027xモジュールがINITRDモジュールとしてインストールされている必要があります。リスト2に示されているように、ファイル/etc/sysconfig/kernelのINITRD_MODULESの始めにpata_pdc2027xを追加します。

リスト2. pata_pdc2027x initrdモジュールを追加した/etc/sysconfig/kernel
## Path: System/Kernel
## Description:
## Type: string
## Command:     /sbin/mkinitrd
#
# This variable contains the list of modules to be added to the
# initial ramdisk by calling the script "mk_initrd"
# (like drivers for scsi-controllers, for lvm or reiserfs)
#
INITRD_MODULES="pata_pdc2027x ibmvscsic"

次に、/sbin/mkinitrdコマンドを使用してinitrdを作成した後、リブートします。

# mkinitrd
# shutdown -r now

lsmodコマンドを使用して、読み込まれたモジュールにpata_pdc2027xおよびlibATAが含まれているかどうかを調べることができます。

# lsmod
Module                  Size  Used by
evdev                  31416  0
joydev                 31520  0
st                     73464  0
ipv6                  478392  29
sg                     74560  0
ibmveth                44800  0
usbcore               185404  1
subfs                  30168  1
dm_mod                112744  0
ibmvscsic              44552  2
pata_pdc2027x          33908  0
libata                 97304  1 pata_pdc2027x
sr_mod                 44508  0
sd_mod                 44736  3
scsi_mod              199424  6 st,sg,ibmvscsic,libata,sr_mod,sd_mod

libATAデバイス・スタックが読み込まれたところで、HMCを使用してIDE CD/DVD ROMドライブを追加することができます。ドライブ・アダプターは、HMC I/Oアダプター・リストにOther Mass Storage Controllerとしてリストされます。

図4は、パーティションに追加するI/OアダプターとしてOther Storage Controllerを選択する操作を示しています。

図4. IDE CD/DVD ROMドライブをパーティションに追加する
図4. IDE CD/DVD ROMドライブをパーティションに追加する

CD/DVD ROMドライブ・アダプターを追加した後、パーティションのPCIデバイスを調べるには、lspciコマンドを使用します。

# lspci 
0000:00:02.3 PCI bridge: IBM EADS-X PCI-X to PCI-X Bridge (rev 03)
0000:cc:01.0 Unknown mass storage controller: Promise Technology, 
Inc. 20275 (rev 01)

CD/DVD ROMドライブのSCSIデバイス名を調べるには、lsscsiコマンドを使用して、すべてのSCSIデバイスをリストし、grepを使用してcd/dvdを検索します。

 # lsscsi | grep cd 
[1:0:0:0]    cd/dvd  IBM     RMBO0020501    H106  /dev/sr0

次に、mountコマンドを使用して、ファイル・システム・タイプiso9660のSCSIデバイスを/media/cdromに読み取り専用としてマウントします。

# mount -t iso9660 -r /dev/sr0 /media/cdrom

パーティションにDVD/CD ROMドライブが不要になったら、/media/cdromディレクトリーをアンマウントし、HMCを使用して"Other Mass Storage Controller" I/Oアダプターを削除します。


HOTPLUGスクリプト

Linuxカーネル2.4からは、デバイスのホットプラグ・サポートが標準機能になりました。最初にUSBおよびPCIデバイスがサポートされるようになり、一部のネットワーク・インターフェースの自動構成もサポートされるようになりました。ホットプラグ・サポートでは、新しいデバイスを接続して、そのデバイスをすぐに使用することができます。これは、システムがホットプラグ・イベントを使用して、デバイスを自動構成できるからです。

ホットプラグ・イベントを使用して、アダプター、サブシステム、またはプログラムを構成するエージェント・タスクを呼び出すことができます。エージェント・タスクは、この構成を処理し管理するためのスクリプトを利用します。このスクリプティング・フレームワークをホットプラグ・ポリシー・エージェントといいます。これらのエージェントは、/sbin/hotplugスクリプトのコマンド・エントリー・ポイントによって結び付けられます。このスクリプトを使用して、イベントの変更をデバッグおよび記録することができ、システムのホットプラグ・エージェントを制御することもできます。ホットプラグ・エージェントは、ディレクトリー/etc/hotplugに置かれたスクリプト・ファイルです。1つのホットプラグ・イベントに対して、type.agentという名前の1つ以上のエージェント・タイプを呼び出すことができます。

HOTPLUGを使用して、リソース変更を検出する

POWER5を搭載し、SLES9またはRHEL4とIBM生産性ツールを実行しているサーバーは、/sbin/hotplugイベント通知をサポートします。これらのイベントには、PCI I/Oアダプター・スロットの変更などが含まれます。

たとえば、イーサネット・アダプターがパーティションに動的に追加されると、pci_bus.agent、pci.agent、およびnet.agentというエージェントが呼び出されて、アダプターとネットワークを構成します。これらのエージェントの中には、イベント変更を複数の段階でキャプチャーできるように、複数回呼び出されるものもあります。

動的LPAR I/O変更に加えて、SLES9(Service Pack 2)には、仮想プロセッサーまたは専用プロセッサー数に動的LPAR変更が加えられたときにcpu.agentを呼び出すためのサポートも含まれています。したがって、cpu.agentスクリプトを/etc/hotplugディレクトリーに追加すると、CPU変更イベントの監視が可能になります。このスクリプト・エージェントは、マルチスレッド・アプリケーションの拡大縮小に使用できます。また、ライセンス管理/資格ソフトウェアや、性能監視ツールなどのシステム管理ツールで使用することもできます。このスクリプトを使用して、ユーザー・スペース・パラメーターを変更したり、CPUの変更に基づいて別のアプリケーションを起動したりすることができます。

処理単位(資格容量)の変化は、オペレーティング・システムには認識されないイベントであるため、Linuxホットプラグ・イベントとしては報告されません。

この記事の執筆時点では、RHEL4でのcpu.agentのサポートは完全ではありません。このサポートの追加については、RHEL4の今後のアップデートをチェックしてください。

CPUエージェント・スクリプトを作成する

動的LPARイベント・スクリプトは、標準のホットプラグ・イベント・スクリプト・プログラミング技法を使用できます。/etc/hotplugにいくつかのイベント・スクリプトがあるので、これらをイベント・プログラミングの参考にしてください。

SLES9 SP2用のCPUイベント・エージェントは、/etc/hotplug/generic_empty.agentのサンプル・テンプレートを使用して作成できます。リスト3は、cpu.agentスクリプトの例を示しています。このスクリプトは、ホットプラグ・アクションがオンラインのときとオフラインのときに、動的LPAR CPU変更イベントの際に呼び出されます。

リスト3. /etc/hotplug/cpu.agentスクリプトの例
#!/bin/bash
# $Id: cpu.agent
# Kernel hotplug params include:
#ACTION=%s [online or offline]
#DEVPATH=%s
#
cd /etc/hotplug
. ./hotplug.functions

case $ACTION in
    online)
        echo `date` ":cpu.agent" add cpu > /tmp/hotplug.txt
        ;;
    offline)
        echo `date` ":cpu.agent" remove cpu >/tmp/hotplug.txt
        ;;
    *)
        debug_mesg CPU $ACTION event not supported
        exit 1
        ;;  
esac

まとめ

論理パーティショニングにより、POWERプロセッサー搭載サーバーはサーバーを統合し、システム・リソースを最適化できるようになります。動的論理パーティショニングは、論理パーティションの可用性に影響を与えることなく、リソース配分の制御を可能にすることによって、この機能を強化します。Linux on POWERは、物理I/O、仮想I/O、およびプロセッサー・リソースの変更について、動的LPARをサポートします。

この記事では、Linux on POWERで動的LPARサポートを可能にして、Hardware Management Consoleで制御する方法を紹介しました。また、これらの動的LPARリソースの変化をソフトウェアで監視する方法も説明しました。Linux on POWERでの動的LPARの詳細については、下記の「参考文献」を参照してください。


謝辞

編集校閲を担当してくれたLinda KinnunenとJames Mathewsonに感謝します。また、この記事に技術的支援を与えてくれたJohn Rose、Doug Maxey、Joel Schoppにも感謝します。

参考文献

学ぶために

  • Service and productivity tools for Linux on POWERは、Power4、Power5プロセッサー上のLinuxで実行するIBMサーバーのための、ハードウェア・サービス診断用の補助と生産性向上ツールを提供しています。
  • The IBM eServer Hardware Information Centerは、IBM eServer(™) i5やeServer p5、eServer OpenPower(™) などのサーバーに関する技術情報ソースです。
  • Linux Hotpluggingは、ホットプラグとLinuxオペレーティング・システムに関する概要を提供しています。
  • Linux on POWER ISV Resource Centerでは、Linux on POWERシステムに関する様々な情報にアクセスすることができます。
  • Linux on Power Architecture Developer's Cornerで、Linux on Powerについて学んでください。技術ドキュメンテーションや教育資料、ダウンロード、製品情報などが豊富に用意されています。
  • Learn about Linux at IBMでは、Linuxに関してIBMの中で何が行われているかを知ることができます。
  • developerWorksのLinuxゾーンには、Linux開発者のための資料が他にも豊富に用意されています。
  • IBM Redbooksは、IBM製品の全ブランドを網羅する詳細な技術情報や開発手法を提供しており、開発者や管理者のための最も包括的な資料の一つです。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=229871
ArticleTitle=Linux on POWERの動的論理パーティショニング
publish-date=09292005