Benji Backup: A block based deduplicating backup software for Ceph RBD images, iSCSI targets, image files and block devices
Benji Backup for Kubernetes
Benji Backup for Kubernetes
Benji Backup for Kubernetes
Benji Backup for Kubernetes
ACTION REQUIRED: The Helm chart has seen some changes to default values which might break some setups. Especially the default Ceph credential volume mounts are no longer there. In addition, the dependant charts have been updated and the PostgreSQL chart has changed significantly and some keys and values will need adjustment if PostgreSQL is deployed via Benji Helm chart.
Support for RADOS/RBD namespaces has been added to both the rbd and the rbdaio io modules and the Kubernetes integration. The changes are based on code contributed by @jpsn123.
The fsfreeze feature works with Ceph CSI provisioned RBD volumes (includes volumes provisioned by Rook).
There is a new filtering operator like
which mimics its SQL counterpart.
Pushgateway grouping keys based on the Kubernetes namespace and PVC name are used to separate the backup status of different PVCs. Code contributed by @allenporter.
Deep-scrubbing with source comparison also checks sparse blocks. This will detect blocks that are sparse in the backup and not in the source.
A bug preventing restores of large images to succeed due using excessive
amounts of RAM when using the rbdaio
io module has been fixed.
Container images are based on AlmaLinux 8 and Ceph Pacific.
activeDeadlineSeconds
for cronjobs (benji.cronJob.activeDeadlineSeconds
) (#108)ACTION REQUIRED: New container images are only published to the GitHub container registry. The new image locations are:
ghcr.io/elemental-lf/benji
ghcr.io/elemental-lf/benji-k8s
The image tag latest
now points to the latest released version and not the current master
branch. To get the
container image for the master
branch use the tag master
as with all other branches.
Add options to specify number of retries and timeouts to the S3 storage module (#100, #102, #103)
Switch to improved retry logic of the boto3
library in the S3 storage module (#103, fixes #101)
Fix a bug where Benji would not error out if the base version's storage did not match the storage that would've been taken if no base version was specified (fixes #105)
Use proper fadvise flags on a Ceph RBD read (don't cache us but cache other clients)
Migrate b2 storage module to b2sdk (closes #46)
Kubernetes integration:
Development workflow: