2017-05-16 3 views
1
  • Problème:Mapping VM lecteur de fichier correspondant VMDK

    Disons que j'ai une machine virtuelle avec trois unités logiques de stockage connectés au travers SCSI magasins VMFS chaque disque en tant que fichiers VMDK individuels.

    1. C: (one_c.vmdk)
    2. D: (two_d.vmdk)
    3. F: (three_f.vmdk)

Dans hôte ESX ces fichiers VMDK sont là emmagasinés/container_name/vm_name/

Is there any way of mapping,given (disk serial number or disk id) and vmdk files location can we figure out to which vmdk file this Drive maps to? 

note: Je suis passé par ce lien VMWare VMDK mapping to Windows Drive Letters. Mais pas si désireux d'utiliser des scripts

+0

Vous devez interroger le système d'exploitation invité car il est libre de modifier les mappages de lettre de pilote. Si vous ne voulez pas utiliser de scripts ou de WMI (pourquoi pas?), Jetez un oeil à ['guestInfo.guestDiskInfo'] (http://pubs.vmware.com/vsphere-65/index.jsp#com.vmware .wssdk.apiref.doc/vim.vm.GuestInfo.DiskInfo.html). Il vous fournit les tailles et les noms des disques montés sur la machine virtuelle. Vous pouvez corréler la taille avec les VMDK comme vous les voyez sur les ESXI (en supposant que les tailles sont uniques). Notez que des choses comme [disques dynamiques] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa363785 (v = vs.85) .aspx) vont casser ceci. – YSK

+0

vous pouvez le faire en utilisant aussi le script. Mais en essayant une façon plus simple, Une autre façon de faire cela, vmware stocke un mappage du mappage scsi-vmdk dans les fichiers .vmx comme ci-dessous scsi2: 6.fileName = "Demo_Today_11. vmdk, comme je connais l'emplacement fichier vmdk je peux grep le fichier .vmx pour scsi2: 6.filename pour une lettre de volume donné (ex: G:) en entrée j'ai besoin d'obtenir scsi2: 6 ou id scsi associé, savez-vous comment? –

+0

Le script auquel vous avez lié dans votre question fait ce mapping: '$ DiskMatch = $ Disks |? {($ _.SCSIPort-1) -eq $ VMRef.SCSIController -et $ _. SCSITargetID -eq $ VMRef.SCSITarget} '. Notez que cette requête doit être effectuée par la VM elle-même car le système d'exploitation invité peut modifier les mappages de lettre de lecteur comme bon lui semble. – YSK

Répondre

0

Vous pouvez utiliser ReconfigVM_Task pour la machine virtuelle sur laquelle ces disques sont attachés. Vous devez passer virtualMachineConfigSpec qui, comme son nom l'indique, spécifie la configuration de la machine virtuelle. Dessous vous trouverez virtualDeviceConfigSpec

Qu'est-ce que vous voulez faire est:

  • Fetch la virtualMachineConfigSpec existante de votre VM
  • Localisez le virtualDeviceConfigSpec pertinent pour votre disque
  • Modifier le sauvegarde d'info de ce disque
    • Remplacez le nom de fichier par le bon chemin (en commençant par le magasin de données)
    • Désarmer le fileOperation (pour éviter de créer un nouveau disque il)
  • Execute ReconfigVM_Task sur la machine virtuelle avec la spécification mise à jour

S'il vous plaît consulter le document pour obtenir des instructions plus spécifiques

https://www.vmware.com/support/developer/converter-sdk/conv50_apireference/vim.VirtualMachine.html#reconfigure