概要
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でサポートされているすべての Windows OSバージョンで、非共有(1×1 および 1×1×1)環境でサポートされています。
Out of Service のソース
ソースが out of service の場合、DataKeeper のターゲットスナップショットを開始することはできません。ただし、スナップショットの開始後にソースがout of serviceになった場合、スナップショットは意図どおりに動作を継続します。ソースが out of service である期間、スナップショットを継続して使用でき、不要になったときにはドロップできます。
スイッチオーバーとフェイルオーバー
スナップショットを使用中の場合、スナップショットがドロップされるまで、スナップショットされているボリュームはミラーソースになることができません。ローカルノードへのボリュームのスイッチオーバーやフェイルオーバーを可能にするには、 DROPSNAPSHOT を実行する必要があります。スナップショットを実行したボリューム上に存在するデータにアクセスするプロセスはすべて、スナップショットのドロップ時にハンドルが無効になります。ただし、ボリュームがその後ロック解除される場合、これらのプロセスがそのハンドルを再び開かないようにする必要があります。この時点で、データが「 ライブ 」のアプリケーションデータになります。スナップショットされたデータではありません。
注意: SQL Server のリカバリ時に保護するには、ターゲットノード上にある SQLインスタンスのレポートを停止する弊社提供の汎用スクリプトを追加する必要があります。手順は、"<DataKeeper のインストールパス>\support" の restore_snapshot.vbs スクリプトにあります。LifeKeeper 階層に追加する方法については、スクリプトコードを参照してください。
ファイル/ディスクデバイス/レジストリエントリ
スナップショットを実行すると、実行対象の各ボリュームについて、スナップショットファイルがそのボリュームのスナップショットの場所に作成されます。作成されるファイルの名前は datakeeper_snapshot_vol<X>.vhd で、 <x> はドライブレターです。この VHD ファイルは、Windows のディスク管理で表示できる仮想ディスクとして接続されます。
これらの仮想ディスクデバイスを接続すると、ボリュームのキーに SnapshotDevice というレジストリエントリが作成されます。値が \\.\PHYSICALDRIVE<x> に設定され、<x> は以下に示すディスク番号です。
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
Microsoft .NET Framework 4.5.2の要件
ターゲットスナップショット機能を使用するには、Microsoft .NET Framework 4.5.2をインストールする必要があります。次のサイトからダウンロードしてください http://www.microsoft.com/net
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 以上のディスクの空き容量を確保することを推奨します。
このトピックへフィードバック