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.
Gerelateerde repositories
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:
- cron-fail-over-file-synchronization-fl09bre002.yml
- cron-fail-over-file-synchronization-fl10bre001.yml
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¶
- Monitoring: Controleer regelmatig de heartbeat URLs voor de status van rsync jobs
- Verificatie: Valideer dat files correct gesynchroniseerd worden tussen servers
- Alerting: Let op waarschuwingen van monitoring systemen
Fail-over Scenario¶
Calamiteit: Primaire server uitgevallen
Bij uitval van FL09BRE002:
- Schakel verkeer over naar
FL10BRE001 - Draai replicatie richting om (momenteel handmatig via Ansible)
- Monitor synchronisatie status
- Update DNS/load balancer configuratie
Calamiteit: Secundaire server uitgevallen
Bij uitval van FL10BRE001:
- Productie blijft draaien op
FL09BRE002 - Herstel
FL10BRE001zo snel mogelijk - Na herstel: volledige re-sync initiëren
- 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