BorgBackup i HostArena S3: kako čuvati Borg repozitorijum
BorgBackup (Borg) je popularan alat za šifrovane bekape sa deduplikacijom (isti podaci se ne čuvaju dva puta). Ovo uputstvo pokazuje kako da Borg bekape čuvate i na HostArena S3 storage, sa podacima u Srbiji.
Važno: Borg nema direktnu S3 podršku. Borg repozitorijum mora da bude na lokalnom disku ili na serveru dostupnom preko SSH-a. Na S3 se zatim šalje kopija tog repozitorijuma, pomoću rclone-a.
Ako želite alat koji sam piše direktno na S3, pogledajte Restic bekap na HostArena S3 – restic ima ugrađenu S3 podršku i radi na sličnom principu kao Borg.
Šta vam je potrebno
| Podatak | Vrednost |
|---|---|
| Endpoint / server | https://s3.hostarena.rs (ili samo s3.hostarena.rs, port 443, HTTPS) |
| Region | garage (obavezno) |
| Bucket | vas-bucket (tačan naziv vidite u HostArena korisničkom panelu, kod S3 usluge) |
| Access Key | VAS_ACCESS_KEY (u korisničkom panelu, kod S3 usluge) |
| Secret Key | VAS_SECRET_KEY (u korisničkom panelu, kod S3 usluge) |
Na serveru treba da budu instalirani Borg (paket borgbackup) i rclone (rclone.org). Uputstvo koristi Borg 1.x; Borg 2 je u razvoju i ima drugačije komande.
Korak 1: Borg repozitorijum na lokalnom disku
export BORG_REPO=/srv/borg-repo
export BORG_PASSPHRASE="vasa-jaka-lozinka"
borg init --encryption=repokey-blake2
borg key export "$BORG_REPO" /root/borg-kljuc.txtPažnja: bez lozinke (i ključa, koji je kod repokey zapisan u repozitorijumu) bekap ne može da se vrati. Lozinku i izvezeni ključ borg-kljuc.txt čuvajte van servera.
Korak 2: Pravljenje bekapa i čišćenje
export BORG_REPO=/srv/borg-repo
export BORG_PASSPHRASE="vasa-jaka-lozinka"
borg create --stats --compression lz4 ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg compactPažnja: borg prune trajno briše arhive koje ne spadaju u pravila zadržavanja, a borg compact oslobađa prostor. Pre prvog pokretanja proverite pravila sa borg prune --dry-run --list ....
Korak 3: Kopija repozitorijuma na HostArena S3
Podesite rclone remote hostarena (detaljno u uputstvu za rclone):
export HA_KEY="VAS_ACCESS_KEY"
export HA_SECRET="VAS_SECRET_KEY"
rclone config create hostarena s3 provider=Other
endpoint=https://s3.hostarena.rs region=garage
access_key_id="$HA_KEY" secret_access_key="$HA_SECRET"
force_path_style=truePošto Borg posle prune i compact menja i briše fajlove u repozitorijumu, kopija na S3 treba da bude tačan odraz lokalnog repozitorijuma. Za to se koristi rclone sync. Prvo uvek probno:
rclone sync /srv/borg-repo hostarena:vas-bucket/borg-repo --dry-run
rclone sync /srv/borg-repo hostarena:vas-bucket/borg-repo
--backup-dir hostarena:vas-bucket/borg-obrisano/$(date +%F)Pažnja: rclone sync briše u bucketu sve što ne postoji lokalno. Ako se lokalni repozitorijum ošteti ili obriše, sync će obrisati i kopiju. Opcija --backup-dir zato premešta obrisane i izmenjene fajlove u poseban folder umesto da ih odmah obriše; taj folder povremeno ručno očistite. Sync pokrećite samo kada Borg ne radi (posle bekapa, ne tokom njega).
Ako ne želite da išta bude obrisano u bucketu, možete koristiti rclone copy, ali tada se u bucketu gomilaju stari fajlovi i kopija više nije tačan odraz repozitorijuma.
Automatizacija
Komande iz koraka 2 i 3 stavite u jednu skriptu (npr. /root/borg-bekap.sh) tako da se sync pokreće tek kad Borg uspešno završi (set -e na početku skripte), i zakažite je preko cron-a:
30 2 * * * root /root/borg-bekap.sh >> /var/log/borg-bekap.log 2>&1Provera da radi
borg list /srv/borg-repo
rclone check /srv/borg-repo hostarena:vas-bucket/borg-repoVraćanje podataka
Ako je lokalni repozitorijum izgubljen, preuzmite kopiju u novi, prazan folder i otuda vratite fajlove:
rclone copy hostarena:vas-bucket/borg-repo /srv/borg-vracanje
borg list /srv/borg-vracanje
mkdir -p /root/vraceno && cd /root/vraceno
borg extract /srv/borg-vracanje::IME-ARHIVEPažnja: borg extract raspakuje fajlove u trenutni folder i prepisuje istoimene fajlove. Ne pokrećite rclone sync iz bucketa preko postojećeg lokalnog repozitorijuma – obrisali biste novije podatke.
Najčešći problemi
Komanda sa adresom s3://… ne radi
Borg ne podržava S3 adrese. Repozitorijum mora biti lokalan ili na SSH serveru, a na S3 ide kopija preko rclone-a.
Greška sa regionom (expected garage)
U rclone podešavanju region mora biti garage.
Repository is locked
Borg je još radio ili je prekinut. Proverite da nijedan Borg proces ne radi, pa pokrenite borg break-lock /srv/borg-repo.
Zaključak
Borg lokalno plus rclone kopija na HostArena S3 daje brze bekape i sigurnu kopiju van servera. Za jednostavnije rešenje bez međukoraka pogledajte Restic. Srodno: rclone, Duplicati. Za pomoć otvorite tiket u korisničkom panelu.
