1.2.2. ボリュームの復元のワークフロー
以下の図は、ユーザーが Block Storage Service (cinder) バックアップの復元を要求すると発生する手順を示しています。
- クライアントは、CinderREST API を呼び出して、Block Storage バックアップを復元する要求を発行します。
- cinder API は、HAProxy から要求を受信し、要求、ユーザー認証情報、およびその他の情報を検証します。
- 要求に宛先として既存のボリュームが含まれていない場合、API は非同期 RPC 呼び出しを行って新しいボリュームを作成し、ボリュームのステータスをポーリングして利用可能になります。
-
cinder-scheduler
がボリュームサービスを選択し、RPC 呼び出しを実行してボリュームを作成します。 -
選択した
cinder-ボリューム
により、音量が作成されます。 -
cinder-api
がボリュームが利用可能であることを検出すると、バックアップレコードがデータベースに作成されます。 - AMQP 経由でバックアップサービスへの非同期 RPC 呼び出しを行い、バックアップを復元します。
- 現在のボリューム ID、バックアップ ID、およびボリューム名を API 呼び出し元に返します。
- RPC 作成メッセージは、バックアップサービスのいずれかに届きます。
-
cinder-backup
は、cinder-volume
への同期 RPC 呼び出しを実行して、宛先ボリュームを公開します。 -
cinder-volume
は、適切な接続情報を返す宛先ボリュームをエクスポートしてマッピングします。 -
cinder-backup
は、接続情報を使用してソースボリュームを接続します。 -
cinder-backup
サービスは、デバイスが接続されている状態でドライバーを呼び出し、ボリュームデスティネーションへのデータの復元を開始します。 - ボリュームがバックアップホストから切り離されている。
-
cinder-backup
は、同期 RPC をcinder-volume
に発行して、ソースデバイスの接続を解除します。 -
cinder-volume
サービスは、デバイスのマッピングを解除し、エクスポートを削除します。 - バックアップが完了すると、データベースのバックアップレコードが更新されます。