[System Environment] | ||||||||||||
ntbackupのバックアップ・パフォーマンスを向上させる
|
||||||||||||
|
解説 |
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などのデータベース・ファイルをバックアップするような場合に利用するとよいだろう。
関連リンク | ||
System performance is negatively affected when Ntbackup.exe writes to a destination .bkf file[英語](マイクロソフト サポート技術情報) | ||
この記事と関連性の高い別の記事
- 差分バックアップと増分バックアップの違い(TIPS)
- ASRでシステムをバックアップする(TIPS)
- Outlookデータ・バックアップ・ツールを活用する(TIPS)
- メール・データの簡易リアルタイム・バックアップを作成する(TIPS)
- 破損したDHCPデータベースを復元する(Windows Server 2003編)(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|