クローニング(サーバの複製)#
本構成は東日本/西日本リージョン1・2向けとなります。
要求事項#
- FJcloud-Oに配備した仮想サーバを、サーバ構築の効率化のために複製したい
対応するデザインパターン概要#
FJcloud-Oでは、配備済の仮想サーバからサーバ複製用の仮想サーバイメージを作成したり、仮想サーバイメージを管理することが可能です。
以下のOSを搭載する仮想サーバより、サーバ複製用のイメージを作成できます。
- CentOS
- Red Hat Enterprise Linux
- Windows
構造(イメージ図)#
実装サンプル#
1. 事前作業#
イメージを作成する前に、以下の準備をしてください。
事前準備 | 内容 |
---|---|
イメージ開発用仮想サーバ作成 | 必要なソフトのインストールとセットアップをしてください。 |
イメージ開発用仮想サーバのスナップショット取得 | イメージ開発用仮想サーバを停止後、スナップショットを取得してください。 |
イメージ採取用仮想サーバ作成 | スナップショットからイメージ採取用の仮想サーバを作成してください。 |
Note
イメージ採取用の仮想サーバは、この後の作業でサーバの設定が変わってしまうことから、上記の準備のようにイメージ開発用の仮想サーバと分けることを推奨します。
2. イメージ採取用の仮想サーバの設定#
イメージ採取用の仮想サーバに対して、仮想サーバのOSに応じて以下(1)または(2)の作業を実施してください。
(1) OS種別がLinuxのシステムストレージの場合#
スナップショットを採取する仮想サーバのOSが以下に該当する場合のみ、以下の(A)および(B)の作業を実施してください。
下記以外のOSは、該当するネットワーク設定が存在しないため対処不要です。
- CentOS 6.x(xは数字)
- Red Hat Enterprise Linux 6.x(xは数字)
(A) write_net_rules の無効化#
以下のファイルを開いてください。
/lib/udev/rules.d/75-persistent-net-generator.rules
DRIVERS=="?*", IMPORT{program}="write_net_rules"
(B) /etc/udev/rules.d/70-persistent-net.rulesの削除#
以下のファイルを削除してください。
rm -f /etc/udev/rules.d/70-persistent-net.rules
(2) OS種別がWindowsのシステムストレージの場合#
Windows OSのSysprep手順を実施してください。
Sysprepの詳細は機能説明書をご参照ください。
通常、Windows OSにてSysprepを実施すると、仮想サーバは「停止」状態(SHUTOFF)となります。
3. イメージの作成(API)#
-
イメージ採取用の仮想サーバを停止します。
-
APIでイメージを作成します。
設定項目(REST API)で生成したAPIに、設定項目(json)を設定し、APIを実行してください。 -
設定項目(REST API)
項目 | 設定値例 | 内容 |
---|---|---|
$VOLUME_ID | (生成されたID) | イメージ作成の元とする仮想サーバにアタッチしているストレージID(IaaSポータルで確認可能) |
- 設定項目(json)
項目 | 設定値例 | 内容 |
---|---|---|
$NAME | "demo_vm04" | 新規に作成する仮想サーバのイメージ名 |
$CONTAINER_FORMAT | "bare" | 作成するイメージのコンテナー形式(bareを指定する) |
$DISK_FORMAT | "raw" | 作成するイメージのディスク形式(rawを指定する) |
$FORCE | "true" | "true" の場合、ストレージが仮想サーバにアタッチしていてもイメージを作成する。 "false" の場合、ストレージが仮想サーバにアタッチしているとイメージを作成しない。 |
- 実行API
curl -X POST -i $BLOCKSTORAGE/v2/$PROJECT_ID/volumes/$VOLUME_ID/action -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"os-volume_upload_image": {"container_format":"'$CONTAINER_FORMAT'","disk_format":"'$DISK_FORMAT'","image_name":"'$NAME'","force":'$FORCE'}}'
4. イメージの作成確認(API)#
-
APIでイメージの作成状況を確認します。
VOLUME_ID で指定したストレージの項目 "status" が "in-use" になれば、作成完了です。 -
設定項目(REST API)
項目 | 設定値例 | 内容 |
---|---|---|
$VOLUME_ID | (生成されたID) | イメージ作成の元とする仮想サーバにアタッチしているストレージID(IaaSポータルで確認可能) |
- 実行API
curl -X GET -s $BLOCKSTORAGE/v2/$PROJECT_ID/volumes/$VOLUME_ID -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq .
5. イメージから仮想サーバを作成(IaaSポータル)#
- 作成したイメージから、仮想サーバを作成します。
- 実装手順は インターネット接続パターンの仮想サーバ作成例 を参照してください。
メリット・効果#
本パターンを利用して、仮想サーバのイメージを作成した場合のメリット・効果は以下の通りです。
- 同じ構成のマシンを効率的に複製可能
注意事項#
- 本パターンは2015年11月時点のFJcloud-O 東日本/西日本リージョン1・2で動作検証しています。
- 仮想サーバイメージを作成する際は、配備されている仮想サーバをあらかじめ停止してください。