4.2. スナップショットからのボリュームの復元
ボリュームの最新スナップショットの状態に復元することができます。つまり、インプレースでボリュームデータをその最新スナップショットの状態に戻すことができます。
ボリュームの最新スナップショットの状態に復元する機能はサポート対象ですが、ドライバーに依存します。この機能を正しく実装するには、ドライバー側の支援が必要です。この機能に対するサポートの詳細は、ドライバーのベンダーにお問い合わせください。
制限事項
- マルチ接続のボリュームの場合、スナップショットの状態に戻す機能の使用には制限が適用される可能性があります。この機能を使用する前に、このような制限が適用されるかどうかを確認してください。
- スナップショットの作成後にサイズを変更 (拡張) したボリュームを元に戻すことはできません。
- 接続済みまたは使用中のボリュームに対して、スナップショットの状態に戻す機能を使用することはできません。
前提条件
- アンダークラウドの正常なインストール。詳細は、Installing director on the undercloud を参照してください。
- オーバークラウドの正常なデプロイメント。詳細は、Creating a basic overcloud with CLI tools を参照してください。
- Red Hat OpenStack Platform (RHOSP) Dashboard (horizon) へのアクセス。詳細は、Overcloud deployment output を参照してください。
- Block Storage (cinder) API マイクロバージョン 3.40 またはそれ以降
- ボリュームのスナップショットを少なくとも 1 つ作成していること。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 source コマンドで
overcloudrc
ファイルを読み込みます。[stack@undercloud ~] $ source overcloudrc
ボリュームを切断します。
$ nova volume-detach <instance_id> <vol_id>
<instance_id> および <vol_id> を、元に戻すインスタンスおよびボリュームの ID に置き換えてください。
元に戻すスナップショットの ID または名前を探します。元に戻すことができるのは最新のスナップショットだけです。
$ cinder snapshot-list
スナップショットの状態に戻します。
$ cinder --os-volume-api-version=3.40 revert-to-snapshot <snapshot_id or snapshot_name>
<snapshot_id or snapshot_name> をスナップショットの ID または名前に置き換えてください。
オプション:
cinder snapshot-list
コマンドを使用して、元に戻しているボリュームが reverting の状態にあることを確認することができます。$ cinder snapshot-list
ボリュームを再接続します。
$ nova volume-attach <instance_id> <vol_id>
<instance_id> および <vol_id> を、元に戻したインスタンスおよびボリュームの ID に置き換えてください。
検証
手順が正常に行われたことを確認するには、
cinder list
コマンドを使用して、元に戻したボリュームが available の状態にあることを検証します。$ cinder list
Block Storage (cinder) をブート可能なルートボリュームとして使用した場合、ボリュームは available の状態にないため、そのボリュームでスナップショットの状態に戻す機能を使用することはできません。この機能を使用するには、インスタンスが終了した場合にブートボリュームを保持するために、delete_on_termination=false
(デフォルト) の属性を設定してインスタンスをブートしている必要があります。スナップショットの状態に戻す場合は、ボリュームが利用可能になるように、まず初期インスタンスを削除する必要があります。その後、元に戻してボリュームから新規インスタンスを作成することができます。