Zusätzlich zum vSphere Client können Sie die Data Center CLI (DCLI)-Befehle verwenden, um die VM-Klassen zu erstellen und zu verwalten. Die DCLI-Befehle bieten Ihnen mehr Flexibilität und Zugriff auf VM-Konfigurationsoptionen, die im vSphere Client nicht verfügbar sind.

Voraussetzungen

Melden Sie sich bei vCenter Server mit dem Root-Benutzerkonto an und geben Sie dcli +i ein, um die DCLI im interaktiven Modus zu verwenden.

Informationen zu DCLI-Befehlen finden Sie unter Übersicht über die Ausführung von DCLI-Befehlen.

Verfügbare DCLI-Befehle

Befehl Beschreibung
namespacemanagement virtualmachineclasses create Erstellen Sie ein VM-Klassenobjekt.
namespacemanagement virtualmachineclasses delete Löschen Sie das VM-Klassenobjekt.
namespacemanagement virtualmachineclasses get Gibt Informationen zu einer VM-Klasse zurück.
namespacemanagement virtualmachineclasses list Gibt Informationen zu allen VM-Klassen zurück.
namespacemanagement virtualmachineclasses update Aktualisieren Sie die Konfiguration des VM-Klassenobjekts.

Erstellen einer VM-Klasse mithilfe der Datencenter-CLI

Verwenden Sie als vSphere-Administrator den DCLI-Befehl com vmware vcenter namespacemanagement virtualmachineclasses create, um eine VM-Klasse zu erstellen. Sie können VM-Eigenschaften wie CPU, Arbeitsspeicher, Arbeitsspeicherreservierungen, Netzwerkadapter usw. konfigurieren.

Der Befehl übernimmt die folgenden Argumente.
Argument Beschreibung
-h, --help Die entsprechende Hilfemeldung wird angezeigt und der Vorgang wird beendet.
--config-spec CONFIG_SPEC Eine VirtualMachineConfigSpec, die der VM-Klasse (JSON-Eingabe) zugeordnet ist.
--cpu-count CPU_COUNT Erforderlich. Die Anzahl der für die virtuelle Maschine dieser Klasse konfigurierten CPUs (Ganzzahl).
--cpu-reservation CPU_RESERVATION Der Prozentsatz der insgesamt verfügbaren CPUs, die für eine virtuelle Maschine reserviert sind (Ganzzahl).
--description DESCRIPTION Beschreibung für die VM-Klasse (Zeichenfolge).
--devices-dynamic-direct-path-io-devices DEVICES_DYNAMIC_DIRECT_PATH_IO_DEVICES Liste der dynamischen DirectPath I/O-Geräte (JSON-Eingabe).
--devices-vgpu-devices DEVICES_VGPU_DEVICES Liste der vGPU-Geräte (JSON-Eingabe).
--id ID Erforderlich. Bezeichner der Klasse der virtuellen Maschine (Zeichenfolge).
--instance-storage-policy INSTANCE_STORAGE_POLICY Speicherrichtlinie, die dem Instanzspeicher (Zeichenfolge) entspricht.
--instance-storage-volumes INSTANCE_STORAGE_VOLUMES Liste der Instanzspeichervolumes (JSON-Eingabe).
--memory-mb MEMORY_MB Erforderlich. Die Arbeitsspeichermenge in MB, die für die virtuelle Maschine dieser Klasse konfiguriert ist (Ganzzahl).
--memory-reservation MEMORY_RESERVATION Der Prozentsatz des verfügbaren Arbeitsspeichers, der für eine virtuelle Maschine dieser Klasse reserviert ist.

Verwenden Sie die folgenden Beispiele, um VM-Klassen mit unterschiedlichen Eigenschaften zu erstellen.

CPU und Arbeitsspeicher

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

Das Festlegen von numCPUs und memoryMB in der Konfigurationsspezifikation ist optional. Wenn Sie diese Eigenschaften festlegen möchten, müssen sie dieselben Werte wie die obligatorischen Werte der vAPI-Felder --cpu-count und --memory-mb aufweisen.

CPU- und Arbeitsspeicherreservierungen

Wenn Sie eine VM-Klasse mithilfe einer Konfigurationsspezifikation mit CPU- und Arbeitsspeicherreservierung erstellen, ist die Arbeitsspeicherreservierung oder der Arbeitsspeichergrenzwert in MB für memoryAllocation und MHz für cpuAllocation angegeben.

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

Netzwerkadapter

Mit dem folgenden Befehl wird ein Netzwerkadapter vom Typ E1000 erstellt.
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}}]}'

vGPUs

In diesen Beispielen erstellt der erste Befehl eine VM-Klasse mit einer vGPU mithilfe des Felds --devices-vgpu-devices. Der zweite Befehl erstellt eine VM-Klasse mit einer vGPU mithilfe einer Konfigurationsspezifikation.
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

Instanzspeicher

Die folgenden Beispiele erstellen VM-Klassen, die Instanzspeicher verwenden, indem sie die Felder --instance-storage-volumes und --instance-storage-policy nutzen.
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
Das ID-Feld ist in diesem Beispiel eine bekannte virtualDisk-ID, die ein Instanzspeichergerät in den VM-Service-VMs darstellt.
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"}}]}]}'

Aktualisieren einer VM-Klasse mithilfe der Datencenter-CLI

Verwenden Sie als vSphere-Administrator den DCLI-Befehl com vmware vcenter namespacemanagement virtualmachineclasses update, um eine VM-Klasse zu ändern.

Verwenden Sie die folgenden Beispiele.

Ändern von CPU und Arbeitsspeicher

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

Ändern von CPU- und Arbeitsspeicherreservierungen

Wenn Sie eine VM-Klasse mithilfe einer Konfigurationsspezifikation mit CPU- und Arbeitsspeicherreservierung erstellen, ist die Arbeitsspeicherreservierung oder der Arbeitsspeichergrenzwert in MB für memoryAllocation und MHz für cpuAllocation angegeben.

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

Sie können die Konfigurationsspezifikation auch verwenden, um die CPU- und Arbeitsspeicherreservierungen zu aktualisieren. Alle vorhandenen CPU- oder Arbeitsspeicherreservierungen werden überschrieben. Beispiel:

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}}'

Hinzufügen von vGPUs

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

Entfernen von vGPU

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

Hinzufügen des Instanzspeichers

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

Entfernen des Instanzspeichers

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

Hinzufügen von Netzwerkadaptern

Mit diesem Befehl werden sowohl ein Instanzspeicher als auch eine e1000-Netzwerkkarte zur VM-Klasse hinzugefügt.

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

Leere Konfigurationsspezifikation

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

Nächste Schritte

Die VM-Klassen, die Sie mit der DCLI erstellen, werden in vCenter Server verfügbar. Sie können den vSphere Client verwenden, um diese VM-Klassen einem Namespace zuzuweisen. Weitere Informationen hierzu finden Sie unter Zuordnen einer VM-Klasse zu einem Namespace mit dem vSphere Client.