Incremental backups looks like a full

Problem to solve

I have a self-managed gitlab instance that is currently generating a daily backup of roughly around 400GB. I am hoping to leverage the backup and recovery process to migrate the instance to a different location. In an effort to shrink the time that the instance will be offline, I am attempting to leverage incremental backups.

I use the following command to initiate a full backup.

gitlab-backup create

This generates a full backup where the filename is β€œ1726255583_2024_09_13_17.3.1-ee_gitlab_backup.tar” which is 391GB is size, and contains the repositories directory containing 375GB of repos. When I attempt to leverage this file as the previous_backup for my incremental, using the command below

gitlab-backup create INCREMENTAL=yes PREVIOUS_BACKUP=1726255583_2024_09_13_17.3.1-ee

My resulting backup still contains 375GB of repository data. Since no changes were made to any data, between the initial full backup and the incremental, I expected a greatly decreased tar file size.

Steps to reproduce

Execute a full backup (gitlab-backup create) and then immediately leverage that backup as the previous backup for an incremental (gitlab-backup create INCREMENTAL=yes PREVIOUS_BACKUP=1726255583_2024_09_13_17.3.1-ee)

Configuration

Versions

Please select whether options apply, and add the version information.

Versions

System information
System:
Proxy: no
Current User: git
Using RVM: no
Ruby Version: 3.1.5p253
Gem Version: 3.5.11
Bundler Version:2.5.11
Rake Version: 13.0.6
Redis Version: 7.0.15
Sidekiq Version:7.1.6
Go Version: unknown

GitLab information
Version: 17.3.1-ee
Revision: df01858216e
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 14.11
URL: https://xxxxxxxx.com
HTTP Clone URL: xxxxx.com
SSH Clone URL: git@xxxxxx.com:some-group/some-project.git
Elasticsearch: no
Geo: no
Using LDAP: no
Using Omniauth: yes
Omniauth Providers: openid_connect
GitLab Shell
Version: 14.38.0
Repository storages:

  • default: unix:/var/opt/gitlab/gitaly/gitaly.socket
    GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
    Gitaly
  • default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
  • default Version: 17.3.1
  • default Git Version: 2.45.2

Helpful resources