メニューボタン
IBMi海外記事2011.08.22

オープン・ソース・ソリューションを実装する方法: Linuxの基盤を構築する

Erwin Earley 著

この記事は、IBM i ショップへのオープン・ソース・ソリューションの実装を説明したシリーズ第 1 号です。このシリーズで特に強調したい点は、IBM Power System の仮想化機能の特長と、レビュー中の特定のオープン・ソース・ソリューションそれぞれの管理機能になります。このシリーズの目的は、アプリケーションの長期ケアと供給を担当する人間のスキルのギャップを抑えるオープン・ソース・ソリューションの構築方法を説明することです。言い換えれば、エンド・ユーザーに分かりやすく、管理オーバーヘッドがほとんどないオープン・ソース・ソリューションを手に入れることが実装の目標となります。

このシリーズで計画しているトピックは次のような内容です。

ファイル・サービスの設定.
この記事は、既存の Windows ベースのファイル・サーバーを交換するためにオープン・ソース・ファイル・サーバーを構築する方法を中心に説明します。記載されている内容は、多数の異なる認証メカニズムへの統合、簡略化された方法による既存のデータのマイグレーション、ファイル共有の追加および変更などファイル・サーバーの継続的な管理のための手順です。

ネットワーク・サービス.
この記事は、ドメイン・ネーム・サーバー (DNS)、また Dynamic Host Configuration Protocol (DHCP) の設定方法を中心に説明します。

電子メール・サービス.
この記事は、スパム・ブロッカーやウイルス・チェッカーなど電子メールのフィルタリングをするオープン・ソース・ソリューションの使用法を中心に説明します。

ファイアウォール.
この記事は、ネットワーク・インフラストラクチャーを迷惑なトラフィックから保護する方法を中心に説明します。

上記の記事ではそれぞれ、Power System で提供されている仮想化機能、さらにこれらの機能をネットワーク・アプライアンスとして展開できる IBM i オペレーティング・システム機能を中心に説明します。シリーズの他の記事では、オープン・ソース・ソリューションごとに耐久力がありフォールト・トレラントな次のような環境の提供を中心に説明します。

高可用性.
この記事は、クラスタリングやデータ・レプリケーションなど可用性が高いオープン・ソース・ソリューションの実装をサポートするオープン・ソース・ツールを中心に説明します。

バックアップ/リストア.
この記事は、対応しているファイル・レベルのリストアやファイル・バージョン管理など、アプリケーション・データのバックアップとリストアに使用できるオープン・ソース・ツールを中心に説明します。

機能を探る

このシリーズ第 1 号では、ネットワーク・アプライアンス型のソリューションを魅力的かつ実用的にする Power System と IBM i の機能について少しばかりお話したいと思います。プロセッサーとメモリーのリソースをワークロードに割り振る点から始めましょう。これらのワークロードは LPAR の Linux 上で動作します。同様に、一定の量のプロセッサーとメモリーのリソースが割り当てられます。Power プラットフォームでのオープン・ソース・ソリューションに対する私の経験では、インフラストラクチャー型のソリューションではリソース面ではあまり必要ないと言えます。通常、共有プロセッサー・リソースには 1.0 プロセッサー装置未満の目的のリソースが割り当てられます。同様に、メモリーについては、実装中のソリューションに必要な量のメモリーを割り当てることができます。ワークロード中心に記載した記事では、これらのリソースの推奨する設定についての詳細な情報を提供します。リソース割り振りは LPAR レベルで制御するため、ワークロードのサイズを変更できます。つまり、ワークロードで必要な正確な量のリソースを割り当てることができます。さらに、上限なしプロセッサーを利用してパーティションに必要な正確な量のプロセッサーを割り振り、またワークロードの要件の変更に応じてプロセッサー・リソースを割り振りまたは割り振り解除することができます。メモリー割り振りについて似たような機能が、Active Memory Sharing を通じて POWER6 モデルと POWER7 モデルの Linux LPAR で利用できます。

Linux インストールを簡略化する

IBM i for Virtual I/O を使用した POWER で Linux をインストールするには次のような数多くの手順があります。

  • 論理区画の作成
  • 仮想入出力定義
  • 仮想ネットワーク・サポート
  • Linux インストール
  • サービスおよび生産性向上ツールのインストール

論理区画の作成、仮想入出力の定義、仮想ネットワークの設定手順などに必要な手順についてはお話しませんが、Linux オペレーティング・システム自体、またサービスおよび生産性向上ツールを簡単にインストールできる方法について少しだけお話します。

