Pythonを使用したテナンシ間でのOCIコンピュートおよびボリュームの移行の簡素化 (2024/11/30)
Pythonを使用したテナンシ間でのOCIコンピュートおよびボリュームの移行の簡素化 (2024/11/30)
https://blogs.oracle.com/cloud-infrastructure/post/simplify-migration-oci-compute-volume-python
投稿者: Meghashree N | solution Engineer
テナンシ間でのコンピュート・リソースおよびボリュームの移行は、複雑なタスクになる可能性があります。ただし、適切にテストされたプロセスを利用することで、テナンシ間でわずかなダウンタイムで安全にデータを移行できます。移行するデータが大きい場合はどうなりますか。複数の仮想マシン(VM)および数百のブロック・ボリュームにまたがるため、プロセス全体がさらに困難になり、さらに複雑になります。
このブログ投稿では、Pythonを使用して移行プロセスの様々なタスクを簡素化し、関連するプロセスと使用するスクリプトについて簡単に説明します。テナンシ間でデータを移動したいお客様を支援するために、次の機能を示します。
- 異なるサービス・プロバイダなどの運用上の理由やビジネス上の理由により、VMやデータを新しいテナンシに移行
- ランサムウェア攻撃からのデータの保護
- 複数の顧客テナンシ間での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.StandardE4.Flexシェイプ1 OCPUと6GBメモリーでOracle Linux 8を使用しています。スクリプトでは、コードが機能するように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のコンピュートおよびボリュームのテナンシ間での移行についてさらに学習するには、次のリソースを参照してください:
コメント
コメントを投稿