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により、一時ボリュームが削除されます。 - バックアップが完了すると、データベースのバックアップレコードが更新されます。