データ保護: Windows Server 2008 R2 におけるバックアップの基礎

Jeffery Hicks

データ保護は、Windows のプロフェッショナルに付きまとう重要な課題です。多くの IT プロフェッショナルは、この課題に対処するために、テープやディスクにデータを保存するようにバックアップ ジョブを実行するという手段を取っています。通常、大規模な IT 企業には、機能が充実したサードパーティ製のバックアップ ソリューションを利用できる予算があります。ですが、それ以外の企業では、マイクロソフトが提供している無償のバックアップ ツールを使用しています。

以前、マイクロソフトが提供していた無償ツールは、今や時代遅れとなった NTBackup でした。しかし、このユーティリティはお役御免となりました。Windows Server 2008 には新しい一連のバックアップ ツールが用意されています。この記事では、新しい Windows Server 2008 R2 で、バックアップ ツールがどれほど簡単に使用できるかを説明します。サードパーティ製のバックアップ ツールをお持ちの場合でも、簡便なバックアップを実行する方法を習得できるという点でこの記事がお役に立つと思います。新しいバックアップ機能では、NTBackup で作成したバックアップを管理できないことに注意してください。

インストールの基礎

既定ではバックアップ機能がインストールされていないので、まず、この機能をインストールする必要があります。サーバー マネージャーの機能の追加ウィザードを使用して、Windows Server バックアップの機能を追加します (図 1 参照)。ここでは、Windows PowerShell を使用できるように、サブ機能のコマンドライン ツールを使用します (Windows PowerShell の詳細については、この記事の後半で説明します)。また、ServerManagerCMD.exe などのコマンドライン ツールを使用して (たとえば、servermanagercmd –install Backup-Features というコマンドを実行して) バックアップ機能をインストールすることもできます。

図 1 機能の追加ウィザードを使用して Windows Server バックアップの機能とコマンドライン ツールをインストールする

次は、バックアップの場所を指定します。ファイルは、ネットワーク共有、ローカル ボリューム、または専用ディスクにバックアップできます。データをテープにバックアップすることはできませんが、安価な USB で接続できる記憶装置の普及が進んでいることを考えると、現在ではそれほど問題にならないでしょう。ただし、考慮が必要な要素はいくつかあります。

Windows バックアップを実行すると、インデックスやカタログなどのサポート ファイルに関してかなりのオーバーヘッドが生じます。これは、.zip ファイルを作成する場合とは異なります。100 KB のファイルをバックアップするには 100 KB だけではなく、ずっと多くの領域が必要になります。

ネットワーク共有にバックアップする場合は、バックアップの整合性とセキュリティが保護されるように、ファイル レベルのアクセス制御に注意してください。また、ファイルを同じネットワーク共有にバックアップすると以前のバックアップが上書きされることにも注意してください。各バックアップのサブフォルダーを作成すると、この問題を簡単に解決できます。ローカル ボリュームにバックアップする場合にも、この注意事項が当てはまります。

ネットワーク共有やボリュームを使用すると、Windows バックアップで、すべてのバックアップ ファイルが含まれた .vhd ファイルが作成されるという利点があります。バックアップの場所を指定すると、Windows バックアップによって WindowsImageBackup という名前のフォルダーが作成されます。このフォルダーには、各コンピューターのバックアップ フォルダーがあります。バックアップには日付でバージョンが設定され、Backup 2009-12-14 172606 などのような名前のフォルダーが作成されます。このフォルダーには、バックアップ ファイルと .vhd ファイルがあります。この .vhd ファイルは、Windows 7 と Windows Server 2008 R2 でマウントできます。バックアップとアーカイブの要件によっては、このファイルを長期的なディスク記憶装置に移動したり、DVD に書き込んだりできます。

最も簡単で高速な手法は、専用の接続されたディスクを使用することです。内蔵のディスクを使用することも、USB や FireWire で接続された外付けディスクを使用することもできます。マイクロソフトでは、バッアップするデータの 2.5 倍の空き領域をディスクに確保することを推奨しています。ドライブはフォーマットされて通常の管理ツールでは表示されなくなりますが、ディスクの管理ツールでは表示できます。使用できるディスクのサイズは、最大で 2 TB です。

バックアップ ジョブを作成する

Windows バックアップは、サーバーを保護する設定を 1 か所で指定できるようにすることを目的としています。スケジュールされたタスクを有効にして、ファイルやシステム状態をバックアップしたり、ベアメタル復元の機能を提供したりすることができます。マイクロソフトでは、このような目的でユーザーがスケジュールされたタスクを 1 つ有効にすることを想定しています。また、この記事では、予算が限られているために Windows バックアップ機能を使用しており、ユーティリティの制約に基づいて最大限の保護を確保していることを前提としています。

Windows バックアップ機能をインストールしたら、サーバー マネージャーの [記憶域] ノードを展開して、[Windows Server バックアップ] をクリックします。[操作] ウィンドウの [バックアップ スケジュール] をクリックして、バックアップ スケジュール ウィザードを起動します。次に、[はじめに] 画面の [次へ] をクリックします。

