クラウドスナップショットによるバックアップ

Barmanは、ストレージボリュームのスナップショットを作成することにより、特定のクラウド環境内に展開されたPostgreSQLサーバーのバックアップを作成できます。このように構成すると、PostgreSQLファイルの物理バックアップはクラウドに保存されたボリュームスナップショットになり、 BarmanはWALとバックアップカタログのストレージサーバーとして機能します。これらのバックアップは、バックアップデータ自分自身がクラウドに保存されている場合でも、 rsync またはpostgres バックアップ方法で取得された従来のバックアップと同じようにBarmanで管理できます。

適切なPostgreSQLサーバーで スナップショットのbarman-cloud-backup コマンドを直接使用して、 Barmanサーバーなしでスナップショットバックアップを作成することもできます。

クラウドスナップショットの前提条件

Barmanでスナップショットバックアップ方法を使用するには、展開が次の前提条件を満たす必要があります。

  • PostgreSQLは、サポートされているクラウドプロバイダー内のコンピューティングインスタンスに展開する必要があります。

  • PostgreSQLは、PGDATAやテーブルスペースデータなどのすべての重要なデータがスナップショットをサポートするストレージボリュームに保存されるように構成する必要があります。

  • findmnt コマンドがPostgreSQLホストで使用できる必要があります。

!!!重要

PGDATAの外部に保存された構成ファイルはスナップショットに含まれません。このようなファイルの管理は、構成管理システムなどの別のメカニズムを使用して実行する必要があります。

Google Cloud Platformのスナップショットの前提条件

Barmanが使用するPythonディストリビューションで google-cloud-compute および grpcioライブラリを利用できる必要があります。これらのライブラリはオプションの依存関係であり、 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.createSnapshot

  • compute.disks.get

  • compute.globalOperations.get

  • compute.instances.get

  • compute.snapshots.create

  • compute.snapshots.delete

  • compute.snapshots.list

スナップショットバックアップの構成

クラウドスナップショットを介したバックアップ用にBarmanを構成するには、 backup_method パラメーターをsnapshot に設定し、 snapshot_provider をサポートされているクラウドプロバイダーに設定します。

backup_method = snapshot
snapshot_provider = gcp

現在、Google Cloud Platform(gcp)のみがサポートされています。

次のパラメーターは、クラウドプロバイダーに関係なく設定する必要があります。

snapshot_instance = INSTANCE_NAME
snapshot_zone = ZONE
snapshot_disks = DISK_NAME,DISK2_NAME,...

snapshot_instance がストレージボリュームが接続されているVMまたはコンピューティングインスタンスの名前に設定されている場合、 snapshot_zone はインスタンスが配置されている使用可能なゾーンであり、 snapshot_disks はバックアップに含める必要があるディスクのコンマ区切りリストです。

重要

snapshot_disks に、PostgreSQLが必要とするデータを格納するすべてのディスクが含まれていることを確認する必要があります。 snapshot_disks にリストされているストレージボリュームに保存されていないデータはバックアップに含まれないため、回復時に利用できません。

Google Cloud Platformのスナップショットの構成

GCPを使用する場合は、次の追加パラメーターを設定する必要があります。

snapshot_gcp_project = GCP_PROJECT_ID

これは、 snapshot_instance およびsnapshot_disks で定義されたインスタンスとストレージボリュームを所有するGCPプロジェクトのIDに設定する必要があります。

スナップショットバックアップの作成

構成オプションを設定し、 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 を参照してください。