vSphere中配置嵌套虚拟化

来源:互联网 发布:java查询信息管理系统 编辑:程序博客网 时间:2024/06/09 17:50

目标:在虚拟机中开虚拟机即嵌套虚拟化技术。
虚拟化从技术角度、支持多层嵌套虚拟技术,但是虚拟化厂商中有很多厂商在hypervisor上默认只支持一层的虚拟化技术,如果想实现嵌套虚拟化需要在hypervisor层上开启nested,嵌套式虚拟nested是一个可通过内核参数来启用的vmx功能的,vmx是硬件辅助虚拟化的技术。
如果想在自己的虚拟机中安装虚拟机先确认系统是否支持嵌套虚拟化,
如:

[root@location install]# cat /proc/cpuinfo |grep vmx flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpidflags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpidflags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpidflags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpidflags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpidflags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpid[root@location install]# 

有虚拟的cpu信息打印说明支持,如无任何信息打印则不支持再次安装虚拟机。
下面是在vSphere上的hypervisor层中为某个虚拟机开启“嵌套虚拟化“的功能的配置。
图1
如图1,我们想在虚拟机AppSdx中在安装虚拟机,需要如下三步操作:
1 在关机(该虚拟机)状态下,登陆vSphere层的cli(ssh的)
查找到对应虚拟机的虚拟硬件配置文件

 ~ # vim-cmd vmsvc/getallvmsVmid     Name                          File                          Guest OS      Version   Annotation11     RDFile     [datastore1] RDFile/RDFile.vmx                   centos64Guest   vmx-08              12     AutoTest   [datastore1] AutoTest/AutoTest.vmx               centos64Guest   vmx-08              13     AppSdx     [datastore1] AppSdx/AppSdx.vmx                   centos64Guest   vmx-08                         ~ # 

2 find到对应的文件然后在该文件的最后一行加上vhv.enable = “TRUE”.

~ # find / -name AppSdx.vmx /vmfs/volumes/5854e8dd-aa1d8177-7cac-141877672cd1/AppSdx/AppSdx.vmx##############加入vhv.enable = "TRUE"#####在文件末尾保存退出vi  /vmfs/volumes/5854e8dd-aa1d8177-7cac-141877672cd1/AppSdx/AppSdx.vmx

3 启动该虚拟机
在该虚拟机中cat /proc/cpuinfo |grep vmx看是否支持再次虚拟cpu等硬件设备,如有上文中类似输出的内容就是ok了,在该虚拟机中可以再创建虚拟机。

该需求是在测试场景使用的比较多,多次嵌套肯定会对性能有影响,更多的资源会消耗在虚拟调度的过程中的,所以厂商默认不愿意开启。

阅读全文
0 0