如何在 CentOS 6 上设置嵌套式虚拟

1. 引言

在某些情况下,你或许会想先测试或确认一套虚拟化设置,然后才把它推行在实物上。这时候的话,最理想的做法就是把你的监督器主机设置成虚拟机器,然后在当中运行虚拟机器。这个在拟拟机器内运行虚拟机器的做法名为嵌套式虚拟

嵌套式虚拟是一个可通过内核参数来启用的功能。很可惜,现有的 CentOS 内核暂时并未支持此参数。

2. 开始之先

你可以通过检查 /sys/module/kvm_intel/parameters/nested 这个文件来确定你的系统是否支持 nested 这个参数。

在一台缺省的 CentOS 6 系统上此文件并不存在。有幸地,我们拥有 xen-c6 计划(http://dev.centos.org/centos/6/xen-c6/ ),它提供了一个支持 nested 参数的内核!

3. 第 1 步:把 xen-c6 软件库加进你的系统

  1. su -
  2. cd /etc/yum.repos.d
  3. wget http://dev.centos.org/centos/6/xen-c6/xen-c6.repo

  4. yum repolist
  5. [选择性] vi xen-c6.repo :修改为 enabled=0 令软件库不会被缺省成启用的

4. 第 2 步:安装新的内核

  1. su -
  2. yum --enablerepo xen-c6 install kernel kernel-firmware
  3. vi /boot/grub/grub.conf :在 kernel 那一行的末端加上 kvm-intel.nested=1
  4. 重新开机
  5. 确定能正常运作:cat /sys/module/kvm_intel/parameters/nested 会输出 Y

5. 第 3 步:设置监督器的虚拟机器

若要设置生效,我们的虚拟机器内的虚拟处理器必须拥有 vmx 这个标志。

我会在这篇教学文档内采用 virt-manager。当然,你可以利用 XML 档及 virsh 来取得同一效果。

  1. virt-manager
  2. 打开监督器虚拟机器,进到 Details(内容)> Processor(处理器)

  3. 展开 Configuration(设置)
  4. 按 Copy host CPU configuration(复制主机处理器设置)按钮
  5. 展开 CPU Features(处理器功能)
  6. 确保 vmx 功能已设置为 require(必须的)
  7. 按 Apply(应用)

引导监督器虚拟机器,然后你会发现 libvirtd 正在虚拟机器内运行!

(来源: http://technotes.nocoffee.nl

Translation of revision 2

zh/HowTos/NestedVirt (last edited 2019-12-09 09:11:42 by anonymous)