In aggiunta a vSphere Client, è possibile utilizzare i comandi della CLI del data center (DCLI) per creare e gestire le classi di macchine virtuali. I comandi della DCLI offrono maggiore flessibilità e accesso alle opzioni di configurazione della macchina virtuale non disponibili in vSphere Client.

Prerequisiti

Accedere a vCenter Server utilizzando l'account utente root e digitare dcli +i per utilizzare la DCLI in modalità interattiva.

Per informazioni sui comandi della DCLI, vedere Panoramica dell'esecuzione dei comandi della DCLI.

Comandi della DCLI disponibili

Comando Descrizione
namespacemanagement virtualmachineclasses create Creare un oggetto classe di macchine virtuali.
namespacemanagement virtualmachineclasses delete Eliminare l'oggetto classe di macchine virtuali.
namespacemanagement virtualmachineclasses get Restituire informazioni su una classe di macchine virtuali.
namespacemanagement virtualmachineclasses list Restituire informazioni su tutte le classi di macchine virtuali.
namespacemanagement virtualmachineclasses update Aggiornare la configurazione dell'oggetto classe di macchine virtuali.

Creazione di una classe di macchine virtuali utilizzando la CLI del data center

In qualità di amministratore vSphere, utilizzare il comando com vmware vcenter namespacemanagement virtualmachineclasses create della DCLI per creare una classe di macchine virtuali. È possibile configurare tali proprietà della macchina virtuale come CPU, memoria, prenotazioni di memoria, schede di rete e così via.

Il comando accetta i seguenti argomenti.
Argomento Descrizione
-h, --help Mostra questo messaggio di aiuto ed esci.
--config-spec CONFIG_SPEC Una VirtualMachineConfigSpec associata alla classe di macchine virtuali (input JSON).
--cpu-count CPU_COUNT Obbligatorio. Numero di CPU configurate per la macchina virtuale di questa classe (integer).
--cpu-reservation CPU_RESERVATION Percentuale di CPU totali disponibili riservate per una macchina virtuale (numero intero).
--description DESCRIPTION Descrizione della classe di macchine virtuali (stringa).
--devices-dynamic-direct-path-io-devices DEVICES_DYNAMIC_DIRECT_PATH_IO_DEVICES Elenco di dispositivi I/O DirectPath dinamico (input JSON).
--devices-vgpu-devices DEVICES_VGPU_DEVICES Elenco di dispositivi vGPU (input JSON).
--id ID Obbligatorio. Identificatore della classe di macchine virtuali (stringa).
--instance-storage-policy INSTANCE_STORAGE_POLICY Criterio di storage corrispondente allo storage delle istanze (stringa).
--instance-storage-volumes INSTANCE_STORAGE_VOLUMES Elenco dei volumi di storage delle istanze (input JSON).
--memory-mb MEMORY_MB Obbligatorio. Quantità di memoria in MB configurata per la macchina virtuale di questa classe (numero intero).
--memory-reservation MEMORY_RESERVATION La percentuale di memoria disponibile riservata per una macchina virtuale di questa classe.

Utilizzare gli esempi seguenti per creare classi di macchine virtuali con proprietà diverse.

CPU e memoria

com vmware vcenter namespacemanagement virtualmachineclasses create --id cpu-mem-class --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","numCPUs":2,"memoryMB":2048}'

L'impostazione di numCPUs e memoryMB nella specifica di configurazione è facoltativa. Se si sceglie di impostarli, devono avere gli stessi valori dei campi vAPI --cpu-count e --memory-mb obbligatori.

Prenotazioni di CPU e di memoria

Quando si crea una classe di macchine virtuali utilizzando una specifica di configurazione con prenotazione di CPU e memoria, la prenotazione o il limite della memoria è in MB per memoryAllocation e in MHz per cpuAllocation.

com vmware vcenter namespacemanagement virtualmachineclasses create --id cpu-res-class-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","numCPUs":2,"memoryMB":2048,"cpuAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200},"memoryAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200}}' --cpu-count 2 --memory-mb 2048

Scheda di rete

Il comando seguente consente di creare una scheda di rete di tipo E1000.
com vmware vcenter namespacemanagement virtualmachineclasses create --id class-w-e1000 --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualE1000","key":-100}}]}'

vGPU

In questi esempi, il primo comando crea una classe di macchine virtuali con una vGPU utilizzando il campo --devices-vgpu-devices. Il secondo comando crea una classe di macchine virtuali con una vGPU utilizzando configSpec.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-1 --devices-vgpu-devices '[{"profile_name": "mockup-vmiop-8c"}]' --memory-reservation 100 --cpu-count 2 --memory-mb 4096
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-2 --cpu-count 2 --memory-mb 4096 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop-8c"}}}]}' --memory-reservation 100

