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.
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
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
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
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
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.