Hoe een verwijderd VMFS-datastore te herstellen op VMware ESXi/vSphere

Het is erg vervelend om een ​​VMFS-datastore te hebben die verwijderd, verloren gegaan of beschadigd is op een ESXi-host, vooral als het per ongeluk is gebeurd, bijvoorbeeld door op ‘Verwijderen’ te klikken in plaats van ‘Ontkoppelen’.Soms kunnen opslagfouten of schijfproblemen er ook voor zorgen dat een datastore zonder waarschuwing verdwijnt. Als dat is gebeurd, hoeft u niet meteen in paniek te raken. Er is een kans dat u de partitie handmatig kunt herstellen, maar dit vereist wat handigheid met de commandoregel en een beetje geduld. Het doel is om de toegang tot uw VMFS-gegevens te herstellen, zodat u niet hoeft te formatteren of de schijf helemaal opnieuw hoeft aan te maken, wat een enorme klus kan zijn. Verwacht dat u wat tijd kwijt bent aan SSH, het uitvoeren van partitiecommando’s en het controleren van schijfgegevens, maar met de juiste stappen is het zeker mogelijk. Dit soort herstel is niet waterdicht, maar het kan een redder in nood zijn als u belangrijke VM-bestanden of ISO-images probeert te redden die zich nog op de LUN bevinden.

Hoe een verwijderd of beschadigd VMFS-datastore in ESXi te herstellen

Wat te doen als uw VMFS-datastore ontbreekt of als onbekend wordt weergegeven?

Controleer allereerst of het datastore niet verborgen of niet gekoppeld is. Normaal gesproken moet u op de ESXi-host via SSH inloggen (als SSH is ingeschakeld – wat overigens niet altijd standaard het geval is).U kunt SSH inschakelen via de Direct Console User Interface (DCUI) of via de vSphere-client onder Host > Acties > Services > SSH inschakelen. Nadat u bent ingelogd, moet u de schijf/LUN vinden waarop het VMFS-bestandssysteem zich bevond. Dit kan via Opslag > Apparaten in vCenter of door esxcfg-scsidevs -leen SSH-opdracht uit te voeren. Zoek naar het apparaat met de NAA- identificatie, zoals /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565. In sommige configuraties is dit pad cruciaal, omdat het direct verwijst naar het opslagapparaat met het ontbrekende datastore. Als uw schijf als ontbrekend wordt weergegeven of de partitietabel is verdwenen, kan deze herstelhandleiding u helpen de partitietabel handmatig opnieuw op te bouwen zonder het risico te lopen dat gegevens worden overschreven.

Controleer of de partitietabel bestaat en identificeer de schijfindeling.

Voer de opdracht uit partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565. Als er een bestaande GPT (GUID Partition Table) wordt gerapporteerd, is dat een goed teken: het betekent dat de partitie-informatie er technisch gezien nog steeds is, maar niet correct wordt herkend. Als er niets wordt weergegeven, of als u fouten ziet zoals “Onbekende partitietabel”, dan moet u het GPT-label handmatig instellen. Hier wordt het wat lastiger. Het is de bedoeling om het eerste en laatste blok van de VMFS-partitie te identificeren om deze later te kunnen herstellen.

Om het begin van de verwijderde VMFS-partitie te vinden, kunt u een script gebruiken dat de schijfblokken controleert, bijvoorbeeld:

offset="128 2048"; for dev in `esxcfg-scsidevs -l | grep "Console Device:" | awk {'print $3'}`; do disk=$dev; echo $disk; partedUtil getptbl $disk; { for i in `echo $offset`; do echo "Checking offset at $i:"; hexdump -n4 -s $((0x100000+(512*$i))) $disk; done; } | grep -B 1 -A 5 d00d; echo "---------------------"; done

Dit helpt bij het vinden van het startblok van de partitie. Stel dat je het vindt bij 2048 — dat is je eerste aanwijzing voor de volgende stap.

Bepaal het laatste blok van de VMFS-partitie.

Loop:

partedUtil getUsableSectors /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

