You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2015-02-06 14:44:47

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

UUID différent Ordinateur et Machine virtuelle.

Bonjour,

Les UUID de mes Ordinateur ne correspondent pas à ceux de mes Machines virtuelles et donc pas de liaison.

Est - ce normal? Dois-je modifier les UUID quelque part?

Exemple
UUID Ordinateur: 065383D5-4EA4-4D49-9A01-60D79C56D05B
UUID Machine virtuelle correspondante: F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8

Ma config:
GLPI 0.85.2
FusionInventory-Agent_v2.3.14
Hôte de virtualisation Hyper-V 2012

Merci d'avance, Weastbug.


GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

#2 2015-02-13 09:27:20

drambeau
Member
From: Grenoble, France
Registered: 2005-04-18
Posts: 66

Re: UUID différent Ordinateur et Machine virtuelle.

Bonjour Weastbug,

Chaque ordinateur possède son propre UUID qui permet de l'identifier. C'est une sorte de nombre, assez similaire à l'adresse MAC de l'ordinateur, généré à partir des données des composant de celui-ci, il est réputé être unique ou unique avec une très haute probabilité (voir http://fr.wikipedia.org/wiki/Universal_ … dentifier)
Il est donc normal qu'un hôte et des machines hébergées par lui aient des UUID différents.

Last edited by drambeau (2015-02-13 09:27:30)

Offline

#3 2015-02-17 12:39:58

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

Re: UUID différent Ordinateur et Machine virtuelle.

Bonjour,

J'entend bien mais que l'hôte dois avoir un UUID différent des machines virtuelle qu'il héberge mais moi ce sont les UUID dans l'onglet machine virtuelle de l'hôte qui ne corresponde pas aux UUID de ces machine virtuelle remontée en temps qu'Ordinateur

Ordinateur - TS3 - ID 2 => UUID 065383D5-4EA4-4D49-9A01-60D79C56D05B
Machine virtuelle - TS3 - ID 27 => UUID F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8


Merci d'avance.


GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

#4 2015-02-20 12:25:10

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

Re: UUID différent Ordinateur et Machine virtuelle.

Bonjour,

J'ai un peux approfondi le problème

UUID dans la fiche ordinateur est bien le bon:

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. Tous droits réservés.

PS P:\> get-wmiobject Win32_ComputerSystemProduct  | Select-Object -ExpandProperty UUID
065383D5-4EA4-4D49-9A01-60D79C56D05B
PS P:\>

L'UUID qui apparait dans l'onglet "Machine virtuelle" de l'hôte de virtualisation est le Global ID ou Logical ID créer par HyperV lors de la création de la machine virtuelle et qui n'a rien avoir avec l'UUID de celle ci.

F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8.xml :

<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<configuration>
  <global_settings>
    <owner>
      <sid type="string">S-1-5-21-1964239353-2541506782-912031305-1498</sid>
    </owner>
    <snapshots>
      <data_root type="string">V:\Hyper-V</data_root>
      <list>
        <size type="integer">0</size>
      </list>
    </snapshots>
  </global_settings>
  <properties>
    <global_id type="string">F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</global_id>
    <name type="string">TS3</name>
    <type_id type="string">Virtual Machines Cache</type_id>
  </properties>
  <savedstate />
  <settings>
    <global>
      <logical_id type="string">F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</logical_id>
    </global>
  </settings>
</configuration>

Cf le log de l'agent sur l'hôte de virtualisation:

    <VIRTUALMACHINES>
      <MEMORY>8192</MEMORY>
      <NAME>TS3</NAME>
      <STATUS>running</STATUS>
      <SUBSYSTEM>MS HyperV</SUBSYSTEM>
      <UUID>F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</UUID>
      <VCPU>4</VCPU>
      <VMTYPE>HyperV</VMTYPE>
    </VIRTUALMACHINES>

Si je remplace l'UUID dans la fiche machine virtuelle par l'UUID de l'ordinateur la liaison ce fait bien mais quand l'agent de l'hôte de virtualisation se connecte supprime la vm et en recrée une avec le Global/Logical ID en temps qu'UUID

A mon sens il ne faudrait pas que l'agent remonte cet UUID qui n'en est pas un ou qu'il le remonte en temps que Global/Logical ID que l'on puisse lier a un UUID.

En attendant j'ai mis un verrou sur l'import des UUID de VM provenant de l'hôte de virtualisation en me basant sur un verrou déjà en place:

INSERT INTO `glpi`.`glpi_plugin_fusioninventory_locks` (
`id` ,
`tablename` ,
`items_id` ,
`tablefields` 
)
VALUES (
NULL , 'glpi_computervirtualmachines', '0', '["uuid"]'
);

Mais ca ne fonctionne pas le plugin n'en tiens pas compte, probablement pas reconnu dans le codes...

Last edited by Weastbug (2015-02-20 13:13:46)


GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

#5 2015-02-20 13:17:23

ddurieux
Plugins Dev
From: Propières, France
Registered: 2005-06-17
Posts: 7,521

Re: UUID différent Ordinateur et Machine virtuelle.

T'es sur quelle version d'Hyper-V?

Tu sais quelle valeur correspond au bon UUID dans hyper-v?

Offline

#6 2015-02-20 13:46:09

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

Re: UUID différent Ordinateur et Machine virtuelle.

Serveur HyperV 2012 R1


Je viens de la trouver ca correspond à <bios_guid>

Dans F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8.xml :

<bios_guid type="string">{065383D5-4EA4-4D49-9A01-60D79C56D05B}</bios_guid>

GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

#7 2015-02-20 19:31:18

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

Re: UUID différent Ordinateur et Machine virtuelle.

J'ai mis la main sur un script qui peux extraire les UUID.

Option Explicit
 Dim WMIService
 Dim KvpComponents
 Dim VMList
 Dim VMSettingList
 Dim VM
 Dim item
 Dim setting
 Dim component


'Get instance of 'virtualization' WMI service on the local computer
 Set WMIService = GetObject("winmgmts:\\.\root\virtualization")
'Get all the MSVM_ComputerSystem object
 Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
 'if VM.Caption = "Virtual Machine" then
 if VM.Caption = "Ordinateur virtuel" then
WScript.Echo "========================================"
WScript.Echo "VM Name: " & VM.ElementName
WScript.Echo "VM GUID: " & VM.Name
WScript.Echo "VM State: " & VM.EnabledState


  ' Now get the BIOS GUID for this VM
 Set VMSettingList = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemSettingData")
For Each setting In VMSettingList
 Dim tempVMname
 tempVMName = "Microsoft:"  + VM.Name
 if setting.InstanceID = tempVMName then
WScript.Echo "VM BIOS GUID: " & setting.BIOSGUID
 end if
 Next
 end if
 Next

Voici le résultat:

========================================
VM Name: TS3
VM GUID: F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8
VM State: 2
VM BIOS GUID: {065383D5-4EA4-4D49-9A01-60D79C56D05B}
========================================

GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

#8 2015-02-20 21:17:53

Weastbug
Member
From: France
Registered: 2007-10-04
Posts: 68
Website

Re: UUID différent Ordinateur et Machine virtuelle.

J'ai modifié l'agent 2.3.14 pour qu'il me remonter le bon UUID

Fichier: \FusionInventory-Agent\perl\agent\FusionInventory\Agent\Task\Inventory\Virtualization\HyperV.pm

Ajout en ligne 59, avant "foreach my $object (FusionInventory::Agent::Tools::Win32::getWMIObjects("

    my %biosguid;
    foreach my $object (FusionInventory::Agent::Tools::Win32::getWMIObjects(
        moniker    => 'winmgmts://./root/virtualization',
        class      => 'MSVM_VirtualSystemSettingData',
        properties => [ qw/InstanceID BIOSGUID/ ]
    )) {
        my $id = $object->{InstanceID};
        next unless $id =~ /^Microsoft:([^\\]+)/;
        $biosguid{$1} = $object->{BIOSGUID};
        $biosguid{$1} =~ tr/{}//d;
    }

Remplacer

UUID      => $object->{Name},

Par

UUID      => $biosguid{$object->{Name}},

GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0

Offline

Board footer

Powered by FluxBB