はじめに
Oracle Compute Cloud Service上の仮想マシン(インスタンス)のボリューム・スナップショットを取得すると、取得したスナップショットのファイル群はObject Storageのコンテナに格納されます。
このObject Storageに取得されたスナップショット・ファイルを利用し、仮想マシンにアタッチしていたストレージボリュームを他のドメインの仮想マシンに移行できないか試してみました。
尚、以下の手順は公式資料に明記されているものではありません。
手順
スナップショットの作成
最初のステップは、ストレージ・ボリュームのスナップショットの作成です。
Compute Cloud Service Consoleに移動し、Storageタブを選択、スナップショットを取得したいボリュームの右にあるメニューから、スナップショットの作成をクリックします。
スナップショット名を入力し作成をクリックします。
作成完了の確認
画面左のストレージ・スナップショットのメニューを選択すると、取得済みのスナップショットを確認できます。
先ほど取得したスナップショットの三本線マークにポインタをあわせるとステータスが確認できるので、スナップショットの取得が完了していることを確認します。
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を利用しています。
移行先へアップロード
移行先となる異なるアイデンティティ・ドメインの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/
リストア確認
リストアが完了するとストレージ・ボリュームにリストアしたボリュームが表示されます。
最後に
以上の手順を踏むと、異なるアイデンティティ・ドメインにボリュームを移行、コピーすることができます。
尚、同手順でObject Storageに保存されたスナップショットをバックアップとして、ローカルのNASなどに保存しておくことができます。(スナップショットIDは変えられないので、リストアするときはIDが重複しないことが前提)
Storage Cloud Serviceの製品機能として、他のDCに非同期でレプリケーションされているため、ローカルにあえて保存しておく必要性は低いものの、3次バックアップを保存しておきたいと言った場合に利用できるかと思います。