スナップショット/複製パターン#

本構成は東日本/西日本リージョン1・2向けとなります。

要求事項#

  • FJcloud-O上の仮想サーバにメンテナンス作業(OSのパッチ投入等)を行う前にデータを高速にバックアップし、万一の場合に復旧できるようにしたい
  • 増設ディスクのデータを変更する前に、データを高速にバックアップし、万一の場合に復旧できるようにしたい

本パターンでは、取得したスナップショットから、新たに仮想サーバを配備する例を説明します。

対応するデザインパターン概要#

FJcloud-Oでは、仮想サーバで利用中のシステムディスクや増設ディスクのスナップショットを取得する スナップショット機能 を提供しています。
仮想サーバが起動中/停止中のどちらの状態でも取得可能です。

Note

仮想サーバ起動中のスナップショット取得にはリスクがあります。後述の 注意事項 を参照してください。

スナップショットのデータは、以下のようにリストアできます。

スナップショット リストア先 APIでの
リストア
IaaSポータルでの
リストア
リストア概要
システムディスクのスナップショット 元の仮想サーバ 提供済 スナップショットの取得元の仮想サーバのシステムストレージにリストア
新規仮想サーバ 提供済 提供済 仮想サーバ作成時に、設定項目の "仮想サーバのブートソース" に "ストレージスナップショット" を指定して、新しいストレージにリストア
増設ディスクのスナップショット 元のストレージ 提供済 スナップショットの取得元のストレージにリストア
新規ストレージ 提供済 提供済 ストレージ作成時に、設定項目の "ストレージソース" 項目に "スナップショット" を指定して、新しいストレージにリストア

Note

スナップショットから新たな仮想サーバを配備される場合や、確実な動作保証が必要な場合は、仮想サーバを停止してからスナップショットを取得してください。

構造 (イメージ図)#

1. スナップショットの取得#

配備された仮想サーバのスナップショットを取得する例を説明します。

image

2. スナップショットのリストア#

取得したスナップショットから新たに仮想サーバを配備する例を説明します。

image

実装サンプル#

1. 事前準備#

複製を行う仮想サーバに対して、仮想サーバの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)となります。

2. スナップショットの取得#

  • スナップショットを作成する仮想サーバを停止します。
  • 「ストレージ」⇒「ブロックストレージ」と選択した画面で、スナップショットを作成するストレージの「アクション」メニューから、 「スナップショット作成」をクリックします。
    どのストレージがどの仮想サーバで使用されているかは、「ブロックストレージ一覧」画面の「接続先」列をご確認ください。
  • 「ストレージスナップショット作成」画面で、「スナップショット名」と「説明」を入力し、「作成」ボタンをクリックします。 「スナップショット名」は、例として "demo_snapshot" とします。
  • 「スナップショット」画面で、新規作成したスナップショットの状態が「available」になっていれば、作成完了です。

3. スナップショットのリストア#

タブ 項目 必須 設定値例 内容
仮想サーバ AZ 必須 "jp-east-1b" システムを設置するアベイラビリティゾーンを設定してください。
AZ1:"jp-east-1a"
AZ2:"jp-east-1b"
仮想サーバ名 必須 "demo_vm02" 新規に作成する仮想サーバの名称 を入力してください。
仮想サーバタイプ 必須 "P-1" 仮想サーバタイプ(フレーバー)を入力してください。
仮想サーバのブートソース 必須 "ストレージスナップショット" スナップショットから仮想サーバを作成する場合は、"ストレージスナップショット" を選択してください。
ストレージスナップショット 必須 "demo_snapshot" 作成した仮想サーバのストレージスナップショットを選択してください。
デバイス名 必須 "/dev/vda" システムストレージの場合、"/dev/vda"の選択を推奨します。
仮想ネットワーク 利用可能なネットワーク 推奨 "demo_intnet" 作成した内部ネットワークの "demo_intnet" を選択して、「選択」ボタンをクリックしてください。
アクセスとセキュリティ キーペア 推奨 "demo_keypair" 作成したキーペア を選択してください。
セキュリティグループ 推奨 "SG_external" 作成したセキュリティグループ を選択してください。

メリット・効果#

スナップショット機能を利用した場合のメリット・効果は以下の通りです。
オートスケールを考慮しないような用途であれば、クローニング よりも手軽に複製可能です。

  • ストレージ単位で高速に丸ごとバックアップ可能
  • 取得したスナップショットからストレージの複製が可能
  • 取得したスナップショットから仮想サーバも簡単に複製可能

注意事項#

  • 本パターンは2017年5月時点のFJcloud-O 東日本/西日本リージョン1・2で動作検証しています。

  • オンライン状態で取得したスナップショットを再利用した場合の動作は保証できません。
    確実な動作を期待するバックアップデータとしたい場合は、仮想サーバが停止状態のときに取得するようにしてください。

  • 起動中の仮想サーバの増設ディスクのスナップショットを取得する際は、仮想サーバのOS上でいったんマウントを外すと、そのディスクへの書き込みを停止した状態でスナップショットを取得できるようになります。
    Linux の場合、sync コマンドを実行後、umount コマンドでディスクをアンマウントします。

  • 実装サンプルのようにスナップショットから新しい仮想サーバにリストアした場合は、元の仮想サーバとは別のサーバとなります。仮想サーバのIDも変わります。

  • スナップショットから直接仮想サーバイメージは作成できません。

  • スナップショットは、同一AZ内で利用可能です。

その他#

  • スナップショットを取得した元のストレージは、スナップショットを削除しないと削除できません。
  • 取得したスナップショットからストレージを作成し、そのストレージを指定して仮想サーバを配備することも可能です。