Restore from Azure Blob fails – mandatory metadata files are chunked, not reassembled

Hi,

I’m trying to restore a backup from Azure Blob Storage to a Percona XtraDB Cluster using the PerconaXtraDBClusterRestore CR.

My CR looks like this:

apiVersion: pxc.percona.com/v1
kind: PerconaXtraDBClusterRestore
metadata:
  name: restore-from-prod-v1
spec:
  pxcCluster: pxc-local-pxc-db
  backupSource:
    destination: azure://percona-backup/my-db-pxc-db-2025-08-14-02:00:36-full
    azure:
      container: percona-backup
      credentialsSecret: azure-blob-secret

The backup was taken successfully and is stored in Azure.

However, during the restore, xtrabackup --prepare fails:

[ERROR] [Xtrabackup] cannot open ./xtrabackup_checkpoints
[ERROR] [Xtrabackup] failed to read metadata from './xtrabackup_checkpoints'

On inspection, files like xtrabackup_checkpoints, xtrabackup_info, and xtrabackup_binlog_info don’t exist as single files in the restore dir. Instead, they are split into chunk parts such as:

xtrabackup_checkpoints.00000000000000000000
xtrabackup_checkpoints.00000000000000000001

Same for xtrabackup_info and others.

It seems the restore process downloads the blob chunks but doesn’t reassemble them before running xtrabackup. If I run xbcloud get manually without piping to xbstream -x, I see the same behavior.

Questions:

  1. Is this expected when restoring from Azure with PerconaXtraDBClusterRestore?

  2. Should the operator automatically pipe the xbcloud get output into xbstream -x to reassemble chunks before running prepare?

  3. Is there a recommended workaround—either by fixing the operator config or manually merging these chunk files—so that xtrabackup --prepare can run successfully?

Thanks!

@noops do you use PXC operator for the backup or it was just PXB?