« 2009年05月 | メイン | 2009年09月 »

2009年07月07日

DRBD RPMファイルの生成

CentOSにおけるDRBDのインストールについては、extrasリポジトリで公開されているので、

# yum install drbd82 kmod-drbd82

で簡単にできてしまいます。

ですが、「実験環境ではCentOSだけど、本番環境はRedHatの場合はどうすればよいの?」とか、「最新バージョンのDRBDを使用したい」という場合もあるかと思います。
前者については、CentOSからRPMファイルをダウンロードしてくればそのまま使用できるかもしれません。

また、DRBDのオフィシャルサイトには各ディストリビューション向けのパッケージファイルが揃えられているのですが、これらを使用するにはサポート契約が必要です。

http://www.drbd.jp/download.html

僕も最初は悩んでしまったのですが、ソースコードから簡単にRedHat系用のRPMファイルを生成できることがわかりました。
ソースコードをオフィシャルのダウンロードサイト(http://oss.linbit.com/drbd/)から取得して、展開して、make rpmコマンドを実行するだけです。
あとはOSのカーネルバージョンを勝手に調べて、RPMを生成してくれます。

% wget http://oss.linbit.com/drbd/8.3/drbd-8.3.1.tar.gz
% tar zxvf drbd-8.3.1.tar.gz
% cd drbd-8.3.1/
% make rpm

(2010.04.02追記)
最近、DRBD 8.3.7をインストールする機会があったのですが、RPMの生成時、make rpm コマンドの前に、configureの実行が必要でした。また、DRBD 8.3.7では、make km-rpm コマンドによるカーネルモジュールの生成も必要でした。

% ./configure
% make rpm
% make km-rpm

(2010.04.02追記おわり)

これで、32bitOSであれば、dist/RPMS/i386/ 以下にdrbd, drbd-debuginfo, drbd-km の3つのRPMファイルを生成してくれます。
簡単ですね!
specファイルを編集する必要もありません。

あとはインストールコマンドを実行するだけです。

# su
# cd dist/RPMS/i386/
# rpm -ivh drbd*.rpm

ちなみに、make rpmコマンドについては、バージョン8.2.6のソースを展開したときにトップディレクトリにあるINSTALLファイルに書かれていたので気づいたのですが、8.3.1のソースにはINSTALLファイルがなくなってしまいました。

DRBD環境の構築

先日、DRBDの実験環境を無事構築できました。
こんなに簡単にサーバ間のデータ同期ができるのはうれしいですね。

Xen上でLVMの論理ボリュームを作成し、そのボリュームをDRBDによる同期対象のデバイスとし、その上にext3のファイルシステムを作成しました。

OSはCentOS 5.3(Xen, i386)。
DRBDのバージョンは8.2.6と8.3.1を試しました。
おおまかな手順としては以下。


  • DRBD用論理ボリュームの作成

    • fdiskによるパーティショニング
    • lvcreateによる物理ボリュームの作成
    • vgcreateボリュームグループの作成
    • lvcreate論理ボリュームの作成

  • DRBDのインストール
  • DRBDの設定
  • DRBDの初期化

    • drbdadm create-mdによるメタデータの作成
    • drbdの起動
    • 初回同期の実行

  • Primaryでmkfsによるファイルシステムの作成
  • Primaryでマウント

構築にあたっては以下がとても参考になりました。

・Software Design 2009/06号 「特集 DRBDではじめる今どきクラスタリング」

・DRBDオフィシャルサイト(日本語)
http://www.drbd.jp/

・検証Tech: DRBD
http://ken-etsu-tech.blogspot.com/search/label/DRBD


詳細な構築手順は上記のほか多くの方が書かれていますし、手順そのものも容易ですのでそちらを参照していただきたいのですが、少しハマった箇所についていくつか書いていきます。