KVM中开启嵌套虚拟化

栏目: 服务器 · 发布时间: 7年前

内容简介:KVM 利用 CPU 虚拟化扩展的嵌套虚拟化可以先检查下宿主上是否启用了嵌套虚拟化,可以检查文件

起步

KVM 利用 CPU 虚拟化扩展的 Intel VT-xAMD-V ,因此具有出色的性能。KVM 不会模拟硬件,但会使用 QEMU。

启用嵌套虚拟化

嵌套虚拟化 nested 可通过内核参数来启用该功能,能够让虚拟机具有物理CPU特性,能够模拟 vmx 或者 svm 硬件虚拟化。此特性需要 linux 内核 3.x 版本,文档看 这里 ,contos6 需要升级内核,contos7 默认已支持该特性但未启用。

校验

可以先检查下宿主上是否启用了嵌套虚拟化,可以检查文件 /sys/module/kvm_intel/parameters/nested :

$ cat /sys/module/kvm_intel/parameters/nested
N

N 表示未开启。

启用

要启用这个特性需要先关闭所有的虚拟机。有两种启用方式,一种是通过载入kvm模块时设置,这种方式重启宿主后失效;另一种是设置模块的配置文件,得到永久支持。

载入kvm模块时设置

# modprobe -r kvm_intel             # 卸载KVM模块 如果是AMD: modprobe -r kvm_amd
# modprobe kvm_intel nested=1       # 重新加载KVM
# cat /sys/module/kvm_intel/parameters/nested  # 校验
Y

修改KVM模块的配置文件

# echo "options kvm-intel nested=1" >> /etc/modprobe.d/kvm-intel.conf
# rmmod kvm-intel
# modprobe  kvm-intel
# cat /sys/module/kvm_intel/parameters/nested
Y

在虚拟机中启用嵌套虚拟化

在虚拟机的配置中还要设置为主机模式才能实现嵌套。具体是把 CPU 那行改为 <cpu mode='host-model' check='partial'/> :

<features>
  <acpi/>
  <apic/>
  <pae/>
</features>
<cpu mode='host-model' check='partial'>
  <model fallback='allow'/>
</cpu>

启动虚拟机后可以用 dumpxml 看到cpu上的更新:

# virsh dumpxml vm_nested
<cpu mode='custom' match='exact' check='full'>
  <model fallback='forbid'>Haswell-IBRS</model>
  <vendor>Intel</vendor>
  <feature policy='require' name='vme'/>
  <feature policy='disable' name='ds'/>
  <feature policy='disable' name='acpi'/>
  <feature policy='require' name='ss'/>
  <feature policy='disable' name='ht'/>
  <feature policy='disable' name='tm'/>
  <feature policy='disable' name='pbe'/>
  <feature policy='disable' name='dtes64'/>
  <feature policy='disable' name='monitor'/>
  <feature policy='disable' name='ds_cpl'/>
  <feature policy='require' name='vmx'/>
  <feature policy='disable' name='smx'/>
  <feature policy='disable' name='est'/>
  <feature policy='disable' name='tm2'/>
  <feature policy='disable' name='xtpr'/>
  <feature policy='disable' name='pdcm'/>
  <feature policy='disable' name='dca'/>
  <feature policy='disable' name='osxsave'/>
  <feature policy='require' name='f16c'/>
  <feature policy='require' name='rdrand'/>
  <feature policy='disable' name='arat'/>
  <feature policy='disable' name='tsc_adjust'/>
  <feature policy='require' name='stibp'/>
  <feature policy='require' name='xsaveopt'/>
  <feature policy='require' name='pdpe1gb'/>
  <feature policy='require' name='abm'/>
  <feature policy='disable' name='hle'/>
  <feature policy='disable' name='rtm'/>
  <feature policy='require' name='hypervisor'/>
</cpu>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

你必须知道的213个C语言问题

你必须知道的213个C语言问题

范立锋、李世欣 / 人民邮电出版社 / 2010-6 / 45.00元

《你必须知道的213个C语言问题》精选了213个在C语言程序设计中经常遇到的问题,目的是帮助读者解决在C语言学习和开发中遇到的实际困难,提高读者学习和开发的效率。这些问题涵盖了C语言与软件开发、C语言基础、编译预处理、字符串、函数、键盘操作、文件、目录和磁盘、数组、指针和结构、DOS服务和BIOS服务、日期和时间、重定向I/O和进程命令、C语言开发常见错误及程序调试等内容,均是作者经过充分的调研,......一起来看看 《你必须知道的213个C语言问题》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器