Showcase · Backup Manager

Een backup die je niet vertrouwt is geen backup

Backupsoftware maakt kopieën. Backup Manager controleert of die kopieën kloppen — een engine die dagelijks dumpt en elke zes uur diagnosticeert, en een supervisor op een tweede machine die afwijkingen opmerkt en aan een mens voorlegt. Hij verwijdert nooit zelf.

03:00
dagelijkse volledige dump
6u
interval health-diagnose
505 GB
crashrestanten teruggevonden
0
automatische verwijderingen
Architectuur

Dumpen ≠ diagnosticeren ≠ beoordelen ≠ opruimen

Vier stappen, strikt gescheiden. De engine schrijft, de diagnose leest alleen, de supervisor markeert — en alleen een mens besluit wat er weg mag.

Engine dagelijks ~03:00 volumes · dumps · manifest Health-run elke 6 uur · diagnose-only log + alert-bestand Supervisor tweede machine leest logs via SSH Mens beslist beoordeelt markeringen geen auto-delete Data is heilig — er wordt niets automatisch verwijderd mislukte runs · groeiende volumes · onverwachte bestanden · schijfdruk (volume1 >85%, volume2 >80%)
Incident-replay

Schijfdruk is zelden een schijfprobleem

Een echt incident uit onze eigen geschiedenis. Een volume liep vol door twee crashrestanten. Links wat er gebeurde, rechts wat we er sindsdien aan veranderd hebben.

Wat er misging

  1. Twee crashrestanten blijven onopgemerkt op het volume staan
  2. Een halfafgebroken map en een oude archiefkopie van ~500 GB
  3. Het volume loopt vol — de melding komt pas bij 100%
  4. Een SQLite-database van een ander systeem raakt corrupt
  5. Die dienst valt om en toont zich naar buiten als een 530 achter de proxy

Wat we veranderd hebben

  1. De supervisor leest de backuplogs en ziet het volume groeien
  2. Onverwachte bestanden en mappen worden benoemd, niet aangeraakt
  3. Waarschuwing bij schijfdruk: volume1 >85%, volume2 >80%
  4. Ongewone groei wordt gemarkeerd voor menselijke beoordeling
  5. De mens besluit wat weg mag — de supervisor verwijdert nooit zelf

De les: schijfdruk is zelden een schijfprobleem. Het is een dataverliesprobleem dat zich vermomt als een capaciteitsmelding — en het slaat toe op een plek waar je niet keek.

Techniek in detail

Terughoudendheid is een architectuurkeuze

Volledige dump, elke nacht

Rond 03:00 draait een volledige run: dockervolumes plus databasedumps naar schijf. Daarbij hoort een manifest van welke containers er hadden moeten zijn — zodat je na een herstel kunt controleren wat er ontbreekt.

Health-run elke zes uur

Een diagnose-only run controleert storage driver, containertellingen en de kritieke containers. Hij muteert niets; hij schrijft een logbestand en een apart alert-bestand weg. Diagnose en ingreep zijn gescheiden.

Restore bij reboot

Na een herstart draait een restore-stap. De backup is daarmee geen archief dat je hoopt nooit nodig te hebben, maar een pad dat regelmatig wordt gelopen.

Toezicht vanaf een tweede machine

De supervisor draait bewust niet op de machine die hij bewaakt. Hij leest de backuplogs over SSH en detecteert afwijkingen: mislukte runs, groeiende volumes, bestanden die er niet horen.

Nooit automatisch verwijderen

Dit is het hart van het ontwerp. De supervisor markeert ongewone groei voor menselijke beoordeling en waarschuwt bij schijfdruk. Hij ruimt niet zelf op. Data is heilig — een systeem dat mag wissen, wist ooit het verkeerde.

Eerlijk over wat misging

De aanleiding was een eigen incident: een volgelopen volume door twee crashrestanten, samen 505 GB. Gevolg: een corrupte database elders en een dienst die omviel. De les zit nu in het ontwerp, niet in een belofte.

Gebouwd met PythonSSH-pollingcron/launchdDashboardTelegram-alertstar/dump
Early access

Wil je weten of jouw backups kloppen?

Backup Manager draait op ons eigen lab: dagelijkse dumps, zesuurlijkse diagnose en een supervisor die afwijkingen voorlegt in plaats van ze op te ruimen. Vraag een demo aan.