I think we need a new backup solution.
Current Situation
- Gitea data / attachments stored on CephFS
- single node / small Ceph cluster, 1.5TB of data
- Database (MariaDB) and container filesystems stored on BTRFS SSDs
- (no Ceph involved)
- < 200 GB btrfs data
- two Borg backup job scheduled regularly
- encrypted offsite backup
- independent runs for BTRFS and Ceph data
- regular cleanup jobs
- Ceph job frequently takes > 10 hours to complete
- io / cpu load of backup seems acceptable
Problems
Since the Borg backup job seems to take much more time than it did in the past, this appears like an upcoming scaling problem to me.
Borg sometimes fails by keeping the lock infinitely which requires manual fixup (I think we observed this for Codeberg 4 times over the course of a year). Additionally, we had some broken state after a run was interrupted which required some check/repair operation.
Borg locks the repo, so there are no concurrent jobs. This is not a problem for the backup jobs, but for cleanup / repair operations, this locks the repo for quite a while.
Considerations
CephFS is likely prone to some increased i/o latency on our system, especially since we're already having i/o trouble in #2.
Most Ceph backup solutions work with disk images and snapshots instead. Maybe we should look into snapshotting this, too? https://docs.ceph.com/en/latest/dev/cephfs-snapshots/
And combine with something else than borg?
I've been watching talks and reading suggestions lately. Most interesting to me sounds to have a standby Ceph cluster somewhere else, though I'm really not sure how to achieve this. Also, this would be more of a long-term project and not a short-time measure wiht the resources we have.
I think we need a new backup solution.
**Current Situation**
- Gitea data / attachments stored on CephFS
- single node / small Ceph cluster, 1.5TB of data
- Database (MariaDB) and container filesystems stored on BTRFS SSDs
- (no Ceph involved)
- < 200 GB btrfs data
- two Borg backup job scheduled regularly
- encrypted offsite backup
- independent runs for BTRFS and Ceph data
- regular cleanup jobs
- Ceph job frequently takes > 10 hours to complete
- io / cpu load of backup seems acceptable
**Problems**
Since the Borg backup job seems to take much more time than it did in the past, this appears like an upcoming scaling problem to me.
Borg sometimes fails by keeping the lock infinitely which requires manual fixup (I think we observed this for Codeberg 4 times over the course of a year). Additionally, we had some broken state after a run was interrupted which required some check/repair operation.
Borg locks the repo, so there are no concurrent jobs. This is not a problem for the backup jobs, but for cleanup / repair operations, this locks the repo for quite a while.
**Considerations**
CephFS is likely prone to some increased i/o latency on our system, especially since we're already having i/o trouble in #2.
Most Ceph backup solutions work with disk images and snapshots instead. Maybe we should look into snapshotting this, too? https://docs.ceph.com/en/latest/dev/cephfs-snapshots/
And combine with something else than borg?
I've been watching talks and reading suggestions lately. Most interesting to me sounds to have a standby Ceph cluster somewhere else, though I'm really not sure how to achieve this. Also, this would be more of a long-term project and not a short-time measure wiht the resources we have.