Pythonを使用した、テナンシ間でのOCIコンピュートおよびボリュームの移行の簡素化 (2023/11/29)

Pythonを使用した、テナンシ間でのOCIコンピュートおよびボリュームの移行の簡素化 (2023/11/29)

https://blogs.oracle.com/cloud-infrastructure/post/simplify-migration-oci-compute-volume-python

投稿者:Meghashree N | solution Engineer


テナンシ間でのコンピュート・リソースおよびボリュームの移行は、複雑なタスクになる可能性があります。しかし、適切にテストされたプロセスにより、テナンシ間でダウンタイムをほとんど発生させずに、データを安全に移行できます。移行するデータが巨大な場合はどうなりますか。複数の仮想マシン(VM)と数百のブロックボリュームにまたがるため、プロセス全体がさらに困難になり、さらに複雑になります。


このブログ記事では、Pythonを使用して移行プロセスの様々なタスクを簡素化する方法を説明し、関連するプロセスと使用するスクリプトについて簡単に説明します。テナンシ間でデータを移動するお客様を支援するために、次の機能を示します。


  • 異なるサービス・プロバイダなどの運用上およびビジネス上の理由から、新しいテナンシにVMおよびデータを移行
  • ランサムウェア攻撃からのデータの保護
  • 複数の顧客テナンシ間でのVMの移行


この場合、次のアーキテクチャに示すように、仮想マシンとボリュームは2つの異なるテナンシ間で移動されます。




前提条件


テナンシ間でバックアップをリストアするには、事前定義済のポリシーが必要です。これらのポリシーは、OCIアイデンティティ・ポリシーによって制御されます。許可ポリシーは古いテナンシで定義する必要があり、承認ポリシーは新しいテナンシで定義する必要があります。


許可ポリシーには、次の情報が含まれます。


Define tenancy NewTenancy as <new_tenancy_ocid>
Define group NewTenancyIdentityGroup as <new_tenancy_group_ocid>
Admit group NewTenancyIdentityGroup of tenancy NewTenancy to read boot-volume-backups in tenancy
Admit group NewTenancyIdentityGroup of tenancy NewTenancy to read volume-backups in tenancy


承認ポリシーには、次の情報が含まれます。


Define tenancy OldTenancy as <old_tenancy_ocid>
Endorse group NewTenancyIdentityGroup to read boot-volume-backups in tenancy OldTenancy
Endorse group NewTenancyIdentityGroup to read volume-backups in tenancy OldTenancy
Endorse group NewTenancyIdentityGroup to inspect volumes in tenancy OldTenancy


相互移行アクティビティに必要な権限を付与し、アクティビティの完了時にポリシーを削除します。ポリシーの詳細は、「テナンシ間でのOracle Cloud Infrastructureボリューム・データの移行について」を参照してください。


推奨ハードウェア


Pythonコードをデプロイするには、両方のテナンシでインスタンスを作成する必要がある場合があります。この場合、VM標準E4でOracle Linux 8を使用しています。1 OCPUおよび6GBメモリーのフレックス・シェイプ。このスクリプトでは、コードが機能するために、pip3、PandasおよびOCI-CLIのインストールが必要になる場合があります。ローカル・マシンからスクリプトを実行する場合は、すべてのPythonパッケージ、OCI-CLIおよび認証資格証明が2つの異なるテナンシに対して構成されていることを確認します。


プロセスとスクリプト


インスタンスが実行中の場合、インスタンスにSSH接続して、Pandasなどの必要なPythonパッケージをインストールできます。このGitHubリポジトリからスクリプトをインポートできます。インスタンスでスクリプトをテストする前に、OCI CLIを構成します。Pythonスクリプトでは、古いテナンシでのカスタム・イメージおよびバックアップの作成、およびカスタム・イメージおよびボリュームの新しいテナンシへの移動について説明します。次のスクリプトは、2つの異なるテナンシに対して実行する必要があります。スクリプトは、GitHubにあります。



スクリプト1


  • コンパートメントに存在するインスタンスごとに、カスタム・イメージを作成し、後で使用するために生成されたカスタム・イメージOCIDを保存します。
  • オブジェクト・ストレージ・バケットが存在するかどうかを確認します。そうでない場合は、作成したカスタム・イメージをエクスポートするために、バケットおよびバケットの事前認証済リクエストを作成します。
  • カスタム・イメージをバケットにエクスポートし、PARを作成して作成したオブジェクトを作成し、ファイルに格納します。
  • コンパートメントに存在する各ブロック・ボリュームのバックアップを作成します。


スクリプト2


  • 前のステップで作成した各オブジェクトのPAR URLを作成します。


スクリプト3


  • このスクリプトを実行している新しいテナンシでは、ファイルが読み取られ、オブジェクトごとに作成されたPARに対して、PARアクセスURIからイメージがインポートされます。次に、カスタム・イメージを作成します。
  • 古いテナンシで作成されたバックアップから、新しいテナンシにブロック・ボリュームを作成します。


もっと見る


このスクリプト・セットは、大量のデータを移行し、複数のテナンシにわたって計算します。これは、pythonによる移行に伴う複雑さを軽減する優れた方法です。ぜひ、楽しく学びましょう!


テナンシ間のOracle Cloud Infrastructureのコンピュートおよびボリュームの移行についてさらに学習するには、次のリソースを参照してください:

コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)