PowerVS でイメージ・キャプチャーとイメージ・エクスポートは分離して実行が可能

#### はじめに

「PowerVS でイメージ・キャプチャーとイメージ・エクスポートは分離して実行できますか？」と質問を受け、確かに用語と設定の関連が分かりづらいなと思いましたのでご参考までに記載します。


以下のケースで GUI/CLI で確認しています。

:::note info
① キャプチャーとエクスポートを同時に行う場合
② キャプチャーのみを実行する場合
③ エクスポートのみを実行する場合
　　(1) イメージ・カタログにイメージが存在しておらず、既存のVMから作成する場合
　　(2) 既にイメージ・カタログにイメージが存在する場合
:::

PowerVS では「イメージ・カタログへのエクスポート」が「イメージ・キャプチャー」と同じ意味となり、ova.gzファイルは作成されません。
IBM Cloud Object Storage(ICOS) への転送を行う場合は、ova.gz ファイルの作成と ICOS への転送が実施されます。


---
#### 対象読者

IBM Cloud Power Systems Virtual Server で イメージのキャプチャー、エクスポートを実施する方


---
#### 環境

　・IBM Cloud Power Systems Virtual Server (PowerVS)
　・IBM Cloud Object Storage (ICOS)

---

#### ①キャプチャーとエクスポートを同時に行う場合

**GUI** では「取り込んでエクスポート」を実行し、「イメージ・カタログ」と「クラウド・オブジェクト・ストレージ」を指定するとイメージ・キャプチャーと ICOS への ova.gz ファイルのエクスポートが実施されます。

<img width=10%><img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/832f0ecf-753e-aed8-118f-8e93d805685b.png">
<img width=10%><img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/a9db59fd-4fe6-4d76-a01d-18ca7172f077.png">

**CLI** では、**ibmcloud pi instance-capture** コマンドの **--destination** オプションで <font color="Red">both</font> を指定するとイメージ・カタログとICOSへ送付されます。

