IBM Cloud で接続できなくなったVSIのボリューム復旧メモ

クラシックVSIではKVMコンソールがありましたが、VPC VSIではまだなく(2020/12時点)、どうにも接続できなくてデータだけ救出した際のログメモです。
GUIでも可能ですがCLIでやってみました。

# VSIインスタンスIDとボリュームIDの確認
（ちなみにslsはPowershellでのgrepの代替です）

```
PS C:\Users\xxxx> ibmcloud is instances | sls xxxx

02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8   xxxx       running   1.1.1.1    -                 bx2-4x16       ibm-redhat-7-0-64-minimal-for-vsi               vpc-xxxx          jp-tok-2   rg_xxxx

PS C:\Users\xxxx> ibmcloud is volumes | sls xxxx

r022-0d24b514-d8ea-421f-a686-e64c5786e466   xxxxdata-01         available   200    3000   general-purpose   data         jp-tok-2   rg_xxxx
r022-24bbdc43-c1bf-4256-aebc-b5aa1dc0764d   xxxx-boot                 available   100    3000   general-purpose   boot         jp-tok-2   rg_xxxx

PS C:\Users\xxxx>

```

# VSIの停止

```
PS C:\Users\xxxx> ibmcloud is instance-stop 02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8
これを行うと、サーバー・インスタンス: 02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8 は stop されます。 続行しますか? [y/N] >> y
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8 用のアクション stop を作成しています...

タイプ     stop
作成済み   2020-12-23T21:53:28+09:00
PS C:\Users\xxxx>
```

# ボリューム接続IDの確認

```
PS C:\Users\xxxx> ibmcloud is instance-volume-attachments 02f7_110dc605-ea7d-40c0-a105-319f67d047a4
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 のボリューム接続をリストしています...
ID                                          名前                ボリューム               作成済み                    状 況        タイプ   自動削除
02f7-451ea02f-6743-4690-bb76-dd82e74bcf1f   volume-attachment   xxxx-boot         2020-10-21T17:38:10+09:00   attaching   boot     true
02f7-ff8a5f31-4a8b-4d80-acc1-dadde2284afa   volume-attachment   xxxxdata-01   2020-10-21T17:38:10+09:00   attaching   data     false
PS C:\Users\xxxx>
```

# データボリュームの切断
（普通に切断できる）

```
PS C:\Users\xxxx> ibmcloud is instance-volume-attachment-detach 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 02f7-ff8a5f31-4a8b-4d80-acc1-dadde2284afa
これを行うと、ボリューム接続 02f7-ff8a5f31-4a8b-4d80-acc1-dadde2284afa が削除され、元に戻すことはできません。 続行しますか? [y/N]> y
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 からボリューム接続 02f7-ff8a5f31-4a8b-4d80-acc1-dadde2284afa を削除しています...
OK
ボリューム接続 02f7-ff8a5f31-4a8b-4d80-acc1-dadde2284afa が削除されました。
PS C:\Users\xxxx>
```

# ブートボリュームの切断・・できない？
ブートボリュームはデフォルトで自動削除（仮想サーバー削除時にボリュームも削除）が有効なので無効化する

```
PS C:\Users\xxxx> ibmcloud is instance-volume-attachment-update 02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8 02f7-c65042a2-07f5-431b-a0e2-c025fee2875a --auto-delete false
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_e3d0a69d-9c45-42bf-b7b6-f246bc3146d8 のボリューム接続 02f7-c65042a2-07f5-431b-a0e2-c025fee2875a を更新しています...


ID           02f7-c65042a2-07f5-431b-a0e2-c025fee2875a
名前         volume-attachment
ボリューム   ID                                          名前
             r022-8d783e22-081c-40a9-a342-eb67ebe45e31   xxxx-boot

状況         attaching
作成済み     2020-12-23T16:56:55+09:00
タイプ       boot
自動削除     false
PS C:\Users\xxxx>
```

切断（ボリューム接続の削除）→FAILED

```
PS C:\Users\xxxx> ibmcloud is instance-volume-attachment-detach 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 02f7-451ea02f-6743-4690-bb76-dd82e74bcf1f
これを行うと、ボリューム接続 02f7-451ea02f-6743-4690-bb76-dd82e74bcf1f が削除され、元に戻すことはできません。 続行しますか? [y/N]> y
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 からボリューム接続 02f7-451ea02f-6743-4690-bb76-dd82e74bcf1f を削除しています...
FAILED
ボリューム接続 02f7-451ea02f-6743-4690-bb76-dd82e74bcf1f の削除に失敗しました。

FAILED
応答 HTTP 状況コード: 400
エラー・コード: bad_field
エラー・メッセージ: can't delete boot volume
エラー・ターゲット名: volume_attachment_id、タイプ: parameter
トレース ID: 705bfa0d-59bd-4545-99f5-3a1ac86afb59

PS C:\Users\xxxx>
```

マニュアルを見る（2020/12時点抜粋）
https://cloud.ibm.com/docs/vpc?topic=vpc-block-storage-about#block-storage-vpc-boot-volumes

>You can't detach and delete the boot volume. Boot volumes are always deleted when you when you delete the instance.

ブートボリュームはVSI削除時に必ず削除されます！？

#→自動削除無効ならVSI削除するとボリュームは削除されずに切断される

VSI削除

```
PS C:\Users\xxxx> ibmcloud is instance-delete 02f7_110dc605-ea7d-40c0-a105-319f67d047a4
これを行うと、インスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 が削除され、元に戻すことはできません。 続行しますか? [y/N]> y
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でインスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 を削除しています...
OK
インスタンス 02f7_110dc605-ea7d-40c0-a105-319f67d047a4 に対する削除要求が受け入れられました。
PS C:\Users\xxxx>
```

ボリューム自体は残り、ボリューム接続がなくなった（切断された）

```
PS C:\Users\xxxx> ibmcloud is volume r022-24bbdc43-c1bf-4256-aebc-b5aa1dc0764d
ユーザー xxxx@jp.ibm.com としてアカウント XXX の下でボリューム r022-24bbdc43-c1bf-4256-aebc-b5aa1dc0764d を取得しています...


ID                                         r022-24bbdc43-c1bf-4256-aebc-b5aa1dc0764d
名前                                       xxxx-boot
CRN                                        crn:v1:bluemix:public:is:jp-tok-2:a/c8915e8b106f436a8a1cdcf9ff40ac6a::volume:r022-24bbdc43-c1bf-4256-aebc-b5aa1dc0764d
状況                                       available
容量                                       100
IOPS                                       3000
プロファイル                               general-purpose
暗号鍵                                     -
暗号化                                     provider_managed
リソース・グループ                         rg_xxxx
作成済み                                   2020-10-21T17:38:13+09:00
ゾーン                                     jp-tok-2
タグ
ボリューム接続インスタンス・リファレンス   -
PS C:\Users\xxxx>
```

残念ながらこれをブートボリュームとして新規VSIを作成することはできず。
既存のVSIにデータボリュームとして接続・マウントして、データ救出や原因調査を実施しました。