[Druva] Oracle RMAN イメージコピー + SBT ストリームバックアップ 重複排除


はじめに

DruvaのOracleデータ保護ソリューション(Phoenix Backup StoreおよびDirect-to-Cloud)は、Oracleのスタンドアロン環境だけでなく、クラスタ化(RAC)環境の保護にも役立ちます。DTC(Direct-to-Cloud)テクノロジーにより、データセンターまたはクラウドで稼働するOracleデータベースのバックアップを、AWS S3のDruvaの重複排除ストレージに直接ストリーム配信することができます。このソリューションは、ソース側重複排除テクノロジーをサポートし、Oracle SBT APIを実装しています。PBSソリューションは、バックアップの最新コピーをローカルストレージに保持し、RTOを改善します。

SBTベースのフルおよび増分ストリームバックアップに関しては、Oracle Recovery Manager (RMAN) の多重化により、重複排除が非常に困難になります。ここでは、DruvaのOracle DTCソリューションの開発において、この問題にどのように対処し、非常に予測可能な重複排除率を達成したかについて説明します。

RMANイメージコピー

Druvaは、Oracleの2つの保護ソリューション、Oracle DTCとPBS(Phoenix Backup Store)をサポートしています。PBSソリューションはダンプ・アンド・スイープソリューションであり、DruvaはユーザにRMANテンプレートスクリプトを提供し、Oracle本番サーバー上で実行できるようにしています。NFSマウントポイントはPBSからエクスポートされ、保護対象のOracleサーバーにマウントされます。Druvaが提供するテンプレートスクリプトは、増分マージ技術とともにRMANイメージコピーを使用して、RMANバックアップをNFSマウントポイントに書き込みます。RMANイメージコピージョブが完了すると、PBS上にファイルシステムレベルのスナップショットが作成され、スナップショットのデータがDruvaクラウドの重複排除ストレージにアップロードされます。

イメージコピーバックアップの場合、RMANはOracleデータ、コントロール、アーカイブされたREDOログファイルのコピーをNFSマウントに書き込みます。このコピーはOSのコピーコマンドと似ています。データ、コントロール、アーカイブされたREDOログファイルのフォーマットに変更はありません。RMANはコピープロセス中にネイティブファイルフォーマットを保持します。

イメージコピーバックアップの性質上、このデータをクラウドにアップロードすると、優れた重複排除が実現します。重複排除率は、Druva FSエージェントを使用したファイルバックアップと比較できます。

RMAN多重化の問題

DruvaのOracle DTCソリューションは、Oracleが提供するSBTストリームAPIの実装を使用しています。Oracle RMANがバックアップ中にストレージにバックアップピースを書き込む際に使用するブロックサイズは、データファイルとアーカイブログファイルでは通常256KBです。Druvaで使用する重複排除ブロックサイズは、Oracleでは1MBです。初期の開発段階では、以下の理由により予測不可能な重複排除率が見られました。

  • SBTストリームバックアップの場合、複数のOracleスレーブプロセスが複数のファイルから同時にデータを読み取り、1つ以上のストリームにバッファを送信します。Oracle RMANの書き込みブロックサイズが256KBで、Druvaのブロックサイズが1MBであるため、バックアップごとにブロックの順序が変わり、重複排除に影響を与えます。
  • RMANのマルチセクションバックアップを使用している場合は、問題がさらに悪化します。

RMANの多重化およびマルチセクションバックアップの影響を回避する

FILESPERSETは、Oracle RMANがバックアップピースへのファイルの多重化を制御するために使用するオプションです。このオプションは、特定のバックアップピースに書き込まれるデータファイルまたはアーカイブされたREDOログファイルの数を制御します。前のセクションで説明したように、ファイルは同時に非同期で読み取られるため、バックアップストリーム内のブロックの順序は毎回異なります。私たちは自動生成されたRMANバックアップスクリプトでFILESPERSET = 1を使用しています。この設定により、1つのバックアップピースには1つのデータファイルまたはアーカイブされたREDOログファイルのみが書き込まれるようになります。これにより、ブロックが同じ順序で書き込まれることも保証されます。これまでのところ、調査環境のデータファイルのサイズはそれほど大きくないため、マルチセクションバックアップは使用していません。通常、データファイルのサイズは数GBの範囲です。

ローカルフィンガープリントキャッシュ

次に取り組んだ問題は、ローカル指紋キャッシュに関するものでした。Druva Phoenixは、重複排除サーバーへのネットワークの往復を回避するために、ローカル指紋キャッシュを使用します。指紋キャッシュはファイル名ベースです。ファイルが重複排除ストレージに初めてバックアップされると、ブロック境界でチャンク化され、クラウドで実行中の重複排除エンジンにプローブコールが送信され、フィンガープリントがすでに存在するかどうかを確認します。フィンガープリントがすでに存在する場合は、重複排除サーバーにデータは送信されず、フィンガープリントの参照カウントのみが増加します。重複排除エンジンが以前に見たことのないフィンガープリントの場合は、ブロックが重複排除サーバーに送信されます。このプロセス中、ファイルのすべてのブロックのフィンガープリントもローカルシステムにキャッシュされます。その後のバックアップでは、まずローカルのフィンガープリントキャッシュが確認されます。フィンガープリントがローカルキャッシュで見つかれば、重複排除サーバーにプローブを送信する必要はありません。これによりネットワークの往復が削減され、全体的なパフォーマンスが向上し、クラウドで実行される重複排除インデックスの計算コストも削減されます。

しかし、RMANでは、独特な問題に直面しました。RMANを使用してデータファイルのバックアップを行うと、バックアップごとに一意の名前が付けられます。これにより、ファイルが重複排除キャッシュに新しいファイルとして表示されるため、すべてのプローブがクラウドで実行されている重複排除サーバーに送信され、パフォーマンスに影響を与え、重複排除インデックスの検索コストが増加します。

この問題に対処するために、Druva Oracle DTCはRMANデータファイルとアーカイブログストリームを開くRMANストリームハンドラを実装しています。ストリームハンドラは、デフォルトではOracleのデータファイルでは8K、アーカイブログファイルでは512バイトであるデータファイルのブロックサイズを識別します。ブロックサイズが識別された後、さらに多くのストリームブロックが検査され、Druvaがバックアップピースとバックアップストリームに含まれるデータファイル間の関係を確立するのに役立ちます。ローカルフィンガープリントキャッシュは、ファイル番号と相対ファイル番号を使用して、フィンガープリントキャッシュ内で一意のIDを作成します。

重複排除率

FILESPERSETとOracle RMAN SBTストリームハンドラを組み合わせたOracle DTCソリューションでは、非常に優れた重複排除率が得られました。ストリームハンドラを追加した後でも、RMANによる最適化が重複排除に影響を与える可能性があるため、ファイルとフォルダのバックアップと直接比較することはできません。

Druvaは100%のSaaSベースのソリューションであるため、インデックスの検索コストとネットワークが非常に重要になります。Druvaの重複排除ストレージインデックスはAWS Dynamo DBを使用しており、インデックスの検索にはすべて原価がかかります。データセンターではLANではなくWAN経由でデータを移動させるため、ネットワークの使用状況は重要です。全体として、これらの機能により、クラウドにおける重複排除サーバーへのネットワーク往復回数とインデックス検索コストが削減され、予測可能な重複排除率を実現できるようになりました。

 

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください