kvm嵌套虚拟化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kvm嵌套虚拟化相关的知识,希望对你有一定的参考价值。

KVM嵌套虚拟化


嵌套虚拟化指的是在宿主机上创建的虚拟机中,再运行hypervisor,从而在虚拟机里面再运行一个虚拟机,可以是KVM嵌套KVM,Xen嵌套Xen,或者是不同类型hypervisor的嵌套(如KVM嵌套Xen,VMware嵌套KVM等)


下面开始嵌套虚拟化的实验,我选择的类型是KVM  on KVM的嵌套


实验环境:

主机名角色
KVM宿主机
vm1第一层虚拟机
vm1-1第二层虚拟机


首先宿主机的内核版本需要3.0+,其次内核需要打开nested的功能,让内核支持嵌套虚拟化的功能。

[[email protected] ~]# uname -r       #查看内核版本

3.10.0-327.el7.x86_64

[[email protected] ~]# cat /sys/module/kvm_intel/parameters/nested   

N       #默认不开启,需要重新加载模块,并修改它的引导参数           

[[email protected] ~]# rmmod kvm_intel      #移除kvm_intel模块

[[email protected] ~]# modprobe kvm_intel nested=1    #重新加载并开启nested功能

[[email protected] ~]# cat /sys/module/kvm_intel/parameters/nested   

Y

#以上开启nested的方式在重启的时候失效,如果需要永久生效可以通过如下方式:

[[email protected] ~]# echo "options kvm-intel nested=1" >> /etc/modprobe.d/kvm_intel.conf 


创建vm1,过程略

[[email protected] ~]# virsh list

 Id    Name                           State

----------------------------------------------------

 1     vm1                            running


修改配置文件,实现CPU穿透

[[email protected] ~]# virsh shutdown vm1   

[[email protected] ~]# vi /etc/libvirt/qemu/vm1.xml 

  <cpu mode=‘host-passthrough‘>     #配置CPU model为host-passthrough

  </cpu>

[[email protected] ~]# systemctl restart libvirtd

[[email protected] ~]# virsh start vm1


查看vm1的CPU特性是否与物理机一致

[[email protected] ~]# cat /proc/cpuinfo |grep model

model: 62

model name: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz

model: 62

model name: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz


查看vm1的CPU是否支持虚拟化

[[email protected] ~]# grep -E ‘(vmx|svm)‘ /proc/cpuinfo

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 pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi flexpriority ept fsgsbase tsc_adjust smep erms xsaveopt


vm1需要加载模块

[[email protected] ~]# modprobe kvm

[[email protected] ~]# modprobe kvm_intel

[[email protected] ~]# lsmod |grep kvm

kvm_intel             162153  0 

kvm                   525259  1 kvm_intel


安装kvm的管理工具

[[email protected] ~]# yum -y install libvirt virt-install  qemu-kvm qemu-kvm-tools 


启动libvirtd服务

[[email protected] ~]# systemctl start libvirtd

[[email protected] ~]# systemctl enable libvirtd


创建磁盘文件

[[email protected] ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm1-1.qcow2 8G  


创建vm1-1

[[email protected] ~]#virt-install --cdrom=/opt/iso/CentOS-7.2-x86_64-DVD.iso --vcpu=2 --ram=1024 --network bridge=virbr0 --disk path=/var/lib/libvirt/images/vm1-1.qcow2 --graphics spice,listen=0.0.0.0  --name=vm1-1

WARNING  Unable to connect to graphical console: virt-viewer not installed. Please install the ‘virt-viewer‘ package.

WARNING  No console to launch for the guest, defaulting to --wait -1


Starting install...

Creating domain...                                                                                                        |    0 B  00:00:00     

Domain installation still in progress. Waiting for installation to complete.


我在宿主机创建了网桥,所以可以直接在windows通过remote viewer连接进vm1-1

[[email protected] ~]# brctl show

bridge namebridge idSTP enabledinterfaces

brex8000.70e28405fa30yesenp10s0

vnet0

virbr08000.5254000f5751yesvirbr0-nic


通过remote viewer进行安装

技术分享

技术分享


如有勘误,欢迎指正。

本文出自 “每一次进步,愿与你分享” 博客,请务必保留此出处http://lidaxia.blog.51cto.com/11588738/1911051

以上是关于kvm嵌套虚拟化的主要内容,如果未能解决你的问题,请参考以下文章

KVM上如何让虚拟机支持虚拟化(kvm虚拟化的嵌套)

VMware Esxi开启虚拟化嵌套/ VMware下安装KVM

Linux系统之虚拟化实战PVE下KVM虚拟机的嵌套安装方法

Centos7 KVM启用嵌套虚拟化

KVM嵌套虚拟化nested之CPU透传

centos7.2 KVM基本安装+嵌套虚拟化参数设置