失敗しない DFSR のプレステージング

こんにちは。Windows プラットフォームサポート担当の 比留間 です。

先日の東日本大震災では、大きな被害や影響を受けられたお客様も数多くいらっしゃると伺っております。

改めて被害に遭われた方々に心よりのお見舞いを申し上げます。

 

さて、随分久しぶりの投稿になってしまいましたが、今回の一件は私たちサポート担当者にとっても災害発生時のデータ保全のあり方について深く考えさせられる出来事でした。

またまた DFSR の話になってしまい恐縮ですが、災害対策として考えられる方法のひとつに、DFSR を使用して遠隔地のファイルサーバーにデータを複製しておくというものがあります。最近いただくお問い合わせの中に、DFSR の初期複製に関するものが増えて参りました。

そこで、DFSR の初期複製を高速化させるデータの事前配置(プレステージング)の概念については以前の投稿でご案内していますが、今回はより具体的な方法について掘り下げてみたいと思います。

まず、プレステージングの方法には、大きく分けて以下の3つの方法があります。

· NTBackup

· Robocopy

· Windows Server Backup

いずれの方法を取るにせよ、最も重要なのはとにかく 「事前にテストをする」 ということです。

手順をうっかり抜かしたりしてしまうと、初期複製の時間短縮ができるはずが、かえって競合が大量に発生することにより、パフォーマンスが低下してしまうという結果にもなり兼ねません。

それでは順にそれぞれの方法を見て行きましょう。

■NTBackup による方法

元となるデータが Windows Server 2003 R2 上にある場合、NTBackup.exe を使用するのがお勧めです。

NTBackup を使用すれば、データ、アクセス権、属性、ファイルパス、代替ストリームといったファイルの全ての情報をコピーすることができます。NTBackup にはGUI を使用する方法とコマンドラインを使用する方法があります。

前提条件

Windows Server 2003 R2 から Windows Server 2003 R2 へのプレステージングであれば、ツールの使用に際して特に注意を要する点はありません。

しかし、Windows Server 2003 R2 から Windows Server 2008 または Windows Server 2008 R2 へのプレステージングを実施する場合は、あらかじめ、各OS のバージョンに対応した NTBackup リストアツール をダウンロードしておく必要があります。

NT Backup についてのより詳細な情報については、こちらの技術文書をご参照ください。

Windows Server 2003 でバックアップ機能を使用してデータのバックアップおよび復元を行う方法

https://support.microsoft.com/kb/326216/ja

注意

NT Backup リストアツールをインストールするためには、英語版 OS をご利用いただくか、多言語ユーザーインターフェースパックを使用して英語版インターフェースを事前に用意する必要があります。

Windows Server 2008 Service Pack 2 多言語ユーザー インターフェイス言語パック

https://www.microsoft.com/downloads/details.aspx?familyid=3A7FB7A2-3519-495B-9BC5-2007082CA9A6&displaylang=ja

Windows Server 2008 R2 複数言語ユーザー インターフェイス言語パック

https://www.microsoft.com/downloads/details.aspx?familyid=03831393-EEF7-48A5-A69F-0CE72B883DF2&displaylang=ja

重要

NTBackup でボリューム全体をリストアしてしまうと、既存のレプリケートフォルダについても、初期複製待ちの状態に戻ってしまいます。そのため、既に DFSR を展開しているサーバー上に、新たに NTBackup によるプレステージングを行う場合は、ボリューム全体をリストアしないように注意してください。

以下に紹介する手順のように、レプリケートフォルダ単位でバックアップとリストアを実施することをお勧めします。

手順

以下の手順は、NT Backup リストアツールを使用した場合を例としてご説明いたします。

1. 元となるデータを保持している Windows Server 2003 R2 コンピュータ上で、NTBackup を実行します。

2. プレステージングの対象となるレプリケートフォルダを選択します。下の例では、レプリケートフォルダを E: ドライブ上に設定しています。

clip_image002

メモ:

レプリケートフォルダを選択する際には、配下に存在する DFSRPRIVATE フォルダを除外することができます。これによりバックアップに要する時間と容量を節約することができます。

3. バックアップ ファイルの格納先を選択します。

4. バックアップが完了したら、バックアップ ファイルをプレステージングを行うファイルサーバーにコピーします。サーバーが Windows Server 2008 または Windows Server 2008 R2 の場合、NTBackup リストア ツールをインストールしておきます。

