Proxmox VE環境で仮想マシンのマイグレーションに失敗する(ESXiの仮想CPU設定の問題)

Ryzen 5 3500U搭載GMKtec G10 mini上に構築した vSphere ESXi 8.0 Freeの検証環境にて、Proxmox VE 9.1仮想マシン3台構成でクラスタを作成し、HA試験を行ったところ、3台中1台に対して失敗した。

結果を先に書いておくと、Proxmox VE環境上の仮想マシン挙動で発覚したが、実際の問題はvSphre ESXiの仮想CPUの作りの問題でした。

さて、発覚した状況としては、Proxmox VE上でHA設定をしている場合、仮想マシンを動かしていたサーバを停止すると、稼働中のサーバ上で再起動してくるはずが、下記のエラーで起動が失敗していた。

task started by HA resource agent
kvm: warning: host doesn't support requested feature: CPUID.80000001H:ECX.cmp-legacy [bit 1]
kvm: Host doesn't support requested features
TASK ERROR: start failed: QEMU exited with code 1

3台とも仮想マシンの4vCPUにしてるはずなんだけど・・・と思ってCPU設定を見直してみると、ソケット数が違っていた

proxmox1, proxmox2は1ソケット4コア

proxmox3は4ソケット1コア

この影響なのか、/proc/cpuinfoに違いが・・・

proxmox1とproxmox2の/proc/cpuinfo

root@proxmox2:~# ssh proxmox1 cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 4
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 2
cpu cores       : 4
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

root@proxmox2:~#

proxmox3の/proc/cpuinfo

root@proxmox2:~# 
ssh proxmox3 cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 2
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 4
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 4
initial apicid  : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 6
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 6
initial apicid  : 6
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

root@proxmox2:~#

proxmox3のflagsには「ht」「cmp_legacy」がない。

またproxmox3のbugsには「spectre_v2_user」がある

proxmox3は1つのCPU内に複数のコア/スレッドがないので、hyper thread機能が存在しない、ということで消されていた模様

このため、proxmox3仮想マシンを一度停止し、CPU設定を1ソケット4コアに揃えたところ、flagsに「ht」と「cmp_legacy」が追加されたことを確認した

root@proxmox2:~# ssh proxmox3 cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 4
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 2
cpu cores       : 4
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 24
model name      : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping        : 1
microcode       : 0x8108109
cpu MHz         : 2100.000
cache size      : 512 KB
physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists overflow_recov succor
bugs            : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso div0 ibpb_no_ret spectre_v2_user
bogomips        : 4200.00
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 45 bits physical, 48 bits virtual
power management:

root@proxmox2:~#

というわけで、vSphere ESXi 8.0上で「4vCPU」を設定する場合、「1CPU 4コア設定」と「4CPU1コア設定」とで提供されるCPU機能が異なり、一部の挙動が変わる、ということでした。

ARM SoC搭載のミニPC MINISFORUM MS-R1でProxmox VEが使える?

ミニPCをいろいろ出しているMINISFORUMからARM SoCを使ったMINISFORUM MS-R1が発売されるとのこと

製品ページを見てみると気になる文面が・・・

「With Proxmox and KVM backed by UEFI boot and the ARM-based CP8180 CPU」

仮想化基盤 Proxmox VEが動く、という意味に読めるのだが、現状公式のProxmox VEはx86_64のサポートのみのはず

どうやったら動くのかな?と調べてみるとServerTheHomeの記事「The Minisforum MS-R1 12-core Arm 10GbE Mini Workstation is」にMINISFORUMがgithubに公開している「MS-R1-Docs」に資料があるよ、とのこと・・・

How to install PVE into MS-R1」というそのものなドキュメントがある。

現状のドキュメントにはちゃんと記載されていないが、梨儿方科技術( Lierfang )社によるPXVIRT というProxmox VEに ARM対応(aarch64) と 龍心対応(loongarch64)を追加するプロジェクトの成果物を使っているようだ。

Proxmox VE自体はもともとDebian OSにProxmox VE用ソフトウェアパッケージ群を追加したものであるため、MS-R1向けProxmox VEも、MS-R1向けDebianをインストールした後に、 PXVIRT(Proxmox VEカスタマイズ)をインストールする、ということになる。

PXVIRT版にNVIDIA vGPUについてのページがあるがコミュニティドライバ(nouveau)は使えず、NVIDIA純正ドライバのみが使えるためx86_64環境でしか使えないようだ。

中国製GPUのMoore Threads GPUについてもページは準備されているが何も記載されていない。こちらについては今後に期待

MS-R1のドキュメントのほうを見ると、「MS-R1 — Run Android in Docker」というDockerコンテナとしてAndrodi OS 14環境を動かす手法が掲載されている。

稼働させたコンテナ上のAndroidはescrcpyというUSB Debugging 機能を利用してリモートから操作する手法を使う模様

MINISFORUM MS-R1、いろいろ面白そうな雰囲気はありますね

HPE VMEssentialsでNVIDIA vGPUは使えるか?

HPE VMEssentials環境でNVIDIA vGPUが使えるか試してみたところ、libvirtを直接操作することで仮想マシンにvGPUの割り当てが行えることを確認した。

ただし、HPE VMEssentialsで管理していると思われる仮想マシンのXML形式の設定ファイルと、virsh dumpxml で取得できるXML形式の設定ファイルの内容は別物になっていて、HPE Web UIで設定変更するとvirshで直接編集した結果は破棄されてしまうので注意が必要

仮想マシンの起動/停止レベルであれば問題ないが、設定変更はダメだった

HPE VMEssentialsのGUIでパススルー設定をして仮想マシンに割り当てるという設定も可能ではあるのだが、パススルー設定できるデバイスでvGPUデバイスが選択できない状態だった。つまりは、NVIDIA vGPUドライバを入れずに仮想マシンから直接GPU全体を割り当てる、といった使い方しかできない。

HPE VMessentials側の設定:下地作り

パススルーする際に必要となるIOMMU関連設定は、hpe-vm v8.0.5.1では設定実施済みとなっていた。

必要なのはLinux標準のnouveauドライバを使用しないようにするための blacklist.conf 設定だった

実施後、nvidia vGPU のうちUbuntu版の nvidia-vgpu-ubuntu-570_570.133.10_amd64.deb をインストールして対応完了

Secure Boot有効の場合はUEFIへのキー埋め込みも行ってくれた。

また、sriov-manager -e ALL を実行して、GPUを分割されるか確認

pcuser@vgpuserver:~$ lspci -d 10de: -nnk
08:00.0 3D controller [0302]: NVIDIA Corporation GA107GL [A2 / A16] [10de:25b6] (rev a1)
        Subsystem: NVIDIA Corporation Device [10de:157e]
        Kernel driver in use: nouveau
        Kernel modules: nvidiafb, nouveau, nvidia_vgpu_vfio, nvidia
