仮想マシン クラスの作成と管理には、vSphere Client に加え、Data Center CLI (DCLI) コマンドを使用することもできます。DCLI コマンドを使用すると、vSphere Client では使用できない仮想マシン構成オプションも柔軟に利用することができます。

前提条件

root ユーザー アカウントを使用して vCenter Server にログインし、dcli +i と入力して DCLI を対話モードで使用します。

DCLI コマンドについては、「Overview of Running DCLI Commands」を参照してください。

使用可能な DCLI コマンド

コマンド 説明
namespacemanagement virtualmachineclasses create 仮想マシン クラス オブジェクトを作成します。
namespacemanagement virtualmachineclasses delete 仮想マシン クラス オブジェクトを削除します。
namespacemanagement virtualmachineclasses get 仮想マシン クラスに関する情報を返します。
namespacemanagement virtualmachineclasses list すべての仮想マシン クラスに関する情報を返します。
namespacemanagement virtualmachineclasses update 仮想マシン クラス オブジェクトの構成を更新します。

Data Center CLI を使用した仮想マシン クラスの作成

vSphere 管理者として、DCLI com vmware vcenter namespacemanagement virtualmachineclasses create コマンドを使用して仮想マシン クラスを作成します。CPU、メモリ、メモリ予約、ネットワーク アダプタなどの仮想マシン プロパティを構成できます。

このコマンドには次の引数があります。
引数 説明
-h、--help このヘルプ メッセージを表示して終了します。
--config-spec CONFIG_SPEC 仮想マシン クラスに関連付けられた VirtualMachineConfigSpec(json 入力)。
--cpu-count CPU_COUNT 必須。このクラスの仮想マシン用に構成される CPU の数(整数)。
--cpu-reservation CPU_RESERVATION 仮想マシン用に予約されている使用可能な CPU の合計の割合(整数)。
--description DESCRIPTION 仮想マシン クラスの説明(文字列)。
--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 このクラスの仮想マシン用に予約される使用可能なメモリの割合。

さまざまなプロパティを持つ仮想マシン クラスの作成例を次に示します。

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

Config Spec での numCPUsmemoryMB の設定はオプションです。これらを設定する場合は、必須の vAPI フィールドである --cpu-count および --memory-mb と同じ値を使用する必要があります。

CPU およびメモリの予約

CPU とメモリの予約が含まれる Config Spec を使用して仮想マシン クラスを作成すると、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 を含む仮想マシン クラスが作成されます。2 番目のコマンドでは、configSpec を使用することにより、vGPU を含む仮想マシン クラスを作成します。
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 フィールドを使用することにより、インスタンス ストレージを含む仮想マシン クラスを作成します。
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 フィールドは、仮想マシン サービスの仮想マシンのインスタンス ストレージ デバイスを表す既知の 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 を使用した仮想マシン クラスの更新

vSphere 管理者は、DCLI com vmware vcenter namespacemanagement virtualmachineclasses update コマンドを使用して仮想マシン クラスを変更します。

次に例を示します。

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 とメモリの予約が含まれる Config Spec を使用して仮想マシン クラスを作成すると、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 の両方が仮想マシン クラスに追加されます。

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 を使用して作成した仮想マシン クラスは、vCenter Server で使用できるようになります。vSphere Client を使用して、これらの仮想マシン クラスを名前空間に割り当てることができます。vSphere Client を使用した仮想マシン クラスと名前空間の関連付けを参照してください。