vSphere Client 외에도 DCLI(Data Center CLI) 명령을 사용하여 VM 클래스를 생성하고 관리할 수 있습니다. DCLI 명령을 사용하면 vSphere Client에서 사용할 수 없는 VM 구성 옵션에 더 유연하게 액세스할 수 있습니다.

사전 요구 사항

루트 사용자 계정을 사용하여 vCenter Server에 로그인하고 dcli +i를 입력하여 대화형 모드에서 DCLI를 사용합니다.

DCLI 명령에 대한 자세한 내용은 DCLI 명령 실행 개요를 참조하십시오.

사용 가능한 DCLI 명령

명령 설명
namespacemanagement virtualmachineclasses create VM 클래스 개체를 생성합니다.
namespacemanagement virtualmachineclasses delete VM 클래스 개체를 삭제합니다.
namespacemanagement virtualmachineclasses get VM 클래스에 대한 정보를 반환합니다.
namespacemanagement virtualmachineclasses list 모든 VM 클래스에 대한 정보를 반환합니다.
namespacemanagement virtualmachineclasses update VM 클래스 개체의 구성을 업데이트합니다.

데이터 센터 CLI를 사용하여 VM 클래스 생성

vSphere 관리자는 DCLI com vmware vcenter namespacemanagement virtualmachineclasses create 명령을 사용하여 VM 클래스를 생성합니다. CPU, 메모리, 메모리 예약, 네트워크 어댑터 등과 같은 VM 속성을 구성할 수 있습니다.

이 명령은 다음과 같은 인수를 수행합니다.
인수 설명
-h, --help 이 도움말 메시지를 표시하고 종료합니다.
--config-spec CONFIG_SPEC VM 클래스(json 입력)와 연결된 VirtualMachineConfigSpec입니다.
--cpu-count CPU_COUNT 필수. 이 클래스의 가상 시스템에 대해 구성된 CPU 수(정수)입니다.
--cpu-reservation CPU_RESERVATION 가상 시스템에 예약된 사용 가능한 총 CPU의 백분율(정수)입니다.
--description DESCRIPTION VM 클래스에 대한 설명(문자열)입니다.
--devices-dynamic-direct-path-io-devices DEVICES_DYNAMIC_DIRECT_PATH_IO_DEVICES 동적 DirectPath I/O 디바이스 목록(json 입력)입니다.
--devices-vgpu-devices DEVICES_VGPU_DEVICES vGPU 디바이스 목록(json 입력)입니다.
--id ID 필수. 가상 시스템 클래스의 식별자(문자열)입니다.
--instance-storage-policy INSTANCE_STORAGE_POLICY 인스턴스 스토리지에 해당하는 스토리지 정책입니다(문자열).
--instance-storage-volumes INSTANCE_STORAGE_VOLUMES 인스턴스 스토리지 볼륨 목록(json 입력)입니다.
--memory-mb MEMORY_MB 필수. 이 클래스의 가상 시스템에 대해 구성된 메모리 양(MB)입니다(정수).
--memory-reservation MEMORY_RESERVATION 이 클래스의 가상 시스템에 예약된 사용 가능한 메모리의 백분율입니다.

다음 예를 사용하여 다양한 속성으로 VM 클래스를 생성합니다.

CPU 및 메모리

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

구성 규격에서 numCPUsmemoryMB를 설정하는 것은 선택 사항입니다. 설정하도록 선택한 경우 필수 --cpu-count--memory-mb vAPI 필드와 동일한 값을 가져야 합니다.

CPU 및 메모리 예약

CPU 및 메모리 예약이 있는 구성 규격을 사용하여 VM 클래스를 생성하는 경우 메모리 예약 또는 제한은 memoryAllocation의 경우 MB 단위, cpuAllocation의 경우 MHz 단위입니다.

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

네트워크 어댑터

다음 명령은 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

이러한 예에서 첫 번째 명령은 필드 --devices-vgpu-devices를 사용하여 vGPU가 포함된 VM 클래스를 생성합니다. 두 번째 명령은 configSpec을 사용하여 vGPU가 포함된 VM 클래스를 생성합니다.
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

인스턴스 스토리지

다음 예에서는 --instance-storage-volumes--instance-storage-policy 필드를 사용하여 인스턴스 스토리지를 사용하는 VM 클래스를 생성합니다.
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
이 예의 ID 필드는 VM 서비스 VM의 인스턴스 스토리지 디바이스를 나타내는 잘 알려진 virtualDisk ID입니다.
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"}}]}]}'

데이터 센터 CLI를 사용하여 VM 클래스 업데이트

vSphere관리자는 DCLI com vmware vcenter namespacemanagement virtualmachineclasses update 명령을 사용하여 VM 클래스를 수정합니다.

다음을 예로 사용할 수 있습니다.

CPU 및 메모리 수정

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

CPU 및 메모리 예약 수정

CPU 및 메모리 예약이 있는 구성 규격을 사용하여 VM 클래스를 생성하는 경우 메모리 예약 또는 제한은 memoryAllocation의 경우 MB 단위, cpuAllocation의 경우 MHz 단위입니다.

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

구성 규격을 사용하여 CPU 및 메모리 예약을 업데이트할 수도 있습니다. 기존 CPU 또는 메모리 예약을 덮어씁니다. 다음의 예와 같이 사용할 수 있습니다.

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

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

vGPU 제거

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

인스턴스 스토리지 추가

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

인스턴스 스토리지 제거

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

네트워크 어댑터 추가

이 명령은 인스턴스 스토리지와 e1000 NIC를 모두 VM 클래스에 추가합니다.

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

구성 규격 비우기

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

후속 작업

DCLI를 사용하여 생성한 VM 클래스는 vCenter Server에서 사용할 수 있게 됩니다. vSphere Client를 사용하여 이러한 VM 클래스를 네임스페이스에 할당할 수 있습니다. vSphere Client를 사용하여 VM 클래스를 네임스페이스와 연결의 내용을 참조하십시오.