Service and Productivity Tools は、オペレーティング・システムのクリーン・シャットダウンによるパワーオフ要求に応答する機能や動的 LPAR 機能のサポートなど、 POWER アーキテクチャー固有の多数の機能を提供しています。Linux を確実にインストールすることができ、インストール完了後はユーティリティーをダウンロードし、インストールできます。ただし、IBM Installation Toolkit for Linux を利用する方が簡単でしょう。

簡単にいえば、PowerPack CD は基本的に、構築中の Linux インスタンスで求められている構成に関連した多数の質問を使用して Linux インストールを下準備します。回答からは、ユーザーとの対話がないサイレント・インストールに使用する応答ファイルが構築されます。PowerPack CD も必要なサービスおよび生産性ツールのインストールを行います。PowerPack CD のさらなる利点として、RedHat か Novell/SuSE のどちらの Linux ディストリビューションがインストール中なのかどうかに関係なく、Linux インストールのルック・アンド・フィールが同じであることがあります。

オペレーティング・システム・レプリケーション

オペレーティング・システムを自分のディスクに持つことで、オペレーティング・システムを一回インストールし、好みのままにコピーして、オープン・ソース・ソリューションを追加で実装できる環境が得られます。これを実行するにはいくつかのキーがあります。まず、インストーラーがネットワーク・アダプターの MAC アドレスに基づいてネットワーク構成を生成します。仮想イーサネットを使用している場合、MAC アドレスは異なる LPAR に関連付けられた複製イメージについては異なります。この結果、イーサネット・アダプター /dev/eth# について新しいネットワーク・デバイス・ハンドルが作成され、オリジナルのデバイス・ハンドルは、たとえ無効になっていてもシステム上に残ります。これは、ネットワーク構成の名前を変更し、名前の関連付けを削除することで修正できます。まず、ネットワーク構成ファイルの名前を変更しましょう。現在では、ネットワーク構成ファイルの名前には MAC アドレスが含まれています。

cd /etc/sysconfig/network
ls ifccfg-eth*

結果ファイルの名前を変更します。

mv ifcfg-eth<MAC Address> ifcfg-eth0

