BorgBackup i HostArena S3: kako čuvati Borg repozitorijum

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

PodatakVrednost
Endpoint / serverhttps://s3.hostarena.rs (ili samo s3.hostarena.rs, port 443, HTTPS)
Regiongarage (obavezno)
Bucketvas-bucket (tačan naziv vidite u HostArena korisničkom panelu, kod S3 usluge)
Access KeyVAS_ACCESS_KEY (u korisničkom panelu, kod S3 usluge)
Secret KeyVAS_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.txt

Paž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 compact

Paž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=true

Poš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>&1

Provera da radi

borg list /srv/borg-repo
rclone check /srv/borg-repo hostarena:vas-bucket/borg-repo

Vrać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-ARHIVE

Paž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.

Tags: , , ,