OpenStack KVM嵌套虚拟化的配置
2014-07-17 22:04 陈尚华 阅读(1961) 评论(0) 编辑 收藏 举报这两天为研发部门搭建一套OpenStack测试环境,需要在KVM虚拟机中跑KVM虚拟机,所以用到嵌套虚拟化技术。
虽然compute节点使用较新的centos6.5标准内核,发现不支持nested技术。
[root@controller ~]# cat /sys/module/kvm_intel/parameters/nested
cat: /sys/module/kvm_intel/parameters/nested: 没有那个文件或目录
# modinfo kvm_intel
filename: /lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/arch/x86/kvm/kvm-intel.ko
license: GPL
author: Qumranet
srcversion: 34373A27E1A78784FD945C4
depends: kvm
vermagic: 2.6.32-431.11.2.el6.x86_64 SMP mod_unload modversions
parm: bypass_guest_pf:bool
parm: vpid:bool
parm: flexpriority:bool
parm: ept:bool
parm: unrestricted_guest:bool
parm: eptad:bool
parm: emulate_invalid_guest_state:bool
parm: yield_on_hlt:bool
parm: vmm_exclusive:bool
parm: ple_gap:int
parm: ple_window:int
后来在centos的wiki上找到了方法:
http://wiki.centos.org/zh/HowTos/NestedVirt
compute节点配置:
1.添加kernel源:
[root@controller ~]# wget -P /etc/yum.repos.d http://dev.centos.org/centos/6/xen-c6/xen-c6.repo
[root@controller ~]# yum repolist
2.安装新内核:
[root@controller ~]# yum --enablerepo xen-c6 install kernel kernel-firmware
[root@controller ~]# vi /boot/grub/grub.conf
在kernel行末端添加:kvm-intel.nested=1
[root@controller ~]# reboot
3.检查nested加载情况:
[root@controller ~]# cat /sys/module/kvm_intel/parameters/nested
Y
4.修改nova.conf:
添加:libvirt_cpu_mode = host-passthrough
该设置使创建的实例可最大程度的使用物理CPU的指令集,因此可以实现二次虚拟化。