600の最大の特長は堅牢性にあります。筐体のみで排熱するよう設計されており、ファンなどの可動部品は搭載していません。CPUをはじめすべての部品を1枚の基板に実装した単純な構造で、故障の要因を徹底的に排除しています。このように故障しにくいハードウェアこそ、ロードバランサに向いていると言えましょう。600とオープンソースソフトウェア(OSS)を利用した、堅牢で安価なロードバランサの構築をめざします。600へのDebianのインストールから、Webサーバとクライアントの準備までを説明をします。LVSLVSは、Linuxで動いているロードバランサとサーバの集まりです。サービスの受け手側からは、1台のサーバに見えます。このサーバを仮想サーバ、仮想サーバ内のサーバをリアルサーバと呼びます。ネットワーク構成図(図1)をご覧ください。600)で仮想サーバとなっています。クライアントclientはobs600の仮想IPアドレス(192.168.253.120)へ接続して、サービスを受けます。ネットワーク構成図ロードバランサobs600は、クライアントからの要求をリアルサーバに振り分けます。リアルサーバの負荷分散をしています。ダウンしたリアルサーバからは応答しないようにします。リアルサーバがすべてダウンしない限り、サービスを受けることができます。これからWebサーバのLVSをIPVSとKeepalivedで作ってみましょう。Server)はLinuxカーネルに実装されたロードバランサです。600のカーネルはIPVSを有効にしているので、カーネルの再構築は必要ありません。IPVSを使うためには、ipvsadmユーティリティが必要です。KeepalivedKeepalivedはリアルサーバがダウンしていないか監視します。IPVSと連携して、ダウンしたリアルサーバを除いた他のリアルサーバでサービスするようにします。600にDebianをインストールそれでは、ネットワーク構成図(図1)中のホストを作っていきましょう。600の標準OSはSSD/Linuxですが、その他のOSとしてDebian、Fedora、Ubuntuで動作させることもできます。ここではDebianをインストールします。コンパクトフラッシュの用意Debianはコンパクトフラッシュ(CF)にインストールします。標準添付のCFを利用するか、専用オプションのCFを用意してください。標準添付のCFを使う場合はCF上のデータが消えますので、バックアップをとることをお勧めします。Webインターフェースの[システム]-[メンテナンス]-[CF内データのバックアップ]からバックアップできます。ファイルのダウンロード必要なファイル(表1)をぷらっとホームのWebページからダウンロードしてください。容量128Mバイト以上のUSBメモリを用意してください。フォーマットファイルシステムはFAT、ext3、ext2のいずれかでフォーマットしてください(図2はext3の例⁠)⁠。/dev/sda1ボリュームラベルボリュームラベルを「MSF」に設定してください。WindowsではUSBメモリのプロパティで設定できます(図3はext3の例⁠)⁠。MSFファイルのコピーUSBメモリのルートディレクトリにディレクトリ「msf」を作成します。ディレクトリ「msf」に、上でダウンロードしたファイル(表1)をコピーしてださい。Termやminicomなどの端末エミュレータソフトウェアの動作するホストを用意してください。600にシリアル接続します。端末エミュレータの設定値は表2のとおりです。600の電源が切れていることを確認し、USBメモリを挿入します。電源を入れてください。数分して、ステータスインジケータが全色点滅したら、Debianのインストールはおしまいです。600の電源を切って、USBメモリを抜いてください。端末エミュレータの画面にインストール中の様子が出力されていることを確認してください。何も出力されていなかったり、文字化けしている場合には、設定値を確認したり、端末エミュレータを再起動してみましょう。600の電源を入れ、ログインプロンプトが表示されたらrootでログインします。パスワードはrootです。カーネルモジュールの依存性リストを更新します(図4⁠)⁠。600がDebianで動くようになりました。これからはDebianの作法にしたがって、パッケージのインストール、削除、アップデートなどが実行できます。カーネルとカーネルモジュールはぷらっとホームが提供しているもので、Debianのパッケージではありません。カーネルにセキュリティフィックスなどがあった場合には、ぷらっとホームのページからカーネルとカーネルモジュール(表1)をダウンロードしてください。カーネル(uImage.initrd-cfboot)をルートディレクトリに置き、カーネルモジュール(kern.tgz)はルートディレクトリで展開して、再起動してください。一時的なネットワークの設定Debianのパッケージを取得するために、一時的にインターネットに接続できるよう設定してください。イーサネットインターフェースeth0でDHCPサーバからIPアドレスを取得し、プロキシサーバを設定する例を図5に示します。http_proxy=http://proxy.example.jp:8080Debianの更新すでにインストールされているパッケージを更新します(図6⁠)⁠。upgradeipvsadmとkeepalivedパッケージのインストールipvsadmとkeepalivedパッケージをインストールします(図7⁠)⁠。keepalivedパッケージをインストールすると、依存性によりipvsadmパッケージもインストールされます。上記の一時的なネットワークの設定を無効にしてください。/etc/resolv.confファイル/etc/resolv.confを空にします。/etc/network/interfacesイーサネットインターフェースeth0とeth1をdownします(図8⁠)⁠。eth1ファイル/etc/network/interfacesをリスト1のとおり変更してください。eth0はクライアント側です。eth0:120は仮想IPアドレスです。eth1は仮想サーバ側です。ゲートウェイは設定しません。255.255.255.0イーサネットインターフェースeth0、eth0:120、eth1をupします(図9⁠)⁠。eth1/etc/hostnameファイル/etc/hostnameにホストobs600を設定します。IPフォワーディングの有効化IPフォワーディングを有効にするために、ファイル/etc/sysctl.confのnet.ipv4.ip_forward=1のコメントをはずします(リスト2⁠)⁠。システムに反映するために図10のとおりsysctlコマンドを実行します。1IPフォワーディングが有効か無効か確認するには図11のとおりsysctlコマンドを実行します。変数net.ipv4.ip_forwardの値が1なら有効、0なら無効です。600は素通しのローカルルータとなっています。filter(iptables)rules⁠)⁠。リアルサーバの構築リアルサーバを3台用意してください。ここではOSはDebianとします。ホスト名はrealserver1、realserver2、realserver3です。参考までに、リアルサーバのハードウェア仕様を表3に示しました。82573L)ネットワーク設定リアルサーバのネットワーク設定は表4のとおりです。デフォルトゲートウェイがobs600のeth1のIPアドレスになっていることに注意してください。172.16.14.120Apacheのインストールapache2パッケージをインストールします。クライアントの構築クライアントを1台用意してください。OSはリアルサーバと同じDebianとします。ホスト名はclientです。ハードウェア仕様はリアルサーバと同じです(表3⁠)⁠。ネットワーク設定クライアントのネットワーク設定は表5のとおりです。デフォルトゲートウェイはobs600のeth0のIPアドレスになります。192.168.253.254cURLのインストールブラウザの代わりとしてcURLを使います。ブラウザを使ってもかまいません。curlパッケージをインストールします。ApacheBenchのインストールApacheに付属しているベンチマークツールApacheBenchを使います。apache2-utilsパッケージをインストールします。接続確認クライアントclientからcurlコマンドでリアルサーバに接続して応答があるか確認してみましょう。リアルサーバのコンテンツリアルサーバのコンテンツは、実運用時には、同じでなければなりません。ないと、ロードバランサの振り分け先によって表示されるページが異ってしまいます。この段階では、どのリアルサーバからの応答か区別したいので、別々のコンテンツを用意します。ドキュメントルートに、ホスト名を記入したファイルindex.htmlを置きました。cURLでの接続と応答クライアントclientで図12のとおりcurlコマンドを実行してください。指定したURLのホストのホスト名が表示されれば、ネットワークの設定は正常です。http://172.16.14.123/応答がない場合、obs600のIPフォワーディングが有効になっているか(図11⁠)⁠、リアルサーバのデフォルトゲートウェイがobs600のイーサネットインターフェースeth1に向いているか(図1、表4⁠)⁠、確認してください。600にDebianをインストールする手順を説明をしました。リアルサーバとクライアントも用意しました。リアルサーバをWebサーバとして動作させ、クライアントから接続して、応答のあることを確認しました。残るはLVSの設定だけです。後編では、LVSの設定をして、どのように動作するかを確認し、性能の測定をする予定です。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。