メモ:

ギガビット LAN 環境であれば、NTBackup のバックアップ ファイル (*.bkf) が数百GB など非常に大きくなった場合でも、非バッファ I/O をサポートしているツールを使用することで、コピーを高速化できる場合があります。Microsoft が提供しているツールとしては以下のようなものがあります。 

5. プレステージングを行う新しい DFSR サーバーで、NTBackup ツールを起動します。

clip_image004

6. データのリストアを選択します。Windows Server 2008/R2 用のツールでは、リストアが唯一選択できるオプションです。

7. バックアップ ファイルを選択し、データを格納しているフォルダを選択します。

clip_image006

メモ:

メニューの “Tools” より、”Catalog a backup file” を選択します。

clip_image008

8. “Restore files to” のドロップダウン ボックスを、”Alternate Location” に変更します。

clip_image010

9. “Alternate Location” のパスを、新しいDFSR サーバー上でレプリケートフォルダを配置する親フォルダに指定します。今回は、新しいサーバー上で、C:\DFSR-ReplicateFolder というレプリケートフォルダを作成しようと思いますので、パスは C:\ を指定します。

メモ:

既定の設定では、セキュリティ(アクセス権)とマウントポイントの情報がリストアされます。この際、セキュリティの情報をリストアしないと、ファイル ハッシュの計算結果が異なってしまい、プレステージングの失敗に繋がるため、必ずチェックします。DFSRではジャンクション ポイントの情報は複製されませんので、中央のチェック ボックスはチェックする必要はありません。

clip_image012

10. ここまで実施したら、プレステージングの手順は完了です。続けて、「プレステージングデータの検証」の項をご覧下さい。この手順が終われば、複製を開始することができます。また、リストアしたフォルダに DFSRPrivate フォルダが含まれる場合、削除してしまっても問題ありません。プレステージングにおいては、DFSRPrivate フォルダの内容は使用されないためです。

 

■Robocopy を使用する方法

元となるデータが Windows Server 2008 上にある場合は、Robocopy を使用してプレステージングを行う方法がお勧めです。

Windows Server 2008 は、Windows Server Backup に対応していますが、ファイル単位でのバックアップを実施することができません。一方、Robocopy は他のバージョンの OS でも使用可能ですが、バックアップの手段として使用することは推奨されていません。

前提条件:

Robocopy は、Windows Vista以降のOSに付属していますが、正しくプレステージングを実施するためには、Hotfix 版の Robocopy を使用することが必要となります。プレステージングを行う新しい DFSR サーバーに、それぞれの OS のバージョンに対応した Robocopy をインストールします。(元となるデータを保持しているサーバー上にインストールする必要はありません。)

  • Windows Server 2008 R2 の最新のRobocopy はこちら (KB979808)
  • Windows Server 2008 用の最新のRobocopy はこちら (KB973776)
  • Windows Server 2003 用の robocopy  は こちら (2003 Resource Kit)

メモ:

新規に構築したWindows Server 2003 R2 のサーバーに、Robocopy.exe を使用してプレステージングを行うことはあまり推奨されていません。理由としては、Resource Kit Tools に付属の Robocopy.exe を使用した場合、アクセス権の転送が正しく行われず、プレステージングが正常に行えない場合があるためです。Windows Server 2003 R2 にプレステージングを行う場合、前述のとおり、NTBackup を使用した方が安全です。

Robocopy のコマンドオプションの詳細につきましては、こちらの記事をご参照ください。

https://technet.microsoft.com/ja-jp/library/cc733145(WS.10).aspx

手順:

1. 新規にプレステージングを行うサーバーにログオンします。完全な管理者権限が付与されていることを確認してください。

2. コピー対象となるレプリケートフォルダが、サーバー上にまだ存在していないことを確認してください。

 

重要

Robocopy によるコピー対象となるレプリケートフォルダを、手動で作成しないよう注意してください。レプリケートフォルダの作成は、Robocopy のコピーにより実行させることが重要です。

また、コピー後にアクセス権に関する設定を変更してはいけません。ファイルのデータストリームが一致している場合、Robocopy は /MIR スイッチを使用してもアクセス権の同期を行わないためです。

