Gratis datavernietiging aanvraag gratis analyse →
Diensten Grote volumes
+32 (0)800 11 400 aanvraag gratis analyse

Enterprise en datacenter

Recuperatie van zeer grote volumes

ZFS-pools, grote NAS- en SAN-volumes en bestandssystemen van honderden terabytes. Met eigen software die de recuperatie opsplitst in drie processen.

Waarom grote volumes anders zijn

Een volume van honderden terabytes laat zich niet behandelen als een grote harde schijf. De gegevens zijn verspreid over tientallen schijven, het bestandssysteem houdt zijn structuur bij in bomen en verwijzingen die zelf over het hele volume verspreid staan, en bij copy-on-write-systemen zoals ZFS en Btrfs bestaan er vaak meerdere versies van dezelfde structuur naast elkaar.

Gewone recuperatiesoftware probeert zo'n volume in één keer te lezen en te begrijpen. Bij deze omvang loopt dat vast op tijd, geheugen of de hoeveelheid tussenresultaten.

Om welke systemen het gaat

Bestandssystemen en volumes die tot honderden terabytes groot worden, zoals:

  • ZFS-pools (TrueNAS, Solaris, Proxmox en andere), ook met RAID-Z1, Z2 of Z3.
  • Btrfs, XFS en ext4 op grote Linux-servers en NAS-systemen.
  • NTFS en ReFS op Windows-servers.
  • Grote volumes op SAN-opslag en in gevirtualiseerde omgevingen.

Twijfelt u of uw systeem hieronder valt, neem dan contact op met de gegevens van uw opstelling.

Onze aanpak: drie processen

Daarom hebben we eigen software ontwikkeld die de recuperatie opsplitst in drie opeenvolgende processen:

De drie processen Find, Link en Save en de coördinator in de monitor
De drie processen en de coördinator in de monitor, tijdens het koppelen en opslaan. Voorbeeld met gesimuleerde gegevens.

Proces 1: vinden (Find)

We doorzoeken het volume naar de bouwstenen van het bestandssysteem: nodes, fragmenten en snippets (nodes, fragments, snippets) van metadata en gegevens, waar ze ook staan.

Proces 2: koppelen (Link)

De gevonden stukken worden in kaart gebracht, aan elkaar geschakeld, samengevoegd en gesorteerd (mapping, chaining, stitching, sorting), tot de structuur van mappen en bestanden weer klopt.

Proces 3: samenbrengen (Save)

De gereconstrueerde bestanden worden geconsolideerd en overgezet naar de doelopslag (consolidate, transfer).

Waarom zo: door de recuperatie op te splitsen in drie processen, hoeft geen enkel proces het hele volume in één keer te bevatten, en levert elk proces een eigen resultaat op waarmee het volgende verder werkt.

De software: Three-Tier Recovery

De drie processen draaien in onze eigen software, Three-Tier Recovery. Een coördinator (coordinator) verdeelt het werk en houdt de gevonden sleutels bij in het geheugen; de eigenlijke verwerking gebeurt door workers, per proces: Find-workers scannen het volume, Link-workers koppelen de stukken aan elkaar, Save-workers schrijven de bestanden weg.

Een monitor toont het verloop van een dossier op elk moment:

Monitor van Three-Tier Recovery tijdens het scannen van een ZFS-pool
De volledige monitor tijdens het scannen (proces 1). Voorbeeld met gesimuleerde gegevens: een ZFS RAIDZ2-pool van 24 × 18 TB, met 12 Find-workers op 3 nodes.
  • per proces de voortgang, de doorvoer (throughput) en hoeveel workers actief zijn;
  • het geheugengebruik van de coördinator en het aantal sleutels en bewerkingen per seconde;
  • de totalen: gescand, gevonden structuren, gekoppelde bestanden, gelezen en geschreven gegevens, gecontroleerde en herstelde checksums, en leesfouten;
  • per worker de status, het geheugen- en processorgebruik, de doorvoer en de fouten.
Technisch: bijsturen tijdens de job

Prestatieparameters zoals het scanvenster (scan window), de batchgrootte, de maximale leesgrootte en het aantal threads voor het koppelen kunnen tijdens een lopende job aangepast worden, en een job kan gepauzeerd worden. Zo stemmen we de belasting af op de toestand van de schijven en de beschikbare machines.

Bij bestandssystemen met checksums, zoals ZFS, controleert de software de checksums van de gelezen gegevens, en houdt ze bij hoeveel blokken in orde waren en hoeveel hersteld werden.

Verdeeld over meerdere machines (nodes)

De workers hoeven niet op één machine te draaien. Het scannen wordt verdeeld over meerdere nodes, die elk een deel van het volume verwerken. Voor een volume van honderden terabytes zetten we zoveel workers in als het dossier vraagt, en volgen we ze afzonderlijk op.

Overzicht van de workers per node tijdens het scannen
Workers tijdens het scannen: Find-workers verdeeld over drie nodes, terwijl Link en Save wachten. Voorbeeld met gesimuleerde gegevens.

ZFS in het bijzonder

