Hoe Windows-schijven te koppelen aan VMware VMDK-bestanden

Hoe Windows-schijven en VMware-virtuele schijven op elkaar af te stemmen

Het beheren van de schijfgrootte van een virtuele machine of het verwijderen van schijven kan een behoorlijke uitdaging zijn, vooral wanneer je te maken hebt met meerdere identieke VMDK-bestanden of verschillende SCSI-controllers. De grote, verwarrende vraag is vaak: welke virtuele schijf komt nu eigenlijk overeen met de Windows-schijf in de VM? Het is één ding wanneer schijven verschillen in grootte, zodat je ze gemakkelijk kunt herkennen, maar wanneer je een wirwar van VMDK-bestanden van dezelfde grootte hebt of meerdere SCSI-controllers, is het een kwestie van gissen. Daarom is het essentieel om de Windows-schijven te koppelen aan hun VMware-tegenhangers – dit voorkomt dat je de verkeerde schijf verwisselt bij het uitbreiden of verkleinen van de VM. Dit correct doen kan je enorm veel tijd en frustratie besparen. Hieronder lees je hoe je precies kunt achterhalen welke virtuele schijf in VMware overeenkomt met welke schijf in Windows, met behulp van een aantal gangbare methoden. Het doel is om te matchen op basis van de UUID of het serienummer, die uniek zijn en kunnen helpen om precies te verifiëren wat wat is.

Hoe krijg ik het SCSI-apparaatnummer in Windows en VMware?

Als de schijven alleen via SCSI-controllers zijn verbonden, kunt u eerst proberen de apparaatpoort in Windows te identificeren. Open de console Schijfbeheer ( diskmgmt.msc) in Windows. In een van mijn configuraties is de informatie over de SCSI-controller niet direct zichtbaar; Windows toont alleen schijven, niet hun controller-ID’s, wat de zaken vreemd maakt. Om de specifieke informatie te vinden, klikt u met de rechtermuisknop op een schijf, selecteert u Eigenschappen en controleert u vervolgens het veld Locatie onder het tabblad Algemeen. Daar ziet u meestal iets als: – Locatie: 160 (dit is de poort voor SCSI-controller 0) – Doel-ID: 1 (de daadwerkelijke SCSI-ID).Combineer deze twee en u krijgt een notatie zoals SCSI(0:1). Dat is uw SCSI-bus 0, doel 1, wat zou moeten overeenkomen met de virtuele schijf van VMware. Om dit via VMware te controleren, opent u de VM-instellingen in vSphere of de vSphere Client. Zoek de schijf met dezelfde SCSI(0:1) -aanduiding als die u zojuist in Windows hebt gevonden. De gebruikelijke SCSI-controllers hebben doorgaans verschillende nummeringen in VMware en Windows. Het is daarom raadzaam om te controleren of een schijf met het label “SCSI (0:1)” overeenkomt met het apparaat dat u in Windows hebt geïdentificeerd. Als u meerdere SCSI-controllers configureert (tot 4 in VMware), wordt het handmatig identificeren van de juiste controller een stuk lastiger. Bovendien kunnen de SCSI-controller-ID’s in verschillende omgevingen soms verschillen, dus raak niet in paniek als het niet meteen helemaal klopt.

Hoe koppel ik een Windows-schijf aan een VMware VMDK-bestand op basis van UUID/serienummer met behulp van PowerShell?

