連載
» 2015年12月14日 05時00分 公開

今さら聞けない、「Sambaサーバーの冗長化」をDRBDでサクッと実現してしまう方法DRBDの仕組みを学ぶ(4)(3/4 ページ)

[澤田健,株式会社サードウェア]

(3)DRBD設定ファイルを用意する

 続いて、DRBDの設定を行います。

 プライマリ機(一号機)、セカンダリ機(二号機)の設定内容は、原則として同じにします。記述間違いによるミスをなくすため、どちらか一方の設定ファイル群をscpコマンドで他方へコピーするとよいでしょう。

 必須のDRBD設定ファイルは「global_common.conf」と、リソースごとの設定ファイル「r0.res」の二つです。リソースとは、DRBDを使ってレプリケーション(複製)する領域を構成する要素のことです。今回の例では、リソース名をr0に定め、「r0.res」という設定ファイルで管理するということを示します。なお、「global_common.conf」はデフォルト設定のまま使用します。

 「r0.res」は、/etc/drbd.d配下に新規作成します。「/etc/drbd.d/r0.res」の記述例は以下の通りです。

resource r0 {
    net {
        protocol        C;
    }
    volume 0 {
        device          minor 0;
        disk            /dev/sda4;
        meta-disk       internal;
    }
    on drbd-one {
        address 10.0.0.1:7788;
    }
    on drbd-two {
        address 10.0.0.2:7788;
    }
}

 このように、disk項目へDRBD用に作成したパーティション(デバイス名)を指定します。デバイス名は「cat /proc/partitions」コマンドで確認できます。

 ここに記載する主な設定項目は以下の通りです。

項目名 内容
protocol レプリケーションモードを指定します。DRBDでは一般的な「C」を指定します
disk DRBD用のディスク(パーティション/デバイス名)を指定します。※クラウド環境で仮想マシンを使う場合は、2台目ディスクを指定します
meta-disk メタデータの場所を指定します。同じディスク内にある場合はinternalを指定します
on <ホスト名> DRBDで同期するサーバーのホスト名とIPアドレスを記載します。同期元と同期先、2台のサーバー情報を記載します

(4)DRBDで、Sambaサーバーを冗長化する

 一号機と二号機、それぞれDRBDの準備ができました。では、いよいよSambaサーバーの冗長化システムを構築していきましょう。

(4-1)メタデータを作成する

 最初に「メタデータ」を作成します。メタデータとは、DRBDの情報が書き込まれている情報管理ファイルになります。以下のコマンドを一号機、二号機のそれぞれで実行することで作成できます。

# drbdadm create-md r0

 実行後、「New drbd meta data block successfully created.」と表示されることを確認してください。

(4-2)DRBDを起動する

 DRBDを起動します。以下のコマンドを一号機、二号機のそれぞれで実行します。

# drbdadm up r0

 続いてDRBDの接続確認を行います。

# cat /proc/drbd

photo 図3 cat /proc/drbdコマンド実行時に表示される確認文字列

 上記のように、「cs:Connected」となっていれば正しく動作しています。

(4-3)DRBDを初期化

 DRBDが起動したら、データの同期を開始する「初期化」作業をプライマリ機(一号機)で実施します。

# drbdadm --force primary r0

 データの量によって、初期同期完了までは時間がかかりますが、気長に待ってください。

(4-4)同期状況を確認する

 同期の進行状況は、以下のコマンドで確認できます。

# cat /proc/drbd

 ちなみに、watchコマンドを併用すると、リアルタイムに同期状況を確認できます。

# watch cat /proc/drbd

photo 図4 コマンドを実行すると「初期同期確認状況」が表示されます。cs:Connectedro:Primary/Secondaryになったら初期の同期は完了です

 watch catコマンドで表示されるステータスは以下の通りです。

cs(Connection states) 内容
Connected 正常な状態:DRBDの接続が確立され、同期が正常に行われている
WFConnection 対向のサーバーの接続待ち状態
StandAlone 接続する対向のサーバーがネットワーク上に存在しない状態
SyncSource 操作しているローカルのサーバーを同期元にしてDRBDの同期が進行中であることを示す
SyncTarget 操作しているローカルのサーバーを同期先にしてDRBDの同期が進行中であることを示す

ro(roles) 内容
Primary/Secondary 操作しているローカルのサーバーがプライマリの状態で、対向のサーバーがセカンダリの状態
Secondary/Primary 操作しているローカルのサーバーがセカンダリの状態で、対向のサーバーがプライマリの状態
Secondary/Secondary 操作しているローカルのサーバーと対向のサーバーが、共にセカンダリの状態

ds(disk states) 内容
UpToDate 操作しているローカルのサーバーと対向のサーバーでデータが一致しており、正常な状態であることを示す
Diskless DRBD用のディスクが見当たらない状態
Inconsistent 操作しているローカルのサーバーと対向のサーバーでデータが一致していない状態。新規に初期同期しら、まずこの状態になる

(4-5)DRBDデータ領域をフォーマットする

 初期の同期が完了したら、DRBDのデータ領域をフォーマットします。こちらはプライマリ機(一号機)のみで実行します。

# mkfs.xfs /dev/drbd0

 上記はxfsでフォーマットしましたが、xfs以外のファイルシステムも指定できます。

(4-6)DRBD領域をマウントする

 最後に、レプリケーションする「Sambaの共有領域」をDRBD領域にマウントします。

# mount /dev/drbd0 /home/share

 ここでは/home/shareをSambaのデータ領域としています。自身が運用する環境に応じて読み替えてください。

 これで構築は完了です。おつかれさまでした。次のページより、試用と実運用のテクニックを解説します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。