スナップショット(Snapshot)技術の発展を理解するための記事
コンピュータ技術とネットワーク技術の継続的な発展により、情報技術のレベルは継続的に向上してきました。人類が情報化社会と呼ばれる 21 世紀に入ってから、デジタル通信、デジタルマルチメディア、電子商取引、検索エンジン、デジタル図書館、天気予報、地質調査、科学研究など、大規模なデータを利用したアプリケーションが登場し、さまざまな分野で利用されています。情報プレゼンテーション 爆発的な成長傾向にあり、ストレージは情報コンピューティング技術の中心となっています。ストレージ システムに対するアプリケーションの要件は増加し続けており、ストレージ容量は GB から TB、PB、EB へとアップグレードされ続けており、ますます大きくなっています。
チューリング賞受賞者のジム グレイは、ネットワーク環境で 18 か月ごとに生成されるデータの量は、過去のデータ量の合計に等しいという新しい経験則を提案しました。同時に、現代企業のコンピュータへの依存度は著しく高まり、情報データは企業存続の基盤となりつつあり、データの破損や消失は企業に多大な損失をもたらします。ハッカー、ウイルス、ハードウェア機器の故障、火災や地震などの自然災害により、システムやデータ情報が損傷、場合によっては破壊され、復旧が間に合わなければ企業に多大な損失をもたらすことになります。 、バックアップ災害復旧技術が特に重要であるようです。特に、9.11 のような出来事によって引き起こされた壊滅的な結果により、人々はデータ情報の価値と重要性をより深く認識し、データ保護に対する関心がますます高まっています。
この20年間、コンピュータ技術は大きく進歩しましたが、データのバックアップ技術はそれほど進歩していません。データ バックアップ操作のコストとコストは依然として比較的高く、多くの時間とシステム リソースを消費し、データ バックアップの目標復旧時間と目標復旧時点は比較的長いです。従来、人々は重要なデータ情報を保護し、データを定期的にバックアップまたは複製するために、データの複製、バックアップ、リカバリなどのテクノロジーを使用してきました。データ バックアップ プロセスはアプリケーションのパフォーマンスに影響し、時間がかかるため、通常、データ バックアップはシステム負荷が軽い時間帯 (夜間など) に実行されるようにスケジュールされます。さらに、ストレージ容量を節約するために、通常は完全バックアップ技術と増分バックアップ技術が組み合わされます。
明らかに、このデータ バックアップ方法には重大な欠陥、つまりバックアップ ウィンドウの問題があります。データのバックアップ期間中、企業ビジネスは外部サービスの提供を一時的に停止する必要があります。企業のデータ量とデータ増加率の加速に伴い、このウィンドウはますます長くなることを要求される可能性がありますが、これは重要なビジネス システムにとっては容認できません。銀行や電気通信などの機関にとって、情報システムは 24 時間 365 日の中断のない運用を必要とし、短期間のダウンタイムや少量のデータの損失は多大な損失を引き起こします。したがって、データ バックアップ ウィンドウをできる限り短縮するか、ゼロにまで減らす必要があります。データ スナップショット (Snapshot) や継続的データ保護 (CDP、Continuous Data Protection) などのテクノロジーは、このような要件を満たします。
スナップショット(Snapshot)とは
スナップショット (スナップショット) は、特定の時点でのデータ セットのミラー イメージであり、インスタント コピーとも呼ばれ、データ セットの完全で利用可能なコピーです。ストレージ ネットワーク業界団体 SNIA は、スナップショットを次のように定義しています。スナップショットは、特定の時点 (コピーが開始された時点) での対応するデータのイメージを含む、指定されたデータ セットの完全に利用可能なコピーです。スナップショットは、それが表すデータの複製、またはデータのレプリカのいずれかになります。
スナップショットには、バックアップのソース、データ マイニングのソース、アプリケーションの状態を保存するチェックポイント、さらには単純なデータ レプリケーションの手段など、幅広い用途があります。スナップショットを作成する方法も多数あり、SNIA の定義によれば、スナップショット テクノロジは主に、分割ミラー、変更ブロック、同時の 3 つのカテゴリに分類されます。後者の 2 つは通常、ポインターの再マッピングとコピーオンライト技術を使用して実装されます。 ChangedBlock 方式の柔軟性とストレージ領域の使用効率の高さにより、この方式はスナップショット テクノロジの主流となっています。
スナップショットの最初のタイプはミラー分割です。データ ミラーリングはインスタント コピーの前に構築され、完全なミラーリングがレプリケーションに使用できる場合、ミラーリングを即座に「分離」することでインスタント コピーを生成できます。この手法の利点は、高速であり、スナップショットの作成に追加の作業が必要ないことです。しかし、デメリットも明らかです。第一に、柔軟性がなく、いつでもスナップショットを取得することができません。第二に、データ ボリュームと同じ容量のミラー ボリュームが必要です。第三に、ミラー データの継続的な変更は、全体的なパフォーマンスに影響します。ストレージシステム。
2 番目のタイプのスナップショットは、ブロックを変更するものです。スナップショットが正常に作成された後、ソースとターゲットは、データが書き込まれるまで同じ物理データ コピーを共有します。データが書き込まれると、ソースまたはターゲットは新しい記憶領域に書き込まれます。共有データ単位は、ブロック、セクター、セクター、またはその他の粒度レベルにすることができます。ブロックの変更とレプリケーション情報を記録および追跡するには、ビットマップ (ビットマップ) が必要です。ビットマップは、実際にコピーされたデータの場所を特定し、ソースまたはターゲットのどちらからデータを取得するかを決定するために使用されます。
3 番目のタイプのスナップショットは同時実行です。これはブロックの変更に非常に似ていますが、常にデータを物理的にコピーします。インスタント コピーを実行すると、データはコピーされません。代わりに、データがどのようにコピーされたかを記録するビットマップを作成し、バックグラウンドでデータの実際の物理コピーを実行します。
さまざまなストレージレベルのスナップショットの実装
画像の説明
図 1 ストレージ システムのスタックとスナップショットの実装
図 1 に示すように、ストレージ スタックは、ホスト オペレーティング システム上で実行されるアプリケーション システムに物理ストレージ メディアを提供するハードウェア コンポーネントとソフトウェア コンポーネントのセットで構成されます。スナップショットはさまざまな方法で実装でき、ストレージ スタックのさまざまなレベルで実装することもでき、ソフトウェア層とハードウェア層の 2 種類に大別できます。また、コントローラベースのスナップショットとホスト ベースのスナップショットにも分けることができます。ベースのスナップショット。
コントローラーベースのスナップショットは、ストレージ デバイス層またはハードウェア層で実装され、ストレージ システム ハードウェア プロバイダーによって管理され、ディスク アレイに統合されます。このスナップショットは、オペレーティング システムやファイル システムとは独立して、LUN レベル (ブロック レベル) で実行されます。ホストベースのスナップショットは、デバイス ドライバーとファイル システム レベルの間に実装され、通常はファイル システム、ボリューム マネージャー、またはサードパーティ ソフトウェアによって実行されます。このタイプのスナップショットはストレージ ハードウェアには依存せず、ファイル システムとボリューム管理ソフトウェアに依存します。このスナップショットは、物理データに作用するコントローラーベースのスナップショットとは異なり、論理データ ビューに作用します。
上記のストレージ層のうち、物理ストレージ層とボリュームマネージャーはスナップショットの実装に最適なコンポーネントであり、物理ストレージを便利に利用できるため、現在主流の実装層となっています。ファイル システム層でのスナップショットの実装は実行可能なオプションですが、データベースなどのアプリケーションでは、ファイル システム層のスナップショット テクノロジでは管理できないため、スナップショットの実装に論理ボリュームを直接使用することを選択します。一般に、アプリケーション層でスナップショットを実装する必要はありません。バックアップ メカニズムの場合、基盤となるファイル システムまたはボリューム マネージャー インターフェイスを使用して実装できますが、スナップショット データの一貫性を確保するためにアプリケーションを一時的に中断する必要があります。一般に、ソフトウェア層に基づくスナップショットは操作が簡単で、優れたリカバリが可能ですが、ハードウェア層に基づくスナップショットはパフォーマンスと耐障害性が高い傾向があります。
スナップショットの実装方法と技術
スナップショット技術はデータのリアルタイムイメージを実現でき、スナップショットイメージはオンラインバックアップをサポートします。フル スナップショットは、すべてのデータの完全な読み取り専用コピーを実現することです。スナップショットが占有するストレージ スペースを削減するために、コピー オン ライト (COW、コピー オン ライト) および書き込みリダイレクト (ROW、リダイレクト) が提案されています。書き込み) スナップショット テクノロジ。さらに、ログや継続的なデータ保護など、スナップショットのパフォーマンスを向上させるスナップショット テクノロジの実装もあります。
1. ミラー分離(SplitMirror)
ミラー分割スナップショット テクノロジは、スナップショットの時点が到着する前に、まずソース データ ボリュームの完全な物理ミラー ボリュームを作成して維持します。同じデータの 2 つのコピーが、ソース データ ボリュームとミラー ボリュームで構成されるミラー ペアにそれぞれ保存されます。スナップショット時点に達すると、ミラーリング操作が停止され、ミラーリングされたボリュームがスナップショット ボリュームに変換され、データ スナップショットが取得されます。スナップショット ボリュームは、データ バックアップなどのアプリケーションが完了すると、ソース データ ボリュームと再同期され、再びミラー ボリュームになります。
複数の連続するポイントインタイムスナップショットを同時に保持する必要があるソースデータボリュームについては、事前に複数のミラーボリュームを作成する必要があります。最初のミラーボリュームがデータバックアップとしてスナップショットボリュームに変換されると、最初に作成された 2 番目のミラー ボリューム ソース データ ボリュームと同期し、ソース データ ボリュームとの新しいミラー ペアになります。ミラー分割のスナップショット操作時間は非常に短く、ミラー ボリューム ペアの切断に必要な時間のみ (通常はわずか数ミリ秒)。このような小さなバックアップ ウィンドウは上位層のアプリケーションにほとんど影響を与えませんが、このスナップショット テクノロジは柔軟性に欠けており、スナップショットを作成することはできません。任意の時点での任意のデータ ボリュームのスナップショット。さらに、ソース データ ボリュームと同じ容量のミラー ボリュームが 1 つ以上必要となり、ミラーリングが同期されるとストレージ システムの全体的なパフォーマンスが低下します。
画像の説明
図 2 コピーオンライトのスナップショット
コピーオンライト スナップショットは、スナップショットの作成に事前に割り当てられたスナップショット領域を使用します。スナップショット時点以降は、物理データのコピーは行われず、元のデータの物理的な場所のメタデータのみがコピーされます。したがって、スナップショットの作成は非常に高速で、瞬時に行うことができます。次に、スナップショット コピーは、元のボリュームのデータ変更 (つまり、元のボリュームの書き込み操作) を追跡します。元のボリュームのデータ ブロックが初めて更新されると、元のボリュームのデータ ブロックが最初に読み取られ、スナップショットに書き込まれます。ボリュームを削除すると、元のボリュームが新しいデータ ブロックで上書きされます (図 2)。コピーオンライトという名前が付けられました。
このスナップショット テクノロジは、スナップショットの作成時にのみスナップショット ボリュームを作成しますが、スナップショット時点の後に更新されたデータをソース データ ボリュームに保存するために必要なのは、比較的少量のストレージ領域を割り当てるだけです。各ソース データ ボリュームにはデータ ポインター テーブルがあり、各レコードは対応するデータ ブロックへのポインターを保持します。スナップショットを作成するとき、ストレージ サブシステムは、ソース データ ボリュームのポインタ テーブルのコピーをスナップショット ボリュームのデータ ポインタ テーブルとして作成します。スナップショットの時点が終了すると、スナップショットは上位層のアプリケーションからアクセスできる論理コピーを作成し、スナップショット ボリュームとソース データ ボリュームはそれぞれのポインタ テーブルを通じて同じ物理データを共有します。スナップショットの作成後、ソース データ ボリューム内の一部のデータが更新されるとき、スナップショット操作の整合性を確保するために、コピー オン ライト テクノロジが使用されます。スナップショット ボリューム内のデータにアクセスするには、データ ポインタ テーブルを照会することにより、対応するデータ ブロックのポインタに従って、アクセスされるデータの物理的な記憶場所が決定されます。
コピーオンライト テクノロジにより、更新操作の前にコピー操作が実行されるため、スナップショット時点以降のデータ更新がスナップショット ボリュームに表示されなくなり、スナップショット操作の整合性が確保されます。コピーオンライト スナップショットは、スナップショットの時点より前にストレージ リソースを占有することはなく、システムのパフォーマンスにも影響を与えません。また、使用方法が非常に柔軟であり、任意の時点で任意のデータ ボリュームのスナップショットを作成できます。スナップショット時点で生成される「バックアップ ウィンドウ」の長さは、ソース データ ボリュームの容量に直線的に比例し、通常は数秒であり、アプリケーションにはほとんど影響しませんが、スナップショット ボリュームに割り当てられるストレージ スペースは大幅に増加します。削減; ソース データ ボリュームが更新された場合にのみ発生するため、システムのオーバーヘッドは非常に小さくなります。ただし、スナップショット ボリュームはソース データ ボリュームの更新されたデータのみを保存するため、このスナップショット テクノロジでは完全な物理コピーを取得できません。また、完全な物理コピーを必要とするアプリケーションに遭遇した場合、その量が十分でない場合には何もすることができません。更新されたデータが予約スペースを超えると、スナップショットは失われ、無効になります。
画像の説明
図 3 ポインターの再マッピングのスナップショット
この実装は、元のデータ ボリュームへの最初の書き込み操作が予約されたスナップショット スペースにリダイレクトされる点を除いて、コピー オン ライトと非常によく似ています。スナップショットは、すべてのソース データとコピー データへのポインターを保持します。データが書き換えられると、更新されたデータに対して新しい場所が選択され、データへのポインタが更新されたデータを指すように再マップされます。コピーが読み取り専用の場合、データへのポインタはまったく変更されません。リダイレクトされた書き込み操作により、スナップショットの I/O パフォーマンスが向上します。新しいデータをスナップショット ボリュームに直接書き込み、同時にビットマップ マッピング ポインタを更新するために必要な書き込み操作は 1 回だけです。一方、コピーオンライトでは 1 回の読み取りと 2 回の書き込みが必要です。操作、つまり元のボリューム データ ブロックの読み取りとスナップショット ボリュームへの書き込みが行われ、更新されたデータが元のボリュームに書き込まれます。
スナップショット ボリュームが元のコピーを保存し、元のボリュームがスナップショット コピーを保存することを見つけるのは難しくありません。これにより、スナップショットを削除する前に、スナップショット ボリューム内のデータを元のボリュームに同期する必要が生じます。また、複数のスナップショットが作成される場合、元のデータへのアクセス、スナップショット ボリュームと元のボリュームのデータの追跡、およびスナップショットの削除は非常に複雑になります。さらに、スナップショット コピーは元のコピーに依存しているため、元のコピーのデータセットはすぐに断片化します。
4. ログ構造化ファイルのアーキテクチャ
この形式のスナップショット テクノロジは、ログ ファイルを利用して、元のデータ ボリュームへの書き込み操作を記録します。元のデータ ボリュームに対するすべての書き込み操作はログ システムに記録されます。これは、データ変更ごとにスナップショットを生成するのと同じです。したがって、これはデータベース システムのトランザクションやファイル システムのログに非常に似ており、必要に応じてログからデータを回復したり、トランザクションを適切な状態にロールバックしたりできます。厳密に言えば、この方法はスナップショットとは言えませんが、確かにスナップショットの目的は達成でき、ZFS、JFS、EXT3、NTFS など多くのファイルシステムでこの機能が実現されています。
5. スナップショットのクローン作成 (バックグラウンド コピーによるコピー書き込み)
上記のスナップショットは基本的に完全なスナップショット コピーを生成しないため、完全な物理データ コピーのビジネス ニーズを満たすことができません。クローン スナップショットは、ソース データ ボリュームと一致するミラー スナップショットを生成でき、コピー オン ライトおよびミラー スプリット スナップショット テクノロジの利点を最大限に活用します。スナップショット時点では、まずコピーオンライト方式を使用してスナップショット コピーを迅速に生成し、次にバックグラウンドでコピー プロセスを開始して、ソース データ ボリュームからスナップショット ボリュームへのブロック レベルのデータ コピー タスクを実行します。 。レプリケーションが完了すると、ミラー分割技術を通じてクローン スナップショットを取得できます。クローン スナップショットはスプリット ミラー スナップショットの欠点も引き継いでおり、ソース データ ボリュームの容量と同じスナップショット ボリュームが必要であることに加えて、ストレージ システム全体のパフォーマンスにもある程度の影響を与えます。
6. 継続的なデータ保護
上記のスナップショット テクノロジーにはすべて共通の欠点があります。つまり、いつでも必要なだけのスナップショットを作成することができないということです。ログ型スナップショットには上記のようなデメリットはありませんが、特定のファイルシステムに依存するため、異なるファイルシステムを使用するアプリケーションに直接適用することができず、ファイルシステムをベースとしないデータアプリケーションには無力です。
継続的データ保護 (継続的バックアップとも呼ばれます) は、ソース データ ボリュームのデータ ブロックの変更を自動的かつ継続的にキャプチャし、これらのデータ ブロックのバージョンを継続的かつ完全に記録します。すべてのデータ ブロックの変更は、インスタント スナップショットを生成するために記録されます。これは、スナップショット時点でスナップショットを作成する他のスナップショット テクノロジとは異なります。すべての書き込み操作が記録および保存されるため、任意の時点でデータ状態に動的にアクセスでき、きめ細かいデータ回復が可能になり、瞬時の回復が可能になり、目標回復ポイントを効果的に削減できます。ブロック レベルの継続的データ保護テクノロジの利点は、アプリケーションとの疎結合、高いパフォーマンスと効率、継続的で中断のないシステム動作、スナップショット ウィンドウの問題がないことです。その欠点は、比較的多くのストレージ容量を必要とすることであり、これがブロックレベルの継続的データ保護テクノロジの広範な適用を制限する根本的な理由でもあります。
次の表は、上記のスナップショット テクノロジをさまざまな観点から分析および比較しています。
結論と展示
スナップショット テクノロジーは、従来のデータ バックアップおよびレプリケーション テクノロジーに対する主要な革新であり、バックアップ ウィンドウの問題を解決し、目標復旧時間と目標復旧時点を効果的に短縮し、事実上のストレージ業界標準となっています。
スナップショット技術が発明されて以来、人々は多くの大幅な改良を行ってきました。スナップショット ウィンドウは数秒から瞬間まで縮小し続けています。スナップショットはほぼいつでも作成でき、粒度はより細かくなり、数も増加しています。スナップショットのパフォーマンスは大幅に向上し、ホストやアプリケーションへの影響は大きくなっています。マイクロレベルにまで縮小され、スナップショットの柔軟性が向上し、拡張性と管理性が継続的に強化されています。しかし、テクノロジーの進歩に対する人々の要求は決して際限がありません。現在のさまざまなソリューションにおいて、スナップショット テクノロジには、総合的なパフォーマンス、柔軟性、管理性の点でまだ改善の余地がたくさんあります。ストレージ ベンダーは新しいスナップショット ストレージ製品または新しいバージョンを発表し続けており、これが最も強力な証拠です。
【参照】
【参照】
【1】Snapshot.
http://www.snia.org/education/dictionary/s/#snapshot
【2】Point in time copy.
http://www.snia.org.cn/dic.php?word=p
【3】Alain AzagIIry, Michael E Factor, Julian Satran. Point-in-time copy,Yesterday, Today and Tomorrow[C]. College Park, USA: the 19th IEEESymposium on Mass Storage Systems. 2002:259-270.
【4】Snapshot.
http://www.ibm.com/developerworks/tivoli/library/t-snaptsm1/index.html
【5】Yuan Xiaoming、Lin An、いくつかの主流スナップショット技術の分析と比較、マイクロプロセッサ、No. 1、2008。
【6】Wang Shupeng、Yun Xiaochun、Guo Li. 継続的データ保護 (CDP) テクノロジーの開発のレビュー. Information Technology Letters、第 6 巻、第 6 号、2008 年。
【7】EMCTimeFinder.
http://china.emc.com/products/detail/software/timefinder.htm
【8】EMCTimeFinder.
http://china.emc.com/collateral/software/data-sheet/1700-timefinder.pdf
【9】HDSShadowImage.
http://www.hds.com/cn/products/storage-software/shadowimage-in-system-replication.html
【10】NetAppSnapshot.
http://www.netapp.com/us/products/platform-os/snapshot.html
【11】VeritasSnapshot.
http://eval.symantec.com/mktginfo/enterprise/yellowbooks/using_local_copy_services_03_2006.en-us.pdf
——End——


