kvm嵌套虛擬化

KVM嵌套虛擬化


嵌套虛擬化指的是在宿主機上創建的虛擬機中,再運行hypervisor,從而在虛擬機裏面再運行一個虛擬機,可以是KVM嵌套KVM,Xen嵌套Xen,或者是不同類型hypervisor的嵌套(如KVM嵌套Xen,VMware嵌套KVM等)


下面開始嵌套虛擬化的實驗,我選擇的類型是KVM  on KVM的嵌套


實驗環境:

主機名角色
KVM宿主機
vm1第一層虛擬機
vm1-1第二層虛擬機


首先宿主機的內核版本需要3.0+,其次內核需要打開nested的功能,讓內核支持嵌套虛擬化的功能。

[root@kvm ~]# uname -r       #查看內核版本

3.10.0-327.el7.x86_64

[root@kvm ~]# cat /sys/module/kvm_intel/parameters/nested   

N       #默認不開啓,需要重新加載模塊,並修改它的引導參數           

[root@kvm ~]# rmmod kvm_intel      #移除kvm_intel模塊

[root@kvm ~]# modprobe kvm_intel nested=1    #重新加載並開啓nested功能

[root@kvm ~]# cat /sys/module/kvm_intel/parameters/nested   

Y

#以上開啓nested的方式在重啓的時候失效,如果需要永久生效可以通過如下方式:

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


創建vm1,過程略

[root@kvm ~]# virsh list

 Id    Name                           State

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

 1     vm1                            running


修改配置文件,實現CPU穿透

[root@kvm ~]# virsh shutdown vm1   

[root@kvm ~]# vi /etc/libvirt/qemu/vm1.xml 

  <cpu mode='host-passthrough'>     #配置CPU model爲host-passthrough

  </cpu>

[root@kvm ~]# systemctl restart libvirtd

[root@kvm ~]# virsh start vm1


查看vm1的CPU特性是否與物理機一致

[root@vm1 ~]# 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是否支持虛擬化

[root@vm1 ~]# 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需要加載模塊

[root@vm1 ~]# modprobe kvm

[root@vm1 ~]# modprobe kvm_intel

[root@vm1 ~]# lsmod |grep kvm

kvm_intel             162153  0 

kvm                   525259  1 kvm_intel


安裝kvm的管理工具

[root@vm1 ~]# yum -y install libvirt virt-install  qemu-kvm qemu-kvm-tools 


啓動libvirtd服務

[root@vm1 ~]# systemctl start libvirtd

[root@vm1 ~]# systemctl enable libvirtd


創建磁盤文件

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


創建vm1-1

[root@vm1 ~]#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

[root@kvm ~]# brctl show

bridge namebridge idSTP enabledinterfaces

brex8000.70e28405fa30yesenp10s0

vnet0

virbr08000.5254000f5751yesvirbr0-nic


通過remote viewer進行安裝

wKioL1jZ79XB3-rDAAAoqIEzk9k684.png

wKiom1jZ79aCJE4bAAMSDAReUKc093.png


如有勘誤,歡迎指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章