Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

機能紹介 : データ復元可能性とミラーリング

この機能紹介ガイドでは、InterSystems IRIS® データ・プラットフォームのデータ復元可能性の機能について説明します。データ復元可能性は、クラッシュ回復、高可用性、災害復旧という 3 つの目標から成り、これらは InterSystems IRIS の複数の機能によって達成されます。

InterSystems IRIS の主要機能の 1 つは、論理的なデータ・レプリケーションによって、継続的で中断しないデータ・アクセスを実現する機能です。同期的にデータを複製できるので、計画的 (ソフトウェアのアップグレードなど) および計画外 (ハードウェア障害など) のいずれも、広範囲の停止シナリオでデータ損失のない自動フェイルオーバーができます。

同期的にデータを複製するには、2 つのノード間の低遅延が必要なので、一方が国中にデータを転送することが想定される災害復旧 (DR) シナリオには必ずしも適しているとは言えません。こうしたシナリオには、InterSystems IRIS は組み込みの非同期データ・レプリケーションを提供しています。

InterSystems IRIS のミラーリング機能では、高可用性を実現できます。InterSystems IRIS のデータ復元可能性について学んだ後、ミラーを作成し、バックアップ・メンバ上で同期的に自動複製されるデータ変更をプライマリ・メンバ上で行ってから、プライマリをシャットダウンして、ミラーがバックアップにフェイルオーバーするようにします。

これらのアクティビティでは既定の設定のみを使用するので、ユーザはこれらの機能の基本部分を十分に理解することができます。完全なドキュメントは、"InterSystems IRIS データ整合性ガイド" を参照してください。

無料のクラウド・インスタンスOpens in a new tabWeb インスタンスOpens in a new tabで実施できるものも含めて、すべての機能紹介を確認するには、"インターシステムズの機能紹介" を参照してください。

データ復元可能性 : InterSystems IRIS が実現する内容

データ復元可能性は複数のトピックにまたがりますが、すべて 1 つの原則を中心に展開されます。それは、データ・プラットフォームに記録されたデータには、何が起ころうとアクセス可能にするということです。

この目標を達成するには、いくつか異なる領域の問題に対処する必要があります。

  • エラーや電源障害の発生時にも、データの有効性を保証すること。

  • InterSystems IRIS サーバのローカル障害 (物理的障害またはソフトウェア関連) からのクラッシュ回復。

  • サイト全体の災害 (電源喪失、ネットワーク問題など) に対する保護。

こうした要件に対処するために、InterSystems IRIS は以下の機能を提供しています。

  • 構造的なデータベースの整合性 (ディスク上のデータベース・ブロックのコンテンツ) と、内部の整合性不全に対する保護 (データベース内で表現されるデータ)

  • トランザクション処理、ロック、自動的ロールバックによる論理的なデータベースの整合性

  • 自動フェイルオーバーによる組み込みの高可用性ソリューション

  • 物理的破損を持ち越すリスクを最小化し、共有リソースに依存しない論理的なデータ・レプリケーション

  • 計画されたダウンタイムと計画外のダウンタイムの両方に対応するソリューション

  • 地理的に分離された災害復旧構成によるビジネス継続性のメリット

InterSystems IRIS のデータ復元可能性は、プロダクション・システムのデータを 365 日 24 時間体制で保護します。

データ復元可能性 : InterSystems IRIS の実現方法

システムのダウンタイムによるコストは、影響を受けるシステムのタイプおよび停止のタイプや長さによって、数千ドルから数百万ドルの範囲に及ぶ場合があります。ダウンタイムからのすばやい復旧だけでなく、データを回復し、損失や破損からのデータ保護を確保する機能も重要です。InterSystems IRIS のライト・イメージ・ジャーナリング・テクノロジは、構造的なデータベースの整合化 (ディスク上のデータベース・ブロックのコンテンツ) を提供し、システムのクラッシュによって内部の整合性が失われないように保護します (データベース内で表現されるデータ)。InterSystems IRIS のバックアップとジャーナリング・システムによって、物理的な整合性障害からのリカバリが迅速化されます。データ復元可能性は、トランザクション処理、ロック、自動的ロールバックによって論理的なデータベースの整合性を確保します。ジャーナリングで提供される機能に加えて、InterSystems IRIS では、データベースをミラーリングすることで、迅速で効率的なデータ・レプリケーションと災害復旧が可能になります。

