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

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

本文导航
编译自 | https://www.linuxtechi.com/enable-nested-virtualization-kvm-centos-7-rhel-7/ 
 作者 | Pradeep Kumar
 译者 | zjon

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

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

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

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

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

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

  2. N

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

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

  2. N

上述命令输出 N 表示嵌套虚拟化是禁用的。如果我们得到的输出是 Y 则表示在您的宿主机已启用嵌套虚拟化。

现在启用嵌套虚拟化,使用以下内容创建一个文件名为 /etc/modprobe.d/kvm-nested.conf 的文件:

  1. [root@kvm-hypervisor ~]# vi /etc/modprobe.d/kvm-nested.conf

  1. options kvm-intel nested=1

  2. options kvm-intel enable_shadow_vmcs=1

  3. options kvm-intel enable_apicv=1

  4. options kvm-intel ept=1

保存并退出文件。

现在移除 kvm_intel 模块然后通过 modprobe 命令添加同样的模块。在移除模块之前,确保虚拟机已关机,否则我们会得到像 “modprobe: FATAL: Module kvm_intel is in use” 这样的错误信息。

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

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

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

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

  2. Y

测试嵌套虚拟化

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

cpu_mode_vm_kvm

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

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

  2. root@192.168.126.1's password:

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

  4. [root@director ~]# lsmod | grep kvm

  5. kvm_intel             170200  0

  6. kvm                   566604  1 kvm_intel

  7. irqbypass              13503  1 kvm

  1. [root@director ~]# lscpu

lscpu_command_rhel7_centos7

让我们试着在 director 这台虚拟机的虚拟管理器 GUI 或 virt-install 命令创建一台虚拟机,在我的情况下我使用 virt-install 命令。

  1. [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

  2. Starting install...

  3. Retrieving file .treeinfo...                                                   | 1.1 kB  00:00:00

  4. Retrieving file vmlinuz...                                                     | 4.9 MB  00:00:00

  5. Retrieving file initrd.img...                                                  |  37 MB  00:00:00

  6. Allocating 'nestedvm.img'                                                      |  10 GB  00:00:00

  7. Connected to domain Nested-VM

  8. Escape character is ^]

  9. [    0.000000] Initializing cgroup subsys cpuset

  10. [    0.000000] Initializing cgroup subsys cpu

  11. [    0.000000] Initializing cgroup subsys cpuacct

  12. [    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

  13. ………………………………………………

cli-installer-virt-install-command-kvm

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

这篇文章到此结束,请分享您的反馈和意见。


via: https://www.linuxtechi.com/enable-nested-virtualization-kvm-centos-7-rhel-7/

作者:Pradeep Kumar[2] 译者:zjon 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

LCTT 译者
zjon ?
共计翻译:1 篇
贡献时间:1 天

推荐文章

< 左右滑动查看相关文章 >

点击图片、输入文章 ID 或识别二维码直达


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

CentOS7.1 KVM虚拟化之环境准备(1)

一、基础平台 1.一台装有VMware的Windows系统 (可联网) 2.CentOS7.1 64bit 镜像 二、最小化安装一台CentOS 7.1系统的VMware虚拟机"CentOS KVM0...
  • hnhuangyiyang
  • hnhuangyiyang
  • 2016年03月08日 14:58
  • 9009

《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置

一.主机分配: 主机名        IP(Static)       系统配置                                      角色 openstack      192...
  • qq_21398167
  • qq_21398167
  • 2015年06月06日 09:39
  • 4027

centos7.2 kvm虚拟化管理平台WebVirtMgr部署

[root@qas-webvirtmgr nginx]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core)  yum -y ...
  • xiegh2014
  • xiegh2014
  • 2016年11月06日 11:11
  • 5792

在vmware workstation上配置KVM(嵌套虚拟化)

最近想利用vmware workstation做嵌套虚拟化,配置KVM,然后利用Devstack用于搭建Openstack环境, 整套环境在自己的笔记本上构建,重启笔记本,在BIOS里开启了VT-x...
  • workdog
  • workdog
  • 2012年11月26日 22:51
  • 8305

centos7KVM虚拟化常用虚机管理命令

1:kvm安装虚拟机; virt-install --name centos7.1 --boot network,cdrom,menu=on --ram 1024 --vcpus=1 --os-va...
  • wuliowen
  • wuliowen
  • 2017年03月30日 11:31
  • 5686

CentOS7使用virt-p2v将RHEL6.7的物理机转化为kvm虚拟机

CentOS7使用virt-p2v将RHEL6.7的物理机转化为kvm虚拟机 准备环境: 待转的物理机P:RHEL6.7 安装有virt-v2v工具的conversion server:CentOS7...
  • lbwlh
  • lbwlh
  • 2016年03月29日 11:04
  • 3272

CentOS 7 下配置KVM

转自 http://aenes.com/post/730.html 之前有文章写过这块的,CentOS 7 下面又有些不同,记录一下吧。 1.查cpu是否支持VT egrep '(vm...
  • skykingf
  • skykingf
  • 2016年07月18日 18:52
  • 2938

10.2KVM嵌套虚拟化原理

本节分析从cpu和内存虚拟化的角度分析kvm嵌套虚拟化的工作原理
  • wanthelping
  • wanthelping
  • 2015年08月15日 21:26
  • 1466

kvm虚拟化的嵌套

嵌套虚拟化是指在虚拟化的客户机中运行一个Hypervisor,从而再虚拟化运行一个客户机。 嵌套虚拟化不仅包括相同Hypervisor的嵌套(如KVM嵌套KVM、Xen嵌套Xen等),也包括不同Hyp...
  • swimming_in_IT_
  • swimming_in_IT_
  • 2016年11月24日 14:43
  • 2086
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在 CentOS 7 / RHEL 7 的 KVM 上启用嵌套虚拟化 | Linux 中国
举报原因:
原因补充:

(最多只允许输入30个字)