Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (8) Wazi aaS仮想サーバーの複製

# はじめに
ここまで見てきたようにWazi aaSはIBM Cloud上にz/OSの仮想開発環境/テスト環境を構築する仕組みを提供してくれるものです。
出来合いのz/OS環境であるStock Imageを使用するにしても、既存z/OS環境をWIBでコピーするにしても、クラウド上のWazi aaSとしての環境をカスタマイズして様々な用途で使用することになると思います。
クラウド環境の大きなメリットとしては、必要な時に必要な分だけ環境を用意して利用できるということだと思います。例えば、1つのWazi aaS環境をマスターの環境(テンプレート)として用意しておき、テストグループ単位や、テストケース、テストフェーズに合わせて必要に応じてマスターから環境をコピーして利用し、不要になったら破棄する、というような活用方法が考えられます。
このような使い方を見据えて、ある1つのWazi aaS仮想サーバーをコピーして別のWazi aaS仮想サーバーを作成する手順を確認してみます。


## 関連記事

[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (1) 概要](https://qiita.com/tomotagwork/items/487d91ea8ddfb50e7257)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (2) 仮想サーバー作成](https://qiita.com/tomotagwork/items/9cea4c804f260d609eed)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (3) ネットワーク構成](https://qiita.com/tomotagwork/items/be2803e504b87cf364e5)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (4) Wazi aaS への接続](https://qiita.com/tomotagwork/items/b59717d767a91628b825)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (5) Stock Iamge確認](https://qiita.com/tomotagwork/items/40b7eaec61e31f830cbe)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (6) Stock Iamge基本操作/カスタマイズ](https://qiita.com/tomotagwork/items/0f2e914fd6263f2b40db)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7) Wazi Image Builder](https://qiita.com/tomotagwork/items/fcfd295aaa54fa597c4b)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (7)' Wazi Image Builder - Trouble Shootingメモ](https://qiita.com/tomotagwork/items/fd804734595644a09d47)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (8) Wazi aaS仮想サーバーの複製](https://qiita.com/tomotagwork/items/ef23025b1ca3800b73c1)
[Wazi aaS: クラウド上でのメインフレーム開発環境構築 - (9) TerraformによるWazi aaS仮想サーバーの管理](https://qiita.com/tomotagwork/items/883652c1534d12f2b042)


# 全体像

仮想サーバーの情報はブロック・ストレージというリソースで管理されています。この情報をコピーして仮想サーバーが作成できればよいわけですが、IBM Cloud上の仮想サーバーの複製にはブロック・ストレージの"スナップショット"を取ってそれを元に複製をする方法がとれるようです。
1つの仮想サーバーの情報はブート用とデータ用のストレージに分けて管理されています。すなわち複数のブロック・ストレージが含まれる可能性があります。複数のブロック・ストレージをまとめてスナップショットを取得する "スナップショット整合性グループ" という仕組みがあるのでこちらを使用することにします。

参考:
[スナップショット整合性グループの作成](https://cloud.ibm.com/docs/vpc?topic=vpc-snapshots-vpc-create-consistency-groups&interface=ui)
[スナップショットからのボリュームのリストア](https://cloud.ibm.com/docs/vpc?topic=vpc-snapshots-vpc-restore&interface=ui)

ここで示す複製の全体像は以下のようなイメージとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/3a369eba-f249-e2b1-c408-3e3607f61368.png)



# 手順例

ここでは、前の記事にてWIB経由で既存z/OSを元に作成した環境を複製元として使用し、それをさらにIBM Cloud上で複製してみます。

## (1) 複製元仮想サーバーのVolumeから "スナップショット整合性グループ" を作成

>When you request a snapshot of a consistency group, the system ensures that all write operations are complete before it takes the snapshots. Then, the system generates snapshots of all the tagged Block Storage volumes that are attached to the virtual server instance at the same time. Depending on the number and size of the attached volumes, plus the amount of data that is to be captured, you might observe a slight IO pause. This IO pause can range from a few milliseconds up to 4 seconds.

※スナップショット取得する場合、元となるVSIは稼働中である必要があります。稼働中にスナップショットを取得するので若干ながらDisk I/Oに影響を及ぼす場合があるようです。できるだけDisk I/O処理が行われない状況で取得するのがよいでしょう。

以下のWazi aaS仮想サーバーを複製元とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/381b504f-2d42-5ae2-4b27-3a2edf48af4b.png)

複製元VSIのブート・ボリュームのリンクを開きます。
アクションメニューから"スナップショットの作成" を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/6febf907-ee5d-e7ff-2745-15ef37159ba6.png)

スナップショットの種類で"複数のボリューム"を選択し、複製元仮想サーバー・インスタンスを選択します。
整合性グループ名、ボリュームを選択します。
その他適宜必要な値を設定し、最後に右側のメニューの"ブロック・ストレージ・スナップショットの整合性グループの作成"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/09ff7794-74b7-e623-c66c-5e29de5fb78f.png)

