Linux イメージの作成には、さまざまなコンポーネント間の対話が必要になります。 理解しやすくするために、Linux イメージの作成プロセスは複数の節に分けて説明します。
Linux と N1 Provisioning Server の適切な構成と構成の条件については、「Linux の作成」で説明します。
手順の概要については、「Linux イメージを作成する (手順の概要)」で説明します。
手順概要の個々の手順についての詳細は、以降の節で説明します。
「Sun Fire B1600 スイッチを構成する」
「イメージウィザードで Linux イメージを作成する」
「選択したリソースプールサーバーに Linux をインストールする」
「スナップショット用にディスクを準備する」
この節では、N1 Provisioning Server ソフトウェアを使用して Linux イメージを作成できるように、Linux 環境を構成するための条件について説明します。
Linux システムは次の条件に適合する必要があります。
PXE Boot Server マシン (これ以降、Kickstart サーバーと呼ぶ) で Linux を実行している必要があります。 推奨される Linux のバージョンは、Red Hat Enterprise Linux AS2.1 です。
サーバーブレードに付属の Sun Fire B1600 プラットフォームマニュアル、ドライバ、およびインストール CD が必要です。
Red Hat Enterprise Linux AS2.1 のインストール CD が必要です。
Kickstart サーバーを N1 Provisioning Server 設定のネットワークに接続する方法は複数あります。 次に、これらの方法の例を 2 つ示します。
図 4–1 の例では、Kickstart サーバーの Ethernet インタフェースの 1 つが(マシンに 2 つ以上ある場合) ブレードシェルフのポートの 1 つに直接接続されています。 この例では、NETP0 ポートが使用されています。
図 4–2 のように、Kickstart サーバーが外部スイッチ経由でブレードシェルフに接続されている可能性もあります。 この図では、Kickstart サーバーのインタフェース eth1 は Cisco スイッチ C2924 に接続されています。シェルフの外部ポートの 1 つ (この場合は NETP0) も Cisco スイッチ C2924 に接続されています。
このマニュアルの残りの部分では、図 4–3 のように、Provisioning Server マシンとの接続が含まれる設定を仮定します。 この設定は 図 4–1 で示す 1 つに基づいていることに注意してください。 Kickstart サーバーは、2 番目の Ethernet インタフェースまたは端末サーバー経由で外部ネットワークからアクセスできます。 あるいは、Kickstart サーバーはコンソールデバイス (モニター) から直接アクセスできます。 シェルフに接続されているインタフェースには、有効なインターネットアドレスが接続 (plumb) され割り当てられる必要があります。
次に、Kickstart サーバーのネットワーク構成例を示します。
[root@ks-server root]# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:03:47:31:71:98 inet addr:10.5.140.151 Bcast:10.5.140.159 Mask:255.255.255.240 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:134432 errors:0 dropped:0 overruns:0 frame:0 TX packets:114431 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:31829037 (30.3 Mb) TX bytes:45777133 (43.6 Mb) Interrupt:10 Base address:0xc000 eth1 Link encap:Ethernet HWaddr 00:03:47:31:71:99 inet addr:10.40.40.1 Bcast:10.40.40.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:321940 errors:0 dropped:0 overruns:0 frame:0 TX packets:1540859 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:48545214 (46.2 Mb) TX bytes:2160671329 (2060.5 Mb) Interrupt:5 Base address:0xe000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:538 errors:0 dropped:0 overruns:0 frame:0 TX packets:538 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:42254 (41.2 Kb) TX bytes:42254 (41.2 Kb) [root@ks-server root]# |
サーバーの 1 番目のインタフェース (eth0) は外部スイッチに接続されます。 サーバーはこのインタフェース経由でアクセスできます。 2 番目のインタフェース (eth1) はシェルフに直接接続されており、ネットワーク 10.40.40.0 の IP アドレス 10.40.40.1 が割り当てられています。
Kickstart サーバーを設定する方法については、『Sun FireTM B100x and B200x Server Blade Installation and Setup Guide』の「Installing Linux From a PXE Boot Install Environment」の指示を参照してください。 第 4 章の最初から 4.4 節「Installing Linux on a Server Blade from a PXE Boot Server」の手順 5 までを参照します。
『Sun FireTM B100x and B200x Server Blade Installation and Setup Guide』は次の Web サイトからダウンロードできます。
Red Hat ディストリビューションに付属しているデフォルトの構成ファイルは、適切な IP アドレスおよびパス名で修正する必要があります。 『Sun FireTM B100x and B200x Server Blade Installation and Setup Guide』の 4.4 節「Installing Linux on a Server Blade from a PXE Boot Server」の手順 5、6、および 7 を参照してください。 さらに重要なこととして、ディスクパーティションとパッケージ選択情報を N1 Provisioning Server 3.1, Blades Edition に合わせてカスタマイズする必要があります。
Linux イメージには、N1 Provisioning Server が必要とするいくつかのパッケージが含まれている必要があります。 このようなパッケージが確実に含まれるようにするために、パッケージ選択リストに N1 Required RPMS というエントリを追加します。 ファイル /<tftp_base_dir>/as-2.1/RedHat/base/comps を編集して、次の宣言を追加します。
1 N1 Required RPMS { pdksh tftp tftp-server }
次のリストは、 ks.cfg ファイルで指定されるパッケージ選択の例です。
%packages @ Network Managed Workstation @ Software Development @ Base @ Printing Support @ Network Support @ Messaging and Web Tools @ News Server @ NFS File Server @ Windows File Server @ Web Server @ Router /Firewall @ DNS Name Server @ Emacs @ Utilities @ Advanced Server @ N1 Required RPMS
実際のディスクサイズはベンダーによって異なります (バイトレベルで)。 したがって、普遍化するために、N1 Provisioning Server はすべてのディスクサイズが 30*10 ^9 バイト (つまり、30G バイト) であると仮定します。 しかし、B100n ブレードの実際のディスクサイズは 30*10 ^9 バイトよりも少しだけ多くなります (30005305344 バイト)。 したがって、30*10 ^9 バイトというディスクイメージはすべての B100n/B200n サーバーブレード上で動作することが保証されますが、実際のディスクサイズのディスクイメージは (この誤差のために) 一部のサーバーブレードで動作しない可能性があります。 作成したすべてのイメージに 30*10 ^9 バイトのディスクサイズを使用することによって、すべてのサーバーブレードにイメージを配備できることが保証されます。
Linux オペレーティングシステムは、データを格納するとき、ディスクの終わりの方にあるディスクブロックも使用します。 結果として、30*10 ^9 バイトのディスクのスナップショットを撮ると、ディスクの終わりの方にある重要なディスクブロックがスナップショットから漏れる可能性があります。 このようなイメージがプロビジョンされたブレードはブートに失敗します。 この問題を解決するには、ダミーのファイルシステム (超過分として約 10M バイト) をディスクの終わりの方に作成しておいて、スナップショットを撮る前にこのファイルシステムを除外します。
次に、このようなディスクパーティションの例を示します。
part /--asprimary --fstype ext3 --size 512 --grow --ondisk hda part swap --size 2048 --ondisk hda part /tmp --fstype ext3 --size 512 --ondisk hda part /dummy --fstype ext3 --size 10 --ondisk hda |
サイズが 10M バイトの /dummy という名前のファイルシステムがパーティション情報にあることに注目してください。
Linux イメージは、Linux をサーバーブレードにインストールした後に作成できます。 Linux をサーバーブレードにインストールするには、Red Hat の Kickstart テクノロジを使用します。 Linux イメージプロセスの主な手順を以下に示します。
Red Hat AS 2.1 が動作しているサーバー (Kickstart サーバー) 上で Kickstart 環境を設定します。
詳細は、Linux のマニュアルを参照してください。
Kickstart サーバーを N1 Provisioning Server 設定の一部として構成します (「Sun Fire B1600 スイッチを構成する」を参照)。
Provisioning Server マシン上で、イメージウィザードを呼び出し、その指示に従って、Linux システムの手動オペレーティングシステムインストールを作成します (「イメージウィザードで Linux イメージを作成する」を参照)。
イメージウィザードに次のプロンプトが表示されたら、Linux をインストールします (「選択したリソースプールサーバーに Linux をインストールする 」を参照)。
Did the installation succeed [y/n] > |
イメージウィザードに戻って、作業を継続します。
Did the installation succeed [y/n] > y Issue the following commands on the sytem controller to boot the resource pool server from the disk sc> bootmode bootscript="boot disk" s<X> (where "s<X>" is provided in resource pool server information) then you can issue the following command to reset sc> reset -y s<X> Please enter y when the resource pool server has booted from disk > |
リソースプールサーバーをそのディスクからブートします。
システムコントローラ上で、次のコマンドを入力します。
sc>bootmode bootscript="boot disk" console-id sc>poweron console-id |
以下に例を示します。
sc>bootmode bootscript="boot disk" s5 S5: Boot script set. sc>poweron s5 S5: Poweron sequence started. |
イメージウィザードに戻り、その指示に従って、Linux を N1 Provisioning Server 環境に合わせてカスタマイズします。
Please enter y when the resource pool server has booted from disk > y You can customize your installation at this point in time. Please logon to the resource pool server and customize. Please enter y when your customization is completed > y Please shutdown the resource pool server by issuing the command For Solaris: # /usr/sbin/shutdown -y -g0 -i0 For Linux: # /sbin/shutdown -h now Once the resource pool server shuts down, for sparc blades set the OBP of resource pool server to boot using dhcp by issuing the following command in the OBP prompt (no changes are required for i86pc blades) ok> setenv boot-device net:dhcp Please enter y when the resource pool server has completed the shutdown and when you have configured the resource pool server to boot using dhcp > |
スナップショットできるようにディスクを準備します (「スナップショット用にディスクを準備する」)。
イメージウィザードウィンドウに戻って、前の箇所から継続します。
イメージウィザードのテキストには、「PES」という文字列が表示されます。 この「PES」はリソースプールサーバーを示す用語として従来から使用されているものです。
Please enter y when the resource pool server has completed the shutdown and when you have configured the resource pool server to boot using dhcp > y Creating image. This will take some time, please wait till the operation completes. Do not interrupt the operation. Please run farm -Lt <farm id> for more information. --------------- output of internal commands ---------------- Disabling monitoring on PES 50105 Powering off PES 50105 for a move to it's original VLAN Setting PES State to OFF Moving PES 50105 to its original VLAN Powering on PES 50105 in it's original VLAN Setting PES State to ON Activating farm 113 ... Request (id: 597) submitted. Waiting for request 597 to complete... .............. Taking snapshot of target 0 for host server for farm 113 to create final image ... Snapshot image size: 30000000000 Request (id: 601) submitted. Waiting for request 601 to complete... ........................................................ Snapshot was successful. Deactivating the farm 113 Request (id: 619) submitted. Waiting for request 619 to complete... ............... Farm 113 is deactivated. Image rh-as2.1-disk-image is ready for use. ---------------------- end of command ---------------------- Image creation completed. Updating image attributes. --------------- output of internal commands ---------------- Updated image: 18 ---------------------- end of command ---------------------- Image update completed. WARNING: The farm created for image creation has to be deleted manually. Use the farm -D <farm id> command to delete the farm. Please wait for the farm to be deactivated before you issue this command. IMAGE WIZARD ############ This Wizard can be used to : * create "image" and store the "image" on the image server (IS) and "image attributes" in the control plane database (CPDB). * import "image" and "image attribute information" into the image repository and control plane database (CPDB). * manage images and manage image attribute information in the image repository and control plane database (CPDB). Please read the N1 PS System Administration Guide before using this Wizard. Please select, 1) Create - Create a new image and store the image in the repository 2) Import - Import an image into the repository 3) List - List the images in the repository 4) Update - Update image attribute information in the repository 5) Delete - Delete an image in the repository 6) Validate - Validate imported images 7) Quit Enter your selection [1-7] > 7 |
無効な状態をクリーンアップします。
Provisioning Server マシン上で、以前作成した一時ファームを手動で削除します。 次のコマンドを使用します。
# farm -D farm-id |
ここで、farm-id は 手順 5 でウィザードが出力したファーム ID です。 以下に例を示します。
bash-2.03# farm -D 113 |
これで、新たに作成されたイメージ rh-as2.1-disk-image はいつでも配備できます。
この節では、Sun Fire B1600 スイッチを構成する手順について説明します。
Linux インストール用の別個の VLAN を作成します。
Sun Fire B1600 スイッチにログオンします。
デュアルスイッチシステムの場合、アクティブな方のスイッチにログオンしていることを確認します。
Kickstart 用に新しい VLAN を作成します。
次のコマンドを入力します。
Vty-0#configure Vty-0(config)#vlan database Vty-0(config-vlan)#vlan vlanid name vlan-name media ethernet state active Vty-0(config-vlan)#end |
次の例では、名前が kickstart で、VLAN ID が 3 の VLAN を作成しています。VLAN ID は一意である必要があります。
Vty-0#configure Vty-0(config)#vlan database Vty-0(config-vlan)#vlan 3 name kickstart media ethernet state active Vty-0(config-vlan)#end |
Kickstart サーバーを N1 Provisioning Server 設定の一部として構成するには、Kickstart サーバーを Kickstart VLAN に接続するようにシェルフ上のインタフェースを構成します。
Vty-0#configure Vty-0(config)#interface ethernet port Vty-0(config-if)#switchport allowed vlan add vlanid Vty-0(config-if)#switchport native vlan vlanid Vty-0(config-if)#end |
ここで、vlanid は前の手順で作成した VLAN で、port は Kickstart サーバーマシンがシェルフに直接接続されるポートです。 以下に例を示します。
Vty-0#configure Vty-0(config)#interface ethernet NETP0 Vty-0(config-if)#switchport allowed vlan add 3 Vty-0(config-if)#switchport native vlan 3 Vty-0(config-if)#end |
これで、Kickstart サーバーはいつでも Kickstart インストールを実行できます。
イメージウィザードを使用してイメージを作成する一般的な手順については、『N1 Provisioning Server 3.1, Blades Edition システム管理ガイド』を参照してください。 次に、イメージウィザードを使用して適切な Linux イメージを作成する手順について説明します。
イメージウィザードを起動するには、コントロールプレーンサーバーから次のコマンドを入力します。
# /opt/terraspring/sbin/imagewizard |
イメージウィザードが表示するアクションの中から、希望のアクションを選択します。
新しいイメージを作成して、そのイメージをリポジトリに格納するには、「1」を入力します。
オペレーティングシステムとして Linux を選択するには、「2」を入力します。
x86 アーキテクチャを選択するには、「1」を入力します。
手動オペレーティングシステムインストールからイメージを作成するには、「2」を入力します。
新しいイメージ用のデバイス選択属性を定義するには、「1」を入力します。
新しいイメージのイメージ属性を定義するには、「2」を入力します。
継続して新しいイメージを作成するには、「3」を入力します。
これまでに入力した情報が画面に表示され、継続する前に確認するように求められます。 このときに画面に表示される情報の例を以下に示します。
Following is the information you have entered Operating system: linux Architecture: i86pc Image name: rh-as2.1-disk-image Image description: RedHat AS2.1 Image Image archive type: disk_image Image type: Global Image Image size: 30000000000 Server Type: sunfireb100x-97-blade Disk Type: local Disk Controller Type: ide Disk Size: 30000000000 Bytes Enter y to continue and n to return to previous option > y |
継続する前に、新しいイメージを作成できるだけの十分なディスク容量がイメージサーバー上にあることを確認します。
この時点で、リソースプールサーバーを選択しており、いつでもイメージ VLAN にインストールできます。 デバイス ID とコンソール ID を記録しておきます。 これらの ID は後で必要になります。
端末画面に表示される情報に従って、選択したリソースプールサーバーへのインストールを開始および完了します (「選択したリソースプールサーバーに Linux をインストールする 」を参照)。
Kickstart サーバー上で DHCP 設定を構成します。
完全な指示については、『Sun FireTM B100x and B200x Server Blade Installation and Setup Guide』の 4.3.1 節「Configuring the DHCP Server」を参照してください。
次の dhcpd.conf ファイルに、作業中の構成の例を示します。
authoritative; default-lease-time 691200; max-lease-time 691200; subnet 10.5.140.0 netmask 255.255.255.0 { not authoritative; } shared-network image-copy-subnets { subnet 10.40.40.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; filename "/as-2.1/sun/pxelinux.bin"; next-server 10.40.40.1; range 10.40.40.10 10.40.40.20; } }
リソースプールサーバーを Kickstart VLAN に移動します。
リソースプールサーバーを Kickstart VLAN に移動するのは、Kickstart サーバーが別個の VLAN 上にあり、イメージ VLAN の一部ではないためです。 リソースプールサーバーを Kickstart VLAN に移動するには、Provisioning Server マシン上で次のコマンドを入力します。
# vlanconfig -a vlanid interface device-id # vlanconfig -n vlanid interface device-id |
引数の意味はそれぞれ以下のとおりです。
vlanid は、「Sun Fire B1600 スイッチを構成する」の手順 1 で作成した VLAN です。
device-id は、「イメージウィザードで Linux イメージを作成する」の手順 8 で記録しておいたリソースプールサーバーのデバイス ID です。
interface は、サーバーブレードの一次インタフェースです。
以下に例を示します。
bash-2.03# vlanconfig -a 3 eth0 50105 bash-2.03# vlanconfig -n 3 eth0 50105 |
Kickstart VLAN 内のネットワーク経由でリソースプールサーバーをブートします。
シェルフシステムコントローラ上で、次のコマンドを入力します。
sc>bootmode bootscript="boot net:dhcp" device-id sc>reset -y device-id |
次の例では、device-id は s5 です。
sc>bootmode bootscript="boot net:dhcp" s5 S5: Boot script set. sc>reset -y s5 Reset of S5 successful |
リソースプールサーバーは、Kickstart サーバー上の Linux Kickstart イメージ設定でインストールされます。 リソースプールサーバーのコンソールにログオンして、インストールの進捗を監視します。
必要であれば、Linux インストールをカスタマイズします。
インストールの終了時、コンソールでは Enter キーを押すように求められます。 新たにインストールした Linux からリソースプールサーバーがブートした後でも、情報をカスタマイズできます (たとえば、root のパスワードを変更したり、自分に必要な RPM をインストールするなど)。
リソースプールサーバーを停止します。
新たにインストールした Linux マシン上で、次のコマンドを入力します。
[root@linux-client root]# /sbin/shutdown -h now |
リソースプールサーバーをイメージ VLAN に戻します。
リソースプールサーバーをイメージ VLAN に戻すと、N1 Provisioning Server エージェントなどのソフトウェアパッケージをインストールできるようになります。 リソースプールサーバーを Kickstart VLAN のメンバーシップから外します。
# vlanconfig -n 8 interface device-id # vlanconfig -r vlanid interface device-id |
引数の意味はそれぞれ以下のとおりです。
vlanid は、「Sun Fire B1600 スイッチを構成する」の手順 1 で作成した VLAN です。
device-id は、「イメージウィザードで Linux イメージを作成する」の手順 8 で記録しておいたリソースプールサーバーのデバイス ID です。
interface は、サーバーブレードの一次インタフェースです。
bash-2.03# vlanconfig -n 8 eth0 50105 bash-2.03# vlanconfig -r 3 eth0 50105 |
継続するには、「スナップショット用にディスクを準備する」の指示に従います。
リソースプールサーバーをそのディスクからイメージ VLAN にブートします。
システムコントローラ上で、次のコマンドを入力します。
sc>bootmode bootscript="boot disk" console-id sc>poweron console-id |
以下に例を示します。
sc>bootmode bootscript="boot disk" s5 S5: Boot script set. sc>poweron s5 S5: Poweron sequence started. |
新たにインストールした Linux マシン上で、ダミーのファイルシステムを除外します。
「標準以外のディスクサイズと Linux」で作成したダミーのファイルシステムを除外します。 /etc/fstab ファイル内の /dummy 用のエントリをコメントアウトします。
ダミーのファイルシステムをマウント解除します。
次のコマンドを入力して、ダミーのファイルシステムをマウント解除し、マウントされていないことを確認します。
[root@linux-client root]# umount /dummy [root@linux-client root]# df -k Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 26251900 1146164 23772204 5% / none 1029196 0 1029196 0% /dev/shm /dev/hda3 507620 8253 473159 2% /tmp [root@linux-client root]# |
Linux インストールが N1 Provisioning Server ソフトウェアと互換性をとれるように構成します。
Provisioning Server マシンから /tftpboot/terraspring ディレクトリを NFS マウントします。
次のコマンドを入力します。
[root@linux-client root]# mount PS-IP-address:/tftpboot/terraspring mount-point |
以下に例を示します。
[root@linux-client root]# mount 10.42.42.1:/tftpboot/terraspring /mnt |
ソフトウェアパッケージ用のダウンロードディレクトリを作成して、そのディレクトリに移動します。
以下に例を示します。
[root@linux-client root]# mkdir -p /tmp/packages [root@linux-client root]# cd /tmp/packages |
Sun Java Runtime Environment (JRE)、N1 Provisioning Server Agent、および Content Load Balancing (CLB) モジュールをコピーします。
[root@linux-client root]# cp /mnt/packages/j2re-1_4_1_06-linux-i586-rpm.bin . [root@linux-client root]# cp /mnt/packages/TSPRaglnx-3.1.6.i386.rpm . [root@linux-client root]# cp /mnt/packages/sunclb-admin-1.36-1.i386.rpm . [root@linux-client root]# cp /mnt/packages/sunclb-k2_4_9_e_3smp-1.36-1.i386.rpm . [root@linux-client root]# cp /mnt/packages/sunclb-k2_4_9_e_3-1.36-1.i386.rpm . |
このディレクトリをマウント解除します。
[root@linux-client root]# umount /mnt |
JRE ソフトウェアをインストールします。
次のコマンドを入力します。
[root@linux-client root]# sh ./j2re-1_4_1_06-linux-i586-rpm.bin [root@linux-client root]# rpm -i j2re-1_4_1_06-fcs-linux-i586.rpm |
N1 Provisioning Server エージェントをインストールおよび構成します。
次のコマンドを入力します。
[root@linux-client root]# rpm -i TSPRaglnx-3.1.6.i386.rpm [root@linux-client root]# ln -s /usr/java/j2re1.4.1_06/bin/java /opt/terraspring/lib/java |
CLB モジュールをインストールおよび構成します (必要であれば)。
Sun Fire B10n シリーズのコンテンツ負荷均衡機能を使用してサーバーブレードを Sun Fire ブレードプラットフォームの一部にするには、次のコマンドを入力して、CLB モジュールをインストールおよび構成します。
[root@linux-client root]# rpm -i sunclb-admin-1.36-1.i386.rpm [root@linux-client root]# rpm -i sunclb-k2_4_9_e_3smp-1.36-1.i386.rpm [root@linux-client root]# rpm -i sunclb-k2_4_9_e_3-1.36-1.i386.rpm [root@linux-client root]# ln -s /etc/init.d/sun-clb /etc/rc3.d/S99sunclb |
二次 Ethernet インタフェースを指定します。
システムに存在する NIC ドライバを調べて (たとえば、snet、ce、bge)、すべての二次インタフェースの名前 (たとえば、snet1、ce1、bge1) をファイル /etc/opt/terraspring/managed_interfaces に記入します。 二次インタフェース snet1 が 1 つだけの例を以下に示します。
[root@linux-client root ]#cat /etc/opt/terraspring/managed_interfaces snet1 [root@linux-client root ]# |
リソースプールサーバーを停止します。
[root@linux-client root ]#/sbin/shutdown -h now |
これで、このブレードはいつでもスナップショットを撮ることができます。
イメージウィザードに戻って、「Linux イメージを作成する (手順の概要)」の手順を実行して、手順 9 と手順 10 を実行します。