Dit is de meest betrouwbare manier, maar vereist wel dat VMware de optie EnableUUID=TRUE heeft ingeschakeld.Deze instelling moet ingeschakeld zijn in de configuratie van de virtuele machine. Op die manier ziet het gastbesturingssysteem Windows de UUID’s die aan de schijven zijn toegewezen. In sommige configuraties is dit niet standaard ingeschakeld, wat de zaken compliceert. Maar als het wel is ingeschakeld, wordt het veel eenvoudiger om schijven te matchen op basis van UUID. Je hebt PowerShell nodig, en waarschijnlijk moet je dit zowel in Windows als in VMware’s PowerCLI uitvoeren, om informatie van beide kanten te verzamelen. Begin met het verzamelen van schijfinformatie in Windows. Omdat oudere Windows-versies mogelijk de opslagmodule missen, is WMI een goed alternatief. Hier is een typisch commando om serienummers, SCSI-controllerinformatie en schijfcapaciteit op te vragen: powershell $DiskInfo = foreach ($disk in Get-WmiObject Win32_DiskDrive) { [pscustomobject]@{ DeviceID = $disk. DeviceID Caption = $disk. Caption CapacityGB = [math]::Round($disk. Size / 1GB, 0) SerialNumber = $disk. SerialNumber SCSIControllerNum = $disk.scsiport SCSIDeviceNum = $disk.scsitargetid } } $DiskInfo | Format-Table Dit geeft een overzicht van de schijven met hun serienummers en controllerinformatie — handig, toch? In mijn ervaring ziet het serienummer er vaak uit als een reeks hexadecimale tekens. Soms is het niet zo eenvoudig, vooral als de schijf virtueel is en het serienummer niet expliciet is ingesteld, maar het is het proberen waard. Om de VMware-kant van de zaak te bekijken, maakt u via PowerCLI verbinding met uw vCenter- of ESXi-host. Hier is een voorbeeldcodefragment om de VMDK-details op te halen: powershell Import-Module VMware. VimAutomation. Core connect-viserver your-vcenter-server $vmName = “YourVMName” $vmHardDisks = Get-VM -Name $vmName | Get-HardDisk $virtualDiskManager = Get-View -Id VirtualDiskManager-virtualDiskManager $disks = foreach ($disk in $vmHardDisks) { $uuid = ($disk. ExtensionData. Backing. Uuid | ForEach-Object { $_. Replace(‘ ‘, ”).Replace(‘-‘, ”) }) [PSCustomObject]@{ Path = $disk. Filename Name = $disk. Name SizeGB = $disk. CapacityGB UUID = $uuid } } $disks | Format-Table Het idee hierachter is: we verzamelen de UUID van elke VMDK en de bijbehorende bestandsnaam/het pad. Deze UUID’s kunnen vervolgens worden vergeleken met de serienummers van de Windows-schijven. Als uw VMware-omgeving correct is geconfigureerd, zouden de UUID’s overeen moeten komen met de serienummers van de Windows-schijven. Een andere aanpak – als je het echt geavanceerd wilt aanpakken – is om via het netwerk verbinding te maken met het gastbesturingssysteem in de virtuele machine met PowerShell. Er zijn scripts die op afstand verbinding kunnen maken, de schijfinformatie in Windows kunnen ophalen en vervolgens kunnen matchen op serienummer of UUID. Op die manier kun je in Windows controleren welke schijf welke is, zonder handmatig te hoeven gissen. Hier is een klein codefragment dat laat zien hoe je op afstand Windows-schijfinformatie kunt verkrijgen: powershell # Zorg ervoor dat je beheerdersrechten hebt en dat WinRM correct is ingesteld op de gast-VM Invoke-Command -ComputerName “YourVM” -ScriptBlock { Get-WmiObject Win32_DiskDrive | Select-Object DeviceID, SerialNumber, Model } Als je dit kunt doen, is dit de duidelijkste manier om schijven te matchen.vooral wanneer meerdere schijven er van buiten hetzelfde uitzien.

Samenvatting

Het koppelen van virtuele schijven aan Windows-schijven is op het eerste gezicht niet erg intuïtief, maar met een beetje PowerShell-magie en geduld wordt het een stuk eenvoudiger. Als je UUID’s inschakelt op de VM-schijven en de serie-/UUID-informatie correct verzamelt, kun je schijven als een professional koppelen. Meestal is het een kwestie van uitproberen en het vergelijken van SCSI-ID’s of UUID’s voordat alles op zijn plaats valt. Houd er wel rekening mee dat virtuele omgevingen soms vreemd kunnen zijn en dat sommige omgevingen informatie verbergen of UUID’s niet correct weergeven. Maar met deze tools kan in ieder geval het meeste giswerk worden geëlimineerd.

Samenvatting

  • Gebruik Schijfbeheer om de SCSI-apparaatnummers in Windows te bekijken.
  • Koppel die nummers aan de VMware VM SCSI-controller-ID’s.
  • Schakel UUID’s in VMware in voor betere matching.
  • Gebruik PowerShell-scripts, zowel binnen als buiten de virtuele machine, om UUID’s en serienummers te vergelijken.
  • Maak op afstand verbinding met de virtuele machine om schijfinformatie op te halen indien nodig.

Samenvatting

Hopelijk maakt deze aanpak het beheer van je schijven een stuk minder lastig. Het is in het begin even wennen, maar zodra alles klopt, wordt het beheren van je VMware-schijven een stuk eenvoudiger. Als dit er al voor zorgt dat de schijven van één virtuele machine correct gekoppeld zijn, dan was alle moeite het waard. Ik hoop dat dit iemand helpt om de chaos van *welke schijf bij welke hoort* te voorkomen.