Nutanix上に構築したVMのCPUリソースをコマンドで動的に変えてみたのでメモ
初めにCentos7でテスト用に作成したVMのリソースを確認
lscpuで確認
# lscpu
アーキテクチャ: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
コアあたりのスレッド数:1
ソケットあたりのコア数:1
Socket(s): 1
NUMAノード: 1
ベンダーID: GenuineIntel
CPUファミリー: 15
モデル: 6
Model name: Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
ステッピング: 1
CPU MHz: 2659.998
BogoMIPS: 5319.99
ハイパーバイザーベンダー:Microsoft
仮想化タイプ: 完全仮想化
L1d キャッシュ: 32K
L1i キャッシュ: 32K
L2 キャッシュ: 4096K
L3 キャッシュ: 16384K
NUMAノード 0 CPU: 0
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc nopl pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt hypervisor lahf_lm
次にCVMにログインしacliで確認
$ acli
<acropolis>
vm.getと打ってTAB連打でVM一覧が表示されます。
<acropolis> vm.get
CE5.5_PC OS-new hoge-01
Cent7-01t hoge-02
vm.listを打てばVM名とUUIDが表示されます。
<acropolis> vm.list
VM name VM UUID
CE5.5_PC 201b781f-eb4f-4e1f-b9fa-a88ww6c7051a
Cent7-01t 59d2b8ec-16ef-463f-8ef7-d1bwf8cee4wa
略~
対象のVMの情報を表示します。
<acropolis> vm.get Cent7-01t
Cent7-01t {
config {
agent_vm: False
allow_live_migrate: True
disk_list {
addr {
bus: “ide”
index: 0
}
cdrom: True
device_uuid: “1dbb3878-737a-45f0-a3dd-397f8c58ea65”
empty: True
}
disk_list {
addr {
bus: “scsi”
index: 0
}
container_id: 34440
container_uuid: “f74fb6c0-6614-4f37-8a17-421ba59de94e”
device_uuid: “2238be91-6f33-40bb-a654-073a97f809dd”
vmdisk_size: 107374182400
vmdisk_uuid: “5ad05f95-fbb6-4b3a-9d7b-320c0b2fedfa”
}
hwclock_timezone: “UTC”
max_hotplug_memory_mb: 262144
memory_mb: 6144
name: “Cent7-01t”
nic_list {
mac_addr: “50:6b:8d:8c:cc:55”
network_name: “vlan0”
network_uuid: “75c0ba81-ff8d-4aac-a854-c94586483b4b”
type: “kNormalNic”
uuid: “c1e5a366-144c-4e18-b219-2b7c3d86d3dc”
}
num_cores_per_vcpu: 1 ←ここ
num_vcpus: 1 ←ここ
vm_type: “kGuestVM”
}
host_name: “192.168.100.12”
host_uuid: “9462c17a-8c90-4371-818a-34ff95c15317”
logical_timestamp: 15
state: “kOn”
uuid: “59d2b8ec-164f-463f-83f7-d1b3f8c3e44a”
}
ちなみにncliだとこのようにVM情報を取得
$ ncli
Welcome, admin
You’re now connected to 00155eb5-0a3a-1204-4087-345acb8643453 (CE5.5) at 127.0.0.1
vm listでずら~と構築済みのVM一覧がながれ、name=で対象のVM名を絞ります。
ncli> vm list
略~
ncli> vm list name=Cent7-01tId : 00055eb5-0a3a-1204-4087-782bcb157802::59d2b8ec-164f-463f-83f7-d1b3f8c3e44a
Uuid : 59d2b8ec-164f-463f-83f7-d1b3f8c3e44a
Name : Cent7-01t
VM IP Addresses : 192.168.100.110
Hypervisor Host Id : 00055eb5-0a3a-1204-4087-782bcb157802::5
Hypervisor Host Uuid : 9462c17a-8c90-4371-818a-34ff95c15317
Hypervisor Host Name : NTNX-cee1ce23-A
Memory : 6 GiB (6,442,450,944 bytes)
Virtual CPUs : 1 ←これ
VDisk Count : 1
VDisks : 00055eb5-0a3a-1204-4087-782bcb157802::NFS:4:0:258
Protection Domain :
Consistency Group :
こんな感じでacliとncliでVMに割り当てられいるリソースの確認ができ
現在、vcpu1、1Socketに1Coreが割り当てられているのが確認できました。
早速本題の動的リソース増強です。
acliで実行します。
もちろんVMは稼働したままです。
vcpu2,core1に変更です。
<acropolis> vm.update Cent7-01t num_vcpus=2 num_cores_per_vcpu=1
Cent7-01t: complete
OS上で確認
# lscpu
アーキテクチャ: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2 ←増えてます
On-line CPU(s) list: 0,1
コアあたりのスレッド数:1
ソケットあたりのコア数:1
Socket(s): 2 ←増えてます
NUMAノード: 1
ベンダーID: GenuineIntel
CPUファミリー: 15
モデル: 6
Model name: Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
ステッピング: 1
CPU MHz: 2659.998
BogoMIPS: 5319.99
ハイパーバイザーベンダー:Microsoft
仮想化タイプ: 完全仮想化
L1d キャッシュ: 32K
L1i キャッシュ: 32K
L2 キャッシュ: 4096K
L3 キャッシュ: 16384K
NUMAノード 0 CPU: 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc nopl pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt hypervisor lahf_lm
OSは止まることなく増えてます。
更にテスト
vcpuのみ6に増強して見ます。
<acropolis> vm.update Cent7-01t num_vcpus=6
Cent7-01t: completencli> vm list name=Cent7-01t
略
Name : Cent7-01t
略
Virtual CPUs : 12
略
OS上でも確認
# lscpu
アーキテクチャ: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
コアあたりのスレッド数:1
ソケットあたりのコア数:2
Socket(s): 6
略
動的リソース増強は問題なく実施できました。