Robocopy によるコピーは、一回で完結させるべきものと考えて下さい。もしもコピー処理中に何らかの問題が発生した場合、コピーされたデータを削除し、最初からやりなおすのが無難です。多くの場合、問題が発生した状態から修復を試みると事態が悪化します。

3. 以下の構文で、フォルダのコピーを行います。

Robocopy.exe “\\source server\drive$\folder path” “destination drive\folder path” /b /e /copyall /r:6 /xd dfsrprivate /log:robo.log /tee

メモ:

Windows Server 2008 版の Robocopy からは、/MT スイッチを指定することで、一度に複数のファイルをコピーできるマルチスレッドモードで動作させることができます。一方、/MT スイッチを付加すると、コピーの進捗状況の確認が難しくなります。

メモ:

加えて、/LOG スイッチを指定することで、全ての出力をファイルにリダイレクトし、後で実行状況を見直すこともできます。この手法は、エラーが発生したときの調査に有効です。ただし、コマンドプロンプト上から処理の進捗状況を確認することは出来なくなります。

メモ:

上記の例で紹介した各オプションの意味は次の通りです。

バックアップ API を使用し、使用中のファイルであってもコピーを可能にする。 (/b)

フォルダ配下のファイル、フォルダをコピー対象に含める。(/e)

ファイルに関する全ての情報をコピーする。(/copyall)

ファイルコピーに失敗した場合、6回再試行する。 (/r:6)

DFSRPrivate フォルダを除外する。 (/xd dfsrprivate)

ログファイルへの書き込みを行う。 (/log:robo.log)

同時にコマンドプロンプトへの出力も行う。 (/tee)

4. コピーが完了したら、エラーがないことと、Skipped になっているフォルダが1つだけであることを確認します。( Skipped になっているフォルダは、DFSRPrivate フォルダです。)

メモ:

FAILED になっているエントリがある場合、ログファイルで詳細を確認します。

5. ここまで実施したら、プレステージングの手順は完了です。続けて、「プレステージングデータの検証」の項をご覧下さい。この手順が終われば、複製を開始することができます。

 

■Windows Server Backup を使用する方法

元となるデータが Windows Server 2008 R2 上にある場合は、Windows Server Backup を使用してプレステージングを行うのがお勧めです。

Windows Server Backup は、データ、アクセス権、属性、ファイルパス、代替ストリームといったファイルの全ての情報をコピーすることができます。

GUI を使用する方法とコマンドラインを使用する方法があります。R2 ではない Windows Server 2008 ではファイル単位でのバックアップに

対応していないため、推奨できる方法ではありませんでしたが、Windows Server 2008 R2 ではこの点が改善されています。

 

前提条件:

Windows Server Backup は、DFSR をホストしているコンピュータ上で、機能として追加しておく必要があります。既定の状態ではインストールされていません。

Windows Server Backupについては、こちらをご参照下さい。

 

ステップバイ ステップ ガイド - Windows Server 2008 R2 の Windows Server バックアップ

https://technet.microsoft.com/ja-jp/library/ee849849(WS.10).aspx

手順:

1. Windows Server 2008 R2 上で、Wbadmin.msc を開きます。

2. [バックアップ (1回限り)] をクリックし、[バックアップの構成の選択] で [カスタム] を選びます。

clip_image014

3. [バックアップする項目を選択] で、[項目の追加] より、プレステージングを行うデータを含んだフォルダを選択します。

clip_image016

4. バックアップを保存する場所を選択します。十分な空き容量があるディスクがローカルに別ドライブとして存在すれば、それを選択しても良いですし、ネットワーク上を選択することが出来ます。バックアップ対象のドライブ上にバックアップを保存することは出来ません。

clip_image018

5. バックアップの保存先がローカル ドライブの場合、バックアップデータが格納されている WindowsImageBackup フォルダを、リストアを実施する環境に配置します。プレステージング先のサーバーのディスクに配置するのでも、ネットワーク共有フォルダ上に配置しても構いませんが、データのリストア先となるディスク上に配置することはできません。

6. プレステージングを実施するサーバー上で Windows Server Backup 起動し、[回復] をクリックします。

7. [回復ウィザード] が起動したら、[別の場所に保存されているバックアップ] を選択します。

8. バックアップが保存されている場所を選びます。

9. ローカルサーバー上の場所を選択した場合、バックアップを採取したサーバーの名称がリストに表示されます。サーバーを選択して、[次へ] をクリックします。

