今こそ真剣に考える「災害対策システム」──クラウドと「DRBD Proxy」ですぐ構築する方法:DRBDの仕組みを学ぶ(7)(3/3 ページ)
「災害対策」を行っていますでしょうか。必要とは理解しつつも、高額で手をつけられない事情も多くあるでしょう。今回は、中堅中小企業でもソフトウェアのみですぐ実行できる、災害対策システムを構築する方法を解説します。
DRBD Proxyを使った災害対策システム環境を実際に運用してみる
冒頭で示した構成イメージ図1のように、DRBD Proxyを使った災害対策システム環境が構築できました。
実際にバックアップサーバにデータを保存してみましょう。一号機の/backupディレクトリに何かデータを保存してください。
「遠隔地のサーバへも保存されたか」をテストする
一号機へ保存したデータと共に、クラウドにある二号機にもデータが保存(レプリケート)されたかを確認します。
二号機で「cat /proc/drbd」コマンドを実行すると、nsとdwの数値が上昇したことが確認できます。
ステータス | 意味 |
---|---|
ns(ネットワーク送信量) | ネットワーク接続を介して対向ノードに送信された正味データの量(単位はKiB、以下同) |
nr(ネットワーク受信量) | ネットワーク接続を介して対向ノードが受信した正味データの量 |
dw(ディスク書き込み) | ローカルストレージに書き込まれた正味データ |
dr(ディスク読み取り) | ローカルストレージから読み取った正味データ |
障害発生時に二号機へ切り替える手順
では、障害発生時に二号機へどのように切り替えるか、その運用方法を解説します。
切り替えは手動で実施します。
なぜ、手動で実施するのでしょう。第5回「障害時にサブサーバへ自動で切り替える“高可用性WordPressシステム”の作り方」で解説したように、こちらも完全自動化できれば良さそうですが、これには理由があります。
DRBD ProxyはWAN越えで同期をするために、ネットワーク状態の影響を受けて想定しない通信断が発生する可能性があります。例えば、自動切り替え中に通信断が発生すると、一号機、二号機ともにプライマリとなれず、サービスが完全に止まる事態を招いてしまいます。このリスクを回避するために明示的に作業する手動切り替えを推奨しています。もちろん、切り替えの手順をシェルスクリプトなどで自動化することは問題ありません。
ここでは、メインの物理サーバ「一号機」が被害を受けた場合を想定します。一号機への操作はリモートでも行えないので、二号機を操作して、セカンダリだった二号機をプライマリに昇格させます。
まず、無効にしていたクラウド上のサーバのグローバルアドレスを有効にします。
続いて、「cat /proc/drbd」コマンドで二号機の状態を確認します。
# cat /proc/drbd
WFConnectionは「対向のサーバ(一号機)の接続待ち状態」、Secondary/Unknownは「二号機はセカンダリで、一号機は不明」という意味です。つまり、DRBDの接続が切断され、一号機は動作していないことを示します。
二号機を操作して、セカンダリ機だった二号機をプライマリに昇格させます。
# drbdadm primary r0
二号機のバックアップデータ領域をマウントします。
# mount /dev/drbd0 /backup
マウントしたら、二号機の/backupの中身を確認します。先ほど一号機でテスト保存したデータが確認できれば、切り替え作業は完了です。
マウントポイントがない場合は「mkdir /backup」コマンドで作成してください。
ワンポイント1:切り替え手順を自動化する簡易シェルスクリプト
#!/bin/bash drbdadm primary r0 mount /dev/drbd0 /backup
こちらはコマンドを羅列しただけの簡単なものです。この他に、コマンドをまとめてスクリプト化することで自動化する方法もあります。
なお、このスクリプトにはエラー処理が入っていません。実運用においては、エラー処理なども入れて柔軟な動作を実現するスクリプトにするのもよいでしょう。
ワンポイント2:DRBD Proxy関連ログの出力場所
DRBD Proxy関連のログは、システムログへ出力されます。DRBD ProxyはあくまでもDRBDのオプションソフトウェアのため、ログの出力先はDRBDと同じです。
CentOS 7では、journalctlコマンドを使って参照します。CentOS 6では「/var/log/messages」下にあります。
ほぼソフトウェアのみで「災害対策システム」を構築
DRBDとDRBD Proxy、そしてクラウドサービスを併用することで、災害対策システムの環境をほぼソフトウェアのみで実現できることがお分かりいただけたでしょうか。今回の災害対策システムは、これまでコストの都合で災害対策を実践できなかった中堅中小企業にも進められる手段だと思います。
今回はバックアップサーバを冗長化する例としましたが、ほぼ同じ方法でSambaやNFSなどのファイルサーバの災害対策システムを構築することも可能です。この他に、IPネットワークストレージである「iSCSI」のターゲットを動かせば、Windowsなど他OSのデータもリアルタイムに遠隔地にデータ保存する応用方法もあります。
災害復旧対策は、今後の自社のビジネスに直結する課題です。ぜひ、実際のシステムでもこのノウハウを参照しながら、DRBDを活用した災害復旧対策システムを構築してみてください。
筆者紹介
澤田健(さわだ けん)
さまざまなIT関連業務経験ののちに2013年よりインフラエンジニアとしての業務に携わる。また、DRBDを始めとするオープンソースソースウエアのサポート業務にも携わっている。ツイッターでDRBDの情報発信も行っている。TwitterID:@ksawada1979。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
障害時にサブサーバへ自動で切り替える「高可用性WordPressシステム」の作り方 前編
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、CMSツールとして多くのWebサイトで利用されている「WordPressサーバ」の高可用性をDRBDで確保する方法を解説します。前編は、必要なソフトウェアのインストールと初期設定までを説明します。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」は、手軽にファイル共有環境を構築することができ、サーバー管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。