KVM on KVM 嵌套虚拟化的实现

本实验系统环境为:Mac OS X El Capitan 10.11.6 15G1217使用的虚拟机系统为:Parallels Desktop 12虚拟化技术:Nested 虚拟化技术 + PMU虚拟化技术L0: Ubuntu 16.04.1 Xenial LTS DesktopL1: CentOS 6.4 DesktopL2: Cirros Linux 0.3.5首先,若要准备L2级虚拟机的系统镜像,可参考Ubuntu官网提供的cloud-images,链接为:https://cloud-images.ubuntu.com/?_ga=1.222879259.1831544656.1487263184首先可以在物理机使用scp命令将L2级虚拟机所需img镜像文件传输至L0,命令及效果图如图所示:

若当前虚拟机不存在网桥,则需要配置网桥才可使虚拟机联网。由于之前的实验已完成配置,此处只写出相关命令:

效果图如下

同样,由于已完成之前的实验,qemu_ifup启动脚本为在启动时创建和打开指定的TAP接口以供虚拟机连接使用。启动脚本见主要算法和程序清单。接下来,即可开启L1虚拟机,命令如下:

启动虚拟机后,如图所示:如图可以看到已成功在L0上运行L1

首先开始安装qemu,kvm,libvirt,libvirt-python,命令如下:

安装完成后,运行如下命令确认kvm是否安装成功:

如上图所示,即为安装成功。安装成功后,需要配置L1的网桥才可使L1创建的L2虚拟机可上网。命令同上:

接下来,将镜像文件从L0拷贝至L1中,使用命令:

传输完成后如图所示:

接下来即可在L1中启动L2虚拟机。命令如下:

启动成功后,可以看到已成功启动L2虚拟机。且L2虚拟机可ping通百度,可以上网。至此,KVM on KVM嵌套虚拟化的实现已完成。

在CentOS 6.4下,启动虚拟机时,遇到libdevmapper库错误问题,错误提示如下:libvirtd: relocation error: libvirtd: symbol dmtaskgetinfowithdeferredremove, version Base not defined in file libdevmapper.so.1.02 with link time reference解决方案:yum -y upgrade device-mapper-libs若启动虚拟机时遇到如下问题,问题描述为:error: internal error: unable to execute QEMU command 'cont': Resetting the Virtual Machine is required检查系统是否有vmx:cat /proc/cpuinfo | grep vmx若没有vmx,则需要开启-enable-kvm选项。若有vmx,则重新开启虚拟机即可。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180301G1JQBG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券