linux

推荐列表 站点导航

当前位置:首页 > 操作系统 > linux >

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

来源:网络整理  作者:  发布时间:2020-12-22 20:05
嵌套虚拟化意味着在虚拟机内配置虚拟化环境。换句话说,我们可以说嵌套虚拟化是虚拟机管理程序的一个特性,它...

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

在这篇文章中,我们将讨论如何在 CentOS 7 / RHEL 7 的 KVM 上启用嵌套虚拟化。我假定您已经配置过 KVM 管理程序。如果您不熟悉如何安装和配置 KVM 管理程序,请参考以下文章。

 

在 CentOS 7.x 和 RHEL 7.x 安装 KVM 管理程序

让我们进入虚拟化管理程序,验证您的 KVM 宿主机是否启用了嵌套虚拟化。

基于 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.conf

options kvm-intel nested=1

options kvm-intel enable_shadow_vmcs=1

options kvm-intel enable_apicv=1

options 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 管理程序上有一台已经启用了嵌套虚拟化的名为 “director” 的虚拟机。在测试之前,确保 CPU 模式为 “host-modle” 或 “host-passthrough” ,使用 Virt-Manager 或 virtsh 编辑命令检查虚拟机的 CPU 模式。

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

现在登录 director 这台虚拟机并运行 lscpu 和 lsmod 命令。

[root@kvm-hypervisor ~]# ssh 192.168.126.1 -l root

[email protected]'s password:

Last login: Sun Dec 10 07:05:59 2017 from 192.168.126.254

[root@director ~]# lsmod | grep kvm

kvm_intel 170200  0

kvm   566604  1 kvm_intel

irqbypass  13503  1 kvm

[root@director ~]# lscpu

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

让我们试着在 director 这台虚拟机的虚拟管理器 GUI 或 virt-install 命令创建一台虚拟机,在我的情况下我使用 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 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

………………………………………………

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

这证实了嵌套虚拟化已成功启用,因为我们能在虚拟机内创建虚拟机。

相关热词: CentOS 7

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/xt/linux/7366.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

2020-12-22 编辑:

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

在这篇文章中,我们将讨论如何在 CentOS 7 / RHEL 7 的 KVM 上启用嵌套虚拟化。我假定您已经配置过 KVM 管理程序。如果您不熟悉如何安装和配置 KVM 管理程序,请参考以下文章。

 

在 CentOS 7.x 和 RHEL 7.x 安装 KVM 管理程序

让我们进入虚拟化管理程序,验证您的 KVM 宿主机是否启用了嵌套虚拟化。

基于 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.conf

options kvm-intel nested=1

options kvm-intel enable_shadow_vmcs=1

options kvm-intel enable_apicv=1

options 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 管理程序上有一台已经启用了嵌套虚拟化的名为 “director” 的虚拟机。在测试之前,确保 CPU 模式为 “host-modle” 或 “host-passthrough” ,使用 Virt-Manager 或 virtsh 编辑命令检查虚拟机的 CPU 模式。

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

现在登录 director 这台虚拟机并运行 lscpu 和 lsmod 命令。

[root@kvm-hypervisor ~]# ssh 192.168.126.1 -l root

[email protected]'s password:

Last login: Sun Dec 10 07:05:59 2017 from 192.168.126.254

[root@director ~]# lsmod | grep kvm

kvm_intel 170200  0

kvm   566604  1 kvm_intel

irqbypass  13503  1 kvm

[root@director ~]# lscpu

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

让我们试着在 director 这台虚拟机的虚拟管理器 GUI 或 virt-install 命令创建一台虚拟机,在我的情况下我使用 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 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

………………………………………………

如何在CentOS 7/RHEL 7的KVM上启用嵌套虚拟化

这证实了嵌套虚拟化已成功启用,因为我们能在虚拟机内创建虚拟机。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/xt/linux/7366.shtml

相关文章

风云图片

推荐阅读

返回linux频道首页