###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2020 # # API実行サンプル名: # 02-015_仮想サーバインポート【一括アップロード】 # # 内容: # オンプレミス仮想環境で動作している仮想サーバのイメージファイルを、 # FJcloud-O IaaSで利用可能なイメージファイルとして登録する手順です。 # アップロードする際にイメージファイルを一括でアップロードする手順です。 # # 版数:v1.1 # 更新日:2020/06/11 # ###################################################################### 手順: ─────────────────────────────────── 項番1.オブジェクトストレージコンテナ作成 項番1-1.オブジェクトストレージコンテナ作成 項番1-2.コンテナ一覧確認 項番2.仮想サーバイメージファイルの一括アップロード 項番2-1.仮想サーバイメージファイルの一括アップロード 項番2-2.アップロード確認 項番3.仮想サーバイメージインポート 項番3-1.UUID作成 項番3-2.仮想サーバイメージインポート 項番3-3.仮想サーバイメージインポート状況確認 項番4.仮想サーバインポート確認 項番5.イメージ確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・オンプレミス仮想環境の仮想サーバイメージファイル ─────────────────────────────────── 注意事項: ・仮想サーバインポート機能を利用前にIaaS機能説明書の コンピュート -スタンダードサービス -仮想環境間の移行 -仮想サーバインポート(仮想環境間移行) を参照し、移行元OSに対して、 IaaS環境上で動作させるために必要な環境設定を行って ください。 ・仮想サーバイメージファイルの容量が5GB以上の場合は、API実行サンプル 「仮想サーバインポート【分割アップロード】」を参照してください。 項番1.オブジェクトストレージコンテナ作成 オンプレミス仮想環境の仮想サーバイメージファイルを IaaS環境へ アップロードするため、オブジェクトストレージのコンテナを作成し、 コンテナが作成されたことを確認します。 項番1-1.オブジェクトストレージコンテナ作成 オンプレミス仮想環境の仮想サーバイメージファイルを IaaS環境へ アップロードするためのオブジェクトストレージのコンテナを作成します。 環境定義コマンド例: ====================================================================== # CONT_NAME=<作成するコンテナ名> CONT_NAME=TEST_VM_IMPORT_01 API実行コマンド例: ====================================================================== curl -i $OBJECTSTORAGE/v1/AUTH_$PROJECT_ID/$CONT_NAME -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" レスポンス例: ====================================================================== HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ012232416_201 X-Trans-Id: tx2477553e3285426892a56-005a2a3069 Date: Fri, 08 Dec 2017 06:25:45 GMT Content-Type: text/html;charset=UTF-8 Content-Length: 0 ====================================================================== 項番1-2.コンテナ一覧確認 コンテナが作成されたことを確認します。 API実行コマンド例: ====================================================================== curl -Ss $OBJECTSTORAGE/v1/AUTH_$PROJECT_ID?format=json -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== [ { "name": "TEST_VM_IMPORT_01", "bytes": 0, "count": 0 } ] ====================================================================== 項番2.仮想サーバイメージファイルの一括アップロード オンプレミス仮想環境の仮想サーバイメージファイルを作成したコンテナへ 一括アップロードし、アップロードされたことを確認します。 項番2-1.仮想サーバイメージファイルの一括アップロード オンプレミス仮想環境の仮想サーバイメージファイルを作成した コンテナへ一括アップロードします。 注意事項: ・仮想サーバイメージファイルの容量が5GB以上の場合は、API実行サンプル 「仮想サーバインポート【分割アップロード】」を参照してください。 環境定義コマンド例: ====================================================================== # CONT_NAME=<作成したコンテナ名> CONT_NAME=TEST_VM_IMPORT_01 # OBJECT_NAME=<コンテナにアップロードするオブジェクト名> OBJECT_NAME=win2008r2_disk01.vmdk # FILE_PATH=<アップロードする仮想サーバイメージの格納先(ローカル環境の # パスを指定)> FILE_PATH=/home/test_user01/VM_Image/win2008r2_disk01.vmdk API実行コマンド例: ====================================================================== curl -i $OBJECTSTORAGE/v1/AUTH_$PROJECT_ID/$CONT_NAME/$OBJECT_NAME -X PUT -T "$FILE_PATH" -H "X-Auth-Token: $OS_AUTH_TOKEN" レスポンス例: ====================================================================== HTTP/1.1 100 Continue HTTP/1.1 201 Created X-Fcx-Endpoint-Request: EXECUTED_REQ012279874_201 Last-Modified: Fri, 08 Dec 2017 06:39:03 GMT Etag: ccff7ea3542fd678061c2ad480e8935c X-Trans-Id: txc6b97b92f6d649d7981e8-005a2a3386 Date: Fri, 08 Dec 2017 06:41:23 GMT Content-Type: text/html;charset=UTF-8 Content-Length: 0 ====================================================================== 項番2-2.アップロード確認 コンテナにイメージファイルがアップロードされたことを確認します。 アップロード前のファイルサイズと「"bytes"」パラメータのファイル サイズが一致していることを確認してください。 注意事項: ・アップロード完了まで時間がかかる場合があります。 環境定義コマンド例: ====================================================================== # CONT_NAME=<イメージファイルをアップロードしたコンテナ名> CONT_NAME=TEST_VM_IMPORT_01 API実行コマンド例: ====================================================================== curl -Ss $OBJECTSTORAGE/v1/AUTH_$PROJECT_ID/$CONT_NAME?format=json -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== [ { "content_type": "application/octet-stream", "name": "win2008r2_disk01.vmdk", "bytes": 3318266368, "last_modified": "2017-12-08T06:39:02.307540", "hash": "ccff7ea3542fd678061c2ad480e712f" } ] ====================================================================== 項番3.仮想サーバイメージインポート コンテナにアップロードした仮想サーバイメージを IaaS環境に インポートし、インポート状況を確認します。 項番3-1.UUID作成 仮想サーバイメージインポート時にUUIDが必要となるためUUIDを作成 します。 注意事項: ・イメージインポートの成否にかかわらず、一度利用したUUIDの再利用は できません。再作成を実施してください。 ・本サンプルではCentOS環境を利用した一例を記載しています。 実行コマンド例: ====================================================================== # uuidgen uuidgen レスポンス例: ====================================================================== fea0c3ea-029b-43f3-ae71-27ffdb367609 ====================================================================== 項番3-2.仮想サーバイメージインポート コンテナにアップロードした仮想サーバイメージを IaaS環境に インポートします。 注意事項: ・OS種別については、IaaS機能説明書の以下を参照ください コンピュート -スタンダードサービス -仮想環境間の移行-仮想サーバインポート(仮想環境間移行) -IaaS環境での作業-仮想サーバイメージインポート機能 仮想サーバイメージ登録機能 ・イメージインポート完了までに時間がかかる場合があります。 環境定義コマンド例: ====================================================================== # IMAGE_NAME=<インポートするイメージ名> IMAGE_NAME=TEST_Win2008r2_IMPORT_01 # CONT_NAME=<イメージをアップロードしたコンテナ名> CONT_NAME=TEST_VM_IMPORT_01 # OBJECT_NAME=<アップロードしたオブジェクト名> OBJECT_NAME=win2008r2_disk01.vmdk # LOCATION=<アップロードしたオブジェクトの格納先> LOCATION=/v1/AUTH_$PROJECT_ID/$CONT_NAME/$OBJECT_NAME # UUID=<作成したUUID> UUID=fea0c3ea-029b-43f3-ae71-27ffdb367609 # OS_TYPE=<インポートするOS種別> OS_TYPE=win2008R2SE API実行コマンド例: ====================================================================== curl -Ss $VMIMPORT/v1/imageimport -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"name" : "'$IMAGE_NAME'", "location": "'$LOCATION'", "id":"'$UUID'", "os_type":"'$OS_TYPE'"}' | jq . レスポンス例: ====================================================================== { "import_id": "17921829-276e-4f6f-8baf-1529b2e828ut" } ====================================================================== 項番3-3.仮想サーバイメージインポート状況確認 イメージのインポート状況を以下のパラメータで確認します。 ・"import_status": "queued" - インポート処理実行開始待ち。 ・"import_status": "processing" - インポート処理中。 ・"import_status": "failed" - インポート処理失敗。 ・"import_status": "succeeded" - インポート処理正常終了。 環境定義コマンド例: ====================================================================== # IMPORT_ID=<イメージのインポートID> IMPORT_ID=17921829-276e-4f6f-8baf-1529b2e828ut API実行コマンド例: ====================================================================== curl -Ss $VMIMPORT/v1/imageimport/$IMPORT_ID/status -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "os_type": "win2008R2SE", "protected": false, "ovf_location": "", "created_at": "2017-12-08T08:00:23Z", "name": "TEST_Win2008r2_IMPORT_01", "min_disk": 0, "visibility": "private", "size": 17179869184, "id": "e3368842-bd95-4bfb-a001-a12b8243ds35", "owner": "<プロジェクトID>", "file": "/v2/images/e3368842-bd95-4bfb-a001-a12b8243ds35/file", "fcx.base_image_id": "22e07f0ac3622e1ff2c34cb060012716", "updated_at": "2017-12-08T08:00:24Z", "min_ram": 0, "container_format": "bare", "conversion": true, "disk_format": "raw", "location": "/v1/AUTH_<プロジェクトID>/TEST_VM_IMPORT_01/win2008r2_disk01.vmdk", "progress": 100, "schema": "/v2/schemas/image", "status": "active", "import_status": "succeeded", "tags": [] } ====================================================================== 項番4.仮想サーバインポート確認 イメージのインポート状況を一覧で確認します。 API実行コマンド例: ====================================================================== curl -Ss $VMIMPORT/v1/imageimport -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "imports": [ { "import_status": "succeeded", "status": "/v1/imageimport/17921829-276e-4f6f-8baf-1529b2e828ut/status", "import_id": "17921829-276e-4f6f-8baf-1529b2e828ut" } ] } ====================================================================== 項番5.イメージ確認 イメージがインポートされたことを確認します。 環境定義コマンド例: ====================================================================== # IMAGE_ID=<インポートしたイメージID> IMAGE_ID=e3368842-bd95-4bfb-a001-a12b8243ds35 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/images/$IMAGE_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "image": { "metadata": { "fcx.base_image_id": "22e07f0ac3622e1ff2c34cb060012716", "fcx.win": "true" }, "minRam": 0, "progress": 100, "status": "ACTIVE", "updated": "2017-12-08T08:00:22Z", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/images/e3368842-bd95-4bfb-a001-a12b8243ds35" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/images/e3368842-bd95-4bfb-a001-a12b8243ds35" }, { "rel": "alternate", "type": "application/vnd.openstack.image", "href": "http://10.27.0.119:9292/<プロジェクトID>/images/e3368842-bd95-4bfb-a001-a12b8243ds35" } ], "id": "e3368842-bd95-4bfb-a001-a12b8243ds35", "OS-EXT-IMG-SIZE:size": 17179869184, "name": "TEST_Win2008r2_IMPORT_01", "created": "2017-12-08T08:00:15Z", "minDisk": 0 } } ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版 サービス名称変更修正等 ─────────────────────────────────── 以上