root@vgpuserver:~# /usr/lib/nvidia/sriov-manage -e ALL
Enabling VFs on 0000:08:00.0
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 148: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
/usr/lib/nvidia/sriov-manage: line 90: /sys/bus/pci/drivers/nvidia/bind: No such file or directory
root@vgpuserver:~# lspci -d 10de:
08:00.0 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:00.4 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:00.5 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:00.6 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:00.7 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.0 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.1 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.2 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.3 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.4 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.5 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.6 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:01.7 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:02.0 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:02.1 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:02.2 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
08:02.3 3D controller: NVIDIA Corporation GA107GL [A2 / A16] (rev a1)
root@vgpuserver:~#


分割されるようであれば、これが起動時に実行されるよう/usr/local/lib/systemd/system/nvidia-sriov.service を作成し、起動する

root@vgpuserver:~# mkdir -p /usr/local/lib/systemd/system
root@vgpuserver:~# vi /usr/local/lib/systemd/system/nvidia-sriov.service
root@vgpuserver:~# cat /usr/local/lib/systemd/system/nvidia-sriov.service
[Unit]
Description=Enable NVIDIA SR-IOV
Before=pve-guests.service nvidia-vgpud.service nvidia-vgpu-mgr.service

[Service]
Type=oneshot
ExecStart=/usr/lib/nvidia/sriov-manage -e ALL

