Herstellen van een verloren momentopname op RDM

Gepubliceerd op 25 mei 2010 • 4 min leestijd • 793 woorden
Een paar weken geleden had ik een probleem waarbij de verbinding tussen een momentopname en de bovenliggende schijf verdwenen was. De ouder was een…

Een paar weken geleden had ik een probleem waarbij de verbinding tussen een momentopname en de bovenliggende schijf verdwenen was. De ouder was een onbewerkte apparaattoewijzing die naar een LUN op een SAN wees. Dit gebeurde allemaal tijdens een migratie van het ene type SAN naar het andere. Voor de migratie moesten we de Raw Device Mappings van een virtuele machine verwijderen om deze met Storage VMotion te verplaatsen. Na de verhuizing moest de originele RDM opnieuw worden toegevoegd aan de virtuele machine. De laatste stap was het kopiëren van de originele gegevens van de RDM naar een nieuwe schijf.

Een van de stappen in ons migratieplan was ervoor te zorgen dat er geen momentopnamen op de virtuele machine stonden. Deze procedure werd gedurende de gehele migratie toegepast. Een van mijn collega’s en ik waren gepland voor de laatste batch servers.

Alles ging goed tijdens de migratie van deze server. Alle stappen zijn zonder fouten uitgevoerd. De server startte zoals hij altijd start. Zelfs de eerste controle door de beheerders zag er goed uit.

Na een tijdje kregen we een telefoontje. “Het lijkt erop dat er een aantal databases ontbreken. Kun je dat oplossen?”. WTH?

Toen we de originele schijf doorzochten, konden we de databases niet vinden. “Weet u zeker dat de databases vóór de verhuizing actief waren?”. Waarom aan jezelf twijfelen als je ook aan iemand anders kunt twijfelen. Niet lang na deze vraag kwam hij terug. “De gegevens in de databases die worden gekopieerd zijn 7 maanden oud”. WTH2??

Hoe kan dit zijn? We hebben de wereld van VM’s op deze manier gemigreerd, hier en in het verleden. Er zijn bij ons nooit gegevens ontbreken.

Na wat hightech forensisch onderzoek kwamen we tot de conclusie dat er een snapshot moet zijn geweest voor deze virtuele machine, ook al verscheen deze niet in de snapshotmanager. Hoewel we een back-up hadden voor deze machine, wilden we zo min mogelijk gegevens verliezen. Op de een of andere manier moesten de gegevens uit de momentopname worden hersteld.

Gelukkig kon VMware-ondersteuning ons helpen. Ze vertelden ons zelfs dat het niet verschijnen van de momentopname in de momentopnamemanager een bekend probleem was. Ik verwachtte ergens tijdens het opnieuw toevoegen van de RDM aan de machine dat deze een fout- of waarschuwingsbericht zou hebben gegeven, zoals “Deze schijf heeft een momentopname”, of “Deze schijf gebruikte een momentopname, maar deze verdween. Wil je de server nog steeds starten?”. Ondersteuning suggereerde dat we alarmen zouden instellen voor het maken van momentopnamen, maar dat lost het probleem uiteraard niet op.

De oplossing

Met de hulp van een opslagingenieur hebben we de snapshot (schijf) opnieuw verbonden met de originele RDM.

U weet waarschijnlijk al dat wijzigingen voor een snapshot van een RDM naar een deltaschijf op de locatie van de virtuele machine worden geschreven. Het probleem was dat het opnieuw toevoegen van de RDM aan de virtuele machine alleen de RDM zelf toevoegde, en niet de momentopname, als je dit via GUI doet. Opnieuw toevoegen door het vmx-bestand te bewerken werkte waarschijnlijk, hoewel ik het nog niet heb getest.

Om de momentopname opnieuw te verbinden, moesten we het VMFK-bestand zelf bewerken. Het VMDK-bestand bestaat uit twee delen: een descriptorbestand met de instellingen voor de schijf, zoals type, geometrie en een link naar de gegevens, en een bestand met de gegevens zelf. Dit geldt ook voor momentopnamen. In dit bestand voor snapshot wordt ook de schijf vermeld waartoe de snapshot behoort.

In deze bestanden moet de ID voor de ouder (bovenliggende ID) in het momentopnamebestand en de ID (CID) in het RDM-bestand hetzelfde zijn. Als ze niet hetzelfde zijn, wordt de originele schijf gelezen zonder de momentopname. Door het ouder-ID van de snapshot naar CID van de RDM te veranderen, werkte alles weer.

Hoewel het werkt, is er één groot probleem: datacorruptie. Omdat het opstarten van de virtuele machine met de applicatie het potentieel heeft om gegevens op de originele schijf te wijzigen, loop je het risico met totale rommel te eindigen. Als u een back-up kunt gebruiken om gegevens te herstellen, is dat de beste manier.

 

Ik heb (minstens) twee lessen geleerd uit deze hele oefening:

  • Wacht geen seconde als u ondersteuning van VMware nodig heeft. Door zelf dingen te proberen kun je meer schade aanrichten dan dat je wordt bijgestaan ​​door de zeer capabele supportmedewerkers van VMware;
  • Adrenalinestoten werken nog steeds :)

DISCLAIMER: U bent verantwoordelijk voor uw eigen daden. Als u gegevens kwijtraakt, kunt u niemand anders de schuld geven dan uzelf. Geen van deze acties kan een fatsoenlijke back-upstrategie vervangen.

Update: Ik kwam deze link tegen op Twitter. Het tilt het oplossen van snapshots naar een geheel nieuw niveau:

http://geosub.es/vmutils/Troubleshooting.Virtual.Machine.snapshot.problems/Troubleshooting.Virtual.Machine.snapshot.problems.html

Zie ook

    Follow me