2006年04月06日

initrdの使い道

はてなブックマークに登録

initrdの用途は主に、「init起動前にルートパーティーションをマウントするためのドライバ類を読み込むこと」だと思いますが、他に何か使い道はないでしょうか。
DSAS内のほとんどのサーバでは、必要なドライバ類を最初からカーネルに組み込んでいるためinitrdを使う必要は特にありません。しかし、これを個体識別可能なハードウエアと組み合わせることによって、システム管理の手間を大幅に軽減させることができそうな気がします。

「個体識別可能なハードウエア」ってなに?と思われるかもしれませんが、単純にNICMACアドレスを取得したり、DMIでシリアル番号を取得するような話です。またはCPUIDを使うという手もありますね。
ただ、MACアドレスやシリアル番号は人間が管理するにはいまいち不便(ぱっとみわかりにくい)なので、DSASではIPMI(Intelligent Platform Management Initiative)を利用しています。これは、ネットワーク経由でBIOSの設定が出来たり電源のOn/Offができたりするとても便利なものですが、最大のメリットは「ハードウエア(IPMIカード本体)にIPアドレスを設定できること」だと思っています。IPMI自体は単なるインターフェイス仕様に過ぎないので、NICを経由してIPで通信できるかどうかは実装依存になりますが、DSASで利用しているサーバの多くは、IPベースで制御可能な製品を利用しています。OSが起動する前に自分のIPアドレス(ホスト名)を取得できるのは大きな強みです。DHCPの場合、サーバのIPを固定するためにはMACアドレスとの対応を記述しないといけませんが、IPMIでは設置時に一度だけIPアドレスをカードに設定するだけで同様な事ができるので、NICが故障して交換したり新しいサーバを追加する場合でも、DHCPサーバ等の設定を変更する必要はありません。常に自身のIPアドレスを記憶してくれているのですから。

話を戻して、これとinitrdがどう繋がるかと言うと・・・

例えば、管理サーバに以下のようなテキストファイルを作成し、このファイルはネットワーク経由で簡単に参照できるようにしたとします。
--------------------------------------------------------------------
HOST1: DB
HOST2: WEB
HOST3: MAIL
--------------------------------------------------------------------

さらに、各サーバの initrdlinuxrc には以下のような処理を記述します。

1) IPMIからIPアドレスを取得
2) NICを初期化してIPアドレスを設定
3) DNSからホスト名を取得
4) 上記のテキストファイルを取得
5) ホスト名が HOST1 かどうかを判断する
-> DBサーバに必要なモジュール類を取得する
6) ホスト名が HOST2 かどうかを判断する
-> WEBサーバに必要なモジュール類を取得する
7) ホスト名が HOST3 かどうかを判断する
-> MAILサーバに必要なモジュール類を取得する

「どうやって必要なモジュール類を取得するの?」という話題はとりあえず置いておきますが、少なくともこの仕組みによって init 起動前に自分自身のクラスタ内における役割を判別することができ、必要なモジュールや設定ファイル類を事前に展開しておく事が可能になるわけです。サーバを増設する際にも、「これはDBサーバにするからあれとこれをインストールして・・・」などと考える必要はなく、「役割を自動判別できる共通のプラットフォーム」を組み込むだけで済みます。また、役割を変更する場合も上記の設定ファイルを書き換えて対象サーバを再起動するだけでよいので、ハードウエア障害が発生してもスムーズに代替マシンに切り替えることが可能となります。

DSASでは、このような仕組みを利用しながら、管理者の手間を出来る限り軽減できるような工夫をしています。
klab_gijutsu2 at 00:04│Comments(0)TrackBack(0)

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント