Deduplicatiestrategieen voor cloudopslag en bestanden
Verlaag opslagkosten met deduplicatie van bestanden. Deduplicatie op blokniveau, bestandsniveau en inline-deduplicatie duidelijk uitgelegd in de praktijk.
Bestandsdeduplicatie vermindert cloudopslag met 20–90%, afhankelijk van de werkbelasting, met behulp van één van drie technieken: op bestandsniveau (sla identieke bestanden één keer op, geïndexeerd via SHA-256-hash), op blokniveau (splits bestanden in blokken van 4–128 KB en dedupliceer per blok), of variabele-lengte-chunking via content-defined chunking (CDC) met Rabin-vingerafdrukken. VM-backups zien reductie van 10:1; algemene kantoorbestanden 2:1; mediabibliotheken bijna niets. Kies de techniek die past bij je data — blokniveau-deduplicatie uitvoeren op een bibliotheek van al-unieke .mp4-bestanden verspilt CPU voor niets.
Deduplicatie op bestandsniveau: de eenvoudigste winst
Deduplicatie op bestandsniveau vergelijkt hele-bestandshashes. Twee bestanden met dezelfde SHA-256 zijn identiek; bewaar één, verwijs de andere ernaar. Implementatie kost een weekend:
- Inventariseer bucketinhoud (S3 Inventory, Azure Inventory, GCS-bucketlijst)
- Bereken SHA-256 voor elk object (of gebruik provider-geleverde ETags, met voorbehouden)
- Groepeer op hash, kies een canonieke sleutel per groep, werk verwijzingen bij, verwijder duplicaten
Voorbehouden: S3 ETags komen overeen met SHA-256 alleen voor enkelvoudige uploads onder 5 GB. Meerdelige uploads gebruiken een andere formule (hash van hashes). Voor betrouwbare deduplicatie berekent je je eigen hash met aws s3 cp s3://bucket/sleutel - | sha256sum of bereken bij het uploaden en sla op in metadata.
Deduplicatie op bestandsniveau schittert wanneer gebruikers routinematig dezelfde bestanden uploaden — leveranciers-PDF's, bedrijfssjablonen, gedeelde afbeeldingen. Verwacht 10–30% besparing op typische kantoorwerkbelastingen.
Deduplicatie op blokniveau: de grote vermenigvuldiger
Op blokniveau worden bestanden gesplitst in blokken van vaste grootte (4 KB, 16 KB, 64 KB) en wordt elk blok gehasht. Twee bestanden die 80% van hun blokken delen, slaan alleen de unieke 20% plus één kopie van de gedeelde blokken op. Backupproducten (Veeam, Rubrik, Commvault), bestandssystemen (ZFS met dedup=on, Btrfs) en sommige backupclouds (Backblaze B2 met clientsijdige deduplicatie) gebruiken dit.
Voordelen: massale compressie op VM-images, database-backups en logboekbestanden waar bestanden grote bereiken delen. Nadelen: hoog geheugengebruik (de deduplicatie-index leeft in RAM), CPU-kosten bij schrijftijd, en catastrofale amplificatie als de index corrumpeert.
Voor cloud-objectopslag vindt deduplicatie op blokniveau doorgaans plaats binnen een backupproduct in plaats van als native functie. S3 zelf deduplicateert niet; Backblaze B2 deduplicateert bij het uploaden wanneer de client eerst blokken-hashes stuurt (b2_start_large_file met vooraf gehashte delen).
Content-Defined Chunking (CDC)
Vaste-grootte-chunking breekt wanneer een byte aan het begin van een bestand wordt ingevoegd — elk volgend blok hashes anders. Content-Defined Chunking gebruikt een rolling hash (Rabin-Karp-vingerafdruk) om blokgrenzen te definiëren op basis van inhoudspatronen. Voeg een byte in en alleen het directe blok verandert.
CDC is de basis voor restic, BorgBackup, Duplicacy en Kopia. Deze open-source tools dedupliceren clientsijdig met variabele blokken gemiddeld 1–4 MB. Voor het maken van backups van 500 GB bestanden die incrementeel veranderen, gebruiken CDC-gebaseerde backups vaak minder dan 50 GB aan unieke opslag.
Als je een backup- of synchronisatiesysteem bouwt, is CDC via een bibliotheek zoals fastcdc-rs of chunky de moderne keuze. Rol geen eigen rolling hash — de randgevallen zijn subtiel.
Inline versus post-process deduplicatie
Inline deduplicatie werkt bij schrijftijd — vóórdat data de schijf raakt, controleert het systeem of het blok al bestaat. Zo ja, schrijf een verwijzing; zo niet, schrijf het blok. Gebruikt door ZFS, de meeste backupapparaten en sommige cloudopslaglagen.
Post-process deduplicatie schrijft eerst, voert dan een achtergrondtaak uit om duplicaten te vinden en ruimte terug te winnen. Gebruikt door Windows Server's Data Deduplication, NetApp's SnapVault en de meeste gebruikerruimte-tools. Post-process heeft lagere schrijflatentie maar heeft meer piekopslag nodig (de duplicaten bestaan kort voordat ze worden teruggewonnen).
Voor cloudwerkbelastingen is inline deduplicatie doorgaans niet beschikbaar — S3 biedt het niet. Post-process met een geplande taak (dagelijkse inventaris, dagelijkse deduplicatierun) is het praktische patroon.
Waar deduplicatie niet helpt
Al-gecomprimeerde of versleutelde data deduplicateert slecht. Twee verschillende .mp4-bestanden, zelfs van vergelijkbare inhoud, delen bijna geen bytes. Twee versleutelde .zip-bestanden van hetzelfde klartekst delen nul bytes na versleuteling — dat is precies het punt van versleuteling.
Dit betekent dat end-to-end versleutelde bestandsopslag niet kan dedupliceren over gebruikers heen. Convergente versleuteling (hash de klartekst, gebruik de hash als sleutel) was een poging om deduplicatie over E2EE in te schakelen, maar heeft beveiligingsproblemen — het maakt bevestiging-van-bestand-aanvallen mogelijk. Voor E2EE-bestandsservices: accepteer dat deduplicatie plaatsvindt binnen de eigen bestanden van een gebruiker, niet over gebruikers heen.
De beveiligingskant van deduplicatie
Cross-user deduplicatie in niet-E2EE-systemen creëert een zijkanaal: als een bestand dat je uploadt dedupliceert met een bestaand blok, leert de server dat iemand anders dat bestand al had. Dropbox had dit blootgelegd in 2011; andere services ook. Voor gedeelde zakelijke accounts is dat prima, maar voor services die privacy claimen is het een lek.
Als vertrouwelijkheid belangrijk is, dedupliceer alleen binnen de eigen data van een gebruiker (gezouten met een gebruikersspecifieke sleutel), niet over het hele systeem. Of accepteer dat E2EE geen deduplicatie betekent en schaal de opslag dienovereenkomstig. Tools die privacy prioriteren — HexaTransfer voor versleutelde ad-hoc overdrachten, bijvoorbeeld — ruilen deduplicatie-efficiëntie voor de garantie dat niemand anders (inclusief de service) kan zien of twee gebruikers hetzelfde bestand hebben.
Deduplicatie-effectiviteit meten
Schakel deduplicatie niet gewoon in en hoop maar. Meet de verhouding:
dedup_ratio = logische_bytes / fysieke_bytes
Een verhouding van 2:1 betekent dat je 2 logische bytes opslaat voor elke 1 fysieke byte. Rapportagetools: zpool get dedupratio op ZFS, Get-DedupStatus op Windows Server, per-repo-statistieken op restic/Borg.
Gezonde verhoudingen per werkbelasting:
- VM-images: 8–20:1
- Database-backups: 10–30:1
- Bestandsserver (kantoorstukken): 1,5–3:1
- E-mailarchieven: 2–5:1
- Mediabibliotheken: 1,0–1,1:1 (niet de moeite waard)
- Versleutelde archieven: 1,0:1 (onmogelijk)
Als een werkbelastingverhouding onder 1,5:1 ligt, schakel deduplicatie uit — de CPU en het geheugen verdienen zichzelf niet terug.
Integratie van backupproducten
De meeste ondernemingen implementeren deduplicatie niet vanaf nul — ze gebruiken een backupproduct dat het doet. Vergelijkingspunten bij het selecteren:
- Veeam: Inline blokdeduplicatie, standaard 512 KB-blokken, compressie na deduplicatie
- Rubrik: Content-defined variabele blokken, sub-blok deduplicatie
- Commvault: Clientsijdige deduplicatie met per-client en globale pools
- restic/Borg/Kopia: Open-source CDC, clientsijdig, S3/B2/Azure-backends
- BackupPC: Hardlink-gebaseerd bestandsniveau, simpel maar gedateerd
Voor een klein bedrijf dat 2 TB naar S3 Glacier back-upt, kost restic naar Glacier Instant Retrieval ongeveer €15/maand met 5:1 deduplicatie. Voor een ondernemingsdataomgeving van 500 TB betaalt een goed backupplatform met deduplicatie zichzelf terug in het eerste jaar van opslagbesparingen.
Wanneer compressie bovenop toevoegen
Deduplicatie verwijdert dubbele bytes; compressie verwijdert redundantie binnen unieke bytes. Ze stapelen. Na deduplicatie, pas zstd-compressie toe voor nog een 1,5–2x reductie op tekst-zware data. BorgBackup ondersteunt --compression zstd; restic heeft --compression max; AWS EFS heeft transparante compressie voor OneZone-IA.
Volgorde is belangrijk: eerst dedupliceren (om dubbele blokken bloot te leggen), dan de unieke blokken comprimeren. Eerst comprimeren verslaat doorgaans deduplicatie omdat kleine invoerwijzigingen cascaderen door gecomprimeerde uitvoer. Alle serieuze backupproducten verwerken dit correct — jij kiest gewoon de knoppen.
Deduplicatie is saai, onglamourous en de grootste hefboom voor opslagkosten bij gemengde werkbelastingen. Inventariseer de data, kies de techniek die past bij de inhoud, meet de verhouding en herwin het budget.
Probeer het op hexatransfer.com — gratis, geen account vereist, maximaal 10 GB.
Verstuur grote bestanden veilig met end-to-end-versleuteling
Draag bestanden tot 10 GB gratis over met end-to-end-versleuteling. Geen account nodig. Uw bestanden worden in uw browser versleuteld voordat ze worden geüpload — niemand anders kan ze lezen.
Een bestand verzenden