Skip to content

KB: Brekz Hosting - Rsync File Replicatie

Terug naar klant: Brekz Deze pagina beschrijft de rsync-gebaseerde file replicatie strategie voor het Brekz hosting platform, inclusief de fail-over configuratie tussen de primaire en secundaire servers.

Overzicht

De file synchronisatie tussen de Brekz hosting servers zorgt voor data redundantie en maakt fail-over mogelijk bij calamiteiten. De replicatie verloopt via een Hetzner Storage Box als intermediaire laag.

Architectuur

Standaard Replicatie Richting

In de normale operationele situatie is de replicatie richting als volgt:

graph LR
    A[FL09BRE002 Active source] -->|rsync| B[Hetzner Storage Box]
    B -->|rsync| C[FL10BRE001 Passive replica]

    style A fill:#4CAF50
    style C fill:#2196F3
    style B fill:#FF9800
Rol Server Functie
Source FL09BRE002 Primaire productie server (active source)
Intermediair Hetzner Storage Box Tijdelijke opslag
Destination FL10BRE001 Secundaire fail-over server (passive replica)

Configuratie Details

Normale operationele configuratie

# Cron configuratie
Source: FL09BRE002
Destination: FL10BRE001
Frequentie: Elk uur

Ansible playbook:

Rsync script:

Omgekeerde configuratie bij calamiteiten

# Fail-over configuratie
Source: FL10BRE001
Destination: FL09BRE002
Frequentie: Elk uur

Handmatige actie vereist

Het omdraaien van de replicatie richting vereist momenteel handmatige aanpassing van de Ansible configuratie.

Implementatie Status

Afgerond

  • Bash scripts voor rsync processen
  • Ansible provisioning voor hourly cron jobs
  • Health monitoring op rsync processen (via heartbeat URLs)

Openstaand

  • Ansible provisioning voor geautomatiseerd omdraaien van replicatie richting

Verbeterpunt: Geautomatiseerd omdraaien

Ontwikkel Ansible provisioning die de rsync richting kan omdraaien zonder handmatige configuratie aanpassingen. Dit verkort de fail-over tijd bij calamiteiten.

Operationele Procedures

Normale Operatie

  1. Monitoring: Controleer regelmatig de heartbeat URLs voor de status van rsync jobs
  2. Verificatie: Valideer dat files correct gesynchroniseerd worden tussen servers
  3. Alerting: Let op waarschuwingen van monitoring systemen

Fail-over Scenario

Calamiteit: Primaire server uitgevallen

Bij uitval van FL09BRE002:

  1. Schakel verkeer over naar FL10BRE001
  2. Draai replicatie richting om (momenteel handmatig via Ansible)
  3. Monitor synchronisatie status
  4. Update DNS/load balancer configuratie

Calamiteit: Secundaire server uitgevallen

Bij uitval van FL10BRE001:

  1. Productie blijft draaien op FL09BRE002
  2. Herstel FL10BRE001 zo snel mogelijk
  3. Na herstel: volledige re-sync initiëren
  4. Valideer data integriteit

Directory Toevoegen of Verwijderen

Wanneer er een directory wordt toegevoegd aan of verwijderd uit het rsync proces, moet dit worden doorgevoerd in de rsync scripts in de GitHub repository en vervolgens op beide servers worden bijgewerkt.

Procedure

Stap-voor-stap: Directory wijziging doorvoeren

**1. Rsync scripts aanpassen in GitHub**

Pas de betreffende rsync scripts aan in de [:material-github: brekz-fail-over-setup](https://github.com/brekz-group/brekz-fail-over-setup/){ target="_blank" } repository:

- `file-synchronization/rsync-fl09bre002-push.sh`  voeg de directory toe of verwijder deze uit het push script
- `file-synchronization/rsync-fl10bre001-pull.sh`  voeg de directory toe of verwijder deze uit het pull script

!!! warning "Beide scripts aanpassen"
    Zorg ervoor dat **beide** scripts consistent worden aangepast. Het push script op de source server en het pull script op de destination server moeten dezelfde directories bevatten.

Commit en push de wijzigingen naar de `master` branch.

**2. Git pull op FL09BRE002 (source server)**

Log in op de primaire server en pull de laatste wijzigingen:

```bash
ssh brekz@FL09BRE002
cd ~/brekz-fail-over-setup
git pull
```

**3. Git pull op FL10BRE001 (destination server)**

Log in op de secundaire server en pull de laatste wijzigingen:

```bash
ssh brekz@FL10BRE001
cd ~/brekz-fail-over-setup
git pull
```

**4. Verificatie**

- Controleer of de eerstvolgende rsync job correct draait
- Verifieer via de heartbeat monitoring dat de synchronisatie succesvol is
- Bij een **nieuwe** directory: controleer of de bestanden correct gerepliceerd worden naar de destination server

Volgorde maakt niet uit

De git pull mag in willekeurige volgorde op beide servers worden uitgevoerd. De wijzigingen worden pas actief bij de eerstvolgende geplande rsync cron job.

MySQL Backup Downloaden

Op de MySQL Replica server FL10SQL001 staat een bash script waarmee eenvoudig de meest recente Xtrabackup kan worden gedownload.

Server FL10SQL001
Pad ~/backups/XTRABACKUP
Script download-latest-backup.sh
cd ~/backups/XTRABACKUP
./download-latest-backup.sh

SSH verbinding naar Hetzner Storage Box

Het script maakt gebruik van een SSH verbinding naar de Hetzner Storage Box via de SSH alias backup. Deze alias is geconfigureerd in ~/.ssh/config op FL10SQL001.

Gerelateerde Documentatie


Laatste update: December 2025