[Install]
WantedBy=multi-user.target
root@vgpuserver:~# systemctl  daemon-reload
root@vgpuserver:~# systemctl status nvidia-sriov.service
○ nvidia-sriov.service - Enable NVIDIA SR-IOV
     Loaded: loaded (/usr/local/lib/systemd/system/nvidia-sriov.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
root@vgpuserver:~# systemctl enable --now nvidia-sriov.service
Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-sriov.service → /usr/local/lib/systemd/system/nvidia-sriov.service.
root@vgpuserver:~# systemctl status nvidia-sriov.service
○ nvidia-sriov.service - Enable NVIDIA SR-IOV
     Loaded: loaded (/usr/local/lib/systemd/system/nvidia-sriov.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Thu 2025-05-22 18:08:35 JST; 1s ago
    Process: 2853 ExecStart=/usr/lib/nvidia/sriov-manage -e ALL (code=exited, status=0/SUCCESS)
   Main PID: 2853 (code=exited, status=0/SUCCESS)
        CPU: 44ms

May 22 18:08:35 vgpuserver systemd[1]: Starting Enable NVIDIA SR-IOV...
May 22 18:08:35 vgpuserver sriov-manage[2857]: GPU at 0000:08:00.0 already has VFs enabled.
May 22 18:08:35 vgpuserver systemd[1]: nvidia-sriov.service: Deactivated successfully.
May 22 18:08:35 vgpuserver systemd[1]: Finished Enable NVIDIA SR-IOV.
root@vgpuserver:~#

再起動してnvidia-smiが動くか確認


pcuser@vgpuserver:~$ nvidia-smi
Tue May 27 15:39:51 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.10             Driver Version: 570.133.10     CUDA Version: N/A      |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA A2                      On  |   00000000:08:00.0 Off |                  Off |
|  0%   50C    P8              9W /   60W |       0MiB /  16380MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
pcuser@vgpuserver:~$ 

HPE VMessentials側の設定:libvirtいじり

v8.0.5時点ではHVM経由ではvGPU割り当てができないので、libvirtを直接いじってvGPUを仮想マシンに割り当てる必要がある

参考になるドキュメントは「Configuring the vGPU Manager for a Linux with KVM Hypervisor

まず、このデバイスがサポートしている”nvidia-3桁数字”という書式のデバイス種別を確認するため「mdevctl types」を実行。また、同時に「0000:08:00.4」といった形でPCIデバイスのアドレスを確認

root@vgpuserver:~# mdevctl types
0000:08:00.4
  nvidia-742
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-1B
    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=16
  nvidia-743
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-2B
    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8
  nvidia-744
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-1Q
    Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=16
  nvidia-745
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-2Q
    Description: num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=7680x4320, max_instance=8
  nvidia-746
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-4Q
    Description: num_heads=4, frl_config=60, framebuffer=4096M, max_resolution=7680x4320, max_instance=4
  nvidia-747
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-8Q
    Description: num_heads=4, frl_config=60, framebuffer=8192M, max_resolution=7680x4320, max_instance=2
  nvidia-748
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-16Q
    Description: num_heads=4, frl_config=60, framebuffer=16384M, max_resolution=7680x4320, max_instance=1
  nvidia-749
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-1A
    Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=16
  nvidia-750
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-2A
    Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=8
  nvidia-751
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-4A
    Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=4
  nvidia-752
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-8A
    Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=2
  nvidia-753
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-16A
    Description: num_heads=1, frl_config=60, framebuffer=16384M, max_resolution=1280x1024, max_instance=1
<略>
  nvidia-753
    Available instances: 1
    Device API: vfio-pci
    Name: NVIDIA A2-16A
    Description: num_heads=1, frl_config=60, framebuffer=16384M, max_resolution=1280x1024, max_instance=1
root@vgpuserver:~#

vGPUでCUDAを使う場合はA2-?Q デバイスあたりを使う

0000:08:00.4にある RAM2GBのA2-2Q の nvidia-745 で定義を作成する

まず「0000:08:00.4」をlibvirtで使用するデバイスIDに変換するためvirsh nodedev-listコマンドで確認する

root@vgpuserver:~# virsh nodedev-list --cap pci|grep 08_00_4
pci_0000_08_00_4
root@vgpuserver:~# 

「pci_0000_08_00_4」の「nvidia-745」が定義ファイルで使う値となる

また、定義ごとに一意のUUIDが必要になるので「uuidgen」コマンドを実行して値を確認してファイルを作成する

root@vgpuserver:~# uuidgen
73f353e8-7da8-4b76-8182-04c5a1415dec
root@vgpuserver:~# vi vgpu-test.xml
root@vgpuserver:~# cat vgpu-test.xml
<device>
    <parent>pci_0000_08_00_4</parent>
    <capability type="mdev">
        <type id="nvidia-745"/>
        <uuid>73f353e8-7da8-4b76-8182-04c5a1415dec</uuid>
    </capability>
</device>
root@vgpuserver:~#

作成したファイルをnodedevとして登録する

root@vgpuserver:~# virsh nodedev-define vgpu-test2.xml
Node device 'mdev_73f353e8_7da8_4b76_8182_04c5a1415dec_0000_08_00_4' defined from 'vgpu-test2.xml'

root@vgpuserver:~# virsh nodedev-list --cap mdev --inactive
mdev_73f353e8_7da8_4b76_8182_04c5a1415dec_0000_08_00_4

root@vgpuserver:~# virsh nodedev-list --cap mdev

root@vgpuserver:~#

登録できたmdevを開始する

root@vgpuserver:~# virsh nodedev-start mdev_73f353e8_7da8_4b76_8182_04c5a1415dec_0000_08_00_4
Device mdev_73f353e8_7da8_4b76_8182_04c5a1415dec_0000_08_00_4 started

root@vgpuserver:~# virsh nodedev-list --cap mdev
mdev_73f353e8_7da8_4b76_8182_04c5a1415dec_0000_08_00_4

root@vgpuserver:~# virsh nodedev-list --cap mdev --inactive

root@vgpuserver:~#

こうして作られたmdevデバイスをvirtshコマンドを使って直接仮想マシンに追加する

root@vgpuserver:~# virsh attach-device almalinux --persistent /dev/stdin <<EOF
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'>
  <source>
    <address uuid='73f353e8-7da8-4b76-8182-04c5a1415dec'/>
  </source>
</hostdev>
EOF
Device attached successfully

root@vgpuserver:~# 

これで設定ができたのであとは仮想マシンを起動して、仮想マシン内でvGPUドライバをインストールすれば使えました

ただ、HVM管理UIで設定を変えるとmdev設定は消えてしまうので、実用するにはつらいですね

vSphere代替と話題になっているHPE VM EssentailsことUbuntu 22.04LTS KVM hypervisor with HP製管理GUIを試して見てる

vSphereがアレなことになってしまってから、いろいろ面倒なことになっています。

そんな中、HPEからHPE VM Essentialsなる仮想基盤を出すという話が・・・

2025/01/14にHPE VM Essentials trial というページが公開されているというのに気がついて、ダウンロードしてみました。

ただ、2025/02/04時点でもドキュメントの理解ができてないので、いまいち設定がよくわかりません・・・

まだ世間に設定してみた情報が少ないので、問題になった点とかのメモもかねて公開していきます。

2025/07/25時点での感想

v8.0.7までを使用しての使いたくないな、と思う点

・引き続きドキュメントがなさ過ぎる
  いろんな設定の最小値、最大値、どうやって値を決めたらいいのか基準がない
  サポートしてる機能がうっすらとしか書かれてない
  /var/morpheus の件も引き続き記載はない

・動いてるように見えるけど、設計通りの動作なのかよくわからないことがある
  ログの見方とか、どんなログがでるのかとか、そういうことを書いたドキュメントが存在しない
  自分たちで動かしてログを集めて傾向と対策を作らなければダメらしい

・バージョンアップについてちゃんと出来るのか不安
  4月下旬リリースのv8.0.5からベースOSがUbuntu 22.04から24.04に変わって
  クラスタもv1.1からv1.2に変わったけど
  3ヶ月経過してもバージョンアップ手法が未公開
  またHPE Manager仮想マシンのアップデートもドキュメントに記載されているアップデートファイルが公開されなくなって3ヶ月経つ

・iSCSI/FCの共有ストレージがうまく取り扱えない
  共有ストレージ上につくるファイルシステムがHPE VME側では用意してくれない
  GFS2などのファイルシステムを組む必要がある模様
  なお、自社ストレージ Alletra MP Storageについては専用プラグインを提供してファイルシステム不要としている

現時点で共有ディスクはNFSかHPE Alletra MP Storage になるのかなぁ・・・


2025/02/05 17:00時点の感想

v8.0.2.1を使用しての感想

・ドキュメントが足らなすぎる
・処理中なのかどうかもう少し表現してほしい
・仮想DVDドライブのメディア入れ替えが動作しないのと初期設定時以外に設定追加できないのなんとかしてほしい
iSCSIストレージの追加ってどこからやるの?
ローカルストレージの追加ってどこからやるの?
・ドキュメント上 /var/morpheus ディレクトリで容量使うってどこにも書いてない気がするんですが!!!
・作成した仮想マシンBIOS設定だったんだけど、UEFIへの切り替えはどこでやるの?(作成後に変更不可っぽい)
Secure Boot / vTPM への対応はするの?(仮想イメージの設定側で変更する?)

配布パッケージについて

HPE VM Essentials trial というページにて公開されています。

登録後は My HPE Software Center から左側の「Software」を開き、Searchキーワードに「HPE VME」と入力して検索すると、Search Resultsにその時点での最新版が表示されます。

2025/03/26注: [My HPE Software Center]からSinginしないで「Browse Free Software」をクリックする、というアクセス方法に代わっていた

2024/01/14時点では、 HPE_VM_Essentials_SW_image_v8.0.1.1_S5Q83-11001.iso の中に、Ubuntu 22.04上へインストールするためのパッケージファイル(hpe-vm_1.0.2-1_amd64.deb)と、HPE Manager用の仮想ディスクイメージファイル(hpe-vme-8.0.1-1.qcow2.gz)が入っていました。

その後、2025/01/29付けで HPE_VM_Essentials_SW_image_8.0.2_1_S5Q83-11003.iso に差し替わり、こちらはパッケージファイルはそのまま(hpe-vm_1.0.2-1_amd64.deb)と、HPE Manager用の仮想ディスクイメージファイルが更新されて hpe-vme-8.0.2-1.qcow2.gz になっていました。

現状ではアップデートされたかどうかのお知らせが出ていないようなので、自分で確認する必要があるようです。(2025/02/26 Release Noteが公開されるようになった)

2025/02/24付けで ver 8.0.3-1がリリースされました。
HPE_VM_Essentials_SW_image_8.0.3_1_S5Q83_11005.iso の中のdebファイルは変わらずhpe-vm_1.0.2-1_amd64.deb のまま。HPE Manager用仮想ディスクイメージが hpe-vme-8.0.3-1.qcow2.gz に更新。

また、追加でHPE Manager仮想マシン内のファイルをアップデートする用に hpe_vm_essentials_8.0.3_1_amd64.deb と hpe_vm_essentials_supplemental_8.0.3_1_all.deb が増えました

変更点ってなんなの?と聞いてみたら、ドキュメントサイト上に v8.0.3 Release Notesが追加されました。

2025/04/03になって ver 8.0.4-1がリリースされました。(ドキュメント上 v8.0.4 March 31, 2025 と書いてあるけど、サイトで公開されたのは4/3)
HPE_VM_Essentials_SW_image_8.0.4_1_S5Q83-11007.iso の中は hpe-vm_1.0.4-1_amd64.deb と hpe-vme-8.0.4-1.qcow2 になりました。
2025/04/04 10時時点では HPE Manager仮想マシンアップデート用のファイルは未公開です。

2025/04/25付けで ver 8.0.5がリリース されました。
HPE_VM_Essentials_SW_image_8.0.5_1_S5Q83-11009.iso のみ公開で、HPE Manager仮想マシンアップデート用ファイルは無し
Ubuntu 24.04 LTSを使えるようになりました!!

2025/06/11付けで ver 8.0.6がリリースされました
HPE_VM_Essentials_SW_image_8.0.6_S5Q83-11015.iso のみ公開
hpe-vme_1.0.8-1_amd64.deb と hpe-vm-essentials-8.0.6-3.qcow2 でした。

2025/07/11付けで ver 8.0.7がリリースされました
ドキュメントサイトの構成変更があり 「HPE Morpheus VM Essentials Software」になった模様です
HPE_VM_Essentials_SW_image_8.0.7_S5Q83-11017.iso のみ公開
hpe-vm_1.0.9_1-amd64.deb と hpe-vm-essentials-8.0.7-3.qcow2.gz でした。

8.0.4以降、HPE VME Manager仮想マシンのアップデート用ファイルが提供されないのはなんなんでしょうかね・・・

HPE VM Essentialsの構成について

HPE VM Essentialsのドキュメントページに下記の絵があります。

2025年1月末時点では、Ubuntu 22.04ベースのサーバ上に、HPE VM Consoleパッケージ(hpe-vm_1.0.2-1_amd64.deb)を追加する。
2025年4月末リリースのv8.0.5.1から Ubuntu 24.04ベースになりました。

追加したサーバのうち1台の上に、中央管理サーバとなるHPE VME Manager仮想マシンを構築して起動する、というものになる。

ベースとなるUbuntu 22.04について

Ubuntu 22.04インストール時に最小インストールで実施してみたところ、hpe-vm_1.0.2-1_amd64.deb パッケージインストール時に足らないパッケージを全部持ってきてるようだったので、それで大丈夫だろう、と思って設定していたのですが、HPE VME Manager仮想マシンの構築で失敗するという問題が発生しました。

原因が半月以上わからないままだったのですが、ふと思いついてUbuntuの再インストール時に最小インストール “Ubuntu Server (minimized)” をやめたらすんなりと成功するいう・・・

Ubuntuインストール時のパーテーション構成について

ドキュメント上、特に記載がないが、動作をみたところ、/var/morpheus/kvm/ 以下にデフォルトのデータストア(仮想マシン格納場所)が作成されていた

このため、 /var/morpheus は別のパーテーションとして容量を確保した方がよいかと思われる。

ネットワーク設定について

とりあえず、普通に固定IPアドレスを割り当てたネットワークインタフェースが1つあれば、仮想マシンを動かす設定まで作れる。

ポイント的なものでいうと
・Ubuntu 22.04インストール時に使用するネットワークインタフェースに固定IPを割り当てる
・上記で使ったネットワークインタフェース名(たとえばeno5)は HPE VM Managerインストール時に何回か入力することになる
・Compute VLANを別に用意しなくても問題なく、管理用と同じで動作させることはできる

仮想環境で使用するネットワークについては、open vswitchを利用したものが作成される。

インストール直後は「default」だけだが、HPE VM Managerの初期セットアップとサーバの登録が終わると「Management」と「Compute」という設定ができている。(virsh net-listで確認できる)

hpe-vmパッケージインストール

Ubuntu 22.04 Serverをインストールした後、ISOイメージの中にある hpe-vmのdebパッケージをインストールすることで、HPE VM Essentailsで使用するhypervisor用サーバとなる。

「sudo apt install -f hpe-vm_1.0.2-1_amd64.deb」というふうに実行すると、必要なUbuntuパッケージとともにインストールされる。

ただ、パッケージインストール後、一度OS再起動した方が良さそうな気がします。

インストール直後の virsh net-list –all実行結果

vmadmin@hpevm:~$ virsh net-list --all
 Name   State   Autostart   Persistent
----------------------------------------

vmadmin@hpevm:~$

再起動後の実行結果

vmadmin@hpevm:~$ virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes

vmadmin@hpevm:~$

HPE VME Manager仮想マシンのセットアップについて

hpe-vm パッケージをインストールすると、「hpe-vm」コマンドが実行できるようになります。

「sudo hpe-vm」で起動すると以下のような画面となります。

最初は「Keyboard Layout / TimeZone」でキーボードとタイムゾーンを設定します。

コマンドで「sudo timedatectl set-timezone Asia/Tokyo」でもよい。

VC Keymapを「sudo localectl set-keymap jp106」で設定しようかと思ったのですが、そちらはパッケージが足らないらしくエラーになりました(UIから選択すると自動的にインストールされる)

管理はHPE VME Manager仮想マシン経由で行うため、環境内に1台だけインストールを行う。

HPE VME Manager仮想マシンのインストールはhpe-vmの「Install Morpheus」から実施する。

以下のような形でセットアップパラメータを指定する

IP Address: HPE VME Manager仮想マシンのIPアドレス
Netmask, Gateway, DNS Serverは普通に設定

Appliance URLは、セットアップ完了後、HPE VME Manager仮想マシンの管理Webにアクセスする際のURLを指定する。https://ホスト名.ドメイン名 というようなDNSサーバで解決できる名前を指定することを推奨している模様。IPアドレス指定でも大丈夫だった。

Hostname はHPE VME Manager仮想マシンのホスト名

Admin User / Admin Password はHPE VME Manager仮想マシンにsshでログインする場合のユーザ情報

Select VM Sizeは「Small」「Medium」「Large」の3種類から選ぶが、現状のドキュメントでは仮想マシンスペックの違いしかかかれておらず、管理対象台数などがどう変わるかについては不明。

Host Configration Optionsの Management Interface には、ホストサーバで、管理用のIPアドレスがついているインタフェースを選んだ

インストールを開始すると、93%で一度長時間止まる。

これは初回起動にとても時間がかかるためで10分ちょい放置すると、サービスが起動したというウィンドウが表示される。

起動が終わる前に管理URLにアクセスすると以下のような表示が出る。(最初は ポート80しかあいてないが、そのうちポート443もアクセスできるようになる)

完了すると「Morpheus VM Installed」という表示が出る。(下記キャプチャはAppliance URLを IPアドレスで設定した場合のキャプチャ)

サービスの起動が完了したあとにAppliance URLで指定したURLにブラウザからアクセスすると、下記のようなログイン画面が表示される。

階層構造について

ドキュメントで解説している箇所がよくわからないが、以下のツリー構成になっているようだ。

テナント名
 └グループ名
  └クラウド名
   └クラスター名
    ├ホスト
    ├VM(仮想マシン)
    ├ネットワーク
    ├ストレージ
    └仮想イメージ

あと、上記とは直接関係なく「ラベル名」という区別のための識別符をつけることもできる。

テナント名: 初回ログイン時にマスターテナント名として指定

v8.0.2.1時点ではテナントの管理URLっぽいのにアクセスするとエラーになるので、これからなんか実装していくっぽい

グループ名:拠点などでわけることを想定していると思われるもの

クラウド名:「HPE VM Essentials環境」と「vSphere環境」の2種類を登録できる。

クラスター名:vSphereのクラスターとほぼ同じ意味合いでのクラスター。この下に実際の物理Ubuntuサーバ with HPE VMを登録する

初回ログイン時の設定項目について

初回ログイン時に設定が求められる項目として以下がある

マスターテナント名: 適当になんか名前を設定

マスターユーザーの作成で、主管理ユーザを作成。メールアドレスも必須

初期セットアップは、Install Morpheus で入力したものを指定

最後にライセンス登録。評価版の時はなにも入力しない

以上で初期セットアップ終了

HPE VM Managerセットアップ後のvirsh net-list –allを確認すると、設定が変わっている。

vmadmin@hpevm:~$ virsh net-list --all
 Name         State    Autostart   Persistent
-----------------------------------------------
 default      active   yes         yes
 Management   active   yes         yes

vmadmin@hpevm:~$

サーバ登録

初期設定が終わったらサーバ登録を行う。

「インフラストラクチャ」から「グループ」作成→「クラウド作成」

クラウド作成は多少時間がかかるので、ステータスが「INITIALIZING」から「OK」に変わるのを確認すること(自動更新をしないようなので再読み込みで確認)

で、作成されたこのクラウドのリンクをクリックして、「クラスター」を開く

クラスターの追加ウィザードの中で重要なポイントは以下の構成オプションのところ

hpe-vmパッケージをインストールしたUbuntuサーバをSSHホストとして指定

Management Net Interface、Compute Net Interface、Overlay net Interfaceに使用するネットワークインタフェース名を入れる。全部同じインタフェースを使用しても動作した。

(Overlay net Interfaceを空欄で進めたら指定していないはずの eno0デバイスがないというエラーが出たので、指定しないとダメっぽい)

タグVLANを使う場合はCompute Net Interfaceに使うインタフェース名と、COMPUTE VLANSにタグVLANの値を列挙する。

レイアウトは「HPE VM 1.1 Cluster on Existing Ubuntu 22.04」と「HPE VM 1.1 HCI Ceph Cluster on Existing Ubuntu 22.04」の選択肢になっているのだが、HCI構成の場合の要求要件がわからないのでまだ手を付けていない

あと「CPU Model」のところで、そのクラスタで使用する仮想マシンに許可するCPU世代を指定できる。(VMware EVCみたいな感じか)

これで完了をクリックして、少し待つと、クラスターに登録される

登録した後は、情報同期が行われているようなので、10分ぐらい放置する

登録直後は、各サーバの詳細を見ると、下記のようにストレージ情報がありません、と出る。

しばらく待つとそのサーバのローカルディスクが表示される

他のタブでも同様の状態となっているのだが、情報更新中であることを示すアイコンがあるのかどうか現状不明なので、とりあえず再読み込みしてみるしかない模様

ある程度処理が進んでいると「virsh net-list」の実行結果が下記のように「Management」と「Compute」になっていて、最初合ったdefaultが消えている。

vmadmin@hpevm:~$ virsh net-list --all
 Name         State    Autostart   Persistent
-----------------------------------------------
 Compute      active   yes         yes
 Management   active   yes         yes

vmadmin@hpevm:~$

UEFI Secure BootとTPMについて

現状、以下の機能は実装されていない模様
・UEFI/BIOSの明示的な切り替え
・UEFI時のSecure Boot 有効/無効 切り替え
・TPMの有効化

このため、標準設定のWindows 11をインストールすることはできない。

とりあえず試験的にインストールしたWindowsとLinuxはBIOS構成となっていた。

Windowsのインストールについて

Windows Serverなどをインストールするとき、標準的なWindows ISOイメージにはKVM環境向けのvirtioドライバーが含まれていないため、インストーラ上からディスクを認識できない。

Nutanixなどであれば、途中で読み込ませるISOファイルをVirtioドライバISOに換えればよいのだが、HPE VM EssentailsのWeb UIからISOファイルを別のものに変更する操作が動作しない。

正解は仮想マシン新規作成時の「Advanced Options」の中にある「ATTACH VIRTIO DRIVERS」にチェックを入れる、というもの。

これによりOSインストール用のISOイメージの他に、virtioのISOイメージがマウントされた状態で起動するようになる。

なお、v8.0.2.1の状態ではGUI上で作成済みの仮想マシンに対してISOファイルマウントの設定を行うことはできない模様。

インストールに必要なもの

RedHat VirtIO SCSI controller :VEN_1AF4&DEV_1001 → viostor

デバイスマネージャで警告が表示されたもの

PCIシンプル通信コントローラ :VEN_1AF4&DEV_1003 → vioserial
PCIデバイス :VEN_1AF4&DEV_1002 → balloon
イーサネット コントローラー :VEN_1AF4&DEV_1000 → NetKVM
マルチメディア オーディオ コントローラ :VEN_8086&DEV_2415 → Intel(r) 82801AA AC’97 Audio Controller

マルチメディア オーディオコントローラ(Intel 82801AAエミュレーション)については、適用できるドライバが64bit向けがない?

そのほか virioのISOに含まれるドライバ

VEN_1AF4&DEV_1004 → vioscsi
VEN_1AF4&DEV_1005 → viorng
VEN_1AF4&DEV_1041 → NetKVM
VEN_1AF4&DEV_1044 → viorng
VEN_1AF4&DEV_1045 → balloon
VEN_1AF4&DEV_1050 → viogpudo
VEN_1AF4&DEV_1052 → vioinput
VEN_1AF4&DEV_105A → viofs
VEN_8086&DEV_2930 → smbus
VEN_1B36&DEV_0002 ~ DEV_0004 → qemupciserial
VEN_1B36&DEV_0100 → qxl(xp,win7,2008R2),qxldod (win2012~2019)

(VEN_1AF4,VEN_1B36はRedHat Inc、VEN_8086はIntel)

仮想マシンのコンソールについて

基本的にはWebブラウザから操作することになっている。

が、virtで管理されているので 「virsh dumpxml 仮想マシン名」を実行してみると下記のようなvncに関する設定項目があるのがわかる

    <graphics type='vnc' port='41001' autoport='no' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>

上記の場合、サーバローカルに対してのみポート41001でアクセスする場合に使えるので、sshトンネルで127.0.0.1:41001にアクセスする設定をいれてやれば、他のマシンからでも接続できる

この状態で、Windowsにvirt-viewerをインストールして「”C:\Program Files\VirtViewer v11.0-256\bin\remote-viewer.exe” vnc://127.0.0.1:41001」を実行すると接続できる。

パスワードが求められるが、VNCのパスワードはなぜかdumpxmlでは表示されないので「virsh edit 仮想マシン名」を実行して探す必要がある

    <graphics type='vnc' port='41001' autoport='no' listen='127.0.0.1' passwd='Mo8lzACR'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>

上記の場合、「Mo8lzACR」がパスワードとなる

iSCSIストレージの追加

まさかクラスター階層の「ストレージ」にiSCSIのターゲットIPの指定があるなんて・・・

これを指定することで、クラスタに所属するサーバ上でiSCSIストレージが追加されました。

vmadmin@hpevm:~$ sudo iscsiadm -m session
tcp: [1] 172.17.44.9:3260,2460 iqn.2007-11.com.nimblestorage:hpevme-v371c7edc5d1bd1e3.000000d2.6a07af3f (non-flash)
tcp: [2] 192.168.44.9:3260,2460 iqn.2007-11.com.nimblestorage:hpevme-v371c7edc5d1bd1e3.000000d2.6a07af3f (non-flash)
vmadmin@hpevm:~$ sudo lsblk
NAME                                MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0                                 7:0    0  63.9M  1 loop  /snap/core20/2318
loop1                                 7:1    0    87M  1 loop  /snap/lxd/29351
loop2                                 7:2    0  38.8M  1 loop  /snap/snapd/21759
loop3                                 7:3    0  44.4M  1 loop  /snap/snapd/23545
loop4                                 7:4    0  63.7M  1 loop  /snap/core20/2434
loop5                                 7:5    0  89.4M  1 loop  /snap/lxd/31333
sda                                   8:0    0 447.1G  0 disk
tqsda1                                8:1    0     1G  0 part  /boot/efi
tqsda2                                8:2    0     2G  0 part  /boot
mqsda3                                8:3    0 444.1G  0 part
  tqubuntu--vg-ubuntu--lv           253:0    0   100G  0 lvm   /
  mqubuntu--vg-morpheus             253:1    0   300G  0 lvm   /var/morpheus
sdb                                   8:16   0 447.1G  0 disk
mqsdb1                                8:17   0 447.1G  0 part
sdc                                   8:32   0 447.1G  0 disk
sdd                                   8:48   0 447.1G  0 disk
sde                                   8:64   0 447.1G  0 disk
sdf                                   8:80   0 447.1G  0 disk
sdg                                   8:96   1     0B  0 disk
sdh                                   8:112  0     1T  0 disk
mq22674a991c8b22b4c6c9ce9003faf076a 253:2    0     1T  0 mpath
sdi                                   8:128  0     1T  0 disk
mq22674a991c8b22b4c6c9ce9003faf076a 253:2    0     1T  0 mpath
sr0                                  11:0    1  1024M  0 rom
vmadmin@hpevm:~$ sudo multipath -ll
22674a991c8b22b4c6c9ce9003faf076a dm-2 Nimble,Server
size=1.0T features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 8:0:0:0 sdh 8:112 active ready running
  `- 9:0:0:0 sdi 8:128 active ready running
vmadmin@hpevm:~$

ただ、認識したiSCSIのLUNは、そのままでは利用できず、ファイルシステム作成が必要そうな気配が・・・

セットアップ失敗は再インストールからやり直し

仮想環境上にUbuntu をインストールして、hpe-vmパッケージインストールして、Install morpheusを実施してみたところ、なぜか仮想マシンが作られない

確認したらCPUのハードウェア仮想化/IOMMUを有効化してないせいで、KVMが正常に動かないためだった。

それはいいんだけど、問題なのは、/var/log 以下のどこにもそういったログが見当たらない、ということ。

で・・・有効化して再度実施すればいいのかな?と実行してみたところ、open vswitch側の設定が変なことになっていたらしく、Ubuntu=>VM Managerのping疎通が通らない、という状況に

どこを修正すればいいのかわからない状態なので、Ubuntu OSインストールからやり直すことになりました。(それでうまくいった)

HPE VM Manager仮想マシンのコンソールを開く

VM Manager側の仮想マシンからの疎通確認できるかな?とvirsh edit “VM Managerの名前” でVNCの接続情報を見てvirt-viewerからコンソールを開いてみる

↑はまだセットアップ中だった模様

↓でログインできるようになっていたら初期化が終わってる

Install Morpheusで指定したユーザ名とパスワードでログインできる

HPE VME Manager上にaptレポジトリが作成される

HPE VME Managerからサーバを登録すると、 /etc/apt/sources.list.d/morpheus.list に下記にような内容が追加される

$ cat /etc/apt/sources.list.d/morpheus.list
deb [signed-by=/etc/apt/trusted.gpg.d/morpheus.asc] https://172.17.44.169/apt morpheus main
$

vTPMを有効化する手法

Windows 11仮想マシンを作る場合、vTPMを有効にする必要がある。

インスタンス側の設定項目がないなぁ、と思っていたら、ISOイメージファイルを登録する「仮想イメージ」にて設定項目があるとは思わなかった

ISOイメージ登録時に通常は折りたたまれている「高度」オプションの中にある「UEFI」「VTPM ENABLED」「SECURE BOOT」にチェックを入れておくと、このISOイメージを指定してインスタンスを作成した場合に有効になっている、という仕組みである模様

27ヶ月前に設定した Oracle VM Manager が動かなくなった件

久しぶりに稼働させたOracle VM環境を操作するため、Oracle VM Managerにブラウザからログインしようとしたら応答がない・・・

Oracle VM Managerを稼働させているLinuxにログインして「systemctl status」を実行してもサービスの起動に失敗しているわけでもなさそうだ。

「systemctl status ovmm」でも特にコレといったものはない。

/var/log 以下にそれっぽいログがないので、ドキュメントを確認・・・Oracle VM 管理者ガイド「13.3 Oracle VM Managerのトラブルシューティング」に /u01/app/oracle/ovm-manager-3/domains/ovm_domain/servers/AdminServer/logs ディレクトリにログが出力されている、ということなので確認

ざらざらーっと、AdminServer.log ログを見ていくと、「com.oracle.appfw.ovm.coreinferface.ventprocessing.EventPollerTask」で「com.sun.jersey.api.client.ClientHandlerException: jav a.net.ConnectException: 接続を拒否されました (Connection refused)」といったものが多数見受けられる。

おそらくなにかサービスがうまく動作していないんだろうなぁ、とさらに見ていくと、SSL証明書を読み込んだログのあたりで「Identity certificate has expired:」とか「Signature: ~ の期限が切れています。」といったものが・・・

お?これが問題か?とさらに深掘り

Oracle VM 管理者ガイド「2.2.2 証明書構成の表示」に/u01/app/oracle/ovm-manager-3/ovm_upgrade/bin/ovmkeytool.sh show コマンドで状態確認などができる、ということがわかった。

続いて「Oracle VM Manager SSL Certificates ReGeneration with ovmkeytool.sh」に、SSL証明書の更新を行うという、そのものの手順があることを見つけた。

しかし・・・試してみると、ovmkeytool.shの実行にはOracle VM Managerインストール時にweblogicユーザに対して設定したパスワードが必要とのことだった。

Oracle VM管理者ガイド「4.2 Oracle VM Managerのユーザー・パスワードの変更」にあるように、通常は、Oracle VM Managerのadminアカウントと一緒にしてることが多いらしい

が・・・それを使ってみても接続できなかった。

weblogicユーザのパスワードを初期化する方法がないかを確認していたところ、WebLogicを自動起動させる仕組みで使われているAESで暗号化されたユーザ名とパスワード文字列がかかれたテキストファイルを利用すると、設定されているパスワードがなんであるのかを確認できる、ということがわかった。

How to Decrypt/Encrypt WebLogic and Datasource Password via WLSDM?

上記はweblogic汎用の手順になっているので、Oracle VM Managerの場合に即した手順で確認していく。

まず、WebLogic Scripting Tool(WLST)を起動する必要があるので、そのパスを確認する。

[root@ovm security]# find /u01 -print |grep wlst.sh
/u01/app/oracle/Middleware/oracle_common/common/bin/wlst.sh
/u01/app/oracle/Middleware/wlserver/common/bin/wlst.sh
/u01/app/oracle/ovm-manager-3/ovm_wlst/bin/wlst.sh
[root@ovm security]#

3種類出てきたが、ovm-manager-3以下にあるやつだろう、とそれを使う

また、WebLogic起動時に読み込まれているファイルは /u01/app/oracle/ovm-manager-3/domains/ovm_domain/servers/AdminServer/security/boot.properties なので、その内容を確認

[root@ovm security]# cat /u01/app/oracle/ovm-manager-3/domains/ovm_domain/servers/AdminServer/security/boot.properties
# Generated by Configuration Wizard on Fri May 28 17:13:40 JST 2021
username={AES}<文字列>=
password={AES}<文字列>=
[root@ovm security]#

WLSTは環境変数MW_HOMEを設定する必要があるので、/u01/app/oracle/Middlewareと設定して起動

[root@ovm security]# export  MW_HOME=/u01/app/oracle/Middleware
[root@ovm security]# echo  $MW_HOME
/u01/app/oracle/Middleware
[root@ovm security]# /u01/app/oracle/ovm-manager-3/ovm_wlst/bin/wlst.sh

WebLogic Scripting Tool(WLST)を初期化しています...

WebLogic Server Administration Scripting Shellへようこそ

使用可能なコマンドに関するヘルプを表示するには、help()と入力してください

wls:/offline> 

Oracle VM Managerではdomainに相当するディレクトリは /u01/app/oracle/ovm-manager-3/domains/ovm_domain であるようなので、以下を設定

wls:/offline> domain="/u01/app/oracle/ovm-manager-3/domains/ovm_domain"
wls:/offline> service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
wls:/offline> 

最後に暗号化文字列を埋め込んでrintコマンドを実行

wls:/offline> print "Weblogic server Admin password : %s" %encryption.decrypt("{AES}<文字列>=")
Weblogic server Admin password : Password123
wls:/offline>

え・・・なんでPassword123 なんて設定してんの???と疑問がわきつつも、とりあえずweblogicユーザのパスワード解読に成功


続いて本題のSSL証明書の更新を実施

証明書関連ファイルは下記に配置されているようだ
 /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security
 /u01/app/oracle/ovm-manager-3/domains/ovm_domain/config

更新は「/u01/app/oracle/ovm-manager-3/ovm_upgrade/bin/ovmkeytool.sh check」を実行して行う

基本的に標準値でよいのだが、いくつか気をつけるべきポイントがあった。

[root@ovm security]# /u01/app/oracle/ovm-manager-3/ovm_upgrade/bin/ovmkeytool.sh setup
6 12, 2024 1:22:41 午後 oracle.security.jps.JpsStartup start
情報: JPSの初期化中です。
6 12, 2024 1:22:42 午後 oracle.security.jps.JpsStartup start
情報: Jpsが開始されました。
Oracle VM Manager is currently configured to use CA keystore at:
        /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmca.jks
Do you wish to generate a new key and/or specify a different keystore? [yes]
Generate new CA keystore (as opposed to specifying an existing keystore)? [yes]
Path for CA keystore: [/u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmca.jks]
A file already exists at the path /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmca.jks
Is it ok to ovewrite this file with your new keystore? [no] yes

1個目が↑の既存ファイルを置き換えるか、というもの

置き換えるので「yes」と入力

Oracle VM Manager is currently configured to use the SSL Trust-store at:
        /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmtrust.jks
Do you wish to use this existing trust-store location? [yes]
Validity in months: [120]
Key distinguished name is "CN=OVM CA 0004fb0000010000615876ff13b9da0d, OU=Oracle VM Manager, O=Oracle Corporation, L=Redwood City, ST=California, C=US".  Use these values? [yes]
You may either specify passwords or use random passwords.
If you choose to use a random password, only WebLogic, the Oracle VM Manager,
and this application will have access to the information stored in this
keystore.
Use random passwords? [yes]
Generating CA key and certificate and persisting them to the keystore...

Oracle VM Manager is currently configured to use SSL keystore at:
        /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmssl.jks
Do you wish to generate a new key and/or specify a different keystore? [yes]
Generate new SSL keystore (as opposed to specifying an existing keystore)? [yes]
Path for SSL keystore: [/u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmssl.jks]
A file already exists at the path /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmssl.jks
Is it ok to ovewrite this file with your new keystore? [no] yes

2個目も上書きするか、なので「yes」

The hostname should be the fully qualified hostname of the system
(this is the hostname you'd use to access this system from outside the
local domain).  Depending on your machine setup the value below may not be
correct.
Fully qualified hostname: [ovm]
Validity in months: [27] 120

で、3つ目が最大の罠でした。

証明書の有効期限、初期値が「27ヶ月」でした。

これを設定した関係者に聞くと、あー、たしかにそれくらいの時期にインストールしてたな、とのこと・・・

このせいで止まってたのか。

とりあえず120ヶ月を指定して進めた

Key distinguished name is "CN=ovm, OU=Oracle VM Manager, O=Oracle Corporation, L=Redwood City, ST=California, C=US".  Use these values? [yes]
Alternate hostnames (separated by commas): [ovm]
Generating SSL key and certificate and persisting them to the keystore...

Updating keystore information in WebLogic
Oracle MiddleWare Home (MW_HOME): [/u01/app/oracle/Middleware]
WebLogic domain directory: [/u01/app/oracle/ovm-manager-3/domains/ovm_domain]
WebLogic server name: [AdminServer]
WebLogic username: [weblogic]
WebLogic password: [********]
WLST session logged at: /tmp/wlst-session138870891195064865.log

[root@ovm security]#

これで証明書更新に成功

Oracle VM Managerを再起動

[root@ovm security]# systemctl stop ovmm
[root@ovm security]# systemctl start ovmm
[root@ovm security]# 

再起動後、WebLogicとアプリケーション間でいろいろ設定が必要なようで、用意されている証明書更新スクリプトを実行 /u01/app/oracle/ovm-manager-3/bin/configure_client_cert_login.sh

[root@ovm logs]# /u01/app/oracle/ovm-manager-3/bin/configure_client_cert_login.sh

WebLogic Scripting Tool(WLST)を初期化しています...

WebLogic Server Administration Scripting Shellへようこそ

使用可能なコマンドに関するヘルプを表示するには、help()と入力してください

2024-06-12 13:30:12,297 [main] INFO  ovm.wlst.commands - Connecting using URL t3://localhost:7001

ロケーションがserverRuntimeツリーに移動しました。これは、DomainMBeanをルートとする読取り専用のツリーです。
詳細は、help('domainConfig')を使用してください

2024-06-12 13:30:13,823 [main] INFO  ovm.wlst.commands - Undeploying ovm_console
アプリケーションovm_consoleをアンデプロイしています ...
<2024/06/12 13時30分14秒 JST> <Info> <J2EE Deployment SPI> <BEA-260121> <アプリケーションovm_console [アーカイブ: null]のundeploy操作をAdminServer に初期化しています。>
.アプリケーションのアンデプロイメントが完了しました(ステータスcompleted)
現在のデプロイメント・ステータス:
デプロイメント・コマンドのタイプ: undeploy
デプロイメント状態: completed
デプロイメント・メッセージ: メッセージなし
すでにドメイン構成ツリーを参照しています

2024-06-12 13:30:17,654 [main] INFO  ovm.wlst.commands - Undeploying ovm_core
アプリケーションovm_coreをアンデプロイしています ...
<2024/06/12 13時30分17秒 JST> <Info> <J2EE Deployment SPI> <BEA-260121> <アプリケーションovm_core [アーカイブ: null]のundeploy操作をAdminServer に初期 化しています。>
........アプリケーションのアンデプロイメントが完了しました(ステータスcompleted)
現在のデプロイメント・ステータス:
デプロイメント・コマンドのタイプ: undeploy
デプロイメント状態: completed
デプロイメント・メッセージ: メッセージなし
2024-06-12 13:30:42,942 [main] INFO  ovm.wlst.domainbuilder.Domain - Stopping AdminServer...
Stopping Weblogic Server...

WebLogic Scripting Tool(WLST)を初期化しています...

WebLogic Server Administration Scripting Shellへようこそ

使用可能なコマンドに関するヘルプを表示するには、help()と入力してください

ユーザーID weblogicでt3://localhost:7001に接続しています ...
ドメイン"ovm_domain"に属する管理サーバー"AdminServer"に。が正常に接続されました

警告: サーバーへの接続に安全でないプロトコルが使用
されました。通信セキュリティを確保するには、かわりにSSLポートまたは
管理ポートを使用する必要があります。

AdminServerへの接続中にサーバーAdminServerをforce=falseで停止しています...
WebLogic Serverから切断されました: AdminServer
WLSTからWebLogic Serverへの接続が失われました。
これは、サーバーが停止されたか、または分離された場合に
発生することがあります。サーバーが使用可能になったら再接続する必要が
あります。
WebLogic Serverから切断されました: AdminServer


WebLogic Scripting Toolを終了しています。

Done
Stopping Derby Server...
WLSTからWebLogic Serverへの接続が失われました。
これは、サーバーが停止されたか、または分離された場合に
発生することがあります。サーバーが使用可能になったら再接続する必要が
あります。
Derby server stopped.
WebLogic Serverから切断されました: AdminServer
2024-06-12 13:30:48,511 [main] INFO  ovm.wlst.domainbuilder.Domain - Starting AdminServer...
2024-06-12 13:30:48,516 [main] INFO  ovm.wlst.domainbuilder.Domain - Trying to connect to t3://localhost:7001...
2024-06-12 13:30:58,591 [main] INFO  ovm.wlst.domainbuilder.Domain - Trying to connect to t3://localhost:7001...
2024-06-12 13:31:09,546 [main] INFO  ovm.wlst.domainbuilder.Domain - Trying to connect to t3://localhost:7001...
2024-06-12 13:31:20,692 [main] INFO  ovm.wlst.domainbuilder.Domain - Trying to connect to t3://localhost:7001...

2024-06-12 13:31:21,695 [main] INFO  ovm.wlst.domainbuilder.Domain - Connected.
2024-06-12 13:31:21,799 [main] INFO  ovm.wlst.domainbuilder.Domain - AdminServer state is RUNNING
2024-06-12 13:31:21,799 [main] INFO  ovm.wlst.commands - Deploying ovm_core
/u01/app/oracle/ovm-manager-3/ovm_wlst/deploy/ovm_core/app/ovm_core_3.4.7.244.earのアプリケーションをターゲットAdminServerにデプロイしています(upload=false) ...
<2024/06/12 13時31分22秒 JST> <Info> <J2EE Deployment SPI> <BEA-260121> <アプリケーションovm_core [アーカイブ: /u01/app/oracle/ovm-manager-3/ovm_wlst/deploy/ovm_core/app/ovm_core_3.4.7.244.ear]のdeploy操作をAdminServer に初期化しています。>
...アプリケーションのデプロイメントが完了しました(ステータスcompleted)
現在のデプロイメント・ステータス:
デプロイメント・コマンドのタイプ: deploy
デプロイメント状態: completed
デプロイメント・メッセージ: メッセージなし
すでにドメイン構成ツリーを参照しています


すでにドメイン構成ツリーを参照しています


2024-06-12 13:31:32,213 [main] INFO  ovm.wlst.domainbuilder.Domain - Created a user named appframework
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/u01/app/oracle/ovm-manager-3/ovm_cli/lib/slf4j-log4j12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/u01/app/oracle/Middleware/wlserver/modules/features/weblogic.server.merged.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
6 12, 2024 1:31:32 午後 oracle.security.jps.JpsStartup start
情報: JPSの初期化中です。
6 12, 2024 1:31:34 午後 oracle.security.jps.JpsStartup start
情報: Jpsが開始されました。
2024-06-12 13:31:35,978 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Writing cacert.pem
2024-06-12 13:31:35,979 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Importing cacert.pem with alias ovmca
2024-06-12 13:31:36,350 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Generating key pair for appframework in /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmclient.jks
2024-06-12 13:31:37,016 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Exporting clientcert.pem from /u01/app/oracle/ovm-manager-3/domains/ovm_domain/security/ovmclient.jks
2024-06-12 13:31:37,238 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Reading clientcert.pem
2024-06-12 13:31:37,239 [main] INFO  com.oracle.appfw.ovm.ws.client.SSLClientUtil - Signing certificate
2024-06-12 13:31:37,321 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Writing clientcert.pem
2024-06-12 13:31:37,321 [main] INFO  com.oracle.appfw.ovm.ws.client.KeytoolHelper - Importing clientcert.pem with alias appframework
2024-06-12 13:31:37,991 [main] INFO  com.oracle.appfw.ovm.ws.client.SSLClientUtil - Deleting cacert.pem
2024-06-12 13:31:37,991 [main] INFO  com.oracle.appfw.ovm.ws.client.SSLClientUtil - Deleting clientcert.pem
2024-06-12 13:31:38,004 [main] INFO  ovm.wlst.commands - Deploying ovm_console
/u01/app/oracle/ovm-manager-3/ovm_wlst/deploy/ovm_console/app/ovm_console_3.4.7.244.earのアプリケーションをターゲットAdminServerにデプロイしています(upload=false) ...
<2024/06/12 13時31分38秒 JST> <Info> <J2EE Deployment SPI> <BEA-260121> <アプリケーションovm_console [アーカイブ: /u01/app/oracle/ovm-manager-3/ovm_wlst/deploy/ovm_console/app/ovm_console_3.4.7.244.ear]のdeploy操作をAdminServer に初期化しています。>
..........アプリケーションのデプロイメントが完了しました(ステータスcompleted)
現在のデプロイメント・ステータス:
デプロイメント・コマンドのタイプ: deploy
デプロイメント状態: completed
デプロイメント・メッセージ: メッセージなし
<2024/06/12 13時32分08秒 JST> <Warning> <JNDI> <BEA-050001> <WLContext.close()が作成されたスレッドとは別のスレッドで呼び出されました。>

Client certificate login configuration complete

[root@ovm logs]#

これで、更新がおわったようで、Oracle VM ManagerのWeb管理画面にログインできるようになりました。