Storage istanze

Gli esempi seguenti creano classi di macchine virtuali che utilizzano lo storage delle istanze tramite i campi --instance-storage-volumes e --instance-storage-policy.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-ist-1 --instance-storage-volumes '[{"size":47}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0" --cpu-count 2 --memory-mb 4096
Il campo ID in questo esempio è un ID virtualDisk noto che rappresenta un dispositivo di storage delle istanze nelle macchine virtuali del servizio macchina virtuale.
com vmware vcenter namespacemanagement virtualmachineclasses create --id vmclass-ist-2 --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":49283072,"vDiskId":{"_typeName":"ID","id":"e28d4352-1d1e-431b-b3f7-528bef5838a0"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]}]}'

Aggiornamento di una classe di macchine virtuali utilizzando la CLI del data center

In qualità di amministratore vSphere, utilizzare il comando com vmware vcenter namespacemanagement virtualmachineclasses update della DCLI per modificare una classe di macchine virtuali.

Utilizzare quanto segue come esempio.

Modifica CPU e memoria

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-mem-class 
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class cpu-mem-class --cpu-count 4 --memory-mb 4096

Modificare prenotazioni di CPU e di memoria

Quando si crea una classe di macchine virtuali utilizzando una specifica di configurazione con prenotazione di CPU e memoria, la prenotazione o il limite della memoria è in MB per memoryAllocation e in MHz per cpuAllocation.

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-res-class-1
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class cpu-res-class-1 --cpu-reservation 100 --memory-reservation 100
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class cpu-res-class-1

È inoltre possibile utilizzare la specifica di configurazione per aggiornare le prenotazioni di CPU e di memoria. Tutte le prenotazioni di CPU o di memoria esistenti verranno sovrascritte. Utilizzare il seguente come esempio:

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class  cpu-res-class-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","cpuAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200},"memoryAllocation":{"_typeName":"ResourceAllocationInfo","reservation":200,"limit":200}}'

Aggiungere vGPU

com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class class-w-e1000 
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class class-w-e1000 --devices-vgpu-devices '[{"profile_name": "mockup-vmiop-8c"}]' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class class-w-e1000
 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop-8c"}}},{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop"}}}]}' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1

Rimuovere vGPU

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --devices-vgpu-devices '[]'
 com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1

Aggiungi storage istanze

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-1 --instance-storage-volumes '[{"size":47}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0"
 com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-1
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --instance-storage-volumes '[{"size":51},{"size":50}]' --instance-storage-policy "e28d4352-1d1e-431b-b3f7-528bef5838a0"
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2
com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":52428800,"vDiskId":{"_typeName":"ID","id":"cc737f33-2aa3-4594-aa60-df7d6d4cb984"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]}]}'
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2

Rimuovere storage istanze

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-1 --instance-storage-volumes '[]' --instance-storage-policy ""
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-1

Aggiungi schede di rete

Questo comando aggiunge sia uno storage di istanze sia una scheda NIC e1000 alla classe di macchine virtuali.

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class vmclass-ist-2 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","fileOperation":"create","device":{"_typeName":"VirtualDisk","key":0,"backing":{"_typeName":"VirtualDiskFlatVer2BackingInfo","fileName":"","diskMode":"","thinProvisioned":false},"capacityInKB":0,"capacityInBytes":52428800,"vDiskId":{"_typeName":"ID","id":"cc737f33-2aa3-4594-aa60-df7d6d4cb984"}},"profile":[{"_typeName":"VirtualMachineDefinedProfileSpec","profileId":"e28d4352-1d1e-431b-b3f7-528bef5838a0","profileData":{"_typeName":"VirtualMachineProfileRawData","extensionKey":"com.vmware.vim.sps"}}]},{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualE1000","key":-100}}]}' 
com vmware vcenter namespacemanagement virtualmachineclasses get --vm-class vmclass-ist-2

Specifica di configurazione vuota

com vmware vcenter namespacemanagement virtualmachineclasses update --vm-class class-w-e1000 --config-spec ''

Passaggi successivi

Le classi di macchine virtuali create con la DCLI diventano disponibili in vCenter Server. È possibile utilizzare il vSphere Client per assegnare queste classi di macchine virtuali a uno spazio dei nomi. Vedere Associazione di una classe di macchine virtuali a uno spazio dei nomi mediante il vSphere Client.