[Dune-devel] Gitlab: Migrate artifacts, packages, (dependency proxy) to S3-compat object storage

Ansgar Burchardt ansgar.burchardt at tu-dresden.de
Mon Jun 15 17:45:17 CEST 2026


Hi,

the migration is done. I also had to allow the shared CI runner to
access the S3 domain.

Disk usage now looks like this:

# df -h /srv/data
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       300G   63G  231G  22% /srv/data

And on the S3 side:

| Bucket name                  | Number of objects | Size        |
|------------------------------|-------------------|-------------|
| dune-gitlab-artifacts        |            667385 | 171.222 GiB |
| dune-gitlab-dependency-proxy |                 0 |   0.000 GiB |
| dune-gitlab-packages         |              7970 |  44.667 GiB |
| dune-gitlab-registry         |            118906 | 170.384 GiB |
|------------------------------|-------------------|-------------|
| ∑                            |            794259 | 386.263 GiB |

We currently have a quota of 2.5 TB.

I also configured a policy that objects in S3 will only be marked for
deletion and only be removed after 90 days. This should be sufficient
in case Gitlab deletes data due to a software malfunction.

Some inconsistencies were found (and still exist):

~7 GiB of CI artifacts on disk, but missing in database (not moved to
S3).

~40 packages in database, but missing from disk.

Ansgar

On Thu, 2026-06-11 at 15:34 +0000, Ansgar Burchardt wrote:
> Hi,
> 
> the virtual disk for Gitlab data is fairly full:
> 
> root at dune-gitlab:~# df -h /srv/data
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/sdb1       300G  264G   32G  90% /srv/data
> 
> A large chunk is CI job artifacts and packages:
> 
> root at dune-gitlab:~# du -shc /srv/data/gitlab/gitlab-rails/shared/*
> 157G	/srv/data/gitlab/gitlab-rails/shared/artifacts
> 3.3G	/srv/data/gitlab/gitlab-rails/shared/cache
> 0	/srv/data/gitlab/gitlab-rails/shared/ci_secure_files
> 0	/srv/data/gitlab/gitlab-rails/shared/dependency_proxy
> 0	/srv/data/gitlab/gitlab-rails/shared/encrypted_settings
> 0	/srv/data/gitlab/gitlab-rails/shared/external-diffs
> 2.7G	/srv/data/gitlab/gitlab-rails/shared/lfs-objects
> 47G	/srv/data/gitlab/gitlab-rails/shared/packages
> 0	/srv/data/gitlab/gitlab-rails/shared/pages
> 0	/srv/data/gitlab/gitlab-rails/shared/registry
> 0	/srv/data/gitlab/gitlab-rails/shared/terraform_state
> 0	/srv/data/gitlab/gitlab-rails/shared/tmp
> 209G	total
> 
> For comparison the Git repository data and Gitlab database are much
> smaller:
> 
> root at dune-gitlab:~# du -shc /srv/data/gitlab/git-data /srv/data/gitlab/postgresql
> 14G	/srv/data/gitlab/git-data
> 15G	/srv/data/gitlab/postgresql
> 29G	total
> 
> Instead of resizing the disk, I would like to migrate some more data
> to S3-compatible object storage. We already use object storage for
> the Docker registry.
> 
> I would migrate the following objects:
> 
> 1. Job artifacts (CI/CD job artifacts including logs).
> 2. Project packages (PyPI, ...)
> 3. Dependency proxy (currently unused, just configure it to use
> object storage).
> 
> I would keep Git LFS objects on the disk as the S3-compat storage has
> redundancy (to cover disk failure), but no full backups (when
> something deletes too much). I don't think losing CI/CD job artifacts
> or packages is too bad, just like with Docker images.
> 
> The migration should be possible while Gitlab runs. It is also
> possible to migrate back to local storage.
> 
> See the Gitlab documentation for
> details: https://docs.gitlab.com/administration/object_storage/
> 
> Regards,
> Ansgar
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20260615/1f0815d1/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6599 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20260615/1f0815d1/attachment.bin>


More information about the Dune-devel mailing list