以下のメッセージが出力されてスナップ・ショットの取得が開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/bc48a4b9-947c-1ff4-be09-babfde9bdb43.png)

IBM Cloudのコンソールでブロック・ストレージ・スナップショットのメニューから以下のように確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/1078914d-e6db-9898-2aca-7a7460ef5e0c.png)

"スナップショットの整合性グループ"タブを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/37909dde-b86e-c6c8-48b6-b1873ca406ef.png)

整合性グループのリンクを開きます。複数のスナップショットがありますが、"ブート可能"にチェックが付いているものを確認しておきます。
また、いずれのスナップショットも"安定"状態になるのを待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/556992c2-4de0-1bf1-e15f-82ccb8a1ebc3.png)

整合性グループの状態が"安定"になればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/95a46e10-74d9-ddcf-3b02-b93fcbc406a2.png)


## (2) "スナップショット整合性グループ" から新規仮想サーバーを作成

通常の仮想サーバー作成と同様に、IBM Cloudのコンソールから仮想サーバーの作成の画面を開き、必要な値を設定していきます。

### 基本設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/a2132fc7-f92a-4602-e87d-571d37f6d05c.png)

### イメージおよびプロファイル
イメージの編集をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/4517cb8e-6267-4de6-bf2d-0a19e4bd9d1c.png)

イメージの選択画面で、アーキテクチャー"IBM Z, LinuxONE"を選択し、"スナップショット"タブから、先ほど作成されたブート用のスナップショットを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/8ed4c761-44d5-ff84-d33c-7819494d77b2.png)

CPU, Memoryのプロファイルは基本的に複製元に合わせて設定します(必要に応じて適宜変更)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/139d13d3-3f39-f898-c40b-b8030e69ab08.png)

### ストレージ
ストレージの項目で、ブート・ボリューム、データ・ボリュームそれぞれ編集します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/2f0984a2-2a09-f704-13f3-43c335c90681.png)

ブート・ボリュームの編集ボタンから、適当なボリューム名を指定します。ストレージ・サイズは複数元に合わせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/dcfc66ba-96ae-f61c-b210-ad9f28fe9b6f.png)

データ・ボリュームの作成をクリックし、以下の画面にて、
スナップショットからのインポートを有効化し、先に作成したデータ用スナップショットを選択、名前を指定します。サイズ複製元に合わせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/8ef2bb84-16b3-7d80-4cad-6489d7934562.png)

### その他
ネットワーク構成などは適宜新しい仮想サーバーの要件に合わせて設定すればOKです。

### 仮想サーバー作成

一通り設定し終わったら、右側のメニューから"仮想サーバーの作成"ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/0f431be5-f876-1d09-6dee-60ca6c0edbc1.png)

これで、新しい仮想サーバーが作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/fe82c3a8-6c49-24fe-5e72-5b76b296a86f.png)

あとは元の仮想サーバーの操作と同様、シリアルコンソールからマスターコンソールに接続し、状況確認、PCOM接続して必要なカスタマイズなどを行っていくことになります。

# おわりに

マスター(テンプレート)となる環境を1つメンテナンス用に保持しておき、そこから取得したスナップショットを元に実際に使用するWazi aaS仮想サーバーを必要に応じて作成/破棄するというような運用をすることで、クラウド環境であることのメリットを存分に活かせることになると思います。
IBM Cloud上の操作で環境の複製作業が行えるので、この辺りの操作はterraformなどを使用した自動化も考えられると思います。