Wer Server in der Cloud betreibt, kennt das Dilemma: Eine gute Backup-Strategie muss einfach einzurichten, kostengünstig und extrem zuverlässig sein. In dieser Anleitung zeigen wir Schritt für Schritt, wie Sie eine Oracle Linux (ARM64) Instanz in der Oracle Cloud Infrastructure (OCI) mithilfe von Restic vollautomatisch in einen OCI Object Storage Bucket sichern.

🛠️ Voraussetzungen & Architektur

  • Virtuelle Maschine: Oracle Linux 8/9 (Ampere ARM64 oder x86)
  • Backup-Ziel: OCI Object Storage Bucket (S3-kompatible Schnittstelle)
  • Backup-Tool: Restic (Verschlüsselt, dedupliziert, schont Bandbreite)
  • Strategie: Tägliches automatisches Backup via Cronjob mit automatischer Retention Policy (Aufbewahrungszeit)

Schritt 1: OCI Object Storage Bucket erstellen

Zuerst benötigen wir den Ziel-Bucket in der Oracle Cloud Console.

  1. Navigieren Sie in der OCI Console zu Storage $\rightarrow$ Object Storage & Archive Storage $\rightarrow$ Buckets.
  2. Wählen Sie Ihr Compartment aus und klicken Sie auf Create Bucket.
  3. Vergeben Sie einen eindeutigen Namen (z. B. server-backups).
  4. Belassen Sie das Default Storage Tier auf Standard.
  5. Bestätigen Sie mit Create.

Schritt 2: S3 Access Keys (Customer Secret Keys) generieren

Da Restic über die S3-kompatible Schnittstelle mit OCI kommuniziert, erstellen wir die erforderlichen Zugangsdaten.

  1. Klicken Sie oben rechts auf Ihr Profil-Icon $\rightarrow$ My profile (User Settings).
  2. Scrollen Sie im linken Menü unter Resources zu Customer Secret Keys.
  3. Klicken Sie auf Generate Secret Key und vergeben Sie einen Namen (z. B. restic-backup-key).
  4. ⚠️ Wichtig: Kopieren Sie den angezeigten Secret Key sofort ab. Er wird nie wieder angezeigt!
  5. Kopieren Sie anschließend auch den zugehörigen Access Key aus der Übersichtstabelle.

S3-Endpoint ermitteln

Der S3-Endpoint setzt sich wie folgt zusammen:

https://<TENANCY-NAMESPACE>.compat.objectstorage.<REGION-ID>.oraclecloud.com

  • Tenancy Namespace: Zu finden in Ihrem Profil unter Tenancy: (z. B. frx123abc).
  • Region ID: Die ID Ihrer Region (z. B. Frankfurt = eu-frankfurt-1).

Schritt 3: Restic auf der Oracle Linux VM installieren

Da restic in den Standard-Repositories von Oracle Linux oft nicht enthalten ist (insbesondere bei ARM64-Instanzen), laden wir das fertige Binary direkt von GitHub herunter.

Bash

# 1. ARM64-Binary herunterladen (für Ampere-Instanzen)
# Hinweis: Bei x86-Servern verwenden Sie "linux_amd64.bz2"
curl -L https://github.com/restic/restic/releases/download/v0.17.3/restic_0.17.3_linux_arm64.bz2 -o restic.bz2

# 2. Archiv entpacken
bzip2 -d restic.bz2

# 3. Ausführbar machen und im System-Pfad ablegen
chmod +x restic
sudo mv restic /usr/local/bin/

# 4. Installation überprüfen
restic version

Schritt 4: Umgebungsvariablen anlegen & Restic initialisieren

Um Zugangsdaten nicht im Klartext in Befehlen nutzen zu müssen, legen wir eine geschützte Konfigurationsdatei an.

  1. Erstellen Sie die Datei ~/.restic_env:Bashnano ~/.restic_env
  2. Fügen Sie folgenden Inhalt ein und passen Sie die Werte an:Bash# OCI S3 Access Credentials export AWS_ACCESS_KEY_ID="IHR_ACCESS_KEY" export AWS_SECRET_ACCESS_KEY="IHR_SECRET_KEY" # Target S3 Repository Endpoint export RESTIC_REPOSITORY="s3:https://<NAMESPACE>.compat.objectstorage.eu-frankfurt-1.oraclecloud.com/server-backups" # Passwort für die lokale Restic-Verschlüsselung export RESTIC_PASSWORD="IhrSehrSicheresVerschluesselungsPasswort"
  3. Rechte einschränken, damit nur Ihr Benutzer die Datei lesen kann:Bashchmod 600 ~/.restic_env
  4. Repository im OCI Bucket initialisieren:Bashsource ~/.restic_env restic init

Schritt 5: Erstes Manuelles Backup durchführen

Sichern Sie testweise Ihre Anwendungsdaten (z. B. Docker-Volumes) und wichtige Systemkonfigurationen:

Bash

source ~/.restic_env
restic backup ~/dashy-data /etc

Nach Abschluss können Sie den Status Ihres Tresors überprüfen:

Bash

restic snapshots

Schritt 6: Automatisches tägliches Backup (Cronjob) einrichten

Damit die Sicherung vollautomatisch abläuft und alter Speicherplatz regelmäßig bereinigt wird, richten wir einen täglichen Cronjob ein.

  1. Öffnen Sie den Cron-Editor:Bashcrontab -e
  2. Fügen Sie am Ende folgende Zeile ein (führt das Backup täglich um 03:00 Uhr nachts aus):Plaintext0 3 * * * . /home/opc/.restic_env && restic backup ~/dashy-data /etc --quiet && restic forget --keep-daily 7 --keep-weekly 4 --prune --quiet
  3. Speichern und schließen:
    • In Vim: Esc drücken, dann :wq tippen und Enter.
    • In Nano: Strg + O, Enter, danach Strg + X.

Was macht dieser Cronjob?

  • . /home/opc/.restic_env: Lädt die benötigten S3-Zugangsdaten.
  • restic backup ...: Sichert die angegebenen Ordner inkrementell.
  • restic forget --keep-daily 7 --keep-weekly 4 --prune: Behält nur die letzten 7 Tages- und 4 Wochen-Backups. Nicht mehr benötigte Datenblöcke werden im Bucket bereinigt (--prune).

🚀 Fazit & Disaster Recovery

Mit diesem Setup ist Ihre Oracle Cloud VM bestens abgesichert:

  • Kosteneffizient: Im Always Free Tier von Oracle sind bis zu 10 GB Object Storage dauerhaft kostenlos.
  • Sicher: Daten werden lokal verschlüsselt, bevor sie die VM verlassen.
  • Wiederherstellung: Im Ernstfall lässt sich das aktuellste Backup mit einem einzigen Befehl wiederherstellen:Bashsource ~/.restic_env restic restore latest --target /tmp/restore-test