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サービスは、デバイスのマッピングを解除し、エクスポートを削除します。 - バックアップが完了すると、データベースのバックアップレコードが更新されます。