Dit geeft je het totale aantal bruikbare sectoren, wat overeenkomt met het einde van je partitie — zoiets als 20.971.486. Als er een foutmelding “Onbekende partitietabel” verschijnt, moet je het GPT-label opnieuw aanmaken, zoals hieronder beschreven:

partedUtil mklabel /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt

Dit wist de partitie-informatie, dus voer dit alleen uit als u er zeker van bent dat uw schijf verder intact is. Daarna moet u de exacte GUID voor het VMFS opnieuw instellen, die altijd AA31E02A400F11DB9590000C2911D1B8 is. Om te controleren of u de juiste GUID’s hebt, kunt u het volgende commando uitvoeren partedUtil showGuids:.

Herbouw de partitietabel met behulp van uw schijfgegevens.

Nu je de begin- en eindblokken en de GUID hebt, kun je de partitie-informatie opnieuw instellen met:

partedUtil setptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565 gpt "1 2048 20971486 AA31E02A400F11DB9590000C2911D1B8 0"

Controleer na het uitvoeren hiervan de partitielijst nogmaals om te verifiëren of uw VMFS-partitie nu wordt weergegeven:

partedUtil getptbl /vmfs/devices/disks/naa.60003ff44dc75adc87daa4e08f467565

Als alles in orde is, scant u uw opslagadapters opnieuw met esxcfg-rescande knop ‘Opslag opnieuw scannen’ in vSphere. Uw datastore zou dan direct weer zichtbaar moeten zijn.

Koppelen / Opnieuw scannen en herstel verifiëren

Voer het programma uit vmkfstools -Ven vervolgens een nieuwe scan met:

esxcfg-rescan -a

Zodra ESXi de herstelde partitie herkent, ga je naar je vSphere-client en controleer je je datastores. Als je bestanden, VM-images of ISO-images er nog steeds staan, dan heb je het goed gedaan. Soms is het een kwestie van de partitie opnieuw koppelen of de opslagweergave vernieuwen.

En nog een snelle tip: het is meestal veiliger om deze stappen uit te voeren, maar zorg ervoor dat je een back-up hebt van je LUN of schijf, voor het geval dat — want, tja, het ergste wat er nu kan gebeuren is dat je per ongeluk je gegevens overschrijft. Het proces kan wat onvoorspelbaar zijn, vooral als je schijf andere partities of gegevens bevat.

Als je je verder wilt verdiepen in het beheren van partitietabellen in ESXi, heeft VMware een goed kennisbankartikel over het gebruik van partedUtil. En onthoud: in sommige configuraties werkt het beter als je een andere aanpak probeert of de server opnieuw opstart na het aanbrengen van wijzigingen.

Natuurlijk is elke omgeving anders, dus niet alles zal vlekkeloos verlopen. Maar in de meeste gevallen kunt u met deze methode het verloren VMFS-bestandssysteem herstellen en voorkomen dat u helemaal opnieuw moet beginnen. Laten we hopen dat dit iemand helpt om de lange herstelnachtmerrie te vermijden.

Samenvatting

  • Maak via SSH verbinding met de ESXi-host en zoek de schijf met het verloren datastore.
  • Controleer of de partitietabel bestaat met partedUtil getptbl.
  • Stel indien nodig het GPT-label handmatig in met partedUtil mklabel.
  • Identificeer de begin- en eindblokken van de VMFS-partitie.
  • Herbouw de partitietabel met partedUtil setptbl.
  • Scan de opslag opnieuw en controleer de zichtbaarheid van de datastore.

Samenvatting

Als je in de problemen zit, kunnen deze commandoregeltrucs je helpen een ogenschijnlijk defecte datastore te redden. Het is misschien vreemd, maar in veel situaties bestaat de partitie nog steeds – alleen wordt deze niet herkend door ESXi. Het is cruciaal om de tijd te nemen en de commando’s dubbel te controleren, vooral omdat fouten het herstelproces kunnen bemoeilijken. Hopelijk bespaart dit iemand een hoop kopzorgen. Succes – en vergeet je back-ups niet!