2台のWindows 2012 Serverでストレージレプリケーションを行う
前回の記事ではWindows 2012 Serverを使って、
NFSサーバーとデータ重複除去ストレージを構築しました。
※2013/7/30 記事内容更新:パフォーマンスベンチマーク結果を追加しました。
Linuxでこの技術が実用段階となるのはもう少し先で、
今年に入ってからExperimentalですがBtrfsで重複排除が実装されました。
またZFSでは早い時期からサポートはしているものの、
メモリ負荷が高かったり、速度が遅かったりとまだまだ課題がありそうです。
さて、今回は前回の続きでDFS-Rという機能を使い、
前回構築したNFS+重複排除ストレージにレプリケーション機能を追加します。
DFS-RはDFSを拡張した非同期レプリケーション機能で、
2つのサーバー間のコピーは圧縮されてデータのやり取りが行われており、
災害対策用としても利用できそうです。
尚、前提条件として2台のサーバーとActive Directoryに参加している必要があります。
■サーバー設定(両方のサーバーで実施)
・DFSレプリケーションをインストール
画面左下のアイコンから、サーバーマネージャーを開き、
ダッシュボードから「役割と機能の追加ウィザード」を選択します。
「サーバーの役割」タブから、
ファイルサービスおよび記憶域サービス → ファイルサービスおよびISCSIサービスと進み
DFSレプリケーションを選択してインストールまで進めます。
■サーバー設定(いずれか片方のサーバーで実施)
・DFSレプリケーションの設定
DFSレプリケーション設定を行うため、DFSの管理を起動します。
サーバーマネージャーの右上にあるツールメニューから、DFSの管理を選択します。
上記DFSの管理画面が表示されたら、
右側のメニューより新しいレプリケーショングループを押下し、ウィザードを起動します。
このような画面が表示されます。
今回は双方向でのレプリケーションを実現したいと思いますので、
下にあるデータ収集用のレプリケーショングループを選択します。
続いてレプリケーションの名称を入力しますので、今回はreplicationと入力します。
また一番下では双方のサーバーが参加しているADドメインを入力します。
次はブランチサーバーの選択です。
DFS-Rではブランチサーバー(コピー元)とハブサーバー(コピー先)に分かれますが、
ここではコピー元となるブランチサーバーを選択します。
また次の画面ではレプリケーションを行うフォルダを選択します。
コピー先となるハブサーバーも同様に行います。
2つのサーバー設定が完了すると、レプリケーションポリシーを設定します。
この設定は後から設定する事ができます。
例えば月曜日の早朝はバッチ処理が多いため、
レプリケーションの帯域を絞りたいなど日別時間別で細かく設定が可能です。
以上により設定が完了となります。
あとはクライアントからNFS経由等でファイルをコピーしてみてください。
無事にレプリケーションがされているでしょうか?
・レプリケーション状況の確認
コマンドプロンプトより以下のコマンドを実行する事で、レプリケーション状況の確認ができます。
dfsrdiag.exe ReplicationState WS000210
上記内容で表示されます。
■速度パフォーマンス
以下の環境で計測を行い、シーケンシャル書き込み速度の測定を行いました。
※2013/7/30内容を追加しました。
役割 | ハードウェア名称 | CPU | CPU周波数 |
NFSホスト1番 | PowerEdge R805 | Quad-Core AMD Opteron(tm) Processor 2376 | 2.3GHz |
NFSホスト2番 | PowerEdge R805 | Quad-Core AMD Opteron(tm) Processor 2376 | 2.3GHz |
NFSクライアント | PowerEdge 860 | Intel(R) Xeon(R) CPU X3210 | 2.13GHz |
$ time dd if=/dev/zero of=./test.img bs=10M count=1000 1000+0 records in 1000+0 records out 10485760000 bytes (10 GB) copied, 479.955 s, 21.8 MB/s real 7m59.996s user 0m0.005s sys 0m20.143s $ time dd if=/dev/zero of=./test2.img bs=10M count=1000 1000+0 records in 1000+0 records out 10485760000 bytes (10 GB) copied, 495.454 s, 21.2 MB/s real 8m15.539s user 0m0.006s sys 0m19.732s $ time dd if=/dev/zero of=./test3.img bs=10M count=1000 1000+0 records in 1000+0 records out 10485760000 bytes (10 GB) copied, 516.138 s, 20.3 MB/s real 8m36.187s user 0m0.004s sys 0m19.606s 今回の速度計測では20MB/sほど出ている事を確認しました。
■レプリケーションソフトウェアの比較
今回紹介したWindowsでのDFS-R以外に、
LinuxではlsyncやDRBD等を用いたレプリケーションが有名です。
DRBDやDFS-Rはブロック単位でレプリケーションしていますので、
レプリケーションにかかる時間がファイル点数に依存せず高速にコピーを完了する事ができます。
OS | 代表ソフトウェア | レプリケーション単位 | レプリケーション方法 | 双方向書き込み | 差分転送 | 圧縮機能 |
Linux | lsync | ファイル単位 | 非同期 (15秒おき実行) |
× | ○ | × |
Linux | rsync+ssh | ファイル単位 | 非同期 (手動実行) |
× | ○ | △ (要バッチ) |
Linux | DRBD | ブロック単位 | 非同期/同期 | △ (要対応FS) |
○ | △ (有料版) |
Windows | DFS-R | ブロック単位 | 非同期 | ○ | ○ | ○ |
今回は異なるサーバー同士でストレージレプリケーションを行う方法について紹介しました。
一昨年発生した震災の影響もあってBCPを見直す企業が増えてきていますが、
その中で選択肢が増える事は良い事です。
次回はBCP続きのお話として、
セミナーでMicrosoftの方が災害対策用途としても使えるとおっしゃっていた
Windows Server 2012の新機能、HyperVレプリカについて書いてみたいと思います。