今回は、Windows Server 2022を使用してDFSレプリケーションの検証と構築手順を記事にします。
期待する目標
本手順で期待する目標は以下の通りです。
- Windows ServerでDFSレプリケーション設定ができる
- DFSレプリケーションの仕組みを理解できる
前提条件
今回は、ファイルをレプリケーションさせるため、2台以上のサーバで検証を実施します。
また、本機能を使用するためには、ドメインへの参加が必須となります。
- Server1
- CPU : 2vCPU
- MEM : 4GB
- DISK1 : 60GB (System)
- DISK2 : 10GB (Data)
- OS : Windows Server 2022
- Hostname : dev-dfsr01
- ドメイン : 参加済み
- Server2
- CPU : 2vCPU
- MEM : 4GB
- DISK1 : 60GB (System)
- DISK2 : 10GB (Data)
- OS : Windows Server 2022
- Hostname : dev-dfsr02
- ドメイン : 参加済み
DFSレプリケーションとは
DFSレプリケーションは、Distributed File System Replication の略です。
DFSは分散ファイルシステムの一種で、複数のサーバにデータをもたせることでサーバが1台オフラインになっても継続してアクセスできるようにするというシステムです。
イメージ的には、主系のサーバにファイルを書き込むと、副系サーバにデータが同期されるイメージです。ある意味バックアップのような感じですが、同期されるということは、主系でファイルを削除する副系でもファイルが削除されるので、完全にバックアップが取れるということはありません。
どちらかと言うとRAID1のミラーリングのような感じでしょうか。
DFSレプリケーションインストール
基本的にDFSレプリケーションを使用するサーバには必ずインストールします。
今回であれば、Server1とServer2にインストールします。

[サーバマネージャ]-[管理]-[役割と機能の追加]を選択します。

[開始する前に]より、[次へ]を選択します。

[インストールの種類]より、[役割ベースまたは機能ベースのインストール]が選択されていることを確認し、[次へ]を選択します。

[サーバの選択]より、[サーバプール]からサーバを選択にチェックが入っていることを確認し、[サーバプール]より、インストールするサーバが選択されていることを確認し、[次へ]を選択します。

[サーバの役割]より、[ファイルサービスと記憶域サービス]-[ファイルサービスおよびiCSCIサービス]-[DFSレプリケーション]を選択します。

[DFSレプリケーションに必要な機能を追加しますか?]より、[管理ツールを含める]にチェックが入っていることを確認し、[機能の追加]を選択します。

[ファイルサービスと記憶域サービス]-[ファイルサービスおよびiCSCIサービス]より、[ファイルサーバ]と[DFSレプリケーション]にチェックが入っていることを確認し、[次へ]を選択します。

[機能]では今回機能を追加しないため、何も選択せず[次へ]を選択します。

[確認]より、インストールする内容を確認し、[インストール]を選択します。

[結果]よりインストールが完了したら、[閉じる]を選択します。
以上で、DFSレプリケーションのインストールは完了です。
DFSレプリケーションの設定
Server1及びServer2にDFSレプリケーションをインストールしたら、DFSレプリケーションの設定をしていきます。
DFSレプリケーションを設定すると、Server1とServer2の設定したフォルダにフォルダの内容を同期します。便宜上同期と書きましたが、ここで言う同期というのはServer1で作成したファイルがServer2にコピーされるという意味での同期です。実際はファイルのコピーは一定時間で発生するのではなく、作成したら非同期でコピーされます。
また、Server1とServer2のファイルについては、どちらかでファイルが開かれると、もう一方はロックされ、Read-Onlyでしか開くことができなくなります。(リアルタイム同期ではないため。)

今回は、データ用にRドライブを作成しました。
Rドライブに[Share01]というファイルを作成しています。

[サーバマネージャ]-[ツール]-[DFSの管理]を選択します。

DFS管理ツールより、[レプリケーション]を右クリックし、[新しいレプリケーショングループ]を選択します。

[レプリケーショングループの種類]より、[汎用レプリケーショングループ]が選択されていることを確認し、[次へ]を選択します。

[名前およびドメイン]より、以下の設定をします。
- レプリケーショングループの名前 : 任意のレプリケーショングループ名
- レプリケーショングループのオプションの説明 : 任意の説明
- ドメイン : Active Directoryドメインを選択
設定が完了したら、[次へ]を選択します。

[レプリケーショングループのメンバー]より、[追加]を選択し、レプリケーションを行うサーバを選択します。