また、ifcfg-eth0 ファイルを編集して、UNIQUE エントリーをコメント・アウトします (行頭に # を付けます)

では デバイス・ハンドルへの MAC アドレスのマッピングを削除しましょう。

rm /etc/udev/rules.d/30-net_persistent_names.rules

このファイルは、イーサネット・アダプターの正しい MAC アドレスで、次にシステムをブートした場合に再作成されます。

ネットワーク・デバイス・マッピングの他に、ブート・ローダーによるブート可能なディスクへの参照を変更する必要があります。インストーラーにより、ブート・ローダーがブート元となる特定の SCSI デバイス/アドレスをポイントするよう構成されます。次の手順でこれを総称名に変更します。

  • /etc/lilo.conf ファイルを編集します
  • 'boot' 行が 'boot = /dev/sda1' を示すようにします
  • 'root' 行が 'root = /dev/sda3' を示すようにします
  • 'lilo' コマンドで yaboot.conf 設定ファイルを再生成します

それだけです。これで、Linux O/S のあるディスクは一意になります。パーティションをシャットダウンし、ストレージ・スペースを後で使用するため保存する必要があります。

VIOS について

上記の手順は、 IBM i でホストされている入出力を使用している Linux 実装に対する手順であることを念頭に置いておいてください。ストレージが VIOS でホストされている場合、IBM Systems Director の VMControl のキャプチャー機能およびデプロイ機能を使用して同じこと、つまりレプリカ生成可能な Linux イメージの作成が可能です。VMControl キャプチャーおよびデプロイ機能については今後の記事で説明します。

ストレージ管理

これらのワークロードを実装するカギの 1 つとして、リソース割り振りをできるだけフレキシブルに行うことがあります。メモリーとプロセッサーの柔軟性を考えたパーティションの構成についてはすでに述べました。これから、ワークロードのストレージもフレキシブルにする方法について見てゆきましょう。Linux をオペレーティング・システムとして使用し、IBM i がストレージ・バーチャリゼーションを提供すると、論理ボリューム・マネージャー (LVM) を Network Server Storage Spaces (NWSSTG) とともに活用して、時間とともに成長できるオープン・ソース・ソリューションのストレージ・スキームを実装できます。Linux と実装中のオープン・ソース・アプリケーションのインストールはデータに使用するストレージとは別の「ディスク」に保存することをお勧めします。例として、ファイル・サービス・ソリューションを実装する場合、Linux と SAMBA (オープン・ソース・ファイル・サーバー) をインストールする Network Server Storage Space を 1 つ、共有中のファイル・リソースを保存する 2 つ目のストレージ・スペースを用意します。オペレーティング・システムとデータを分けると、バックアップ/リストア、オペレーティング・システムのアップデート、また LVM を簡単に使用できるようになります。

論理ボリューム・マネージャーは Linux で利用できるソフトウェア・ソリューションで、複数のディスク・リソースを 1 つの論理ディスク・リソースに論理的に結合またはプールして、オペレーティング・システムで動作させることができます。実質的に LVM はファイル・システムと物理メディア間の抽象化層を提供します。例として、仮想ディスクが 2 つあり、それらを 1 つの論理ボリューム・グループ (LVG) に配置してから、その論理ボリューム・グループからファイル・システムとしてフォーマットできる複数の論理ボリューム (LV) を作成できます。論理ボリューム・グループは 1 つの「物理ディスク」、論理ボリュームはディスク上のパーティションと考えることができます。

ディスク・パーティションのサイズを変更するのは難しい、またときには不可能な場合があることを忘れないでください。LVM の利点は、論理ボリュームにスペースを追加する必要がある場合でも、単に新しいディスク・リソース (ディスク・パーティション上の物理ディスク) を論理ボリューム・グループに追加し、その新しいリソースを使用して論理ボリュームのサイズを増やすことができるということです。それを仮想ディスクを作成する機能と組み合わせて、Linux パーティションに動的に追加すれば、オープン・ソース実装に向けた信じられないほどフレキシブルなストレージ・ソリューションが実現します。

LVM の初期構成を作成する手順を説明しましょう。これらの手順の前提として、Linux がすでにインストールされていなければなりません。インストールされていない場合は、インストール・プロセスを説明した多数の記事や他のリソースを利用できます。コマンド・ライン・コマンドは使用している Linux インストールに関係なく同じであるため、それを提供しています。

実際には、最初の手順のいくつかは Virtual I/O for Linux をホストしている IBM i 上で行われます。まず、仮想ディスクを新たに作成する必要があります。

CRTNWSSTG NWSSTG(DATA01) NWSSIZE(10240) FORMAT(*OPEN)

上記のコマンドは、サイズが 10GB の DATA01 という新しい仮想ディスクを作成します。ここで、ストレージ・スペースを Linux オペレーティング・システムへ入出力を提供するのに使用しているネットワーク・サーバーにリンクさせる必要があります。

ADDNWSSTGL NWSSTG(DATA01) NWSD(LINUX)

上記のコマンドは、仮想ディスク DATA01 をネットワーク・サーバー LINUX へリンクさせています。リンク・プロセスは SCSI バスにデバイスを挿入するものと考えることができます。リンクは動的に行われるため、Linux オペレーティング・システムでディスクをすぐに使用できるようになります。ここで、新しいディスクを検出するため Linux で SCSI バスを再スキャンする必要があります。

echo "- - -" > /sys/class/scsi_host/host0/scan

上記のコマンドは多少暗号化されているように見えますが、実際は非常にシンプルです。3 つのダッシュは、開始 SCSI アドレス、終了 SCSI アドレス、およびスキャンするデバイス・タイプを示します。この場合、すべてのデバイス・タイプに対して開始アドレスから終了アドレスまでスキャンしています。/sys/class/scsi_host/host0/scan はオペレーティング・システムの単なるハンドルで、最初の SCSI バス (host0) のスキャン・コマンドを表しています。

次に、ディスク上にパーティションを配置する必要があります。LVM のディスク全体を使用することになるため、ディスク上にパーティションを 1 つ作成するだけです。fdisk コマンドを使用してパーティションを作成します。

fdisk /dev/sdb

上記のステートメントはシステム上の第 2 ディスク (sdb) で fdisk を起動します。これは、新しい仮想ディスクを作成およびリンクする前にシステム上にディスクが 1 つしかなかったことを前提としています。ディスクを LVM で使用できるようにするには、まず初期化する必要があります。これは pvcreate コマンドで行います。

pvcreate /dev/sdb

上記のコマンドで LVM はディスクを物理ボリューム (PV) として編成します。これで、ボリューム・グループ自体が vgcreate コマンドで作成されます。

vgcreate datavg /dev/sdb

上記のコマンドはディスク (sdb) 上の物理ボリュームを使用して datavg というボリューム・グループを作成します。これで論理ボリューム自体を作成する準備ができました。この場合、ボリューム・グループのスペース全体を使用するため、どのスペースが使用できるのか正確に知る必要があります。

vgdisplay datavg

上記のコマンドは、フリー・スペースを含むボリューム・グループ datavg の情報を表示します。最後に論理ボリュームを作成しましょう。

lvcreate -L10G -ndata datavg

上記のコマンドは、論理ボリューム・グループ datavg に data という論理ボリュームを作成します。論理ボリュームのサイズは 10GB です。論理ボリュームを Linux で使用できるようにするには、ファイル・システムでフォーマットし、マウントする必要があります。

mke2fs -j /dev/datavg/data
mkdir /mnt/data
mount /dev/datavg/data

デバイス・パスに注目してください。論理ボリューム・グループはパスの第 2 要素で、論理ボリュームはパスの第 3 要素です。

これで、論理ボリューム・グループの構造が整ったので、それを利用して、結果生じるファイル・システムのサイズを動的に作成できます。まず、ホストしている IBM i パーティションで仮想ディスクを新しく作成し、ネットワーク・サーバーへリンクさせる必要があります。仮想ディスクがリンクされたら、すでに記載した同じコマンドを使用して Linux で SCSI バスを再スキャンする必要があります。Linux で、すでに記載した 'pvcreate' コマンドで新しいディスクを初期化する必要がありますが、ここでディスク ID は新しいディスク名と置き換えられます。例として、これがシステムの 3 番目のディスクの場合、パスは /dev/sdc のようになります。

ディスクをボリューム・グループに追加するには、vgextend コマンドを使用します。

vgextend datavg /dev/sdc

上記のコマンドは、/dev/sdc で作成された物理ボリュームを datavg ボリューム・グループに追加します。これで、ボリューム・グループの新規作成されたフリー・スペースを論理ボリュームに追加できます。

lvextend -L+10G /dev/datavg/data

上記のコマンドは、datavg ボリューム・グループのデータ・ボリュームにさらに 10GB を追加します。これは、作成された仮想ディスクのサイズが 10GB だったことを前提としています。

最後に、Linux とそれを使用しているアプリケーションにさらにスペースを利用できるようにするため、ファイル・システムのサイズを変更する必要があります。

unmount /mnt/data
e2fssck -f /dev/datavg/data
resize2fs /dev/datavg/data
mount /dev/datavg/data /mnt/data

上記のコマンドは順番に次の内容を行います。ファイル・システムをアンマウントします。したがって、ファイル・システムを利用するあらゆるアプリケーションをサイズ変更前に停止させる必要があるでしょう。ファイル・システムにエラーがないか確認します。利用できるすべてのディスク・スペースを使用するよう、ファイル・システムのサイズを変更します。最後にファイル・システムをマウントします。

上記で使用したコマンドに加えて、多数の GUI また Web を使用した管理ツールから LVM をセットアップし、管理することもできます。

管理

Linux 環境を日々管理するための優れたツールがいくつかあります。IBM Systems Director WebMin の 2 つのツールをお勧めします。IBM Systems Director はオペレーティング・システム・レベルの Linux だけでなく Linux が動作しているハードウェア (この場合は論理区画) を管理できます。WebMin は無償のオープン・ソース・ユーティリティーで、 Linux オペレーティング・システムだけでなく多数のオープン・ソース・アプリケーションを Web ベースで管理します。WebMin は、実装中のオープン・ソース・アプリケーションを管理する方法として、今後の記事で何度か取り上げる予定です。

まだこれからです

この記事では、複製できる Linux 環境の作成方法だけでなく Linux と IBM i の機能を活用して動的なストレージ環境を実現する方法を説明してきました。コマンドの中には多少とっつきにくいものもあるのはわかります。しかし、1 回か 2 回使用してみれば、それらは極めて単純です。これが、Linux の天才にならなくてもオープン・ソース・ソリューションを実装する下準備となります。まず最初は、ファイル・サービングです。しかし、このシリーズで特に取り上げてもらいたいオープン・ソース・アプリケーションまたは機能がある場合は、いくつか掲載できる余地がありますから覚えておいてください。opensolutions@askerwin.com までお知らせください。

補足事項: 管理ツール

オープン・ソースの実装に関する一連の記事では、管理しやすさに重点を置いていますが、実際は、次の 3 つの主要分野である程度の管理を行う必要があります。

  • アプリケーション管理
  • オペレーティング・システム管理
  • 環境管理

オペレーティング・システムと環境両方の管理は IBM Systems Director から扱うことができます。IBM Systems Director は、企業の IT 環境の管理を 1 つの画面で提供することを目的としています。Linux on Power について言えば、IBM Systems Director で実行できる多数の機能があります。例として、IBM Systems Director の Update Manager を利用して、インストール済みのソフトウェアのソフトウェア・レベルを既知のアップデート・リストと照合する場合に使用できる準拠性ポリシーを構築できます。アップデート自体はディストリビューター提供のアップデート・プロセスから送付され、Linux ディストリビューションをディストリビューターの更新サーバーに登録する必要があります。ただし、System Director のアップデート機能ですべての Power オペレーティング・システム全体に対するアップデートのチェックと適用をまとめて行うことができます。Linux 環境の Systems Director には、サーバーのさまざまな面のヘルスとステータスをモニターする便利な機能があります。図 1 の例に示すように、ファイル・システムの使用率が一定の点に到達したらアラートを送信する、ファイル・システムの使用率に対するモニターを確立できます。

そのシナリオでは、Linux パーティションの入出力は Linux パーティションから仮想化されています。Systems Director に Linux ファイル・システムが定義されたしきい値に達したら起動するイベント・モニターを確立できます。その時点で Systems Director でイベントが発行されます。イベント・トリガーにより Linux パーティションでスクリプトが開始できます。Linux パーティションのスクリプトは IBM i パーティションに ssh コールを行い、仮想ディスクを新たに作成し、それをネットワーク・サーバーにリンクさせることができます。最後に、スクリプトは仮想化ストレージをさらに取得して、論理ボリュームに追加し、ファイル・システムのサイズを増やすことができます。シームレスな統合と自律型システムについて言えば、IBM Systems Director と多少スクリプトを作成すれば、Linux サーバーはストレージ関連また他の問題について自分で回復することができます。

その他に IBM Systems Director が Linux on Power 環境にもたらすメリットとして VMControl プラグインで提供される機能があります。これで環境の管理を行うことができます。VMControl の Express エディションは、 Linux インスタンスが動作する論理区画を作成および変更する機能を提供しています。Standard エディションも興味深い点を持っています。このエディションは Linux インスタンスをキャプチャーして、デプロイする機能を提供しています。これにより、Linux ベースのネットワーク・アプライアンスを実装する IT 環境の機能が著しく強化されます。繰り返しますが、ソリューションをインストールまたは構成せずに基本オペレーティング・システム・インストールに Linux インスタンスを構築している場合、VMControl を使用してインスタンスをキャプチャーし、ファイル・サービスなどのソリューションをデプロイする準備ができたら、VMControl を使用して Linux インスタンスをデプロイできます。デプロイメント機能は論理区画の作成、キャプチャーされたイメージに基づいた新しい Linux インスタンスのリストア、Linux でのネットワーキングの構成、新しいサーバーの開始をすべてボタン・ワンクリックで行うことができます。キャプチャーされたイメージはオペレーティング・システムである必要はありません。実際それは、オペレーティング・システムであったり、インストールしておきたかったソフトウェア・アプリケーションの場合があります。例えば、SAMBA ファイル・サーバーをインストールして構成した Linux パーティションを確立できるキャプチャーされたファイル・サービス・アプライアンスが必要な場合、そのイメージをデプロイ可能なファイル・サーバー・アプライアンスとしてキャプチャーします。VMControl には Linux イメージを Linux イメージ・リポジトリーまたは VIOS サーバーのいずれかにキャプチャーする機能があります。今後の記事では、VMControl を使用して Linux ベース・ネットワーク・アプライアンスをキャプチャーおよびデプロイする方法についてより深く探求していきます。

アプリケーション管理には多数のツールおよびユーティリティーが使用できます。ディストリビューターごとに独自のツールセットを用意しています。例として、Novell/SuSE はその SuSE Linux Enterprise Server (SLES) ディストリビューションで yast (Yet Another Setup Tool) を、RedHat はすべて 'system-config-' という文字が頭に付く多数のユーティリティーを個別提供しています。さらに、多数のアプリケーションで独自の管理ツールを提供しています。例えば、このシリーズの次号でお話する SAMBA ファイル・サーバーは、ファイル・サーバー全体の構成、さらにファイル共有の構成を扱う SWAT (SAMBA Web Administration Tool) という Web 上のツールを提供しています。

多数のオペレーティング・システム管理とアプリケーション管理をまとめる無償の Web ベースのツールに WebMin があります。WebMin のコンセプトは設定ファイルを直接編集する (やりたくないのは正にこれです) 必要性をなくし、コンソールまたはリモートからシステムを管理することです。「オープン・ソース・アプリケーションを実装する」シリーズ全体を通して WebMin 機能を重点的に取り上げ、それを使用して対象の特定のアプリケーションの管理と構成を簡略化する方法、読者の環境内で実装する各 Linux ベース・アプリケーションの統合管理ツールを提供する方法をお話していくつもりです。

あわせて読みたい記事

PAGE TOP