ライト・イメージ・ジャーナリング : 物理的なデータ破損と損失に対する保護

ディスクやコンピュータ処理が、突然、予期せずに中断されることがあります。これにより、最初のブロックが書き込まれた後、最後のブロックが更新されるまでの間に、複数のデータベース・ブロックの更新が停止します。このため、すべてのデータが通常の方法では回復できず、データベースが全体的に使用できないほど重大な事態になる可能性があります。InterSystems IRIS のライト・イメージ・ジャーナリング・テクノロジは、この種のデータ破損から保護します。不完全な更新によってデータベース構造に矛盾が生じるのを防ぎます。

ライト・イメージ・ジャーナリングは、2 フェーズのアプローチを使用してデータベースの更新を保護します。InterSystems IRIS インスタンスは、最初にメモリから中間ジャーナルの IRIS.WIJ ファイルに更新を書き込んでから、データベースに更新を書き込みます。最初のフェーズでシステムがクラッシュした場合、データベースにいずれの変更も加えられることなく更新は削除されます。第 2 フェーズでクラッシュした場合は、復旧時にライト・イメージ・ジャーナル (WIJ) から更新を再適用して、すべての更新がデータベースに加えられるようにできます。

ライト・デーモンは、InterSystems IRIS の起動時にライト・イメージ・ジャーナル (WIJ) ファイルを生成し、InterSystems IRIS データベースに更新情報を書き込む前に、WIJ にデータベースの更新を記録します。WIJ のすべての更新を入力した後、ファイル内にフラグを設定し、第 2 フェーズを開始します。ここでライト・デーモンは、WIJ 内に記録されたものと同じブロック・セットをディスク上のデータベースに書き込みます。この第 2 フェーズが完了したら、ライト・デーモンは WIJ 内にフラグを設定し、これが削除済みであることを示します。InterSystems IRIS を起動すると、WIJ が自動的にチェックされ、異常なシャットダウンが検出された場合はリカバリ・プロシージャが実行されます。このプロシージャが正常に完了すれば、データベースの内部整合性はリストアされています。シャットダウンに続き、InterSystems IRIS は WIJ のリカバリも実行します。これはデータを確実にバックアップできるようにするための安全対策です。2 つのフェーズで構成されるライト・プロトコル・プロセスのどちらに WIJ があるかに応じて、リカバリは以下のように実行されます。

  • WIJ の最終更新が完了した後、対応するデータベースの更新が完了する前にクラッシュが発生した場合は、WIJ がリストアされます。

  • WIJ の最終更新が確実にデータベースに書き込まれた後にクラッシュが発生した場合は、最新の WIJ 更新と影響を受けたデータベースの間のブロック比較が行われます。

ジャーナリング : 論理的なデータ破損と損失に対する保護

ジャーナリングはデータベース単位で実行できる機能で、データベースの変更はすべてジャーナルに記録されます。クラッシュが発生した場合、バックアップを回復して、データベースをクラッシュ発生時点の状態に戻した後に、直近のバックアップ以降に加えた更新を再適用できます。

InterSystems IRIS のリカバリ・プロセスは、"ロール・フォワード" アプローチを使用することで、最大限の保護機能を提供します。システム障害が発生した場合、実行途中の更新はリカバリ機能によって最後まで実行されます。また、更新順序も保護します。リカバリ後のデータベースに更新が存在する場合、先行するすべての更新も実行されます。データベースだけでなく、インクリメンタル・バックアップ・ファイル構造を保護します。クラッシュ後のリカバリに続き、有効なインクリメンタル・バックアップを実行できます。

ジャーナリングはデータ復元可能性の第 3 の機能であるミラーリングの基礎でもあります。

ミラーリング : 高可用性および災害復旧のソリューション