2 ページ目の手順では、スケジュールするバックアップの種類を指定します。ここでは、サーバー全体のバックアップを実行してみましょう。カスタム バックアップを作成して、特定のファイルやシステム状態などの項目をバックアップに含めることもできます。簡単なファイルのバックアップ方法については後で説明しますが、ここではサーバーを完全に保護する必要があることを想定しています。

3 ページ目の手順では、バックアップ タスクを実行する時間を指定します。ほとんどの場合は 1 日 1 回のバックアップで十分ですが、1 日に複数回バックアップを実行することもできます。重要なファイルのバックアップについては、複数回実行することをお勧めします。

4 ページ目の手順では、バックアップの保存先を指定します。マイクロソフトでは、専用のハード ディスクを使用することを推奨しています。ただし、このドライブは再フォーマットされて他の用途に使用できなくなることに注意してください。また、ボリュームやネットワーク共有を使用することもできます。警告と制約によく注意してください。ディスクが再フォーマットされることを通知する警告が表示されることがあります。

すべてのディスクが表示されない場合は、[すべての使用可能なディスクを表示] をクリックして情報を更新します。新しいディスクを選択すると、警告が表示されます。保存先を選択したら、バックアップの設定を確認します。不適切な設定がある場合は、[前へ] をクリックして戻り、問題のある設定を修正します。すべての設定に問題がなく、ウィザードの手順が完了すると、概要画面が表示されます。翌日、[Windows Server バックアップ] ノードで結果やエラーを確認できます。

Windows バックアップを使用して 1 回限りのバックアップを実行することもできます。[操作] ウィンドウの [バックアップ (1 回限り)] をクリックします。スケジュールされたジョブと同じ設定を使用することも、まったく異なる設定を使用することもできます。異なる設定を使用する場合は、ウィザードが再実行されるので別の条件を入力できます。たとえば、ファイルをネットワーク共有にコピーする必要があるとします。ただし、同じフォルダーにある既存のバックアップが上書きされることに注意してください。バックアップはすぐに実行されます。頻繁に実行するバックアップ タスクの場合は、コマンド ラインや Windows PowerShell で、スクリプト化されたソリューションを利用することをお勧めします。この手順については後で説明します。

データを復元する

Windows バックアップでは、バージョン情報としてタイム スタンプを使用します。[操作] ウィンドウの [回復] をクリックすると、簡単にデータを復元できるウィザードが起動します。適切なバックアップ元を選択します。回復ウィザードに、すべての利用可能なバックアップの日時を示すコントロールが表示されます (図 2 参照)。適切なバックアップを選択します。バックアップの種類によっては、選択肢が 1 つしかない場合もあります。

図 2 回復ウィザードで利用可能なバックアップを選択する

続いて、回復するデータの種類を指定します。[ファイルおよびフォルダー] をクリックすると、回復するファイルを選択できます。残念ながら、複数のディレクトリのファイルを選択することは、ほぼ不可能です。1 つのディレクトリに含まれるすべてのファイルや選択したファイルは、簡単に回復できます。バックアップ ジョブを構成するときには、この点に注意してください。

ファイルを回復する場合は、回復先フォルダーを指定する必要があります。元のフォルダーを指定することも、別の場所を指定することもできます。また、既存のバージョンが存在している場合に現在のファイルを復元するときの処理を制御することもできます。コピーを作成して両方のバージョンを保持することも、既存のバージョンを上書きすることも、既存のバージョンが検出された場合に復元をキャンセルすることもできます。回復処理はすぐに実行されます。

WBADMIN.EXE を使用する

コマンドライン ツールをインストールした場合は、他にもいくつかの手法を利用できます。コマンド プロンプトを開いて、WBADMIN.EXE のヘルプを調べます。このツールを使用してスケジュールされたバックアップを構成することは可能ですが、GUI を使用した方がずっと簡単でしょう。このコマンドライン ツールは、1 回限りのバックアップ ジョブの作成に適しています。次のコマンドを実行すると、構文のヘルプが表示されます。

C:\> wbadmin start backup /?

スペースの都合上、この記事ではすべてのオプションを説明することはできませんが、コマンドライン ツールを使用して定期的にファイルをネットワーク共有にバックアップする方法を以下に示します。

@echo off
::Demo-Backup.bat
::demonstration script using WBADMIN.EXE on a Windows Server 2008 R2 Server

rem backup share UNC
set backupshare=\\mycompany-dc01\backup

rem files and folders to include
set include=c:\scripts,c:\files

rem define date time variables for building the folder name
set m=%date:~4,2%
set d=%date:~7,2%
set y=%date:~10,4%
set h=%time:~0,2%
set min=%time:~3,2%
set sec=%time:~6,2%

rem defining a new folder like \\mycompany-dc01\backup\RESEARCHDC\12152009_132532
set newfolder=%backupshare%\%computername%\%m%%d%%y%_%h%%min%%sec%
echo Creating %newfolder%

mkdir %newfolder%

rem run the backup
echo Backing up %include% to %newfolder%
wbadmin start backup -backuptarget:%newfolder% -include:%include% -quiet

