アーウィン・アーレィ著 1. 仮想デバイス iSeries版Linuxは物理デバイスと仮想デバイスの両方をサポートしており、ディスク、ネットワーク、コンソールなどがこれに含まれます。仮想デバイスのサポートにより、Linuxを実行するためにシステムのフットプリントに物理デバイスを追加する必要がないため、iSeriesのハードウェア構成が飛躍的に簡素化されています。 仮想ディスクのサポートにより、1つのLinuxパーティションに対して最大で20台の仮想ディスクを割り当てることができます。各仮想ディスクでは最大64ギガ・バイトの記憶域がサポートされているので、各Linuxパーティションに対して1.2テラ・バイトまでのディスク領域が利用可能となります。仮想ディスクを使用しているときは各ディスクはLinuxからは1つの物理ユニットに見えますが、この仮想ディスクと関連付けられた統合ファイル・システム(IFS)中のディスク領域は、iSeries上で利用可能なすべてのディスク・アームに分散されているという点に注意してください。これにより、LinuxカーネルのRAIDサポートのオーバーヘッドを被ることなくRAIDの恩恵にあずかることができます。 iSeries上のLinuxパーティションは、仮想ネットワーク接続性の利点を活用することもできます。iSeriesシステム上の論理パーティションは最大で16個の仮想LANをサポートし、各LANはギガビット・イーサネットをエミュレートします。また、1台のiSeries上の複数のLinuxパーティションを、複数の相異なる仮想LAN上に実現することもできます。 仮想LANやファイヤーウォール機能を使用することにより、同じ物理システム・プラットフォーム上の論理パーティション(またはプライマリパーティション)でデータを分離させることができます。仮想ネットワークの接続性は同じ仮想LAN上のパーティションだけにアクセスを制限するものではありません。Linuxパーティションに対して物理的なネットワークカードを割り当てずに外部ネットワークにアクセスする方法はいくつかありますが、その中にネットワーク・アドレス変換(NAT)とプロキシ・アドレス・解決プロトコル(プロキシARP)があります。 最後に、仮想コンソールを使用すると、システム管理者は一般的なネットワーク・プロトコルを介してLinuxパーティションのシステム・コンソールにアクセスすることができます。Telnetクライアント(WindowsクライアントやLinuxクライアントに付随しているPuTTYやTelnetなど)を使用すれば、システム管理者は仮想コンソールへのアクセスを提供するiSeriesのネットワーク・ポートにアクセスすることができます。 2. 動的構成変更 ディスク・スペースを使い果たしてしまい、記憶装置をシステムに追加するためにシステム構成の大幅な変更を余儀なくされたことはありませんか。論理パーティションに仮想ディスクを動的に追加する機能(V5R2の新機能)により、システム管理者はOS/400やLinuxを再起動しなくても記憶域を増大させることができます。 WRKNWSSTG(Work with Network Server Storage)コマンドを使用すると、仮想ディスクを作成して、パーティションに割り当てることができます。ディスクが一旦割り当てられてしまえば、Linuxの標準ディスク・コマンド(fdisk、mkfs、mountなど)を使用して、割り当てられたディスクにパーティションを作成したり、フォーマットしたり、ディスクにアクセスしたりすることができます。OS/400のRAID機能がサポートされているため、仮想(または論理)ディスクはシステム上の利用可能なすべてのディスク・アームに物理的に分散されているという点に注意してください。 使用しているLinuxのディストリビューションによりますが、ディスク・アクセス・ポイント(マウント・ポイント)を追加するのではなく、論理ボリューム管理(LVM)を利用して、ボリュームのサイズを増大させることができる場合もあります。LVMを使用すると、1つのシステム・ボリュームに対して複数のディスク・パーティションを割り当て、そのシステム・ボリュームをLinuxディレクトリ・ツリー内の1つのマウント・ポイントとして利用可能にすることができます。ディスクを動的にリンクして、IFS内の既存のスペースから新しい仮想ディスクを作成し、(Linux経由で)新しいディスク・パーティションをLVMボリュームに追加することができるので、ボリューム内の利用可能なスペースを増大させることができます。繰り返しますが、以上のことはLinux自身やLinux上で実行中のアプリケーションを再起動することなく行えます。 iSeries上の論理パーティションを使用すると、Linuxを再起動しなくてもパーティション上の処理リソースを変更することが可能です。パーティションが定義されると、プロセッサ・ユニットとプロセッサ・プール・ユニットの最大値と最小値が定義されます。Linuxの稼動中はこれらの値を動的に変更することはできませんが、新しいV5R2の機能ではあらかじめ定義された制約範囲内でこのプロセッサ・プール・ユニットの値を動的に変更することができ、この変更結果はすぐにパーティションに反映されます。 たとえば、プロセッサ・プール・ユニットの最小値が0.0、最大値が4.0と定義されたパーティションがあるとしましょう。さらに、そのパーティションは0.5プロセッサ・プール・ユニットを使用していると仮定しましょう。実行しているアプリケーションに対する要求にスパイクが発生した(たとえばWebアプリケーションへのトラフィックが大量になったなど)場合、プロセッサ・プール・ユニットの値を0.5から1.0に変更することができ、その結果Linuxパーティションが利用可能なプロセッサ・パワーを2倍にすることができます。Linux OSとアプリケーションは共に処理リソースの変更の恩恵をすぐに受けることができます。 パーティション用の処理リソースを動的に変更できる機能により、ロードバランス機能の実装に興味深い道が開かれました。プロセッサ・プール・ユニットの割り当てができるのは、システム上で他のパーティション(またはプライマリパーティション)が使用していないものだけに限られる点に注意してください。 3. ネットワーク記憶装置への多重パーティション・アクセス V5R2では、複数のLinuxパーティションが並行して同じ仮想ディスクにアクセスすることができます。この機能により、大量のデータに対する読み取り専用アクセスなどに関連する興味深いロードバランスや作業分割シナリオが可能になります。 たとえば、クレジットカード会社が顧客アカウント・アクセス用Webサイトで顧客が顧客のアカウント情報にアクセスすることを許可したいとしましょう。顧客のクレジットカード情報は通常、1日にせいぜい1〜2回程度しか変更されることはありませんから、顧客データベースを読み取り専用の並行アクセス仮想ディスク上にインストールすることができます。この読み取り専用データベースは必要に応じて、自動プロセスにより更新することができます。 この(ロードバランス用の)顧客データベースを、Apache Webサーバーを稼動している1つ以上のパーティションに対してマウントすることができます。顧客がアクセスするパーティションに加えて、別の内部パーティションが社内専用の独自アプリケーションを使用して、同じ顧客データベースに並行してアクセスすることができます。 読み取り専用データベースの更新時のダウンタイムを最小限にするために、2台の仮想ディスクを組み入れることができます。1台の仮想ディスクは内部パーティションに対して読み書きモードでマウントし、リアルタイムでの更新を行います。2台目の仮想ディスクは外部使用の読み取り専用ディスクとしてマウントします。必要に応じて自動スクリプトを実行させ、顧客データベースを使用しているすべてのシステムに対してマウント先を切り換えることができます。マウント先の変更プロセスによるダウンタイムはほんの数秒で済みます。 上述の例は、仮想ディスクへの並行アクセスによりメンテナンス時間やディスク・スペースの使用サイズを低減させる方法のほんの1つに過ぎません。並行アクセスを利用してネットワークやプロセッサのロードバランシングを行うこともできます。トラフィック・シェーピング・アルゴリズムを使用して、複数のパーティション上にトラフィックを分散させ、各パーティションにデータベースへの並行アクセスを行えるようにすることにより、顧客がデータに対して可能な限り高速にアクセスできるようにします。 仮想ディスクをパーティション間で共有させて並行アクセスができるようにするためには、そのディスクが共有更新(*SHRUPD)のアクセス・タイプでリンクされていなければなりません。これはADDNWS STGL(Add Network Server Storage Link)コマンドで行います。(F9キーを押してアクセス・タイプ・フィールドを表示させておかなければなりません。)仮想ディスクをマウントしているLinuxパーティションの場合、複数のパーティションからの並行アクセスを許可するには、すべて読み取り専用モードでマウントされていなければなりません。 この新機能をご利用になった実体験をiSeries Linuxコミュニティに是非ご報告ください。メーリングリストはhttp://lists.linuxppc.orgにあります。 4. バックアップと復元、システム・クローニング データのバックアップと復元およびシステム・クローニング用のオプションとして2つのグループのユーティリティがiSeries版Linuxのユーザーに提供されています。1つ目のグループのユーティリティはLinux上で実行され、2つ目のグループのユーティリティはOS/400上で実行されます。 Linuxユーティリティは、ネイティブ・ディスクにLinuxをインストールしているか、またはデータをバックアップしている際にLinuxパーティションをオフに構成変更できないユーザーにとって便利なユーティリティです。 最も一般的なLinuxデータ・バックアップ・ユーティリティは、Tape Archive (tar)ユーティリティです。この強力なツールは、ファイルやディレクトリを仮想またはネイティブのテープ装置、あるいはパーティションのファイル・システム上のファイルに直接書き込むことのできる1つのファイルにアーカイブします。通常のシステム使用中にLinuxパーティション上のデータを「tar」することができ、Linuxパーティションのcronデーモンを使用すると、tarプロセスの起動を簡単に自動化できます。tarファイルをテープ装置やファイル・システムに書き込むだけでなく、後でOS/400の保存/復元操作において使用できるようにIFSにコピーしておくこともできます。 もう1つのLinuxデータ・バックアップ・ユーティリティはrsyncユーティリティで、データを他の仮想ディスクにバックアップし、そこから後でテープやアーカイブ・ファイルにtarすることができます。rsyncは最後にバックアップを取ったとき以後に変更のあったデータだけをコピーするので、この方法は処理リソースや入出力リソースが限られているシステム上で有効です。データを別の仮想ディスクにコピーすると、コピーやtarを実行する際のLinuxパーティションへの性能の影響を低減することができます。 データをパーティションに復元するには、untarまたはrsyncを使用して保存してあるアーカイブからパーティションのファイル・システムへデータを戻すだけです。 OS/400のユーティリティにはSAV(Save)コマンドとRST(Restore)コマンドがあり、仮想ディスク全体を現在の状態のまま保存したり復元したりします。これらのコマンドを実行するには、仮想ディスクと同じ名前をもつディレクトリをOS/400のIFS中のQFPNWSSTGディレクトリに保存します。カーネルが仮想ディスク上のPReP (PowerPC Referenced Platform)Bootパーティションに保存されている場合は(PRePパーティションはほとんどのiSeries版Linuxディストリビューションのデフォルトのインストール中に作成されます)、iSeriesを再インストールした後にLinuxパーティションを復元してブートすることもできます。保存されている仮想ディスクを、FTPやテープを使用して他のiSeriesシステムに移動して復元することができます。 仮想ディスクをバックアップする2番目のオプションとして、CRTNWSSTG(Create Network Server Storage space)コマンドがあります。作成する仮想ディスクのコピーの名前を「ネットワーク・サーバー記憶スペース」フィールドに入力し、「バックアップ元記憶スペース」フィールドにはコピー元の記憶スペースの名前を入力します。仮想ディスクのコピーはiSeriesにLinuxをインストールする効率的な方法です。仮想ディスクのコピーでは、ユーザーがコピーを作成した後の各パーティションに対して、ネットワーク情報とシステム情報を設定するだけで済むからです。 5. OS/400のデータへのアクセス iSeriesには、企業データをOS/400内に残したままLinuxの可用性を高めるための仕組みがいくつかあります。プラットフォーム間で小数のファイルを転送するだけでよければFTPを使用します。クライアント/サーバー環境における、より堅牢なファイル・アクセスに対しては、iSeriesはSamba(OS/400上ではAS/400 NetServerとして実装されています)やネットワーク・ファイル・システム(NFS)をサポートしています。これらのユーティリティはいずれもLinuxのユーザー(あるいはアプリケーション)がOS/400ベースのシステムのIFS中にあるオブジェクトにアクセスすることができるようにしています。 また、DB2ユニバーサル・データベース(DB2 UDB)のデータベース中に格納されているデータにLinuxアプリケーションがアクセスできるようにすることもできます。Javaデータベース接続性(JDBC)とODBCのいずれも(phpなどのような)Web利用可能なアプリケーションが、DB2 UDBデータベース中に格納されているデータにシームレスにアクセスできるようにしています。 iSeriesのユーザーは、LinuxとOS/400の統合を利用するためのアプリケーションを実装し、Linux上のフロントエンドWebアプリケーションとバックエンドのOS/400のデータとを連携させるということをはじめています。LinuxのパーティションとOS/400のパーティションが共に仮想LAN上にある場合は、Webアプリケーションとバックエンド・データストア間のデータアクセスはギガバイト・イーサネットの速度で行えます。 最後に、JTOpenを使用するとOS/400内のデータやリソースにアクセスするJavaクラスのライブラリを利用することができます。このようなクラスを実装するために、iSeries版Linuxユーザーはお決まりのOS/400コマンドライン関数をLinuxから自動化してOS/400関数へのGUIインタフェースを作成し、LinuxとOS/400の両方のパワーを利用したJavaアプリケーションを作成することができます。 6. インストール方法 論理パーティション上にLinuxをインストールする方法はいくつかあります。ローカルのCD-ROMドライブを使用してインストールを行うこともできます。また、インストールに必要なファイルを含んでいるネットワークリソースを確立して、NFSなどといったネットワーク・プロトコル経由でインストールを実行することもできます。ネットワークを利用してインストールを実行すると、複数のLinuxのインストール作業を同時に行うことができます。 V5R2システムでは、仮想CD-ROM機能を利用してインストール・メディアのISOイメージをIFS上に置き、そのISOイメージをインストールリソースとして利用可能にすることもできます。 アーウィン・アーレィはIBMのスタッフ・ソフトウェア・エンジニアで、ミネソタ州ロチェスターの開発研究所に1996年から勤務しています。IT業界に22年従事し、LinuxやOS/400の他にも多くのUnixシステムについての経験があります。