小型/堅牢/メンテナンスフリー OpenBlockS 600の限界に挑戦

第2回 LVSによる堅牢で安価なロードバランサ(前編)

この記事を読むのに必要な時間:およそ 4 分

はじめに

OpenBlockS 600の最大の特長は堅牢性にあります。筐体のみで排熱するよう設計されており,ファンなどの可動部品は搭載していません。CPUをはじめすべての部品を1枚の基板に実装した単純な構造で,故障の要因を徹底的に排除しています。このように故障しにくいハードウェアこそ,ロードバランサに向いていると言えましょう。

本記事では,OpenBlockS 600とオープンソースソフトウェア(OSS)を利用した,堅牢で安価なロードバランサの構築をめざします。前編では,OpenBlockS 600へのDebianのインストールから,Webサーバとクライアントの準備までを説明をします。後編では,LVS(Linux VirtualServer)の設定と動作確認,性能測定をする予定です。

LVS

LVSは,Linuxで動いているロードバランサとサーバの集まりです。サービスの受け手側からは,1台のサーバに見えます。このサーバを仮想サーバ,仮想サーバ内のサーバをリアルサーバと呼びます。

ネットワーク構成図図1をご覧ください。3台のリアルサーバrealserver1,realserver2,realserver3とロードバランサobs600(OpenBlockS 600)で仮想サーバとなっています。クライアントclientはobs600の仮想IPアドレス(192.168.253.120)へ接続して,サービスを受けます。

図1 ネットワーク構成図

図1 ネットワーク構成図

ロードバランサobs600は,クライアントからの要求をリアルサーバに振り分けます。つまり,リアルサーバの負荷分散をしています。また,ダウンしたリアルサーバからは応答しないようにします。リアルサーバがすべてダウンしない限り,サービスを受けることができます。

これからWebサーバのLVSをIPVSとKeepalivedで作ってみましょう。

IPVS
IPVS(IP Virtual Server)はLinuxカーネルに実装されたロードバランサです。OpenBlockS 600のカーネルはIPVSを有効にしているので,カーネルの再構築は必要ありません。IPVSを使うためには,ipvsadmユーティリティが必要です。
Keepalived
Keepalivedはリアルサーバがダウンしていないか監視します。IPVSと連携して,ダウンしたリアルサーバを除いた他のリアルサーバでサービスするようにします。

OpenBlockS 600にDebianをインストール

それでは,ネットワーク構成図(図1)中のホストを作っていきましょう。まずはOpenBlockS 600から始めます。

OpenBlockS 600の標準OSはSSD/Linuxですが,その他のOSとしてDebian,Fedora,Ubuntuで動作させることもできます。ここではDebianをインストールします。

コンパクトフラッシュの用意

Debianはコンパクトフラッシュ(CF)にインストールします。標準添付のCFを利用するか,専用オプションのCFを用意してください。標準添付のCFを使う場合はCF上のデータが消えますので,バックアップをとることをお勧めします。

Webインターフェースの[システム][メンテナンス][CF内データのバックアップ]からバックアップできます。

ファイルのダウンロード

必要なファイル表1ぷらっとホームのWebページからダウンロードしてください。

USBメモリの準備

容量128Mバイト以上のUSBメモリを用意してください。

フォーマット

ファイルシステムはFAT,ext3,ext2のいずれかでフォーマットしてください図2はext3の例)⁠

図2 ext3ファイルシステムの生成

# mke2fs -j -b 4096 /dev/sda1
ボリュームラベル

ボリュームラベルを「MSF」に設定してください。WindowsではUSBメモリのプロパティで設定できます図3はext3の例)⁠

図3 ext3ファイルシステムのラベルの変更

# e2label /dev/sda1 MSF
ファイルのコピー

USBメモリのルートディレクトリにディレクトリ「msf」を作成します。ディレクトリ「msf」に,上でダウンロードしたファイル表1をコピーしてださい。

表1 Debianのインストールに必要なファイル

ファイルファイル名
OS イメージ(Debian)lenny-powerpc-obs600-20100119-00.tar.gz
カーネルuImage.initrd-cfboot
カーネルモジュールkern.tgz
半自動インストール用スクリプトmsf_init.sh

シリアル接続

Tera Termやminicomなどの端末エミュレータソフトウェアの動作するホストを用意してください。OpenBlockS 600にシリアル接続します。端末エミュレータの設定値は表2のとおりです。

表2 端末エミュレータの設定値

項目設定値
Baud rate115,200bps
Data8bit
Paritynone
Stop bits1bit
Flow Controlnone

インストールの実行

OpenBlockS 600の電源が切れていることを確認し,USBメモリを挿入します。電源を入れてください。数分して,ステータスインジケータが全色点滅したら,Debianのインストールはおしまいです。OpenBlockS 600の電源を切って,USBメモリを抜いてください。

端末エミュレータの画面にインストール中の様子が出力されていることを確認してください。何も出力されていなかったり,文字化けしている場合には,設定値を確認したり,端末エミュレータを再起動してみましょう。

再起動後の操作

OpenBlockS 600の電源を入れ,ログインプロンプトが表示されたらrootでログインします。パスワードはrootです。カーネルモジュールの依存性リストを更新します図4)⁠

図4 カーネルモジュールの依存性リストの更新

# depmod -a

カーネルとカーネルモジュールの更新

これでOpenBlockS 600がDebianで動くようになりました。これからはDebianの作法にしたがって,パッケージのインストール,削除,アップデートなどが実行できます。しかしながら,カーネルとカーネルモジュールはぷらっとホームが提供しているもので,Debianのパッケージではありません。

カーネルにセキュリティフィックスなどがあった場合には,ぷらっとホームのページからカーネルとカーネルモジュール(表1)をダウンロードしてください。

カーネル(uImage.initrd-cfboot)をルートディレクトリに置き,カーネルモジュール(kern.tgz)はルートディレクトリで展開して,再起動してください。

コメント

コメントの記入