rem Clear variables
set backupshare=
set include=
set m=
set d=
set y=
set h=
set min=
set sec=
set newfolder=

ここでは、既存のバックアップを上書きしないようにする必要があるので、ファイル名の一部に、コンピューター名と日時を使用する新しいフォルダーを作成します。上記のバッチ ファイルには、この処理を実行するコードが含まれています。スクリプトの主な関数では、WBADMIN.EXE を呼び出して、指定のネットワーク共有にバックアップを作成します (この手順をカスタマイズする必要がある場合は、構文のヘルプを調べてください)。このスクリプトの良いところは、タスク スケジューラを使用して独自のスケジュールされたタスクを構成できることです。つまり、バックアップ スケジュール ウィザードではスケジュールされたタスクを 1 つしか作成できませんが、WBADMIN.EXE を使用すると任意の数のタスクを作成できます。また、このツールを使用するとシステム状態のバックアップも作成できます。

実行されたバックアップ ジョブを確認するには、wbadmin get versions というコマンドを実行します。

WBADMIN.EXE を使用してファイルを回復するにはバージョン ID が必要なので、この値に十分注意してください (ただし、回復ウィザードを簡単に使用できます)。

Windows PowerShell を使用してバックアップする

コマンド ラインを使用するもう 1 つの手法は、Windows バックアップの Windows PowerShell コマンドレットを使用することです。コマンドレットにアクセスするには、まず次のコマンドレットを実行して Windows バックアップのスナップインを読み込む必要があります。

PS C:\> add-pssnapin Windows.ServerBackup

スナップインに含まれているコマンドレットを確認するには、次のように Get-Command コマンドレットを実行します。

PS C:\> get-command -pssnapin windows.serverbackup

残念ながら、バックアップ ジョブを作成するには複数の手順を実行する必要があります。必要なコマンドをプロンプトで対話的に入力することもできますが、スクリプトを使用する手法の方が簡単でしょう。上記バッチ ファイルの Windows PowerShell バージョンを以下に示します。

#requires -version 2.0
#requires -pssnapin Windows.ServerBackup

#Demo-WBBackup.ps1

$policy = New-WBPolicy
$files=new-WBFileSpec c:\scripts,c:\files
Add-wbFileSpec -policy $policy -filespec $files
$backdir=("\\mycompany-dc01\backup\{0}\{1:MMddyyyy_hhmmss}" -f $env:computername,(get-date))

write-host "Creating $backdir" -foregroundcolor Green
mkdir $backdir | out-null

$backupLocation = New-WBBackupTarget -network $backdir 

Add-WBBackupTarget -Policy $policy -Target $backupLocation

write-host "Backing up $files to $backdir" -foregroundcolor Green
$policy
Start-WBBackup -Policy $policy

このスクリプトで使用している Windows PowerShell コマンドレットは、ポリシーの作成と実行に関するものです。ポリシーには、バックアップ対象に含めたり除外したりするファイルやボリューム、ファイルのバックアップ先、およびいくつかの多彩なオプションが含まれています。また、システム状態の回復やベアメタル回復のジョブも作成できます。このサンプルでは、いくつかのディレクトリをバックアップしているだけです。Start-WBBackup コマンドレットでバックアップ タスクを実行します。

Windows バックアップのコマンドレットの一覧を確認すると、ある機能が欠如していることに気が付くでしょう。データを復元するコマンドレットがありません。これは、この作業を自動化する必要がないことを想定しているためだと考えられます (ただし WBADMIN.EXE では復元処理を実行できます)。将来、コマンドレットが追加される可能性があります。それまでの間は、回復ウィザードや WBADMIN.EXE を使用してファイルを復元できます。

まとめ

これらのツールをお試しになると、Windows バックアップを使用することで他にも多数のメリットを享受できることがわかるでしょう。また、全体的なバックアップ戦略やビジネスの継続性に関する計画で、これらの機能がどのような場面で適しているかを評価する必要もあります。いくつかの点では、無償の Windows バックアップ ソリューションの機能は、かなり限られていますが、スクリプトのオプションと .vhd ファイルを使用すると、この制限を克服する興味深い可能性が開けます。必要なのは、ちょっとした工夫だけです。

最後に、どのようなバックアップ ソフトウェアについても言えることですが、復元処理の予行演習は、運用環境とは異なる設定で必ず実施する必要があります。実際にデータを回復しなければならないときにやり方を調べて上司にあれこれ言われるのは、避けたいものです。いざというときに英雄になれるように、ぜひ復元処理を習熟してください。

Jeffery Hicks は、MCSE、MCSA、MCT の資格を持っている Microsoft MVP で、執筆活動、トレーニング、コンサルティングを行っています。IT に携わって 17 年のベテランであり、管理者向けのスクリプトと自動化を専門としています。また、積極的にブログを更新したり、カンファレンスで講演を行ったりしています。最新の著書は、『Windows PowerShell 2.0: TFM』(Sapien Press、2009 年) です。彼の Web サイトのアドレスは、jdhitsolutions.com (英語) です。

関連コンテンツ