データ保護計画
Oracleデータベースに最適なデータ保護アーキテクチャは、データの保持、リカバリ性、さまざまなイベント時のシステム停止に対する耐性に関するビジネス要件によって異なります。
たとえば、対象となるアプリケーション、データベース、重要なデータセットの数を考えてみましょう。管理するオブジェクトが少ないため、一般的なSLAへの準拠を保証する単一データセットのバックアップ戦略の構築は非常に簡単です。データセットの数が増えるにつれて監視が複雑になり、バックアップの失敗に対処するために、管理者がますます多くの時間を費やすことになる可能性があります。環境がクラウドに到達し、サービスプロバイダが拡張するにつれて、まったく異なるアプローチが必要になります。
データセットのサイズも戦略に影響します。たとえば、データセットが非常に小さいため、100GBのデータベースのバックアップとリカバリには多くのオプションがあります。従来のツールを使用してバックアップメディアからデータをコピーするだけで、リカバリに十分なRTOが得られます。通常、100TBのデータベースでは、RTOによって複数日の停止が許容される場合を除き、まったく異なる戦略が必要になります。その場合は、従来のコピーベースのバックアップおよびリカバリの手順で十分かもしれません。
最後に、バックアップとリカバリのプロセス自体以外にもさまざまな要因があります。たとえば、重要な本番環境のアクティビティをサポートしているデータベースがあり、熟練したDBAだけがリカバリを実行するまれなイベントになっているとしますか。あるいは、データベースは、リカバリが頻繁に発生し、ジェネラリストのITチームが管理する大規模な開発環境に含まれていますか。
Snapshotはバックアップですか?
データ保護戦略としてSnapshotを使用することに対する一般的な反対意見の1つは、「実際の」データとSnapshotデータが同じドライブに配置されていることです。これらのドライブが失われると、プライマリデータとバックアップの両方が失われます。
これは有効な問題です。ローカルSnapshotは、日 々 のバックアップとリカバリのニーズに使用され、その点でSnapshotはバックアップです。NetApp環境のすべてのリカバリシナリオの99%近くが、最も厳しいRTO要件を満たすためにSnapshotを使用しています。
ただし、ローカルSnapshotが唯一のバックアップ戦略であるべきではありません。そのため、NetAppでは、SnapMirrorレプリケーションなどのテクノロジを使用して、独立したドライブセットにSnapshotを迅速かつ効率的にレプリケートできます。スナップショットとスナップショットレプリケーションを使用して適切に設計された解決策では、テープの使用を最小限に抑えて四半期ごとのアーカイブを作成することも、完全に排除することもできます。
整合グループのバックアップ
整合グループのバックアップでは、データセット(または複数のデータセット)の状態を単一のアトミックポイントインタイムでキャプチャします。データベースの例では、データファイル、ログファイル、データベースに直接関連付けられているその他のファイルなど、すべてのデータベースコンポーネントが含まれます。Oracle RDBMS、Microsoft SQL Server、SAP HANA、PostgreSQL、 MySQL、MariaDBなどがあります。整合グループのバックアップを使用してVMware構成を保護する場合は、すべてのデータストアとESXブートLUNを1つのアトミックポイントインタイムでキャプチャすることになります。
このような整合性グループSnapshotの作成は、基本的にはクラッシュをシミュレートしたものです。そのため、このようなバックアップは、crash-consistentバックアップと呼ばれることがよくあります。リカバリシナリオのサポートに懸念が生じることがありますが、通常はリカバリ手順は不要であることを理解しておくことが重要です。整合グループのバックアップをリストアしたあとにアプリケーションを起動すると、通常のログリカバリプロセス、ファイルシステムジャーナルの再生、およびその他のタスクが実行され、バックアップ時点で転送中だったI/Oが再生されます。その後、アプリケーションは通常どおり起動します。
基本的に、データの破損なしに電源障害やサーバクラッシュに耐えることができるアプリケーションは、この方法で保護できます。この機能は、さまざまなベンダーの同期および非同期ミラーリング製品で保護されている膨大な数のアプリケーションによっても実証できます。プライマリサイトで突然災害が発生した場合、レプリカサイトには、災害が発生した時点の元の環境の整合性のあるイメージが格納されます。繰り返しになりますが、特別なリカバリ手順は必要ありません。
通常、このアプローチのRPOはバックアップの時点までに制限されます。原則として、単一ボリュームのSnapshotの最小RPOは1時間です。たとえば、時間単位のSnapshotを48個に加えて、夜間Snapshotを30日間追加するのが妥当であり、大量のSnapshotを保持する必要はありません。RPOを1時間未満に抑えることは難しくなります。環境、拡張性、データ保護の要件を理解するために、まずNetAppプロフェッショナルサービスに相談しないと、この目標を達成することはできません。
通常、RTOは数秒で測定できます。アプリケーションがシャットダウンされ、ボリュームがリストアされ、アプリケーションが再起動されます。
最も簡単な方法は、すべてのファイルまたはLUNを1つのボリューム整合性グループに配置することです。これにより、ONTAPで直接Snapshotの作成をスケジュールできます。データセットが複数のボリュームにまたがっている必要がある場合は、整合性グループSnapshot(cg-snapshot)が必要です。これは、System ManagerまたはRESTful API呼び出しを使用して設定できます。また、SnapCenterでは、定義済みのボリュームリストに対してシンプルな整合性グループSnapshotを作成できます。
レプリケーションとディザスタリカバリのアーキテクチャ
ここでは、セキュアなオフサイトストレージとディザスタリカバリを目的として、データをリモートサイトにレプリケートするリモートデータ保護について説明します。これらのテーブルは、同期ミラーリングのデータ保護には対応していません。この要件については、およびを含むNetApp MetroClusterのドキュメントを参照してください。"MetroCluster""SnapMirrorアクティブ同期"
DRのRPOは、使用可能なネットワーク帯域幅と保護対象のデータの合計サイズによって制限されます。初回のベースライン転送の作成後は、変更されたデータのみに基づいて更新が行われます。これは通常、例外もありますが、総データ容量に占める割合は低くなります。
たとえば、週単位の変更率が10%の10TBデータベースでは、1時間あたりの合計変更量は約6GBです。10Gbの接続では、このデータベースの転送に約6分かかります。変更率はデータベースの変更率の変動に応じて変化しますが、全体的には更新間隔が15分であるため、RPOが15分になるはずです。このようなデータベースが100個ある場合、データの転送に600分かかります。したがって、RPOを1時間にすることはできません。同様に、100TBの単一データベースのレプリカのサイズが週に10%の変更率であれば、1時間で確実に更新することはできません。
レプリケーションのオーバーヘッドや同時レプリケーション処理数の制限など、レプリケーションに影響するその他の要因があります。ただし、単一ボリュームのレプリケーション戦略の全体的な計画は、使用可能な帯域幅に基づいて行うことができ、通常はレプリケーションのRPOを1時間にすることができます。RPOが1時間未満になると達成が難しくなるため、NetAppプロフェッショナルサービスに相談してから実行する必要があります。場合によっては、サイト間のネットワーク接続が非常に良好であれば15分で十分です。ただし、全体的に1時間未満のRPOが必要な場合は、マルチボリュームのログ再生アーキテクチャが適しています。
ディザスタリカバリシナリオにおける整合グループレプリケーションを使用したRTOは非常に優れており、ストレージの観点から見れば、通常は数秒で測定されます。最も簡単な方法は、単にミラーを解除することであり、データベースを起動する準備ができています。通常、データベースの起動時間は約10秒ですが、大量のトランザクションがログに記録された非常に大規模なデータベースには数分かかることがあります。
RTOを決定するうえで最も重要な要素は、ストレージシステムではなく、ストレージシステムを実行するアプリケーションとホストオペレーティングシステムです。たとえば、レプリケートされたデータを1秒または2秒で使用できるようにすることができますが、これはデータのみを表します。また、データを使用できるアプリケーションバイナリを備えた、適切に構成されたオペレーティングシステムも必要です。
場合によっては、オペレーティングシステムで事前に検出されたストレージを使用して、ディザスタリカバリのインスタンスを事前に準備していることもあります。このような場合、ディザスタリカバリシナリオをアクティブ化するには、ミラーを解除してアプリケーションを起動するだけです。また、OSと関連するアプリケーションをデータベースとともにESX Virtual Machine Disk(VMDK;仮想マシンディスク)としてミラーリングする場合もあります。このような場合のRPOは、お客様がVMDKを迅速にブートしてアプリケーションを起動できるように自動化にどれだけ投資したかによって決まります。
保持期間の一部はSnapshotの制限によって制御されます。たとえば、ONTAPのボリュームには、Snapshotの数が1024個に制限されています。場合によっては、レプリケーションを多重化して制限を引き上げていることもあります。たとえば、2000日分のバックアップが必要な場合、ソースを2つのボリュームにレプリケートし、別の日に更新を実行できます。そのためには、必要な初期スペースを増やす必要がありますが、フルバックアップを複数回実行する従来のバックアップシステムよりもはるかに効率的なアプローチです。
単一ボリュームの整合グループ
最も簡単な方法は、すべてのファイルまたはLUNを1つのボリューム整合グループに配置することです。これにより、SnapMirrorおよびSnapVaultの更新をストレージシステム上で直接スケジュールできます。外部ソフトウェアは必要ありません。
マルチボリューム整合グループ
データベースが複数のボリュームにまたがっている必要がある場合は、整合性グループSnapshot(cg-snapshot)が必要です。前述したように、これはSystem ManagerまたはRESTful API呼び出しを使用して設定できます。また、SnapCenterでは、定義済みのボリュームリストに対してシンプルな整合性グループSnapshotを作成できます。
また、ディザスタリカバリを目的としたマルチボリュームの整合性のあるSnapshotの使用についても、もう1つ考慮すべき点があります。複数のボリュームの更新を実行すると、転送の進行中に災害が発生する可能性があります。その結果、一連のボリュームが互いに整合性のない状態になります。この場合は、crash-consistentで使用可能なデータベースイメージを提供するために、一部のボリュームを以前のSnapshot状態にリストアする必要があります。
ディザスタリカバリ:アクティブ化
NFS
ディザスタリカバリコピーをアクティブ化するプロセスは、ストレージのタイプによって異なります。NFSでは、ファイルシステムをディザスタリカバリサーバに事前にマウントできます。これらは読み取り専用状態であり、ミラーが解除されると読み取り/書き込みになります。これにより、RPOが非常に低くなり、管理するパーツが少ないため、ディザスタリカバリプロセス全体の信頼性が向上します。
SAN
ディザスタリカバリ時にSAN構成をアクティブ化することは、より複雑になります。最も簡単なオプションは、通常、ミラーを一時的に解除してSANリソースをマウントすることです。たとえば、LVM構成(Oracle Automatic Storage Management[ASM]などのアプリケーション固有の機能を含む)を検出したり、/etc/fstabにエントリを追加したりします。
その結果、LUNデバイスパス、ボリュームグループ名、およびその他のデバイスパスがターゲットサーバに認識されます。その後、これらのリソースをシャットダウンし、その後ミラーをリストアできます。その結果、サーバはアプリケーションを迅速にオンラインにできる状態になります。ボリュームグループのアクティブ化、ファイルシステムのマウント、データベースとアプリケーションの起動の手順は簡単に自動化できます。
ディザスタリカバリ環境が最新の状態であることを確認する必要があります。たとえば、新しいLUNがソースサーバに追加されることが多いため、ディザスタリカバリプランが想定どおりに機能するように、デスティネーションで新しいLUNを事前に検出しておく必要があります。