コマンド [ibmcloud pi instance-capture](https://cloud.ibm.com/docs/power-iaas-cli-plugin?topic=power-iaas-cli-plugin-power-iaas-cli-reference#ibmcloud-pi-instance-capture)


```
$ ibmcloud pi instance-capture testvm001 --destination both --name testvm001-both --access-key xxxxxx --secret-key xxxxxx --image-path  <bucket_name>/ --region jp-tok
ユーザー xxxxx のアカウント xxxxx でインスタンス testvm001 を取り込み中です...
OK
インスタンス testvm001 の取り込みが開始されました。
$
```

イメージの確認

```
$ ibmcloud pi images | grep both
ユーザー xxxxx のアカウント xxxxx でイメージをリストしています...
2d32aa4c-8889-4c15-b125-2xxxxf0467   testvm001-both                   /pcloud/v1/cloud-instances/0b02d15bxxxx208003xxxxxac3/images/xxxxc-8889-4c15-b125-22xxxxx67
$
```

ICOS の確認

```
$  ibmcloud cos objects --bucket xxxx  | grep both
testvm001-both.ova.gz                    Jan 26, 2023 at 10:17:42   7.00 GiB
$
```


---


#### ②キャプチャーのみを実行する場合

**GUI** では、対象のVMで「VMアクション 」- 「取り込んでエクスポート」を選択します。

<img width=10%><img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/832f0ecf-753e-aed8-118f-8e93d805685b.png">


ここで「イメージ・カタログ」のみを選択し、ICOSへの転送を行わない場合はキャプチャーのみの挙動となります。

<img width=10%><img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/027652b3-5719-faf8-2389-7cee5ae2f3b6.png">


**CLI** では、**ibmcloud pi instance-capture** コマンドの **--destination** オプションで <font color="Red">image-catalog</font> を指定します。

コマンド：[ibmcloud pi instance-capture](https://cloud.ibm.com/docs/power-iaas-cli-plugin?topic=power-iaas-cli-plugin-power-iaas-cli-reference#ibmcloud-pi-instance-capture)


```
$ ibmcloud pi instance-capture testvm001 --destination image-catalog --name testvm001 
ユーザー xxxxx のアカウント xxxxx でインスタンス testvm001 を取り込み中です...
OK
インスタンス testvm001 の取り込みが開始されました。
$
```

イメージの確認

```
$ ibmcloud pi images | grep testvm001
dxxxxx5-0abb-441d-a97a-52b5xxxxxxe   testvm001                        /pcloud/v1/cloud-instances/0b02d15cccc4520xxxxxxxe6fac3/images/d1876bxxxxx41d-a97a-52b5a09f4ece
$
```


---
#### ③エクスポートのみを実行する場合

##### (1) イメージ・カタログにイメージが存在しておらず、既存のVMから作成する場合

**GUI** では、エクスポート先に「クラウド・オブジェクト・ストレージ」のみを選択します。

<img width=10%><img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/c3d48ebc-da56-9e41-54e8-c1bc876edfb4.png">


**CLI** では、**ibmcloud pi instance-capture** コマンドの **--destination** オプションで <font color="Red">cloud-storage</font> を指定します。

コマンド：[ibmcloud pi instance-capture](https://cloud.ibm.com/docs/power-iaas-cli-plugin?topic=power-iaas-cli-plugin-power-iaas-cli-reference#ibmcloud-pi-instance-capture)


```
$ ibmcloud pi instance-capture testvm001 --destination cloud-storage --name testvm001-cli --access-key xxxxxx --secret-key xxxxxx --image-path  <bucket_name>/ --region jp-tok
ユーザー xxxxx のアカウント xxxxx でインスタンス testvm001 を取り込み中です...
OK
インスタンス testvm001 の取り込みが開始されました。
$
```

ICOS の確認

```
$ ibmcloud cos objects --bucket xxx  | grep testvm001-cli
testvm001-cli.ova.gz                     Jan 26, 2023 at 08:17:32   7.00 GiB
$
```

---
##### (2) 既にイメージ・カタログにイメージが存在する場合

**GUI** では、ブート・イメージのページで対象のイメージを選択し、エクスポートを押します。

<img width=10%><img width="80%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/9e2c5ca8-126c-fd2e-a9ad-6df5af7f0464.png">

ICOS の情報を入力しエクスポートを実施します。
<img width=10%><img width="90%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/15a061b0-6cf7-905d-c556-fcd695539174.png">


**CLI** では、**ibmcloud pi image-export** コマンドで対象のイメージID、バケットなど転送先 ICOS 情報を指定します。

コマンド：[ibmcloud pi image-export](https://cloud.ibm.com/docs/power-iaas-cli-plugin?topic=power-iaas-cli-plugin-power-iaas-cli-reference#ibmcloud-pi-image-export)


```
$ ibmcloud pi image-export 7200-05-03 --bucket xxx --region jp-tok --access-key xxxxx --secret-key xxxxx
ユーザー xxxxxx のアカウント xxxxxx でイメージ 7200-05-03 をエクスポートしています...
OK
イメージ 7200-05-03 のエクスポートが開始されました。
$
```

ICOS の確認

```
$ ibmcloud cos objects --bucket xxx | grep 7200-05-03
7200-05-03.ova.gz                        Jan 26, 2023 at 08:51:47   7.01 GiB
```

----

#### 制約

同時実行数に制約がありますのでご注意ください。


・PowerVS: [仮想マシン (VM) のキャプチャーおよびエクスポート](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-capturing-exporting-vm&locale=ja)
>(抜粋)
>新しい VM キャプチャー機能、イメージ・エクスポート機能、およびイメージ・インポート機能は、 Power Systems Virtual Serverごとに一度に 1 つの操作に制限されています。 これらの操作のいずれかが正常にサブミットされると、先に行われたその操作が完了するまで、別の新しい操作 (VM のキャプチャー、イメージのエクスポート、およびイメージのインポート) をサブミットすることはできません。



以上です。