1.2. バックアップおよび復元の仕組み
以下のサブセクションでは、バックアップと復元のワークフローについて説明します。
1.2.1. ボリュームバックアップのワークフロー
Block Storage バックアップサービスがバックアップを実行すると、cinder API から、ターゲットのボリュームのバックアップを作成する要求を受け取ります。バックアップサービスは要求を完了し、コンテンツをバックエンドに保存します。
以下の図は、要求が Block Storage (cinder) サービスと相互作用してバックアップを実行する方法を示しています。
- クライアントは、cinder API を起動して、Block Storage ボリュームのバックアップを作成するように要求します。
- cinder API サービスは、HAProxy から要求を受信し、要求、ユーザー認証情報、およびその他の情報を検証します。
- SQL データベースにバックアップレコードを作成します。
-
AMQP を介して、
cinder-backup
への非同期 RPC 呼び出しを行い、ボリュームのバックアップを作成します。 - API 呼び出し元に、現在のバックアップレコード (ID) を返します。
- RPC 作成メッセージは、バックアップサービスのいずれかに届きます。
-
cinder-backup
は、get_backup_デバイス
への同期 RPC 呼び出しを実行します。 -
cinder-volume
は、正しいデバイスが呼び出し元に返されるようにします。通常は同じボリュームですが、ボリュームが使用中の場合は、設定によっては一時クローンボリュームまたは一時スナップショットが返されます。 -
cinder-backup
は、別の同期 RPC を発行して、ソースデバイスを公開するようにcinder-volume
します。 -
cinder-volume
サービスは、ソースデバイス (ボリュームまたはスナップショット) をエクスポートしてマッピングし、適切な接続情報を返します。 -
cinder-backup
は、接続情報を使用してソースボリュームを割り当てます。 -
cinder-backup
は、デバイスが接続されている状態でバックアップドライバーを呼び出し、バックアップ先へのデータ転送を開始します。 - ボリュームがバックアップホストから切り離されている。
-
cinder-backup
は、同期 RPC をcinder-volume
に発行して、ソースデバイスの接続を解除します。 -
cinder-volume
サービスは、デバイスのマッピングを解除し、エクスポートを削除します。 -
一時ボリュームまたは一時スナップショットが作成された場合、
cinder-backup
はcinder-volume
を呼び出してそのボリュームを削除します。 -
cinder-volume
により、一時ボリュームが削除されます。 - バックアップが完了すると、データベースのバックアップレコードが更新されます。