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

Posted 庚武讲堂

tags:

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

http://blog.csdn.net/swimming_in_it_/article/details/53320141
http://blog.csdn.net/wickedglory/article/details/53264559

首先检查 KVM host(宿主机/母机)上的kvm_intel模块是否打开了嵌套虚拟机功能(默认是开启的):
    [email protected]:~# modinfo kvm_intel | grep nested
    parm: nested:bool
    [email protected]:~# cat /sys/module/kvm_intel/parameters/nested
    Y
    [email protected]:~#

如果上面的显示结果不是 Y 的话需要开启 nested:

    [email protected]:~# modprobe -r kvm-intel
    [email protected]:~# modprobe kvm-intel nested=1
    [email protected]:~# cat /sys/module/kvm_intel/parameters/nested
    Y
然后创建虚拟机即可
使用qemu打开一个虚拟机在启动命令上加上“-cpu host”或“-cpu qemu64,+vmx”
如下面所示:
[email protected]:~/qemu# qemu-system-x86_64 -enable-kvm -m 1024 -smp 4 -hda ubuntu.raw -cpu host -net nic -net tap,ifname=tap1 -monitor stdio


默认情况下,系统并不支持nested

#查看当前系统是否支持nested
systool -m kvm_intel -v  | grep -i nested
nested              = "N"
#或者这样查看
cat /sys/module/kvm_intel/parameters/nested
N

第一步升级内核,用3.18内核做测试,升级内核很简单,下载编译好的内核rpm包,这里是下载地址,安装,然后修改grub.conf默认引导内核为新内核

第二步添加引导参数同样很简单,只需要在 kernel 那一行的末端加上 "kvm-intel.nested=1"

https://www.baidu.com/
复制代码
#升级内核
rpm -ivh kernel-ml-3.18.3-1.el6.elrepo.x86_64.rpm

#修改grub.conf
default=0              #使用新内核
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (3.18.3-1.el6.elrepo.x86_64)
    root (hd0,0)
    kernel /vmlinuz-3.18.3-1.el6.elrepo.x86_64 ro root=UUID=9c1afc64-f751-473c-aaa6-9161fff08f6f rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcy
rheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet kvm-intel.nested=1

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

如何在 VMware ESXi 虚拟机上运行 KVM

如何在 VMware ESXi 虚拟机上运行 KVM

让Proxmox VE支持嵌套虚拟化

KVM虚拟化虚拟机支持虚拟化

kvm嵌套虚拟化

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