clip_image020

10. バックアップ採取日がリストされます。既定では最新のバックアップ日時が表示されますので、通常はこのままで問題ありません。もしも違うバックアップを使用する必要がある場合、日付を指定します。

11. [回復の種類の選択] で、[ファイルおよびフォルダ] を選択します。

12. [回復する項目の選択] で、[利用可能な項目] のツリービューから、リストアするノードを選択します。フォルダを選択すると、その配下のサブフォルダは自動的にリストアされます。

clip_image022

13. [回復オプションの指定] で、対象のパスを指定します。このときに、[回復したバージョンで既存のバージョンを上書きする] を選択します。また、[セキュリティ設定] のチェックボックスがオンになっていることを確認します。

clip_image024

14. [回復] をクリックすると、リストアが開始されます。

15. ここまで実施したら、プレステージングの手順は完了です。続けて、「プレステージングデータの検証」の項をご覧下さい。この手順が終われば、複製を開始することができます。

■プレステージングデータの検証

いずれかの方法でデータのプレステージングが完了したら、プレステージングデータの検証を行います。検証の方法は、サーバー間のそれぞれのファイルハッシュの同一性を確認するという方法になります。全てのファイルのハッシュを確認することも可能ではありますが、多くの場合はそれぞれのフォルダについて数個のファイルの確認を行えば十分です。

前提条件

Windows 7 または Windows Server 2008 R2 がインストールされたコンピュータが必要になります。これらは、特に DFSR の環境に直接参加しているものでなくても差し支えありません。同梱されている DFSRDIAG.EXE のファイルハッシュ計算機能を使用するのが目的です。

· Windows 7 の場合は、RSAT をインストールして、[分散ファイル システム ツール] を追加します。

clip_image026

· Windows Server 2008 R2 の場合は、役割管理ツール内の、[分散ファイル システム ツール] を追加します。

clip_image028

DFSRDIAG FILEHASH コマンドについては、以下の記事もご参照ください。(英語)

DFS Replication: What’s new in Windows Server™ 2008 R2

https://blogs.technet.com/b/filecab/archive/2009/01/19/dfs-replication-what-s-new-in-windows-server-2008-r2.aspx

手順:

1. 検査対象とする数個のファイルについて、ファイルパスを控えておきます。抽出するファイルは、フォルダツリー内の様々な個所から選択することが望ましいです。

2. ファイルの一つに対して、DFSRDIAG.EXE を使用して複製元のファイルサーバーと、プレステージング先のファイルサーバーとでファイルハッシュを計算します。

DFSRDIAG.exe filehash /path:” 複製元ファイルパス

DFSRDIAG.exe filehash /path:” プレステージング先ファイルパス

3. 結果として出力されるハッシュが同一であれば、プレステージングは正常に行われており、ファイルに関する全ての情報 (データ、代替ストリーム、アクセス権、属性)が一致している状態になっています。ハッシュが一致しない場合、プレステージングの手順に問題があったか、プレステージング実施後にデータの改変があったことを示しています。

4. 残りのファイルについても同様の手順を繰り返します。

メモ:

ファイルを全件検査する場合は、DIR /B コマンドを使用して双方のファイルサーバー上についてファイルのリストを作成し、FOR ループでハッシュの計算を繰り返す処理を検討してください。ただし、一般的に方法は完了までに時間がかかります。

最後に:

レプリケートフォルダ上のデータを 100% 静的な状態に保つか、ユーザーによるファイルの更新を許可しない運用をしない限り、初期複製中に一部のファイルで競合が生じることは、通常想定されることです。この状況は、プレステージングを行ったファイルについて DFSR のイベントログ ID 4412 が出力されることで確認することができます。プレステージングの目的は、あくまでも初期複製の段階で複製されるデータの量を可能な限り少なくする、ということにある点にご留意ください。

また、今回の投稿は、US の AD Team からの投稿をもとに作成いたしました。上記の内容の他、DFSR に使用しているハードウェアの交換の際に考慮するべきことなどがシリーズ化されてカバーされておりますので、よろしければ合わせてご参照頂ければ幸いです。

https://blogs.technet.com/b/askds/archive/2010/09/07/replacing-dfsr-member-hardware-or-os-part-2-pre-seeding.aspx

 

「コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。」