| U kunt in Linux niet rechtstreeks een back-up maken van *open* bestanden, op dezelfde manier waarop u een back-up kunt maken van gesloten bestanden. Het besturingssysteem vergrendelt bestanden terwijl ze in gebruik zijn om gegevensbeschadiging door gelijktijdige toegang te voorkomen. Een poging tot een directe kopie mislukt volledig of resulteert in een onvolledige of beschadigde back-up.
Er zijn echter verschillende manieren om een *consistente* back-up te maken van bestanden die momenteel geopend zijn, afhankelijk van uw behoeften en het type back-up dat u uitvoert:
* `rsync` gebruiken met `--archive` en `-X`: `rsync` is een krachtig hulpmiddel voor back-ups. De `-X` optie behoudt uitgebreide attributen, die cruciaal kunnen zijn voor bestandsmetagegevens, en `--archive` zorgt voor een goede archiefkopie. Hoewel het geen back-up maakt van de *exacte* status in het geheugen van een geopend bestand, zal `rsync` het bestand kopiëren zoals het momenteel naar schijf is geschreven. Dit zal waarschijnlijk heel dicht bij de werkelijke inhoud liggen, vooral als er niet vaak wijzigingen plaatsvinden. Alle wijzigingen die *na* het starten van de back-up worden aangebracht, worden gemist.
* Snapshots van bestandssysteem (LVM, btrfs, ZFS): Deze bestandssysteemfuncties creëren een point-in-time kopie van het volledige bestandssysteem. Dit is de meest betrouwbare methode voor het maken van back-ups van geopende bestanden, omdat de momentopname de status van alle bestanden vastlegt, inclusief geopende bestanden, op een specifiek moment. Het voordeel is dat de momentopname volledig consistent is. De beschikbaarheid is afhankelijk van uw bestandssysteem. LVM-snapshots vereisen dat LVM wordt gebruikt, en btrfs en ZFS zijn totaal verschillende bestandssystemen.
* `cp` gebruiken met `--reflink` (indien ondersteund): Op bestandssystemen die copy-on-write (CoW) ondersteunen, kan `cp --reflink` een zeer snelle "kopie" maken door alleen een nieuwe verwijzing naar de datablokken te creëren. Het originele en gekopieerde bestand delen dezelfde gegevens totdat er wijzigingen worden aangebracht. Wijzigingen *na* de kopie hebben alleen invloed op het nieuwe bestand, waardoor het origineel (en de back-up) onaangetast blijven. Dit is uiterst efficiënt, maar de ondersteuning voor `--reflink` is afhankelijk van het bestandssysteem (ext4 met bepaalde kernelparameters ondersteunt dit misschien, maar btrfs doet dit standaard).
* Back-ups op applicatieniveau: Veel applicaties bieden hun eigen back-upmechanismen, waardoor consistente back-ups van hun gegevens mogelijk zijn, zelfs als de bestanden open zijn. Deze mechanismen werken vaak rechtstreeks samen met de interne datastructuren van de applicatie.
* Clustering en hoge beschikbaarheid: In kritieke situaties creëren systemen met hoge beschikbaarheid redundantie- en failover-mechanismen. Als een bestandsserver uitvalt, neemt een andere server het automatisch over, waardoor de impact van gegevensverlies wordt geminimaliseerd en continue toegang wordt gegarandeerd.
Welke methode is het beste?
* Voor een eenvoudige, snelle back-up waarbij kleine inconsistenties acceptabel zijn:`rsync` met `-a` en `-X`.
* Voor gegarandeerde gegevensconsistentie en de meest betrouwbare back-up van geopende bestanden:Snapshots van het bestandssysteem (indien beschikbaar).
* Voor uiterst efficiënte back-ups van bestaande bestanden met copy-on-write:`cp --reflink` (indien ondersteund en geschikt voor uw gebruik).
Vergeet niet om uw back-upstrategie altijd te testen om er zeker van te zijn dat deze voldoet aan de vereisten van uw Recovery Point Objective (RPO) en Recovery Time Objective (RTO). Voor kritieke gegevens wordt een combinatie van methoden of professionele back-upoplossingen aanbevolen. |