はじめに
IBM Cloudにおいては、https://cloud.ibm.com から購入した仮想サーバーはデフォルトでsuspend billingが有効になっています。利用する際には、OSにログインしてコマンドから停止するのでは有効にならず、Customer PortalやAPIからPower OFFする必要があります。
しかし、疑問が残ります。もしOSを正常に停止した後に、Customer PortalやAPIでPower OFFをするとどうなるのでしょうか?この記事では、
- 1) 稼働中のOSをCustomer PortalからPower OFFするケース(これはドキュメント通りなので当然動く)
- 2) 稼働中のOSに一旦SSHでログインし、安全にshutdownした後に、Customer PortalからPower OFFするケース
の2つの挙動を調査し、2)のケースでもSuspend Billingが有効になるかどうかの検証を行いました。
結論(2019/10/07更新)
2)のケースでは以前はSuspend Billingは有効になりませんでした。しかし、2019/10/07現在修正されて、1),2)のどちらのケースでもSuspend Billingは有効になったようです。
実験1: 稼働中のOSをCustomer PortalからPower OFFするケース
1.1 正常起動時
Power StatusはRunning
であり、SUSPENDED_BILLINGが0
。
# slcli call-api Virtual_Guest getObject --id=88032042 --mask=id,hostname,status,powerState,attributes
:............:.............................................:
: name : value :
:............:.............................................:
: status : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : ACTIVE : :
: : : name : Active : :
: : :.........:........: :
: attributes : :.................................:.......: :
: : : type : value : :
: : :.................................:.......: :
: : : :.........:...................: : 0 : :
: : : : name : value : : : :
: : : :.........:...................: : : :
: : : : keyname : SUSPENDED_BILLING : : : :
: : : : name : Suspended Billing : : : :
: : : :.........:...................: : : :
: : :.................................:.......: :
: hostname : virtualserver01 :
: powerState : :.........:.........: :
: : : name : value : :
: : :.........:.........: :
: : : keyName : RUNNING : :
: : : name : Running : :
: : :.........:.........: :
: id : 88032042 :
:............:.............................................:
1.2 Customer Portalから停止
Power StatusがHalt
になり、SUSPENDED_BILLINGが1
になった。
# slcli call-api Virtual_Guest getObject --id=88032042 --mask=id,hostname,status,powerState,attributes
:............:.............................................:
: name : value :
:............:.............................................:
: status : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : ACTIVE : :
: : : name : Active : :
: : :.........:........: :
: attributes : :.................................:.......: :
: : : type : value : :
: : :.................................:.......: :
: : : :.........:...................: : 1 : :
: : : : name : value : : : :
: : : :.........:...................: : : :
: : : : keyname : SUSPENDED_BILLING : : : :
: : : : name : Suspended Billing : : : :
: : : :.........:...................: : : :
: : :.................................:.......: :
: hostname : virtualserver01 :
: powerState : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : HALTED : :
: : : name : Halted : :
: : :.........:........: :
: id : 88032042 :
:............:.............................................:
[root@syasuda2 ~]#
1.3 確認
実験2: 稼働中のOSに一旦SSHでログインし、安全にshutdownした後に、Customer PortalからPower OFFするケース
2.1 正常起動時
Power StatusはRunning
であり、SUSPENDED_BILLINGが0
。
# slcli call-api Virtual_Guest getObject --id=88032042 --mask=id,hostname,status,powerState,attributes
:............:.............................................:
: name : value :
:............:.............................................:
: status : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : ACTIVE : :
: : : name : Active : :
: : :.........:........: :
: attributes : :.................................:.......: :
: : : type : value : :
: : :.................................:.......: :
: : : :.........:...................: : 0 : :
: : : : name : value : : : :
: : : :.........:...................: : : :
: : : : keyname : SUSPENDED_BILLING : : : :
: : : : name : Suspended Billing : : : :
: : : :.........:...................: : : :
: : :.................................:.......: :
: hostname : virtualserver01 :
: powerState : :.........:.........: :
: : : name : value : :
: : :.........:.........: :
: : : keyName : RUNNING : :
: : : name : Running : :
: : :.........:.........: :
: id : 88032042 :
:............:.............................................:
2.2 OSをsshでログインして、OSコマンドで停止
OSを停止してもIBM Cloudからは認識していないので、Power StatusはRunning
であり、SUSPENDED_BILLINGが0
のまま。
# shutdown -h now
# slcli call-api Virtual_Guest getObject --id=88032042 --mask=id,hostname,status,powerState,attributes
:............:.............................................:
: name : value :
:............:.............................................:
: status : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : ACTIVE : :
: : : name : Active : :
: : :.........:........: :
: attributes : :.................................:.......: :
: : : type : value : :
: : :.................................:.......: :
: : : :.........:...................: : 0 : :
: : : : name : value : : : :
: : : :.........:...................: : : :
: : : : keyname : SUSPENDED_BILLING : : : :
: : : : name : Suspended Billing : : : :
: : : :.........:...................: : : :
: : :.................................:.......: :
: hostname : virtualserver01 :
: powerState : :.........:.........: :
: : : name : value : :
: : :.........:.........: :
: : : keyName : RUNNING : :
: : : name : Running : :
: : :.........:.........: :
: id : 88032042 :
:............:.............................................:
2.3 Customer Portalから停止
Failed to halt guest as it has already been halted
というエラーが出る。
Customer PortalをreloadしてみるとPower StatusはOFFに変わっている。
しかし、APIで見てみるとPower StatusはHalt
になったが、SUSPENDED_BILLINGは0
のまま。つまり、この場合はSuspend Billingは有効になっていない。
(2019/10/07更新)しかし、APIで見てみるとPower StatusはHalt
になったが、SUSPENDED_BILLINGは1
に変更された。つまり、この場合でもSuspend Billingは有効になっている。
# slcli call-api Virtual_Guest getObject --id=88032042 --mask=id,hostname,status,powerState,attributes
:............:.............................................:
: name : value :
:............:.............................................:
: status : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : ACTIVE : :
: : : name : Active : :
: : :.........:........: :
: attributes : :.................................:.......: :
: : : type : value : :
: : :.................................:.......: :
: : : :.........:...................: : 1 : :
: : : : name : value : : : :
: : : :.........:...................: : : :
: : : : keyname : SUSPENDED_BILLING : : : :
: : : : name : Suspended Billing : : : :
: : : :.........:...................: : : :
: : :.................................:.......: :
: hostname : virtualserver01 :
: powerState : :.........:........: :
: : : name : value : :
: : :.........:........: :
: : : keyName : HALTED : :
: : : name : Halted : :
: : :.........:........: :
: id : 88032042 :
:............:.............................................: