サーバーにおいて手軽にダウンタイムを低減するための仕組みと言えばクラスタリングである。しかしながらクラスタリングはかつて、それなりに高価なソリューションであった。なぜならば、以下のような理由があるからだ。
- メインフレームの置き換えとして利用するパターンが多いので客層がいい。(お金をたくさん持っている。)
- 共有ストレージ(主にSCSIやファイバーチャネルのRAIDアレイ装置)が必要である。
- 市販のクラスタリングソフトはライセンス料が高い。
DRBDはDistributed Replicated Block Deviceの略だ。翻訳すると分散複製型ブロックデバイスというところだろうか。詳細はDRBDのユーザーガイドを参照してもらいたいのだが、イメージを掴んでもらうために図にすると以下のようになる。(ユーザーガイドにも図はあるが、個人的にはもう少しシンプルな方が好みなのであえて描いてみた。)
端的に言えば、つまるところDRBDとはローカルのディスクとリモートのディスクをミラーリングするソフトウェアだ。同時にアクセスできるのはいずれか片方のホストだけで、そのホストはプライマリと呼ばれる。プライマリが故障した場合には反対側のホストに切り替えてそちらのホストでサービスを展開するという風にシステムを構築することもできる。その際にクラスタリングソフトが必要になるのだが、そこでHeartbeatが必要になる。(Heartbeatについてはいずれ紹介する。)
えっ!?こんな仕組みで大丈夫なの??
と思う人もいるのではないだろうか。こんな仕組みで本当にちゃんとデータをロスすることなくレプリケーションできるのか??性能は大丈夫か??そもそもFOSSでミッションクリティカルなシステムを実装できるのか??などと。
答えはYesだ。まったくもって大丈夫!!である。
オトコたるもの根拠なく物事を疑ってはいけない。特にFOSSを疑ってはいけない。疑うならその目でソースコードを確かめればいいだけのこと。オープンソースなのだから!!オトコならばついでにデバッグするぐらいの気概を持つべし!!
DRBDを使うメリットは色々あるが、大きいのはやはりコストメリットだろう。とにかくシステムが安く構築できる。仕組みが単純であるから運用コストも下がる。2台のサーバーを使ったHA構成のシステムなら、
- サーバー2台(一台10万円として20万円)
- LANクロスケーブル2本(インターコネクト用)
- LANストレートケーブル数本(サービスネットワーク用)+ネットワークスイッチ(必要であれば)
- 各種ソフトウェア(FOSSなら0円)
- スマイル(0円)
自分でシステムを構築してしまえば人件費も浮くというものだ。人件費が浮けばFOSSの利点がさらに活きる。ITエンジニアたるもの、クラスターシステムの構築ぐらい一人で出来てナンボだろう。つべこべ言わずにRTFMして構築しよう。
自分でDRBDをセットアップするときは、各Linuxディストリビューションで配布されているパッケージを使うか、自分でビルドする必要がある。なぜなら、DRBDはLinuxのカーネルモジュール(カーネル空間で動くプログラム)として実装されているため、ビルド後のバイナリはカーネルのバージョンと依存関係があるからだ。平たく言うと、DRBDのモジュールはビルドしたカーネルでしか動かない。なので自分でビルドするのが手っ取り早いが、運用上これは少し面倒だ。(Gentooユーザーなら面倒だなどとは言わないだろうが。)
恐らくもっともソースからビルドを面倒だと思うのはUbuntuユーザーだろう。何から何までお膳立てされているかのような使い勝手のUbuntuだが、ビルドだけはめっぽう弱い。しかもDRBDのビルドにはカーネルをビルドするための環境が必要となる。(だってDRBDはカーネルモジュールだもん。)
Ubuntuユーザーのためにセットアップ手順が載っているサイトを紹介しておく。とりあえずこのポストをRTFMするべし。
http://cb1inc.com/2008/05/18/installing-drbd-8.2.5-on-ubuntu-8.04-hardy-heron
ちなみにRTFMとはRead The F@cking Manual!!の略である。ギークの会話には必須の用語なので覚えておくこと。
drbd.conf以降はDRBD固有の設定だ。今日は眠いのでここまで!!続きはまたこんど。(これはダウンではなくスリープモードなのであしからず。)
0 件のコメント:
コメントを投稿