龙空技术网

在 Centos7 的KVM虚拟机上启用嵌套虚拟化

散文随风想 93

前言:

如今你们对“centos7libvirt安装”大约比较注意,大家都需要剖析一些“centos7libvirt安装”的相关文章。那么小编在网上网罗了一些关于“centos7libvirt安装””的相关文章,希望我们能喜欢,咱们快快来了解一下吧!

嵌套虚拟化意味着在虚拟机内配置虚拟化环境。换句话说,我们可以说嵌套虚拟化是虚拟机管理程序hypervisor的一个特性,它允许我们通过虚拟化管理程序(宿主机)的硬件加速在虚拟服务器内安装和运行虚拟机。

一、验证 KVM 宿主机是否启用了嵌套虚拟化。

查看系统是否支持虚拟化:

grep -E '(vmx|svm)' /proc/cpuinfo#orcat /proc/cpuinfo | grep vmx# 如果有输出返回,则表示CPU支持虚拟化技术。 

基于 Intel 的处理器运行以下命令:

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

基于 AMD 的处理器运行以下命令:

[root@kvm-hypervisor ~]# cat /sys/module/kvm_amd/parameters/nested N

输出 N 表示嵌套虚拟化是禁用的, 输出Y 则表示在您的宿主机已启用嵌套虚拟化。

二、启用嵌套虚拟化

使用以下内容创建一个文件名为 /etc/modprobe.d/kvm-nested.conf 的文件:

[root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.confoptions kvm-intel nested=1options kvm-intel enable_shadow_vmcs=1options kvm-intel enable_apicv=1options kvm-intel ept=1

保存并退出文件。

移除 kvm_intel 模块,然后通过 modprobe 命令添加同样的模块。

在移除模块之前,确保宿主机上的所有虚拟机已关机,否则我们会得到像 “modprobe: FATAL: Module kvm_intel is in use” 这样的错误信息。

[root@kvm-hypervisor ~]# modprobe -r kvm_intel [root@kvm-hypervisor ~]# modprobe -a kvm_intel

现在验证嵌套虚拟化功能是否启用。

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

三、修改KVM虚拟机的CPU 模式

确保KVM虚拟机的 CPU 模式为 “host-modle” 或 “host-passthrough” ,使用 Virt-Manager 或 virtsh 编辑命令检查虚拟机的 CPU 模式。

virsh edit <虚拟机名称>

四、测试嵌套虚拟化

4.1 已修改配置的KVM虚拟机测试

在KVM虚拟机上运行 lscpu 和 lsmod 命令:

[root@director ~]# lsmod | grep kvm kvm_intel 170200 0 kvm 566604 1 kvm_intel irqbypass 13503 1 kvm

[root@director ~]# lscpu

4.2 新建KVM虚拟机测试

使用 virt-install 命令,在虚拟机的虚拟管理器 GUI 或 virt-install 命令创建一台虚拟机:

[root@director ~]# virt-install -n Nested-VM --description "Test Nested VM" --os-type=Linux --os-variant=rhel7 --ram=2048 --vcpus=2 --disk path=/var/lib/libvirt/images/nestedvm.img,bus=virtio,size=10 --graphics none --location /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0 Starting install... Retrieving file .treeinfo... | 1.1 kB 00:00:00 Retrieving file vmlinuz... | 4.9 MB 00:00:00 Retrieving file initrd.img... | 37 MB 00:00:00 Allocating 'nestedvm.img' | 10 GB 00:00:00 Connected to domain Nested-VM Escape character is ^] [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 ………………………………………………

证实嵌套虚拟化已成功启用。

标签: #centos7libvirt安装 #centos上跑的kvm #centos开启虚拟化