InterSystems IRIS のミラーリングは、システム可用性戦略の自動フェイルオーバー・カテゴリに位置します。ミラーリングは、データベース可用性に対して、包括的で信頼性の高い、強固な企業向けソリューションを実現します。共有リソース (共有ディスクなど) に依存した従来の可用性ソリューションは、その共有リソースの単一点障害の影響を受けることがしばしばあります。ミラーリングでは、プライマリ・ミラー・メンバとバックアップ・ミラー・メンバで独立したリソースを保持することによって、このリスクが低減されます。さらにミラーリングでは、論理データ・レプリケーションを利用することにより、SAN ベースのレプリケーションなどの物理的レプリケーション・テクノロジに関連するリスク (不適切な更新、破損の繰り越しなど) が回避されます。

InterSystems IRIS は、高可用性ミラーリングについて、ミラーリングと仮想化という 2 つのオプションを提供します。

ミラーリング

自動フェイルオーバーを備えた InterSystems IRIS のミラーリングは、完全に独立したシステム間の論理的なデータ・レプリケーションに依存します。複数システム向けの共有ストレージを使用する場合に、単一障害点が発生するリスクを回避します。また、すべて (システム、ストレージ、およびネットワーク) の障害シナリオで、プロダクション・システムが即座に代替の InterSystems IRIS インスタンスにフェイルオーバーできるようにします。

InterSystems IRIS ミラーでは、プライマリ・フェイルオーバー・メンバと呼ばれる 1 つの InterSystems IRIS インスタンスがプロダクション・データベースへのアクセスを提供します。別のホスト上のバックアップ・フェイルオーバー・メンバと呼ばれるもう 1 つのインスタンスは、プライマリと同期的に通信して、プライマリのジャーナル・レコードを取得し、レコードの受信を通知し、そのレコードを同じデータベースのバックアップ側専用のコピーに適用します。この方法では、バックアップがプライマリから最新のジャーナル・ファイルを受け取っているかどうかについて、プライマリとバックアップの両方が常に認識しているため、バックアップとプライマリのデータベースを正確に同期できるようになります。

InterSystems IRIS ミラーリングのもう 1 つの優れた機能は、企業全体の複数のミラーから更新を受信できる特別な非同期メンバを構成できることです。非同期メンバは単一ミラーの災害復旧に対して構成できます。これにより、必要に応じて非同期メンバをシームレスにいずれかのフェイルオーバー・メンバの代わりとすることができます。1 つのミラーには最大 16 個のメンバを含めることができるので、地理的に分散した多数の DR 非同期メンバを構成できます。このモデルは分散データ・レプリケーションのための強固なフレームワークを提供し、それによって組織にはビジネス継続性というメリットがもたらされるようになります。

付加価値として、非同期メンバによるミラーリングでは、単一のシステムが包括的なエンタープライズ・データ・ウェアハウスとして動作できます。これにより、企業全体のデータ・マイニングとビジネス・インテリジェンスが実現されます。

仮想化プラットフォーム

仮想化プラットフォームには HA 機能が用意されていることが一般的で、多くの場合、ゲスト・オペレーティング・システムとそこで稼働しているハードウェアの両方のステータスを HA 機能で監視します。ミラーを構成する InterSystems IRIS インスタンスが仮想ホストにインストールされている仮想化環境でミラーリングを使用すると、ミラーリングの利点と仮想化の利点を併せ持つハイブリッド高可用性ソリューションが実現します。ミラーは計画的または計画外の停止に自動フェイルオーバーで即座に対応し、仮想 HA ソフトウェアは計画外のマシン停止や OS 停止後に、ミラー・メンバをホストする仮想マシンを自動的に再起動します。これにより、障害が発生したメンバは、すぐにミラーに再参加できるようになり、バックアップとして動作します (必要であればプライマリを引き継ぎます)。そのどちらかに障害が発生すると、仮想化プラットフォームは障害が発生した仮想マシンを自動的に再起動します。必要に応じて、代替のハードウェア上で再起動することもあります。InterSystems IRIS インスタンスは、再起動時に通常のスタートアップ・リカバリを自動的に実行し、物理サーバで InterSystems IRIS を再起動した場合とまったく同じように構造的な整合性と論理的な整合性が維持されます。

InterSystems IRIS によるデータベースのミラーリング : 体験

ここまでは InterSystems IRIS のデータ復元可能性の背景知識と提供機能について説明しました。ここからはミラーリングを通して使用例の一部を見ていきます。

