要求事項
K5上に配備する仮想サーバにメンテナンス作業(OSのパッチあて)などを行う前や、増設ディスクのデータを変更する前に、
データを高速に保存し、万一の場合に復旧できるようにしたいといった要求事項に対応するパターンです。
このパターンでは、取得したスナップショットを、スナップショットの取得元の仮想サーバにリストアする例を説明します。
対応するK5デザインパターン概要
K5では、仮想サーバで利用中のシステムディスクや増設ディスクのスナップショットを取得する
"スナップショット" 機能を提供しています。
仮想サーバが起動中/停止中のどちらの状態でも取得可能です。
※仮想サーバ起動中のスナップショット取得にはリスクがあります。後述の
注意事項 を参照してください。
スナップショットのデータは、以下のようにリストアできます。
スナップショット | リストア先 | リストア手段 | リストア概要 |
---|
API | ポータル |
---|
システムディスクの スナップショット | 元の仮想サーバ | 提供済 | - | スナップショットの取得元の仮想サーバのシステムストレージにリストア |
新規仮想サーバ | 提供済 | 提供済 | 仮想サーバ作成時に、設定項目の "仮想サーバのブートソース" に "ストレージスナップショット" を指定して、新しいストレージにリストア |
増設ディスクの スナップショット | 元のストレージ | 提供済 | - | スナップショットの取得元のストレージにリストア |
新規ストレージ | 提供済 | 提供済 | ストレージ作成時に、設定項目の "ストレージソース" 項目に "スナップショット" を指定して、新しいストレージにリストア |
※スナップショットから新たな仮想サーバを配備される場合や、確実な動作保証が必要な場合は、
仮想サーバを停止してからスナップショットを取得してください。
以下では、
- 配備された仮想サーバのスナップショットを作成する例
- そのスナップショットを、スナップショットの取得元の仮想サーバにリストアする例
を例示します。
構造 (イメージ図)
■スナップショットの取得
|
■スナップショットのリストア
|
|
|
実装サンプル
1.スナップショットの取得
- スナップショットを作成する仮想サーバを停止します。
- 「ストレージ」⇒「ブロックストレージ」と選択した画面で、スナップショットを作成するストレージの「アクション」メニューから、
「スナップショット作成」をクリックします。
どのストレージがどの仮想サーバで使用されているかは、「ブロックストレージ一覧」画面の「接続先」列をご確認ください。 - 「ストレージスナップショット作成」画面で、「スナップショット名」と「説明」を入力し、「作成」ボタンをクリックします。
「スナップショット名」は、例として "demo_snapshot" とします。 - 「スナップショット」画面で、新規作成したスナップショットの状態が「available」になっていれば、作成完了です。
2.スナップショットのリストア(元の仮想サーバへリストア)
(1) 仮想サーバの停止
スナップショットをリストアする仮想サーバを停止してください。
(2) スナップショットの状態確認
リストアするスナップショットの状態が "avalible" であることを確認してください。
項目 | 設定値 | 内容 |
---|
$SNAP_ID | (スナップショットID) | 仮想サーバにアタッチされているストレージから取得したスナップショットのID |
curl -X GET -s $BLOCKSTORAGE/v2/$PROJECT_ID/snapshots/$SNAP_ID -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq .
(3) 停止した仮想サーバへリストア
停止した仮想サーバへリストアしてください。
項目 | 設定値 | 内容 |
---|
$SNAP_ID | (スナップショットID) | 仮想サーバにアタッチされているストレージから取得したスナップショットのID |
curl -X POST -i $BLOCKSTORAGE/v2/$PROJECT_ID/snapshots/$SNAP_ID/action -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"fcx-restore":""}'
(4) リストア状況確認
スナップショットをリストアした仮想サーバを起動して、リストアされたことを確認してください。
リストアを開始すると、仮想サーバにアタッチされたストレージの状態は "restoring" になります。
スナップショットの状態は、"restoring-snapshot" になります。
リストアが完了すると、仮想サーバにアタッチされたストレージの状態は "in-use" になります。
スナップショットの状態は、"available" になります。
メリット・効果
スナップショット機能を利用した場合のメリット・効果は以下の通りです。
- ストレージ単位で高速に丸ごとバックアップ可能
- 取得したスナップショットからストレージのデータ復元が可能
注意事項
- 本パターンは2017年5月時点のK5(IaaS)で動作検証しています。
- オンライン状態で取得したスナップショットを再利用した場合の動作は保証できません。
確実な動作を期待するバックアップデータとしたい場合は、
仮想サーバが停止状態のときに取得するようにしてください。
- 起動中の仮想サーバの増設ディスクのスナップショットを取得する際は、
仮想サーバのOS上でいったんマウントを外すと、
そのディスクへの書き込みを停止した状態でスナップショットを取得できるようになります。
Linux の場合、sync コマンドを実行後、umount コマンドでディスクをアンマウントします。
- 実装サンプルのようにスナップショットを元の仮想サーバにリストアした場合は、
元の仮想サーバのIDは変わりません。
- スナップショットから直接仮想サーバイメージは作成できません。
- スナップショットは、同一AZ内で利用可能です。
- スナップショットは、スナップショット取得元の仮想サーバ/ストレージ、または、
新規の仮想サーバ/ストレージに対してリストアすることができます。
スナップショットを、スナップショット取得元とは別の既存の仮想サーバ/ストレージにリストアすることはできません。
その他
- スナップショットを取得した元のストレージは、スナップショットを削除しないと削除できません。
関連資料
(2017年5月検証)