クラウドスナップショットによるバックアップ¶
Barmanは、ストレージボリュームのスナップショットを作成することにより、特定のクラウド環境内に展開されたPostgreSQLサーバーのバックアップを作成できます。このように構成すると、PostgreSQLファイルの物理バックアップはクラウドに保存されたボリュームスナップショットになり、
BarmanはWALおよびバックアップカタログのストレージサーバーとして機能します。これらのバックアップは、バックアップデータ自体がクラウドに保存されている場合でも、
rsync またはpostgres
バックアップ方法で取得された従来のバックアップと同じようにBarmanで管理できます。
適切なPostgreSQLサーバーで スナップショット用のbarman-cloud-backup コマンドを直接使用して、 Barmanサーバーなしでスナップショットバックアップを作成することもできます。
クラウドスナップショットの前提条件¶
Barmanでスナップショットバックアップ方法を使用するには、展開が次の前提条件を満たす必要があります。
PostgreSQLは、サポートされているクラウドプロバイダー内のコンピューティングインスタンスにデプロイする必要があります。
PostgreSQLは、PGDATAやテーブルスペースデータなどのすべての重要なデータが、スナップショットをサポートするストレージボリュームに保存されるように構成する必要があります。
findmntコマンドがPostgreSQLホストで使用可能である必要があります。
重要
PGDATA外部に保存された構成ファイルはスナップショットに含まれません。このようなファイルの管理は、構成管理システムなどの別のメカニズムを使用して実行する必要があります。
Google Cloud Platformのスナップショットの前提条件¶
google-cloud-computeおよびgrpcioライブラリは、
Barmanが使用するPythonディストリビューションで利用できる必要があります。これらのライブラリはオプションの依存関係であり、
Barmanパッケージによって標準としてインストールされることはありません。
pip を使用して、次のようにインストールできます。
pip3 install grpcio google-cloud-compute
注釈
google-cloud-computeライブラリに必要なPythonの最小バージョンは3.7です。 GCPスナップショットは、以前のバージョンのPythonでは使用できません。
Google Cloud Platformでのスナップショットバックアップには、次の追加の前提条件が適用されます。
スナップショットバックアップに含まれるすべてのディスクは、ゾーン永続ディスクである必要があります。リージョン永続ディスクは現在サポートされていません。
Barmanは、必要な権限セットを持つサービスアカウントを利用できる必要があります。これを行うには、そのようなアカウントをBarmanを実行しているコンピューティングインスタンスにアタッチするか(推奨)、
GOOGLE_APPLICATION_CREDENTIALS環境変数を使用して資格情報ファイルをポイントします。
必要な権限は次のとおりです。
compute.disks.createSnapshotcompute.disks.getcompute.globalOperations.getcompute.instances.getcompute.snapshots.createcompute.snapshots.deletecompute.snapshots.list
Azureスナップショットの前提条件¶
azure-mgmt-computeライブラリとazure-identityライブラリは、 Barmanが使用するPythonディストリビューションで利用できる必要があります。
これらのライブラリはオプションの依存関係であり、
Barmanパッケージによって標準としてインストールされることはありません。
pip を使用して、次のようにインストールできます。
pip3 install azure-mgmt-compute azure-identity
注釈
azure-mgmt-computeライブラリに必要なPythonの最小バージョンは3.7です。 Azure スナップショットは、以前のバージョンの Python では使用できません。
Azureでのスナップショットバックアップには、次の追加の前提条件が適用されます。
スナップショットバックアップに含まれるすべてのディスクは、データディスクとしてVMインスタンスに接続されているマネージドディスクである必要があります。
Barmanは、マネージドIDまたはCLIログインを使用して取得した資格情報を使用できる必要があり、これにより、必要なアクセス許可のセットでAzureへのアクセスを許可する必要があります。
次の権限が必要です。
Microsoft.Compute/disks/readMicrosoft.Compute/virtualMachines/readMicrosoft.Compute/snapshots/readMicrosoft.Compute/snapshots/writeMicrosoft.Compute/snapshots/delete
AWSスナップショットの前提条件¶
Barmanが使用するPythonディストリビューションでboto3ライブラリを利用できる必要があります。
このライブラリはオプションの依存関係であり、
Barmanパッケージによって標準としてインストールされることはありません。
pip を使用して、次のようにインストールできます。
pip3 install boto3
AWSでのスナップショットバックアップには、次の追加の前提条件が適用されます。
スナップショットバックアップに含まれるすべてのディスクは、非ルートEBSボリュームである必要があり、同じVMインスタンスに接続されている必要があります。
NVMeボリュームは現在サポートされていません。
次の権限が必要です。
ec2:CreateSnapshotec2:CreateTagsec2:DeleteSnapshotec2:DescribeSnapshotsec2:DescribeInstancesec2:DescribeVolumes
スナップショットバックアップの構成¶
クラウドスナップショットを介したバックアップ用にBarmanを構成するには、
backup_method パラメーターをsnapshot に設定し、
snapshot_provider
をサポートされているクラウドプロバイダーに設定します。
backup_method = snapshot
snapshot_provider = gcp
現在、Google Cloud Platform(gcp )、Microsoft Azure(azure
)、AWS(aws )がサポートされています。
クラウドプロバイダーに関係なく、次のパラメーターを設定する必要があります。
snapshot_instance = INSTANCE_NAME
snapshot_disks = DISK_NAME,DISK2_NAME,...
snapshot_instance
は、ストレージボリュームが接続されているVMまたはコンピューティングインスタンスの名前に設定され、
snapshot_disks
は、バックアップに含める必要があるディスクのコンマ区切りリストです。
重要
snapshot_disks に、PostgreSQLが必要とするデータを格納するすべてのディスクが含まれていることを確認する必要があります。 snapshot_disks にリストされているストレージボリュームに保存されていないデータはバックアップに含まれないため、回復時に利用できません。
Google Cloud Platformスナップショットの構成¶
GCPを使用する場合は、次の追加パラメーターを設定する必要があります。
gcp_project = GCP_PROJECT_ID
gcp_zone = ZONE
gcp_project は、 snapshot_instance およびsnapshot_disks
で定義されたインスタンスとストレージボリュームを所有するGCPプロジェクトのIDに設定する必要があります。
gcp_zone
は、インスタンスが配置されているアベイラビリティーゾーンに設定する必要があります。
Azureスナップショットの構成¶
Azureを使用する場合は、次の追加パラメーターを設定する必要があります。
azure_subscription_id = AZURE_SUBSCRIPTION_ID
azure_resource_group = AZURE_RESOURCE_GROUP
azure_subscription_id は、 snapshot_instance
およびsnapshot_disks
で定義されたインスタンスとストレージボリュームを所有するAzureサブスクリプションIDのIDに設定する必要があります。
azure_resource_group
は、インスタンスとディスクが属するリソースグループに設定する必要があります。
AWSスナップショットの設定¶
snapshot_instance またはsnapshot_disks を指定する場合、
BarmanはAWS または
名前によってリソースに割り当てられたインスタンス/ボリュームIDを受け入れます。名前が使用されている場合、
BarmanはAWSにクエリを実行して、一致するName
タグを持つリソースを見つけます。一致するリソースがゼロまたは複数見つかった場合、
Barmanはエラーで終了します。
AWSを使用する場合、次のオプションパラメーターを設定できます。
aws_region = AWS_REGION
aws_profile = AWS_PROFILE_NAME
aws_profile
を使用する場合、AWS認証情報ファイルのセクションの名前に設定する必要があります。
aws_profile
が使用されない場合、デフォルトのプロファイルが使用されます。資格情報ファイルが存在しない場合、資格情報は環境から取得されます。
aws_region
が指定されている場合、AWSプロファイルで定義されている可能性のあるリージョンをオーバーライドします。
スナップショットバックアップの作成¶
構成オプションを設定し、 Barmanが適切な資格情報を利用できるようになると、
barman backup コマンドを使用してバックアップを取得できます。
Barmanは、 barman check
コマンド中およびバックアップの開始時に、スナップショットバックアップの構成パラメーターを検証します。
backup_method = snapshot
を使用する場合、次の引数/構成変数は使用できないことに注意してください。
Command argument |
Config variable |
|---|---|
N/A |
backup_compression |
--bwlimit |
bandwidth_limit |
--jobs |
parallel_jobs |
N/A |
network_compression |
--reuse-backup |
reuse_backup |
- スナップショットバックアップの管理とリカバリに関する考慮事項を含む、スナップショットバックアップのより詳細な説明については、
cloud snapshots section in feature details を参照してください。