InterSystems IRIS によるミラーリング環境の設定は簡単です。InterSystems Cloud Manager (ICM) を使用してこれを行うことができます。ICM は、ミラーのプロビジョニング、導入、および構成を自動的に行います。または、管理ポータルを使用して手動で行うこともできます。このドキュメントでは、ICM を使用したミラーの導入について説明します (管理ポータルから、2 つのインストール済み InterSystems IRIS インスタンスを使用してミラーを作成する手順は、"高可用性ガイド" の “ミラーリング” の章の "ミラーの作成" を参照してください)。

この実践練習では、Amazon Web Services パブリック・クラウドに、InterSystems IRIS インスタンスのミラー・ペアを導入します。Opens in a new tabこれを行うには、"機能紹介 : InterSystems Cloud Manager" の "体験 : ICM によるクラウドへの InterSystems IRIS の導入Opens in a new tab" の手順に従い、"サンプル構成ファイルのカスタマイズ" のセクションで以下の変更を加えます。

  • defaults.json ファイルで、“Mirror”: “True” を追加します。

  • arbiter イメージを指定する AR ノード定義を追加して、definitions.json ファイルをカスタマイズします。

    [
       {
        "Role": "DATA",
        "Count": "2",
        "LicenseKey": "ubuntu-sharding-iris.key"
        },
        {
        "Role": "AR",
        "Count": "1",
        "StartCount": "3",
        "DockerImage": "intersystems/arbiter:stable"
        }
    ]
    
    

DockerImage プロパティが AR ノード定義に含まれている必要があります。AR ノードでは DATA などの InterSystems IRIS ノードとは異なるインターシステムズのイメージが使用されるからです。arbiter イメージをローカルで使用可能にする必要があります。この操作の詳細は、"機能紹介 : InterSystems Cloud Manager" の "Docker リポジトリと資格情報の識別" を参照してください。

これらの変更を含め、構成ファイルのカスタマイズが完了したら、次の手順に進みます。“InterSystems IRIS の導入” の手順 (icm run コマンド) が完了し、ミラーをクラウドに導入したら、ICM コマンド行を使用し、以下の操作を実行して、ミラーを試してみます。

  • プライマリ・フェイルオーバー・メンバでグローバルを設定し、それがバックアップ・フェイルオーバー・メンバにも設定されることを確認する

  • 計画的フェイルオーバーをプライマリからバックアップにトリガする

