概要
DataKeeper と DataKeeper Cluster Edition の両方に統合されている DataKeeper のターゲットスナップショット機能は、特定時点の複製ボリュームのコピーを作成するプロセスであり、ソースシステムからのデーターレプリケーション動作を妨げることなく、スタンバイクラスターノード上のデーターにアクセスすることができます。どの時点でも、データー保護は失われません。ターゲットスナップショットを有効にすると、ソースのパフォーマンスに悪影響を与えずに、アイドル状態になっていたターゲットノード上のデータを使用できます。
ターゲットスナップショットを使用しない場合、DataKeeper と DataKeeper Cluster Edition は、ターゲットシステム上にソースシステムのデーターのリアルタイムレプリカを維持できます。ただし、ミラーを一時停止しターゲットシステムをロック解除しない限り、このレプリカにアクセスすることはできません。この一時停止とロック解除の状態では、ミラーのフェイルオーバーとスイッチオーバーが実行されることはないので、保護されているアプリケーションの可用性が低下します。アプリケーションと整合性のあるターゲットスナップショットを使用すると、ソースシステム上で動作しているアプリケーションの可用性を高く維持したまま、ターゲットシステムのデーターにアクセスできます。ミラーは ミラーリング の状態に維持され、ソースからのすべての書き込みを使用してターゲットボリュームの更新を継続します。ターゲットスナップショットはボリュームシャドウコピーサービス (VSS) と統合されており、ターゲットシステム上に現れるデーターを確実にアプリケーションと整合性がある状態にします。
ターゲットスナップショットの活用
DataKeeperのターゲットスナップショットは、ターゲットシステム上のデータへアクセスするための “Pause and Unlock“ コマンドの使用に代わるものですが、ターゲットスナップショットにはPause and Unlock にはない以下のようなメリットがあります。
- ミラーリング状態のまま、ソースシステムからのデーターのレプリケーション継続を妨げません。
- 複数のボリュームのスナップショットを同時に実行できます。
- ターゲットシステムで対象となるデーターがアプリケーションに適合した状態であることを確実にするため、ソースシステムで稼働しているVSS対応のアプリケーション(MS SQL Server など)は、VSS により一旦停止されます。
ターゲットスナップショットの使い方
ターゲットシステム上でスナップショットの場所を定義する
ターゲットスナップショットを使用するには、アクセスする予定のボリュームごとにターゲットシステム上でスナップショットの場所を定義する必要があります。スナップショットの場所は、DataKeeper GUIの [ミラープロパティ] ダイアログで定義できます。 ターゲットシステムでEMCMD SETSNAPSHOTLOCATION を実行して定義することもできます。
EMCMD <system> SETSNAPSHOTLOCATION <volume letter> "<directory path>"
ソースシステムでSIOS VSSプロバイダーを有効にする
DataKeeper ターゲットスナップショットは VSS を使用して、ミラーソースシステム上のデーターを静止します。 DataKeeper には、この実行に使用される VSS プロバイダーコンポーネントがあります。しかし、SIOS VSS Providerといくつかのバックアップ製品の干渉が報告されたため、これは無効の状態で出荷されます。スナップショットを作成するには、ミラーソースシステム上の VSS Provider を有効にする必要があります。
SIOS VSS Provider を有効にするには、 "%ExtMirrBase%\ VSSProvider" にあるスクリプト "install-siosprovider.cmd" を実行します。
ターゲットスナップショットを作成した後、同じフォルダー内のコマンド "uninstall-siosprovider.cmd" を実行することにより、ミラーソースシステム上でそのスナップショットを無効にすることができます。SIOS VSS Provider と互換性のないバックアップ製品を使用している場合は、このコマンドを使用して無効にする必要があります(互換性のない製品については、 「既知の問題」 を参照)。ただし、互換性のない製品を使用していない場合は、VSS Provider を有効のままにしておくことができます。
注記: すべての DataKeeper アップデートでプロバイダーが無効になるため、この後にターゲットスナップショットを取得するには再度有効にする必要があります。
SIOS VSS Provider は、スナップショット取得時のみ必要です。プロバイダーが無効化された後、ターゲットシステム上にスナップショットを残しておき、プロバイダーが無効になっている間はスナップショットを削除することができます。
TAKESNAPSHOT コマンドの実行
ミラーボリュームごとにスナップショットロケーションが定義され、ソースシステム上でSIOS VSS Providerが有効化された後、EMCMD TAKESHAPSHOT コマンドを実行すると、ターゲットシステム上でボリュームにアクセスできるようになります。
EMCMD <target_system> TAKESNAPSHOT <volume letter> [<volume letter>…]
<target_system> がターゲットシステムの名称またはIPアドレスの場合、<volume letter> はスナップショットの対象となる一方のボリュームのドライブレターであり、[<volume letter>…] は同時にスナップショットの対象となるもう一方のドライブのドライブレター(オプション)です。
ターゲットスナップショットの仕組み
DataKeeper のターゲットスナップショットは「書き込み時にコピー」方針を使用し、特定時点におけるボリュームの表示を維持して提示します。ボリューム情報の格納にはスナップショットファイルが使用されます。このスナップショットファイルの場所を設定することが、ターゲットスナップショットを有効にするための最初の手順です。
EMCMD コマンド TAKESNAPSHOT を実行すると、DataKeeper によりスナップショットファイルが作成され、設定したスナップショットフォルダーにマウントされます。次に、VSS を使用して特定のボリューム上の VSS 書き込みを休止すること、およびディスクへのすべての書き込み動作が停止してそのボリュームが正しく定義された状態になったときにターゲットに通知することを指示するリクエストがソースシステムに送信されます。
データーベース/アプリケーションの休止
このアプリケーションとの整合性維持機能はボリュームシャドウコピーサービス (VSS) と統合されており、ターゲットシステム上に現れるデーターを確実にアプリケーションと整合性がある状態にします。スナップショットが要求されると、VSS サービスはシステムを一時停止し、ディスク上のデーターを変更するすべてのアプリケーションのすべてのアプリケーションファイルを確実に整合性がある状態にしてから、スナップショットを作成します。これを、「データーベース/アプリケーションの休止」と呼びます。データーベースをシャットダウンして制限付きモードで再度開くこととは異なり、一時的な休止では、スナップショットの作成に必要な短期間のみ、アプリケーションの書き込み I/O リクエストを凍結します (読み取り I/O リクエストは継続して可能)。休止状態になると、スナップショットメッセージをドライバーのミラー書き込みキューに追加することにより、各ボリュームのスナップショットが開始されます。VSS は次にアプリケーションを凍結解除してボリュームをロック解除するので、アプリケーションが休止している時間が最短に抑えられます。このとき、ユーザーはターゲットシステムで動作を実行できる一方、ミラーは ミラーリング 状態であり、ソースシステム上のアプリケーションの可用性は高く維持されています。
読み取りと書き込みの I/O リクエスト
スナップショットは、バックアップ対象ボリュームのライブコピーと並行して存在するので、スナップショットの準備と作成が実行される短期間を除いて、アプリケーションは継続して動作できます。ただし、ターゲットがこの状態である期間、ターゲットへの書き込みは別の方法で処理されます。
ソースシステムからのデータのミラーリングは引き続き中断されませんが、スナップショットを実行した後にソースから受信される新規データは、スナップショットがドロップされるまでターゲットでは表示されなくなります。これにより、ターゲットシステム上のアプリケーションは、スナップショットの実行時点のソースシステムのデータを表すデータを使用 (および更新) して動作することができます。
ソースへの書き込み
ソースへの書き込みを実行するには、ソースから新規データーが到達したときに、DataKeeper はまず、特定データーブロックがすでにスナップショットファイルに書き込まれているかどうかを調べます。
上の図に示すように、そのブロックがまだ書き込まれていない場合、スナップショットデーターを保持するために 元の ブロックがスナップショットファイルに書き込まれ、次に新規データーがターゲットに書き込まれます。結果を以下に示します。
このブロックがすでにスナップショットファイルに書き込まれていると DataKeeper が判断した場合、この手順は省略され、ブロックは単にターゲットに書き込まれます。頻繁に上書きされるソースボリューム上のブロックの場合、スナップショットファイルは 1 回のみ更新する必要があり、スナップショットの実行後の初回にそのブロックが書き込まれます。
ローカル書き込み
ターゲットでローカル書き込みが (ターゲットシステムのアプリケーションから) 実行される場合、これらの書き込みはスナップショットファイルに格納され、複製ボリューム上のブロックを上書きすることはしません。(注記: スナップショットファイルに格納されたローカル書き込みは、スナップショットのドロップ時に失われます。)
ターゲット読み取りリクエスト
ターゲットボリューム上の読み取りリクエストは、スナップショットデーターを返します。この動作は、はじめにスナップショットファイルに書き込まれたデーターを読み取ることにより実行されます。スナップショットファイルに保存されていないブロックは、ターゲットボリュームから読み取られます。
ターゲットスナップショットを使用する
ターゲットスナップショットを使用するときには、以下の 3 つのタスクを実行する必要があります。スナップショットの場所の設定 、およびスナップショットの開始 を実行する必要があります。ターゲットのレポート動作が完了したら、スナップショットのドロップ を実行する必要があります。
スナップショットの場所を設定する
ターゲットスナップショットを開始すると、DataKeeper はスナップショットデータを保持するファイルを作成し、スナップショットの場所にマウントします。スナップショットを開始する前に、この場所を設定する必要があります。マウントするスナップショットディスクの詳細については、以下のファイル/ディスクデバイス/レジストリエントリー を参照してください。
スナップショットの場所は、以下の条件を満たすように設定してください。
- スナップショットが要求されたときにのみ使用される。
- DataKeeper のミラーボリューム上には保存できない。
- 異なるボリュームのスナップショットファイルを複数保存することはできない。
- ソースのミラーボリュームのサイズおよびスナップショット使用時の書き込みに従って、増大するファイルを作成して保存できるだけの十分な空き容量がある。
注記: スナップショットの実行中にスナップショットの場所を変更しないでください。
スナップショットの場所のサイズ
スナップショットの場所のサイズは、複数の条件に基づいて、個別に決定する必要があります。実際、スナップショットファイルに必要なサイズは、スナップショットを作成するボリュームのサイズよりも非常に小さくなっています。必要なストレージは、スナップショットの使用中にソースシステム上で変更されるデータを格納できるように十分に大きい必要があります。スナップショットを開始するたびに、すべてのスナップショットファイルがゼロに設定され、使用中にサイズが徐々に増加します。スナップショットがドロップされると、これらのファイルは削除されます。書き込み時のコピープロセスは「変更された」ブロックのみをスナップショットファイルに書き込むので、スナップショットの継続時間、およびミラーボリュームの変更の割合を考慮する必要があります。過去のアクティビティのスナップショットについて履歴を表示すると、サイズを再評価できます。
スナップショットの場所の選択
- 適切なミラーを右クリックし、 [ミラープロパティ] を選択してください。
- [ミラープロパティ] ダイアログの [スナップショット] タブを選択してください。
- [参照] ボタンを使用してスナップショットの場所を選択するか、テキストボックスに パス を入力してください。
GUI が動作しているシステムに対応する [参照] ボタンをクリックすると、 [フォルダの参照] ダイアログが表示されます。GUI が動作しているシステム以外のシステムに対応する [参照] ボタンをクリックすると、 [リモートフォルダの参照] ダイアログが表示されます。
- ソースとターゲットの スナップショット の場所を選択します。このボリュームに、このスナップショットの動作が正常に実行できるだけの十分な空き容量があることを確認してください。スナップショットのボリュームサイズを推定するときの詳細については、スナップショットの場所のサイズ を参照してください。 [適用] をクリックしてください。
注記: 指定したシステムの各ボリュームについて、同じ場所を使用することも、別の場所を選択することもできます。
GUI をバイパスする場合、 コマンドラインから SETSNAPSHOTLOCATION コマンドを使用して、スナップショットファイルの場所を設定できます。指定したボリュームの現在のスナップショットの場所を表示するには、GETSNAPSHOTLOCATION コマンドを使用します。 |
スナップショットを実行する
ターゲットシステムで スナップショットの場所 を設定した後、スナップショットを実行できます。ターゲットノードから、EMCMD コマンド TAKESNAPSHOT を実行してください。
スナップショットをドロップする
スナップショットが不要になったときには、通常の処理に戻すためにボリュームのスナップショットをドロップする必要があります。EMCMD コマンド DROPSNAPSHOT を実行してください。このコマンドは、ボリュームをロックし、作成したスナップショットファイルをクリーンアップします。その後、ボリュームが通常のターゲットに戻り、ソースからの書き込みは、書き込み時のコピー保存を実行せずに直接ボリュームに書き込まれます。
注記: Windows 2012 R2では、「ディスク # が突然取り外されました。」という警告メッセージが表示されます。
特定のボリュームのターゲットスナップショットを無効にする
特定のボリュームのターゲットスナップショットを無効にするには、スナップショットの場所をクリアする必要があります。この操作は、GUI から実行できます。
- 該当するミラーを右クリックし、 [ミラープロパティ] を選択してください。
- [ミラープロパティ] ダイアログの [スナップショット] タブを選択してください。
- ターゲットスナップショットを無効にするボリュームのスナップショットフォルダーを削除してください。
- [適用] をクリックしてください。
スナップショットファイルの場所は、コマンドラインから CLEARSNAPSHOTLOCATION コマンドを実行しても削除できます。 |
コマンドが正常に実行された場合、そのボリュームのスナップショットを再び開始するには、スナップショットの場所を再設定する必要があります。
ターゲットスナップショットの注記
サポートする設定
DataKeeper のターゲットスナップショットは LifeKeeper for Windows でサポートされているすべての Windows OS バージョンで、非共有(1×1 および 1×1×1)環境でサポートされています。
Out of Service のソース
ソースが out of service の場合、DataKeeper のターゲットスナップショットを開始することはできません。ただし、スナップショットの開始後にソースが out of service になった場合、スナップショットは意図どおりに動作を継続します。ソースが out of service である期間、スナップショットを継続して使用でき、不要になったときにはドロップできます。
スイッチオーバーとフェイルオーバー
スナップショットを使用中の場合、スナップショットがドロップされるまで、スナップショットされているボリュームはミラーソースになることができません。ローカルノードへのボリュームのスイッチオーバーやフェイルオーバーを可能にするには、DROPSNAPSHOT を実行する必要があります。スナップショットを実行したボリューム上に存在するデーターにアクセスするプロセスはすべて、スナップショットのドロップ時にハンドルが無効になります。ただし、ボリュームがその後ロック解除される場合、これらのプロセスがそのハンドルを再び開かないようにする必要があります。この時点で、データが「 ライブ 」のアプリケーションデーターになります。スナップショットされたデーターではありません。
ファイル/ディスクデバイス/レジストリエントリー
スナップショットを実行すると、実行対象の各ボリュームについて、スナップショットファイルがそのボリュームのスナップショットの場所に作成されます。作成されるファイルの名前は datakeeper_snapshot_vol.vhd で、 はドライブレターです。この VHD ファイルは、Windows のディスク管理で表示できる仮想ディスクとして接続されます。
これらの仮想ディスクデバイスを接続すると、ボリュームのキーに SnapshotDevice というレジストリエントリが作成されます。値が \\.\PHYSICALDRIVE に設定され、 は以下に示すディスク番号です。
TargetSnapshotBlocksize レジストリ値
DataKeeper のターゲットスナップショットは、ターゲットファイルに書き込むすべてのエントリについて、デフォルトのブロックサイズ 64KB を使用します。このブロックサイズを変更するには、ボリュームのレジストリキーに TargetSnapshotBlocksize という名前の REG_DWORD 値を作成します。
この値は常に、ディスクセクターサイズ (通常は 512 バイト) の倍数に設定する必要があります。特定のワークロードと書き込みパターンでは、ブロックサイズを変更すると効果がある場合があります。例えば、データのシーケンシャルストリーム (SQL Server のログファイルなど) に書き込まれるボリュームでは、ブロックサイズが大きいほうが効果的です。ブロックサイズを大きくすると、連続するブロックの書き込み時にターゲットボリュームからの読み取り回数が少なくなります。ただし、ランダムパターンに書き込まれるボリュームでは、小さいサイズ、またはデフォルトの 64KB が効果的です。ブロックサイズを小さくすると、ランダム書き込みリクエストでのターゲットファイルの使用量が少なくなります。
SQL Server の注記
DataKeeper のターゲットスナップショットを LifeKeeper for Windows 環境で SQL Server とともに使用する場合、データーベースをスナップショットに接続するために個別の SQL Server インスタンスを使用することを推奨します。
クラスター化された SQL Server 環境では、データーベースをスナップショットに接続するために個別の SQL Server インスタンスを使用する必要があります。
既知の問題
SIOS VSS Provider と互換性のないバックアップ製品
SIOS VSS Provider のコンポーネントでは、以下のバックアップ製品を使用するとバックアップが失敗することが報告されています。
- IBM Tivoli Storage Manager
- Microsoft Data Protection Manager
NTFS ファイルシステムのメッセージ
ターゲットスナップショットの開始後にスナップショットの内部エラーが発生した場合 (スナップショットファイルの容量不足、ユーザによる接続の切断など)、スナップショットが無効になり、ボリュームがロックされます。また、失敗したボリュームのスナップショットファイルが削除されます。スナップショットエラーの処理中は、NTFS ファイルシステムのエラーが表示されることがあります。このメッセージは通常のものであり無視できます。
スナップショットを使用するアプリケーションデーター
ターゲットスナップショットデーターをアプリケーションとともに使用している場合、ターゲットスナップショットが更新された後、データーを更新するには、アプリケーションを閉じてから開き直す必要があることがあります。
ボリュームシャドウコピーサービス (VSS) のディスクの空き容量の要件
ターゲットスナップショットボリュームの空き容量が不足した場合、そのボリュームが関係する VSS の動作が「予期しないエラー」で失敗することがあります。これを防ぐには、スナップショットボリュームが Microsoft の記事article Windows サーバー バックアップ (WBADMIN) では、Windows Server 2008 と Windows Server 2008 R2 を実行する VSS の問題をトラブルシューティングします。 のガイドラインに従う必要があります。
この記事には、ディスクの空き容量について以下の要件が記載されています。
500 MB 未満のボリュームの場合、空き容量の最小値は 50 MB です。500 MB を超えるボリュームの場合、空き容量の最小値は 320 MB です。ボリュームサイズが 1 GB を超える場合、各ボリューム上に 1 GB 以上のディスクの空き容量を確保することを推奨します。
このトピックへフィードバック