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サービスは、cinder-volumeへの同期 RPC 呼び出しを発行し、ソースデバイスを切断します。 -
cinder-volumeサービスは、デバイスのマッピングを解除し、エクスポートを削除します。 - バックアップが完了すると、データベースのバックアップレコードが更新されます。