おすすめのサーババックアップソフトと言えば、分かりやすい管理画面で人気のBackup Excecですが、初期設定のまま使用するとパフォーマンスを半分も発揮しない場合があります。
2TB以下のファイルサーバならデフォルト設定でも1日で完了しますが、10TB以上のストレージをフルバックアップするとなると数日かかるので、ジョブが完了するまで差分データを取得することができません。
バックアップすべきデータが10TBを越える容量なので、ジョブが完了するまで時間がかかることは仕方がないことだと考えていましたが、データが消失した時のことを考えて最適化することにしました。
終わらないフルバックアップ
バックアップは生命保険と同じでコストをかけるだけ安心感が増しますが、だからと無制限にお金をかけても良いという懐事情でもないので、データのレプリケーションは古いファイルサーバにしています。
現在使用しているファイルサーバのスペックなら、Backup Execをインストールしてジョブを実行してもパフォーマンスに大きく影響しませんが、滅多に再起動できるシステムではないので何かと不便です。
そこでレプリケーションサーバにBackup Execをインストールし、週末二日間でフルバックアップを行い平日に差分データを取得するようにしていましたが、データ量が15TBを越えてくると問題が出てきました。
SASが6Gbpsと低速なのでバックアップジョブに時間がかかるのは仕方がないと考えていましたが、流石にフルバックアップジョブが四日間もかかるとなると見過ごせなくなり、本腰を上げて対応することにしました。
プロセスを除外
まずはSMB共有フォルダからiSCSIにしてみたり、ネットワークアダプターのジャンボパケットを有効にしたりIPv4からIPv6に変更してみたりと、無料でバックアップのスループットが改善するか試してみました。
結果は残念ながら誤差の範囲でしたので、12Gbps対応SASにしたりパフォーマンスが高いディスクに交換するしなかいと思いましたが、バックアップにコストをかけられる状況ではありません。
そこで、フルバックアップジョブの時間がかかる原因がないか、Backup Exce設定を確認してみたりハードウェアに問題がないか徹底的に調べてみたところ、二つのアプリケーションに問題があるとが判明しました。
まずは、サーバにインストールしたアンチウィルスソフトで、ESETの管理画面からBackup Execのプロセスを除外することで、大幅にスループットが改善されることを確認しました。
何年間もBackup Execを使い続けてきましたが、ノートンやマカフィーなどアンチウィルス系ソフトでプロセスを除外しないと、パフォーマンスが著しく低下することがあることを知ることになりました。
各種アンチウイルスソフトでBackup Execのプロセスを除外すると、フルバックアップ時のスループットが大幅に向上するので、下記一覧のプログラムを除外対象にしてください。
プロセス名とデフォルトパス C:\Program Files\Veritas\Backup Exec\benetns.exe C:\Program Files\Veritas\Backup Exec\spoold.exe C:\Program Files\Veritas\Backup Exec\spad.exe C:\Program Files\Veritas\Backup Exec\pvlsvr.exe C:\Program Files\Veritas\Backup Exec\bedbg.exe C:\Program Files\Veritas\Backup Exec\bengine.exe C:\Program Files\Veritas\Backup Exec\BackupExecManagementService.exe C:\Program Files\Veritas\Backup Exec\PDVFSService.exe C:\Program Files\Veritas\Backup Exec\beremote.exe C:\Program Files\Veritas\Backup Exec\beserver.exe C:\Program Files\Veritas\Backup Exec\VxLockdownServer.exe C:\Program Files\Veritas\Backup Exec\mtstrmd.exe |
Backup Execの公式サイトには、アンチウィルスソフトで除外対象にするべきプロセスの他にも、インストールフォルダやバックアップデータの保存場所などが紹介されているので、一度することをおすすめします。
スループットを変更
アンチウイルスソフトでBackup Execのプロセスをスキャンの除外対象にすることで、大幅にジョブのスループットが改善されますが、ストレージ設定を変更することで更に高速化する可能性があります。
今まではブロックサイズとバッファサイズを自動検出を有効にしていましたが、試しに手動でブロックサイズを64KB、バッファサイズを1MBに変更してみたところ、バックアップが更に高速になりました。
Backup Excecの解説ページによると適切なブロックサイズは512バイトから64KBらしく、より大きなブロックサイズをサポートするディスクであれば、1MBまで設定することが可能です。
バッファサイズはブロックサイズの偶数倍になるように設定する必要がありますが、もしブロックサイズが64KBを越える場合はバッファサイズも同じになるとのことです。
因みに、Backup Execはストレージがサポートしているブロックサイズを判断することできないので、ストレージで設定したとしてもサポ―トされていなければデフォルト値で動作するとのことです。
因みに、Backup Execのストレージプロパティでブロックサイズやバッファサイズを変更しても、通信速度が1Gbpsでは恩恵を受けられないので、最低でも2.5Gbps以上のネットワークに接続してください。
特殊なエラー
大容量ファイルサーバのバックアップを数世代分残すために、NASで100TB越えのストレージを構成しBackup Execのストレージとして設定したところ、スナップショットテクノロジの初期化に失敗しましたという例外処理が発生しました。
これは、63TBを越えるストレージをiSCSIで接続している場合に起きるエラーで、ボリュームサイズを63TB以下に指定したとしても発生しますが、SMB共有フォルダをストレージ設定をすると正常に動作します。
他にも、バックアップ対象のサーバと保存先ストレージのNASをLANケーブルで直接接続するならジャンボパケットの設定が可能ですが、非対応のネットワークスイッチに接続するとPing以外が通りにくくなります。