15. DRBDと仮想化技術を利用した耐障害性と汎用性の高いサーバファームの構築 [セッション5: 分散システム]

15. DRBDと仮想化技術を利用した耐障害性と汎用性の高いサーバファームの構築
○二川潤(法大)・下農淳司(京大)・雪田修一(法大)


・障害対策:ハードウェア部品の多重化
・各パーツの多重化は可能、が、ハイコストなものも多い
・アプリケーションレベルでの冗長構成を検討すべき、が、各アプリケーションで持っている訳じゃない

・仮想計算機によるサーバファーム
・潤沢な計算機資源の有効活用、運用する計算機全体での消費電力の低減、ハードウェア依存を無くす
・仮想計算機のディスクイメージ
・障害時にディスクサイズが大きいと時間がかかる、SAN構成→高い

・求められる環境
・耐障害性、ハードウェア故障時であっても短時間に復旧可能
・汎用性
・で、DRDB

・DRDB
・ディスクミラーリングソフトウェア
・フェイルオーバ型のクラスタ環境向け
・Linuxで動作
・TCP/IP経由で同期
・今後のバージョンは全てオープンソース

・ブロックデバイスとして動作
・計算機2台で、フル同期(初回、障害復旧時)、差分同期(通常運用時)

・似たような奴
・ファイルシステムより上位レイヤのもの
・lsyncd、バックグラウンドでrsync、バイナリファイルの差分転送は出来ない

・ファイルシステムより下位レイヤ
・開発中のものしかない

・構成
・Primary/Secondary、一台だけがデータの読み書き可能
・Primary/Primary、どちらの計算機でもデータを読み書きできる、が、GFSやOCSD2といったクラスタファイルシステムが必要、DRBDはファイルシステムに関して関与しない

・DRBDx2構成
・ありか

・ベンチマーク
・読み込みについては、自身のディスクから読むから大差なし
・が、書き込みは6割から7割遅くなる
・参照が多い分には無問題

・DRBDによる効果
・耐障害性
・汎用性

・仮想化技術
・実行環境全てが一つのディスクイメージ
・Linux以外のOSも可能
・筒底のハードウェアに依存しない

・DRBDと仮想化ソフトウェアを組み合わせる
・最小構成、計算機2台
・DRBDブロックデバイス上に仮想計算機を乗せる

・計算機資源の有効活用のため
・DRBDx2構成で
・確かに、これはいける

・もじら組サーバファーム
・確かによく落ちそう、、、

・この組み合わせは是非とも導入してみたい!
・とりあえず、Xenだな、、、DRBDも別で試してみたい

・今後の課題
・DRBDのPrimary/Primary
・管理の自動化、今は手動だもんね

Q.ディスクへの遅延書き込みをするようなソフト、メモリ上のデータは?
A.消えてしまう
Q.RDBとかは結構やっていると思うんだけど、、、
A.落ちたサーバ環境の復帰が最優先、RDBはRDBのレプリケーションを使う必要がある

Q.設定大変? その辺のパッケージング化は可能?
A.出来るとは思う

Q.この環境下で実際に障害が起こったことは? 実際の復旧ってどのくらい?
A.発生してない、想定練習では1~2分で復旧可能、BRDBのマスタ化とVMの起動

Q.BRDBのバージョンアップ等での工夫
A.カーネルモジュールなので、カーネルのバージョンアップ時には注意が必要、現状ではカーネルを自動的にバージョンアップはしない

Q.I/Oがあるものは不向きだけど、このシステムで最も守りたいものは?
A.とにかく早くWebサービスを復旧させること、SVNのリポジトリ運用とかではとにかく止めると、開発に影響が出るから