レプリケーションを行うサーバが選択されていることを確認し、[次へ]を選択します。
なお、DFSRを行うにはサーバが2台必要となるため、DFSRをインストールしているサーバが2台未満の場合はこの先に進むことができません。

[トポロジの選択]より、DFSRのトポロジを選択します。
今回は[フルメッシュ]を選択します。サーバが2台の場合はフルメッシュかトポロジなしのみ選択できます。3台以上の場合は、[ハブおよびスポーク]が選択できるものになります。
トポロジなしの場合は、別途トポロジの設定を行う必要があります。
トポロジを選択したら、[次へ]を選択します。

[レプリケーショングループのスケジュールおよび帯域幅]より、レプリケーションを行うスケジュールとレプリケーションを行う場合の帯域幅を設定します。
今回は、リアルタイムで同期を行いたいため、[指定した帯域幅を使用して継続的にレプリケートする]を選択しました。
また、帯域幅については各環境の設定に合わせてください。
設定が完了したら、[次へ]を選択します。

[プライマリメンバー]より、DFSRを行うサーバのトップを選択します。
今回は2台だけなので素直に1号機を選択しました。
複数台ある場合は、一番帯域幅を多く取れるサーバを選択することをおすすめします。
設定が完了したら、[次へ]を選択します。

[レプリケートするフォルダ]より、他のサーバに同期するフォルダを設定します。
[レプリケートフォルダ]より、[追加]を選択します。

[レプリケートするフォルダの追加]より、[レプリケートするフォルダのローカルパス]-[参照]を選択します。

[フォルダの参照]より、同期を行うファイルを選択します。

[レプリケートするフォルダの追加]より、[レプリケートするフォルダのローカルパス]にレプリケートするパスが入っていることを確認します。
また、レプリケートを行う際の共有名を設定します。
今回は、[パスに応じた名前を使用する]を選択しました。
設定が完了したら、[OK]を選択します。

[レプリケートするフォルダ]の設定が完了したら、[次へ]を選択します。

[他のメンバーにおけるXXXXのローカルパス]より、メンバーサーバを選択し、[編集]を押下します。
ここでは、レプリケート先のサーバのパスを設定します。

[編集]より、以下の設定を行います。
- メンバー : DEV-DFSR02 (レプリケート先のサーバ)
- メンバーシップの状態 : 有効
- フォルダのローカルパス : レプリケート先サーバのローカルパス

[フォルダのローカルパス]より、参照を選択すると、レプリケート先のフォルダ構成から、レプリケートするフォルダを選択することができます。

すべて設定が完了したら、[OK]を選択します。

[他のメンバにおけるXXXXXのローカルパス]より、レプリケート先のサーバの[メンバーシップの状態]が[有効]となっていることを確認し、[次へ]を選択します。

[設定の確認およびレプリケーショングループの作成]より、設定が正しくされていることを確認し、[作成]を選択します。

[確認]より、[タスク]タブにエラーがないことを確認し、[閉じる]を選択します。

完了時に[レプリケーションの遅延]のメッセージが表示される場合があるため、[OK]を選択します。
以上で、DFSRの設定は完了です。
DFSRの動作確認
DFSRの設定が完了したので、動作確認を行っていきたいと思います。

レプリケーション元のパスに適当なファイルを作成します。
このとき、中身が0バイトのテキストを配置したらレプリケートできなかったため、注意が必要です。

次に、レプリケート先のフォルダを見てみるとしっかりとレプリケートできていることが確認できました。
今回は、テキストファイルだったので、同期は一瞬で終了しましたが、もっと容量の大きいファイルだともう少し同期に時間がかかる印象でした。
作成を行ったら削除も確認しましょう。
簡易的ではありますが、DFSRのレプリケーションの動作確認でした。
まとめ
今回は、Windows Server 2022でDFSレプリケーションのインストールと設定を行いました。
DFSRはActive DirectoryのSYSVOL同期でも使用しているため、意外と身近なところに存在しています。
そのため、最近流行りのリアルタイム編集等はできませんが、遠隔地にあるファイルサーバをBCP対策の一貫として夜間に同期させるなど特別なソリューションを入れなくても簡易的なBCP対策として利用できるのではないでしょうか。
前にiSCSIイニシエータを使用して、ボリュームのミラーリングを行いましたが、これだとリアルタイムで同期されるため、どうしても遠隔地に配置するにはネットワークの遅延が大きく、現実的でないと思いました。DFSRであれば、レプリケーションを行うスケジュールも細かく設定できるので、こちらのほうが遠隔地向けになると思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
コメント