虚拟化嵌套
- 基本概念
虚拟化嵌套是一种在已经虚拟化的环境中再次进行虚拟化的技术。通常,我们先在物理服务器(宿主机)上通过虚拟机管理程序(如 VMware ESXi、Hyper - V 等)创建出虚拟机(子机),这是第一层虚拟化。然后,在这个虚拟机内部,又通过安装并运行另一种虚拟化软件来创建新的虚拟机,这就是虚拟化嵌套。
- 应用场景和优势测
试与开发环境:对于软件开发人员和测试人员来说,虚拟化嵌套提供了极大的便利。例如,在一个已经虚拟化的测试环境(子机)中,可能需要模拟不同的操作系统版本或软件配置来进行兼容性测试。通过嵌套虚拟化,可以在这个测试环境中再次创建多个不同配置的虚拟机,而不需要额外占用更多的物理服务器资源。这样可以高效地搭建复杂的多层测试环境,比如在一个运行 Linux 的虚拟机中,嵌套创建多个运行不同 Windows 版本的虚拟机来测试软件在跨平台环境下的兼容性。
教育与培训:在教育领域,虚拟化嵌套可以用于构建多层次的教学环境。教师可以在一个基础的虚拟机环境中,为学生创建多个嵌套的虚拟机,每个虚拟机可以设置不同的课程相关场景。例如,在一个云计算课程的教学虚拟机中,嵌套创建多个小型的虚拟数据中心环境,让学生可以实际操作和学习云计算中的各种概念,如虚拟机管理、资源分配等,同时可以方便地根据教学内容进行调整和重置。
安全研究与沙盒环境:安全研究人员可以利用虚拟化嵌套创建高度隔离的沙盒环境。在外部虚拟机作为第一层安全防护的基础上,内部嵌套的虚拟机可以用来安全地测试恶意软件、漏洞利用工具等。如果内部嵌套的虚拟机受到攻击或被恶意软件感染,由于嵌套的隔离特性,不会轻易影响到外部的物理服务器和其他虚拟机,从而有效地保护了整个系统的安全。
PVE 中支持虚拟机的嵌套功能,在PVE 8.0中只需要修改虚拟机CPU的类别就可以实现虚拟机的嵌套。
实验说明:
- PVE版本:PVE8.0
- 虚拟机:Windows 2019
PVE中启用虚拟机嵌套功能。
- 查看netste 是否开启,输出为Y表示已开启,输出为N表示尚未开启。
- cat /sys/module/kvm_intel/parameters/nested
3、如下图所示,将虚拟机硬件信息中的CPU类别更改为host。
4、如下图所示,PVE8.0 中创建了一台2019的虚拟机,在虚拟机中正常安装了Hyper-v组件,并可以创建并启动虚拟机。