###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-019_仮想サーバの解放/復元 # # 内容: # 仮想サーバの解放/復元を実施するための手順です。 # # 版数:v1.0 # 更新日:2017/12/22 ###################################################################### 手順: ─────────────────────────────────── 項番1.仮想サーバ状態確認 項番2.仮想サーバ解放 項番3.仮想サーバ状態確認 項番4.仮想サーバ復元 項番5.仮想サーバ状態確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・仮想サーバ ─────────────────────────────────── 注意事項: ・仮想サーバは起動・停止どちらの状態でも、解放することができます。 ・仮想サーバの起動中にCPUやメモリを解放すると、OSのシャットダウンが 行われます。60秒以内にシャットダウンが完了しない場合、その時点で 仮想サーバは強制停止(電源強制断に相当)されます。サービス停止前の 強制停止を回避するには、OSをシャットダウンしてから解放を実行して ください。 項番1.仮想サーバ状態確認 CPUおよびメモリ資源を解放する仮想サーバの状態を確認します。 環境定義コマンド例: ====================================================================== # SERVER_ID=<解放を行う仮想サーバID> SERVER_ID=670543b2-1822-4dd7-b6b9-ae7af5a6828b API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "status": "ACTIVE", "updated": "2017-11-29T08:23:15Z", "hostId": "8f0a5a84e9ad8764bee4a575f943a7a4cffd48f75a2bc242bcd07253", "OS-EXT-SRV-ATTR:host": "jp3a01-pgy050-00", "addresses": { "TEST_NW_001": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:ce:f8:8e", "version": 4, "addr": "192.168.50.111", "OS-EXT-IPS:type": "fixed" } ] }, "links": [ { "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "self" }, { "href": "http://10.27.0.201/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "bookmark" } ], "key_name": "Test_Key01", "image": "", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0001c5d8", "OS-SRV-USG:launched_at": "2017-11-29T08:23:15.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy050-00", "flavor": { "id": "1101", "links": [ { "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101", "rel": "bookmark" } ] }, "id": "670543b2-1822-4dd7-b6b9-ae7af5a6828b", "security_groups": [ { "name": "TEST_SG_001" } ], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "jp-west-2a", "user_id": "<ユーザID>", "name": "Test_Server01", "created": "2017-11-29T08:22:41Z", "tenant_id": "<プロジェクトID>", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [ { "id": "a6f44c3f-7afe-4747-abc5-7ee444d01be7" }, { "id": "6c442ada-b789-4ecb-95ff-b875c052ca1e" } ], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {} } } ====================================================================== 項番2.仮想サーバ解放 仮想サーバのCPUおよびメモリ資源を解放します。 環境定義コマンド例: ====================================================================== # SERVER_ID=<解放を行う仮想サーバID> SERVER_ID=670543b2-1822-4dd7-b6b9-ae7af5a6828b API実行コマンド例: ====================================================================== curl -i $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID/action -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"shelve": null}' レスポンス例: ====================================================================== HTTP/1.1 202 Accepted X-Fcx-Endpoint-Request: EXECUTED_REQ012814224_202 Date: Tue, 12 Dec 2017 12:29:32 GMT Server: Apache x-compute-request-id: req-9aa98c24-30ce-4d2b-8615-bb5db1126530 Cache-Control: no-cache X-Request-Id: 3adf14d7-aaea-4281-9e2f-bd7a75957a05 X-Runtime: 1.119000 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html;charset=UTF-8 Content-Length: 0 ====================================================================== 項番3.仮想サーバ状態確認 解放した仮想サーバの状態を以下のパラメータで確認します。 ・"status": "SHELVED_OFFLOADED" 環境定義コマンド例: ====================================================================== # SERVER_ID=<解放を実施した仮想サーバID> SERVER_ID=670543b2-1822-4dd7-b6b9-ae7af5a6828b API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "status": "SHELVED_OFFLOADED", "updated": "2017-12-01T05:04:44Z", "hostId": "", "OS-EXT-SRV-ATTR:host": null, "addresses": { "TEST_NW_001": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:ce:f8:8e", "version": 4, "addr": "192.168.50.111", "OS-EXT-IPS:type": "fixed" } ] }, "links": [ { "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "self" }, { "href": "http://10.27.0.201/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "bookmark" } ], "key_name": "Test_Key01", "image": "", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "shelved_offloaded", "OS-EXT-SRV-ATTR:instance_name": "instance-0001c5d8", "OS-SRV-USG:launched_at": "2017-11-29T08:23:15.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "flavor": { "id": "1101", "links": [ { "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101", "rel": "bookmark" } ] }, "id": "670543b2-1822-4dd7-b6b9-ae7af5a6828b", "security_groups": [ { "name": "TEST_SG_001" } ], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "jp-west-2a", "user_id": "<ユーザID>", "name": "Test_Server01", "created": "2017-11-29T08:22:41Z", "tenant_id": "<プロジェクトID>", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [ { "id": "a6f44c3f-7afe-4747-abc5-7ee444d01be7" }, { "id": "6c442ada-b789-4ecb-95ff-b875c052ca1e" } ], "accessIPv4": "", "accessIPv6": "", "OS-EXT-STS:power_state": 4, "config_drive": "", "metadata": {} } } ====================================================================== 項番4.仮想サーバ復元 指定したサーバの復元をします。 注意事項: ・仮想サーバを復元した場合、起動状態で復元されます。 OS提供サービス、ソフトウェア提供サービスなどの料金が発生する ため、注意してください。 環境定義コマンド例: ====================================================================== # SERVER_ID=<復元を行う仮想サーバID> SERVER_ID=670543b2-1822-4dd7-b6b9-ae7af5a6828b API実行コマンド例: ====================================================================== curl -i $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID/action -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"unshelve": null}' レスポンス例: ====================================================================== HTTP/1.1 202 Accepted X-Fcx-Endpoint-Request: EXECUTED_REQ012909464_202 Date: Tue, 12 Dec 2017 12:26:44 GMT Server: Apache x-compute-request-id: req-d60c052d-7af5-473e-80d7-17fe6f003e34 Cache-Control: no-cache X-Request-Id: 585f0827-44ee-4354-ac81-c2890393c42b X-Runtime: 0.902000 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html;charset=UTF-8 Content-Length: 0 ====================================================================== 項番5.仮想サーバの状態確認 復元した仮想サーバの状態を以下のパラメータで確認します。 ・"status": "ACTIVE" 環境定義コマンド例: ====================================================================== # SERVER_ID=<復元を実施した仮想サーバID> SERVER_ID=670543b2-1822-4dd7-b6b9-ae7af5a6828b API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "status": "ACTIVE", "updated": "2017-12-01T05:11:20Z", "hostId": "3d5d089ffc0b93b01d2ddc5a8c96703b84418b6df4d8f65a9d3c8683", "OS-EXT-SRV-ATTR:host": "jp3a01-pgy034-00", "addresses": { "TEST_NW_001": [ { "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:ce:f8:8e", "version": 4, "addr": "192.168.50.111", "OS-EXT-IPS:type": "fixed" } ] }, "links": [ { "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "self" }, { "href": "http://10.27.0.201/<プロジェクトID>/servers/670543b2-1822-4dd7-b6b9-ae7af5a6828b", "rel": "bookmark" } ], "key_name": "Test_Key01", "image": "", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-0001c5d8", "OS-SRV-USG:launched_at": "2017-12-01T05:11:20.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy034-00", "flavor": { "id": "1101", "links": [ { "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101", "rel": "bookmark" } ] }, "id": "670543b2-1822-4dd7-b6b9-ae7af5a6828b", "security_groups": [ { "name": "TEST_SG_001" } ], "OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "jp-west-2a", "user_id": "<ユーザID>", "name": "Test_Server01", "created": "2017-11-29T08:22:41Z", "tenant_id": "<プロジェクトID>", "OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [ { "id": "a6f44c3f-7afe-4747-abc5-7ee444d01be7" }, { "id": "6c442ada-b789-4ecb-95ff-b875c052ca1e" } ], "accessIPv4": "", "accessIPv6": "", "progress": 0, "OS-EXT-STS:power_state": 1, "config_drive": "", "metadata": {} } } ====================================================================== 以上