この操作には、以下の手順を使用します。

  1. ICM コマンド行に icm inventory コマンドを入力し、ミラー・メンバの名前とミラー・ロールを確認します。このコマンドによって、プロビジョニング済みのクラウド・ホスト・ノードがリストされます。ICM によってプロビジョニングされたノードには Label-Role-Tag-NNNN という名前が付きます。Role は ICM ノード・タイプ (ここでは DATA) を表し、その他の部分はユーザによって割り当てられます。ミラー・メンバは、初期プライマリの場合は + (プラス)、初期バックアップの場合は - (マイナス) で示されます。この手順のその他の例では、label フィールドを Acme、tag フィールドを TEST と設定していることが前提となっており、その結果、次のような icm inventory 出力となります。

    $ icm inventory
    Machine              IP Address     DNS Name                                           Region    Zone
    -------              ----------     --------                                           ------    ----
    Acme-DATA-TEST-0001+ 00.53.183.209  ec2-00-53-183-209.us-west-1.compute.amazonaws.com  us-west-1 c
    Acme-DATA-TEST-0002- 00.53.183.185  ec2-00-53-183-185.us-west-1.compute.amazonaws.com  us-west-1 c
    
    
    Note:

    ノードの番号付けとミラー・ロールとの間に関係性はありません。+ および - の記号は、初期のミラー割り当てのみを示します。ライブのミラー・ステータスの場合は、icm ps コマンドを使用します。

  2. 次のコマンドを入力して、プライマリ・ミラー・メンバの InterSystems ターミナルを開きます。

    $ icm session -interactive -machine Acme-DATA-TEST-0001
    
  3. ターミナル・ウィンドウが開いたとき、DB ネームスペースにいます。これは、ミラーリングされたデータベース DB にマップされます (既定で ICM によって両方が作成されています)。以下のコマンドを入力して、DB データベース内にグローバルを作成します (グローバルによって InterSystems IRIS データベース内にデータが格納されます)。

    DB> Set ^myfirstglobal="congratulations"
    
  4. 以下のコマンドを入力して、グローバルの値を表示します。

    DB> Write ^myfirstglobal
    congratulations
    
  5. 以下のコマンドを使用して、バックアップ・フェイルオーバー・メンバのターミナル・ウィンドウを開きます。

    $ icm session -interactive -machine Acme-DATA-TEST-0002
    
  6. 同じ Write コマンドを入力します。グローバルが存在し、その値はプライマリで設定したものになっています。データが、バックアップ上の DB データベースに同期的に自動ミラーリングされました。

    DB> Write ^myfirstglobal
    congratulations
    
  7. バックアップ上のミラーリングされたデータベースは読み取り専用です。グローバルの値を変更しようとするとエラーが発生します。

    DB> Set ^myfirstglobal="what next?"
    <PROTECT>
    
  8. ICM コマンド行に戻り、以下のコマンドを使用して、コンテナ内のプライマリ InterSystems IRIS インスタンス (既定で ICM によって IRIS という名前が付けられています) をシャットダウンして、再起動します。

    $ icm exec -command "iris stop IRIS quietly restart" -machine Acme-DATA-TEST-0001
    
    Note:

    -quietly 引数は、iris stop コマンドが発行者にプロンプトを表示しないようにします。これにより、ICM はタイムアウトになるまで待機します。または、以下のようにコマンドをインタラクティブに実行し、プロンプトに応答できるようにすることもできます。

    $ icm exec -command "iris stop IRIS restart" -interactive -machine Acme-DATA-TEST-0001
    
  9. 数秒待ってから、Acme-DATA-TEST-0002 のターミナル・ウィンドウに戻ります。計画的または計画外の停止によりプライマリが使用不可になった場合、ミラーはバックアップに自動的にフェイルオーバーして、バックアップが新しいプライマリになります。つまり、Acme-DATA-TEST-0002 がプライマリになったので、グローバルの値を変更できるようになりました。

    DB> Set ^myfirstglobal="what next?"
    DB> Write ^myfirstglobal
    what next?
    
  10. icm ps コマンドを使用して、新しいミラー・ロールを表示します。

    $ icm ps
    Machine                  IP Address      Container    Status   Health    Mirror   Image
    -------                  ----------      ---------    ------   ------    ------   -----
    Acme-DATA-TEST-0001-     00.53.183.209   icm          Up       healthy   BACKUP   acme/icm:latest
    Acme-DATA-TEST-0002+     00.53.183.185   icm          Up       healthy   PRIMARY  acme/icm:latest
    
    
  11. 前のプライマリ Acme-DATA-TEST-0001 の新しいターミナル・ウィンドウを開くと、再起動時に Acme-DATA-TEST-0002 がプライマリになっていることがわかり、前のプライマリは新しいバックアップになっています。この結果、グローバルの値は新しいプライマリで設定されたものに更新されており、ユーザがこれを変更することはできません。

    $ icm session -interactive -machine Acme-DATA-TEST-0001
    DB> Write ^myfirstglobal
    what next?
    DB> Set ^myfirstglobal="another First Look!"
    <PROTECT>
    

バックアップ・ミラー・メンバは、常にプライマリから引き継ぐ準備を整えて、データベースの可用性を保持し、データを破損と損失から保護できるようにしています。

ミラーの実践練習を完了したら、"機能紹介 : InterSystems Cloud Manager" の "インフラストラクチャのプロビジョニング解除" に戻り、クラウド・ノードのプロビジョニング解除の手順に従ってください。AWS およびその他のパブリック・クラウド・プラットフォームのインスタンスは継続的に課金されるので、この練習が完了したらすぐに、インフラストラクチャのプロビジョニングを解除することが重要です。

インターシステムズのデータ復元可能性の詳細

InterSystems IRIS のデータ復元可能性と ICM の詳細は、以下を参照してください。

詳細情報 :

FeedbackOpens in a new tab