今さら聞けない、「Sambaサーバーの冗長化」をDRBDでサクッと実現してしまう方法:DRBDの仕組みを学ぶ(4)(3/4 ページ)
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、利用頻度が高い「Sambaサーバー」をDRBDで冗長化して運用する方法をイチから解説します。
(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
上記のように、「cs:Connected」となっていれば正しく動作しています。
(4-3)DRBDを初期化
DRBDが起動したら、データの同期を開始する「初期化」作業をプライマリ機(一号機)で実施します。
# drbdadm --force primary r0
データの量によって、初期同期完了までは時間がかかりますが、気長に待ってください。
(4-4)同期状況を確認する
同期の進行状況は、以下のコマンドで確認できます。
# cat /proc/drbd
ちなみに、watchコマンドを併用すると、リアルタイムに同期状況を確認できます。
# watch cat /proc/drbd
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.
関連記事
- DRBD(Distributed Replicated Block Device)とは何か
障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。 - ミラーリングツール「DRBD」によるデータ保護
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。 - ここが変わったCentOS 7──「新機能の概要とインストール」編
「CentOS 7」を皆さんどれだけ理解していますでしょうか。CentOS 7は、以前のバージョンから使い勝手がかなり変わりました。本連載では、今さら聞けない/おさらいしたいというインフラエンジニアに向け、CentOS 7の概要と基礎から活用Tipsまでを紹介していきます。 - DRBD+iSCSI夢の共演(前編)〜 Windowsドライブをミラーリングで保護 〜
Linux上で動作するオープンソースソフトウエア「DRBD」とiSCSIを組み合わせ、部門内のWindows端末のデータをバックアップするシステムを構築してみよう - OSSとLinuxで高可用システム構築を支援、サードウェア
- Sambaサーバー構築、5つのべからず− 若葉マーク管理者に捧げる
LinuxやUNIXをWindowsのファイルサーバー/プリントサーバーとしてしまうことができる「Samba」は、手軽にファイル共有環境を構築することができ、サーバー管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。