LoginSignup
1

More than 5 years have passed since last update.

異なるドメインに仮想マシンを移行する方法(スナップショットの移行)

Last updated at Posted at 2017-05-01

はじめに

Oracle Compute Cloud Service上の仮想マシン(インスタンス)のボリューム・スナップショットを取得すると、取得したスナップショットのファイル群はObject Storageのコンテナに格納されます。
このObject Storageに取得されたスナップショット・ファイルを利用し、仮想マシンにアタッチしていたストレージボリュームを他のドメインの仮想マシンに移行できないか試してみました。

尚、以下の手順は公式資料に明記されているものではありません。

手順

スナップショットの作成

最初のステップは、ストレージ・ボリュームのスナップショットの作成です。

Compute Cloud Service Consoleに移動し、Storageタブを選択、スナップショットを取得したいボリュームの右にあるメニューから、スナップショットの作成をクリックします。

image

スナップショット名を入力し作成をクリックします。

image

作成完了の確認

画面左のストレージ・スナップショットのメニューを選択すると、取得済みのスナップショットを確認できます。

先ほど取得したスナップショットの三本線マークにポインタをあわせるとステータスが確認できるので、スナップショットの取得が完了していることを確認します。

image

Snapshot IDの取得

REST APIを利用し、Snapshot IDを取得します。

Compute Cloud Serviceにアクセスするためのトークンを取得します。

curl -s -i -X POST -H 'Content-Type: application/oracle-compute-v3+json' -d '{"user":"/Compute-${IDENTITY-DOMAIN}/${USER}","password":"${PASSWORD}"}' https://api-${z}.compute.${dc}.oraclecloud.com/authenticate/

取得したトークンを変数COMPUTE_COOKIEに利用し、Snapshot IDを確認します。

curl -s -X GET -H 'Cookie: $COMPUTE_COOKIE' -H 'Accept: application/oracle-compute-v3+json' https://api-${z}.compute.${dc}.oraclecloud.com/storage/snapshot/Compute-${IDENTITY-DOMAIN}/${USER}/ | python -m json.tool

出力サンプル
"snapshot_id": "410891b4783cf2abee815ff3453aa22b0c1fa680f6600f9a96e8ad8f22363673-us2",

移行

移行元からダウンロード

Storage Cloud Service に接続し、上記で得られたSnapshotIDを持つファイルをダウンロードします。
以下はCloudBerry Explorerを利用した際の画面イメージです。3つの各コンテナから該当ファイルをダウンロードします。

以下はCloudBerry Explorerを利用しています。

image

移行先へアップロード

移行先となる異なるアイデンティティ・ドメインのStorage Cloud Serviceに接続し、各スナップショットファイルをアップロードします。
このとき、各コンテナ名、フォルダ構造は元のStorage Cloud Serviceと同一になるようにしてください。

移行先でのリストア

移行先のStorage Cloud Serviceにアップロードしたスナップショットから、移行先のCompute Cloud Service上にストレージボリュームをリストアします。

JSONファイルの準備

restorestoragesnapshot.json
{
"size":"1G",
"properties":["/oracle/public/storage/default"],
"name":"/Compute-gse00011371/cloud.admin/tn-restored_volume01",
"bootable":false,
"snapshot_id":"410891b4783cf2abee815ff3453aa22b0c1fa680f6600f9a96e8ad8f22363673-us2"
}

リストア実施

$ curl -i -X POST -H 'Cookie: $COMPUTE_COOKIE' -H "Content-Type: application/oracle-compute-v3+json" -H "Accept:application/oracle-compute-v3+json" -d "@restorestoragesnapshot.json" https://api-${z}.compute.${dc}.oraclecloud.com/storage/volume/

リストア確認

リストアが完了するとストレージ・ボリュームにリストアしたボリュームが表示されます。

image

最後に

以上の手順を踏むと、異なるアイデンティティ・ドメインにボリュームを移行、コピーすることができます。

尚、同手順でObject Storageに保存されたスナップショットをバックアップとして、ローカルのNASなどに保存しておくことができます。(スナップショットIDは変えられないので、リストアするときはIDが重複しないことが前提)
Storage Cloud Serviceの製品機能として、他のDCに非同期でレプリケーションされているため、ローカルにあえて保存しておく必要性は低いものの、3次バックアップを保存しておきたいと言った場合に利用できるかと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1