ZFS schrijft nooit over bestaande gegevens heen (copy-on-write), maar schrijft nieuwe versies weg en verwijst daarnaar vanuit een boom van blokverwijzingen. Bovenaan staat telkens de meest recente toestand van de pool. Raakt die beschadigd, bijvoorbeeld door een defecte schijf, een fout bij het importeren of een stroomonderbreking, dan weigert de pool vaak te importeren, terwijl de gegevens zelf er nog staan.

Omdat ZFS oudere versies van zijn structuur niet meteen overschrijft, kan een recuperatie vaak terugvallen op een eerdere, consistente toestand. Dat is precies het soort zoekwerk waarvoor het eerste proces dient.

Technisch: labels, uberblocks en transactiegroepen (TXG)

Elke schijf in een ZFS-pool heeft vier labels: twee aan het begin en twee aan het einde. Elk label bevat een ring van uberblocks, en elke uberblock verwijst naar de toestand van de pool na een transactiegroep (transaction group, TXG). De actieve toestand is de geldige uberblock met het hoogste TXG-nummer.

Omdat ZFS met copy-on-write werkt, blijven de blokken waarnaar oudere uberblocks verwijzen vaak nog een tijd onaangeroerd. Een oudere, consistente TXG kan zo het vertrekpunt van de reconstructie worden.

Meerlaagse recuperatie (multi-layer recovery)

Iets anders dan de drie processen, maar vaak in hetzelfde dossier: opstellingen waarin gegevens in meerdere lagen boven elkaar liggen. Bijvoorbeeld:

  • partitionering
  • het bestandssysteem van de schijf of het volume (native file system), eventueel met deduplicatie (deduplication)
  • virtualisatie, zoals VMware of Hyper-V
  • virtuele schijven (virtual disk images, zoals VMDK of VHDX), vaak in fragmenten verspreid
  • het bestandssysteem binnen die virtuele schijf (guest file system), eventueel opnieuw met deduplicatie
  • applicatiebestanden, zoals een Exchange-databank, die zelf ook in fragmenten kunnen liggen

Is één van die lagen beschadigd, dan gebruiken we de informatie uit de andere lagen om ze te reconstrueren. Zo verraadt het bestandssysteem binnen een partitie waar die partitie begon en eindigde, helpt de structuur binnen een virtuele schijf om haar fragmenten in de juiste volgorde te leggen, en maakt de interne opbouw van een databank het mogelijk om losse stukken weer aan elkaar te zetten.

Alles over meerlaagse recuperatie →

Technisch: voorbeelden van hulp uit andere lagen

Partitionering: GPT bewaart een reservekopie van de header en de partitietabel aan het einde van de schijf. En zelfs zonder partitietabel verraadt de bootsector of het superblock van een bestandssysteem waar een partitie begint.

Deduplicatie (deduplication): de gegevens staan als unieke blokken (chunks) in een opslag, met een index die bepaalt welke blokken samen een bestand vormen. Is die index beschadigd, dan helpt de structuur van de laag erboven, zoals een virtuele schijf of een bestandssysteem, om de blokken opnieuw te ordenen.

Applicatiebestanden: een Exchange-databank (ESE) bestaat uit pagina's van vaste grootte, elk met een eigen controlesom (checksum). Dat helpt om ze tussen andere gegevens te herkennen.

Wat u best doet

Doe dit wel

  • Stop met schrijven naar de pool of het volume.
  • Bewaar de uitvoer van beheercommando's, zoals zpool status en zpool import, en de laatste meldingen.
  • Noteer de opbouw: aantal schijven, RAID-niveau of vdev-indeling, en eventuele cache- en logschijven.
  • Zoek versleutelingssleutels of wachtwoorden op, als de pool of het volume versleuteld is.

Doe dit niet

  • Geen geforceerde import of herstelopties uitproberen die naar de schijven schrijven.
  • Geen nieuwe pool of nieuw volume aanmaken op dezelfde schijven.
  • Geen schijven vervangen of opnieuw laten opbouwen zonder dat de oorzaak duidelijk is.

Hoe een dossier verloopt

  1. Analyse. We bekijken de opstelling, de toestand van de schijven en wat er gebeurde, en maken een plan.
  2. Kopieën. Van elke schijf maken we een volledige kopie; fysiek beschadigde schijven herstellen we eerst in ons Class 1 labo.
  3. Drie processen. Vinden, koppelen en samenbrengen, met onze eigen software.
  4. Controle. U krijgt de lijst met teruggevonden bestanden te zien vóór u betaalt.
  5. Levering. De gegevens worden overgezet naar opslag die groot genoeg is: aangeleverd door u of door ons.

Mogen de gegevens het gebouw niet verlaten, dan kan de recuperatie ook bij u ter plaatse, met onze mobiele cleanroom-kast.

Waarom het bij ons lukt

Meer over ons labo →
  • Bijna 20.000 donorschijven Het juiste onderdeel ligt meestal al klaar.
  • Röntgen in eigen huis Eerst zien, dan pas ingrijpen.
  • Rework en reballing Chips veilig los en terug.
  • Eigen software Tot honderden terabytes.
  • Mobiele cleanroom De drager blijft in uw gebouw.
  • Sinds 1988 Bijna veertig jaar uitrusting en ervaring.

Een groot volume dat niet meer toegankelijk is?

Bel ons of vraag een analyse aan, met de opbouw van uw systeem en wat er gebeurde. We bekijken samen met u de beste aanpak.