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

2023-05-16

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

在这篇文章中,我们将讨论如何在 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 模式。

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

cpu_mode_vm_kvm

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


[root@kvm-hypervisor ~]# ssh 192.168.126.1 -l root
root@192.168.126.1'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
  

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

lscpu_command_rhel7_centos7

让我们试着在 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 (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
………………………………………………
  

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

cli-installer-virt-install-command-kvm

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

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Centos7 的KVM上启用嵌套虚拟化 的相关文章

随机推荐

  • 若依类项目spring boot多模块打包优化实践

    笔者最近工作的时候 xff0c 接到一个地产集团小程序的研发任务 xff0c 之前也没有相关经验 xff0c 于是就从网上找了一个类似的项目来改 xff0c 就是uniapp 43 若依 开发租房小程序 x1f389 租房小程序 xff0c
  • 分布式之数据库和缓存双写一致性方案解析

    本文转自博客园 作者 xff1a 孤独烟 原文链接 xff1a https www cnblogs com rjzheng p 9041659 html 为什么写这篇文章 首先 xff0c 缓存由于其高并发和高性能的特性 xff0c 已经在
  • Hexo操作指南-(命令)

    Hexo命令说明 xff1a Hexo官方文档 xff1a https hexo io zh cn docs hexo init 新建一个网站 hexo new 34 文章名 34 新建文章 hexo new page 34 页面名 34
  • 面试题:谈谈对进程的理解?谈谈你对线程的理解?2.进程死锁的原因?如何解决进程死锁?

    2 谈谈对进程的理解 xff1f 答 xff1a 首先进程是指在系统中正在运行的一个应用程序 xff1b 程序一旦运行就是进程 xff0c 或者更专业化来说 xff1a 进程是指程序执行时的一个实例 xff0c 即它是程序已经执行到课中程度
  • 编程小白用C语言完成"摸球问题"

    碰到问题 编写一个程序 xff0c 从 3 个红球 xff0c 5 个白球 xff0c 6 个黑球中任意取出 8 个球 xff0c 且其中必须有红球 xff0c 输出所有可能的方案 思路分析 依题意 必须有红球 即红球最少有1个 最多有3个
  • wxX11移植到arm板上

    原 移植wxX11到开发板上 2012 5 18阅读467 评论0 最近几天由于工作安排 xff0c 要将wxX11程序移植到arm开发板上 一连工作了好几天 xff0c 终于可以在板子上显示出一个 X 号 xff0c 并且可以运行wxWi
  • 13.3.2 搜索本地磁盘中所有媒体文件

    13 3 2 搜索本地磁盘中所有媒体文件 搜索本地磁盘中所有媒体文件可以利用 13 3 1 小节设计的 link add dir 函数 xff0c 将该函数搜索的路径设置为 如下列源代码所示 xff1a int link search li
  • 使用Systemctl命令来管理系统服务

    导读Systemctl是systemd用于管理系统和管理服务的工具 许多现代Linux发行版 xff0c 如Ubuntu Debian Fedora Linux Mint OpenSuSE Redhat都采用systemd作为默认的init
  • MySQL循环语句

    导读mysql常见的三种循环方式 xff1a while repeat和loop循环 还有一种goto xff0c 不推荐使用 Linux就该这么学 1 while循环 设置mysql分隔符为 xff0c 也就意味着 xff0c 当遇到下一
  • Controller和RestController的区别

    导读在springboot中 xff0c Controller RestController是使用控制器最常用的两个注解 xff0c 但是两者之家的差异你知道吗 xff1f 本文就是要讲述两者之间的区别 1 Controller RestC
  • 工作站和台式机的区别

    转自 xff1a 微点阅读 xff08 www weidianyuedu com xff09 微点阅读 范文大全 免费学习网站 工作站电脑非常高配 xff0c 那么它和台式机有什么区别呢 下面由小编给你做出详细的工作站和台式机区别介绍 希望
  • 抽象类不可以被实现,但可以有构造方法

    抽象类不可以被实现 xff0c 但可以有构造方法 xff01 在创建类的时候会调用对应类的构造方法 xff0c 抽象类不能被实例化 xff0c 按理来说在抽象类中写构造方法是没用的 xff0c 但抽象类的子类在被继承的时候必须实现抽象类中的
  • 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法

    matlab 10种经典的时间序列预测模型 本文演示了 10 种不同的经典时间序列预测方法 xff0c 它们是 自回归 AR 移动平均线自回归移动平均线自回归积分移动平均线 ARIMA 季节性自回归积分移动平均线 SARIMA 具有外生回归
  • Android自定义定时闹钟开发详解

    导读这篇文章主要为大家详细介绍了Android自定义定时闹钟开发 xff0c 文中示例代码介绍的非常详细 xff0c 具有一定的参考价值 xff0c 感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Android开发之自定义闹钟实现 xf
  • 如何在 Linux 上安装 AWS 命令行工具

    导读AWS CLI 是一个能够和 AWS 账户进行交互的命令行程序 开发者和系统管理员用它管理日常的活动和自动化 本文讲述如何一步步在 Linux 上安装 AWS CLI xff08 命令行工具 xff09 AWS CLI 是一个能够和 A
  • Python实现对比两个Excel数据内容并标出不同

    导读 日常工作中需要对比两个Excel工作表中的数据差异是很不方便的 xff0c 使用python来做就比较简单了 xff01 本文为大家介绍了python实现对比两个Excel的数据内容并标记出不同数据的示例代码 xff0c 需要的可以参
  • Python中列表遍历使用range和enumerate的区别

    导读这篇文章主要介绍了Python中列表遍历使用range和enumerate的区别 在Python编程语言中 xff0c 遍历list有range和enumerate方法 xff0c 本文结合示例代码给大家介绍的非常详细 xff0c 对大
  • ChatGPT 引入关闭聊天记录功能

    导读OpenAI 宣布在 ChatGPT 中引入了一项新功能 xff0c 允许用户关闭聊天记录 相关控件目前已面向所有用户推出 xff0c 可以在 ChatGPT 的设置中找到 xff0c 并且可以随时更改 公告指出 xff0c 用户在禁用
  • 虚拟机与主机互传文件方法分享

    现在虚拟机的使用已经非常普及 xff0c 无论新手学习 xff0c 还是运维工程师搭建虚拟化平台 xff0c 都会使用到虚拟机 对个人用户来说 xff0c 非常方便就能搭建很多操作系统进行学习 xff1b 对企业用户来说更是降低了服务器的硬
  • 在 Centos7 的KVM上启用嵌套虚拟化

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