Restic is used to create incremental backups.
Host raspberrypi4 is set for backing up glusterfs files.
All glusterfs files are mounted under /mnt.
An NFS drive is mounted under /data/backup as the backup destination.
/etc/fstab entries:
localhost:/dockervol /mnt glusterfs defaults,_netdev,noauto,x-systemd.automount 0 0 192.168.1.1:/mnt/sda1/backup /data/backup nfs defaults 0 0
Apply backup.job.yaml.
Apply backup.cronjob.yaml.
Apply backup.pod.yaml.
It creates a restic-cli pod on raspberrypi4.
kubectl exec -it restic-cli -- /bin/sh gives you a shell in the pod's container.
Select the snapshot id by running restic --repo /data/repo snapshots --insecure-no-password.
Run restic --repo /data/repo restore <snapshot_id> /data/glusterfs --insecure-no-password to fully restore from a snapshot.
kubectl apply -f backup.remote.pod.yaml
It creates an rclone-cli pod on raspberrypi4.
kubectl exec -it rclone-cli -- /bin/sh gives you a shell in the pod's container.
Run rclone -vvv --progress --stats-one-line --max-stats-groups 10 --log-format date,time,UTC,longfile --fast-list --buffer-size 256Mi --oos-no-check-bucket --oos-upload-cutoff 10Mi --multi-thread-cutoff 16Mi --multi-thread-streams 3000 --transfers 3000 --checkers 64 --retries 2 --oos-chunk-size 10Mi --oos-upload-concurrency 10000 --oos-attempt-resume-upload --oos-leave-parts-on-error sync /data/repo oos:backup -vv