Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

ntbackupのバックアップ・パフォーマンスを向上させる

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2005/10/08
 
対象OS
Windows 2000
Windows XP
Windows Server 2003
ファイルやシステムをバックアップするには、Windows OS標準のバックアップ・ツールが利用できる。
バックアップ・ツールの標準状態では、バックアップ速度は意外と遅い。
レジストリを変更することにより、バックアップのパフォーマンスを向上させることができる。
 
解説

 Windows OSに標準装備されているバックアップ・ツール([スタート]メニューの[アクセサリ]−[システム ツール]−[バックアップ])は、指定されたファイルやフォルダの内容をアーカイブして、テープ・デバイスやファイルなどに書き出してバックアップしたり、逆にアーカイブを展開して、ファイルやフォルダをリストアしたりするために利用されるツールである。標準ツールなので、どの環境でも利用でき、通常のユーザーやデータ、システムなどのバックアップのほか、SQL ServerやExchangeなどのデータ・バックアップ用途などでも広く利用されている。

 このバックアップ・ツールは、もともとはテープ・デバイスにバックアップするために作られたツールであるが、Windows 2000以降のOSではテープだけでなく、ファイルにもバックアップすることができる。バックアップ先を別ディスクやリモート・コンピュータ上のファイルにすれば、システムやデータを簡単にバックアップ可能だ。スケジュールを組んで定期的に実行するようにしておけば、自動的なシステムのバックアップが実現できる。

 このように便利なバックアップ・ツールであるが、バックアップ速度は速いとはいえない。ハードウェアの性能はかなり速いはずなのに(バックアップ先として使用するテープ・デバイスやディスク・デバイスのピーク転送速度は速いはずなのに)、実際にバックアップしようとすると、例えば数十Gbytesのバックアップに何時間もかかったりする。バックアップ・ツールの動作アルゴリズムの詳細は公開されていないので不明であるが、このツールではテープ・デバイスの特性に合わせ、バックアップするデータをある一定サイズごとのブロックにまとめてから書き出しているようである。だがそのバッファリングに関するパラメータのデフォルト値が(現在の高性能なシステムにとっては)最適ではないため、無駄な待ち時間などが発生しているものと思われる。本TIPSでは、バッファリングに関するレジストリを変更して、バックアップのパフォーマンスを向上させる方法について解説する。

 なお、ここで紹介する方法は以下のドキュメントなどを参考にしている。本来これは、Exchange Serverシステムにおけるバックアップ性能を向上させる方法として紹介されているものであるが、特にExchange Serverに限った話ではなく、バックアップ・ツール全般に対するチューニングとして有効な手法のようである。


操作方法

バックアップ・ツールのバッファリングに関するレジストリを変更する

 バックアップ・ツールにおけるバッファリングに関する設定は、以下のレジストリで行う。タスク スケジューラなどでユーザー アカウントを指定して実行している場合は、そのユーザーでログオンして行う。レジストリ・エディタを開いて、以下の設定を変更していただきたい。

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ・エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。

 
レジストリ・キーの位置
HKEY_CURRENT_USER\Software\Microsoft\Ntbackup\Backup Engine
名前 値の型 設定する値(デフォルト値)
Logical Disk Buffer Size REG_SZ 64(32)
Max Buffer Size REG_SZ 1024(512)
Max Num Tape Buffers REG_SZ 16(9)
バックアップ性能を向上させるためのレジストリ設定
レジストリ・エディタを開いてこれらの値を変更する。デフォルトでは括弧内の数値になっているはずである。ただしこれらのキーが存在しない場合は、まずバックアップ・ツールを実行して、何のファイルでもよいから1度バックアップ操作を行っておく。

 デフォルトで設定されている値のままではバッファ・サイズが小さすぎて、テープ・デバイスやバックアップ先のファイルに対して、十分な速度でデータを供給できないために、十分なパフォーマンスが得られないようだ。

 以上のレジストリを変更するだけで、設定は終了である。後は[スタート]メニューの[アクセサリ]−[システム ツール]−[バックアップ]でバックアップ・ツールを起動し、通常通りに実行すれば、バックアップ速度が向上しているはずである。

 試しに、ローカルのファイルをバックアップして、ローカル・ディスクへ保存したり、ネットワーク上のファイル・サーバへ保存したりした場合のバックアップ時間の例を示しておく。

バックアップ元 バックアップ先 変更前 変更後 速度向上率
多数のファイル/フォルダ ローカル・ディスク 3分5秒 2分52秒 1.08倍
リモート・ディスク 5分28秒 4分27秒 1.22倍
1つの大きなファイル ローカル・ディスク 1分12秒 1分00秒 1.20倍
リモート・ディスク 4分7秒 2分52秒 1.44倍
バックアップ時間の測定例
多数のファイルやフォルダ(約7200ファイル、総計1.3Gbytes程度)、および1つの大きなファイル(1.3Gbytes程度)を、それぞれローカルのディスクやリモートのディスク上に、.bkfファイルとしてバックアップした場合のバックアップ時間の測定例。レジストリの変更前と変更後のバックアップ時間とその比率を示している。

 バックアップ時間はシステムや環境などに大きく依存するが、総じて、レジストリ変更後の方が、バックアップ時間は短縮されている。特に、大きなファイルをバックアップする場合の速度の向上率が大きい。バックアップ中の動作をパフォーマンス・メータなどで確認すると、変更後の方がCPU使用率が上がっており、システムをより効率的に利用していることが確認できた。ここではファイルに対するバックアップしかテストしていないが、インターネットなどでは、テープ・デバイスに対するバックアップで2倍とか、それ以上、速度が向上したという例も報告されている。

/FUオプションによるアンバッファリングの指定(Windows Server 2003 SP1)

 Windows Server 2003 SP1のバックアップ・ツール(ファイル名はntbackup.exe)では、新しく「/fu」というオプションが追加されている。これは、バックアップ先のファイルに対して、「アンバッファード・モード(バッファリングを行わないモード)」を使うという指定である。バックアップ先のファイルにデータを書き込む場合、通常はバッファリングするモードが使用されるが、それを避けるためのオプションが/fuである。ファイル書き込み時にバッファリング・モードが有効になっていると、Windows OSの持つシステム・キャッシュがバックアップ・ファイルのために使用され、ほかのプロセスなどが使用するためのキャッシュ領域が減少する。その結果、ほかのプロセスのパフォーマンスが低下するといった影響が出る。アンバッファード・モードにすると、書き込みに対してシステム・キャッシュを使用しなくなるため、ほかのプロセスに対する影響が少なくなる。バックアップ・ツールは内部で独自にバッファリングを行っているため、これでも(あまり)問題とならない。

 /fuオプションはntbakup.exeの起動時のオプションとしてのみ指定することができる。例えばc:\dataフォルダの内容をd:\backup.bkfというファイルにバックアップするには、通常は次のようにする。

C:\>ntbackup backup "c:\data" /f "d:\backup.bkf"

 /fuオプションを指定する場合は次のようにする。

C:\>ntbackup backup "c:\data" /fu /f "d:\backup.bkf"

 /fu付きと/fuなしの状態で、それぞれのバックアップ時間の例を以下に示す。このオプションを使用した場合、サイズの大きなファイルをローカル・ディスクにバックアップするケースでのみ速度が向上したので、その結果を示しておく(小さなファイルや、リモート・ネットワークに対するバックアップでは、バックアップ速度に関する向上は見られなかった)。

バックアップ元 バックアップ先 /fuなし /fuあり 速度向上率
1つの大きなファイル ローカル・ディスク 1分00秒 0分46秒 1.30倍
バックアップ時間の測定例
1つの大きなファイル(1.3Gbytes程度)を、ローカルのディスクへbackup.bkfファイルとしてバックアップした場合のバックアップ時間の測定例。先のレジストリ・チューニングも行った状態で測定している。小さなファイルやリモート・ネットワークに対するバックアップでは、速度の向上は見られなかったが、ほかのプロセスに対する影響は抑えられていた(キャッシュの利用量などが抑えられていた)。

 この例では/fuオプションによってバックアップ速度が向上しているが、それよりも、システム・キャッシュを占有しなくなることや、ほかのプロセスに対する影響が少なくなるのが大きなメリットである。Exchange ServerやSQL Serverなどのデータベース・ファイルをバックアップするような場合に利用するとよいだろう。End of Article

  関連リンク
  System performance is negatively affected when Ntbackup.exe writes to a destination .bkf file[英語](マイクロソフト サポート技術情報)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間