kvm嵌套虚拟化

KVM嵌套虚拟化

嵌套虚拟化指的是在宿主机上创建的虚拟机中,再运行hypervisor,从而在虚拟机里面再运行一个虚拟机,可以是KVM嵌套KVM,Xen嵌套Xen,或者是不同类型hypervisor的嵌套(如KVM嵌套Xen,VMware嵌套KVM等)

下面开始嵌套虚拟化的实验,我选择的类型是KVM  on KVM的嵌套

实验环境:

主机名 角色
KVM 宿主机
vm1 第一层虚拟机
vm1-1 第二层虚拟机

首先宿主机的内核版本需要3.0+,其次内核需要打开nested的功能,让内核支持嵌套虚拟化的功能。

[[email protected] ~]# uname -r       #查看内核版本

3.10.0-327.el7.x86_64

[[email protected] ~]# cat /sys/module/kvm_intel/parameters/nested

N       #默认不开启,需要重新加载模块,并修改它的引导参数

[[email protected] ~]# rmmod kvm_intel      #移除kvm_intel模块

[[email protected] ~]# modprobe kvm_intel nested=1    #重新加载并开启nested功能

[[email protected] ~]# cat /sys/module/kvm_intel/parameters/nested

Y

#以上开启nested的方式在重启的时候失效,如果需要永久生效可以通过如下方式:

[[email protected] ~]# echo "options kvm-intel nested=1" >> /etc/modprobe.d/kvm_intel.conf

创建vm1,过程略

[[email protected] ~]# virsh list

Id    Name                           State

----------------------------------------------------

1     vm1                            running

修改配置文件,实现CPU穿透

[[email protected] ~]# virsh shutdown vm1

[[email protected] ~]# vi /etc/libvirt/qemu/vm1.xml

  <cpu mode=‘host-passthrough‘>     #配置CPU model为host-passthrough

  </cpu>

[[email protected] ~]# systemctl restart libvirtd

[[email protected] ~]# virsh start vm1

查看vm1的CPU特性是否与物理机一致

[[email protected] ~]# cat /proc/cpuinfo |grep model

model: 62

model name: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz

model: 62

model name: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz

查看vm1的CPU是否支持虚拟化

[[email protected] ~]# grep -E ‘(vmx|svm)‘ /proc/cpuinfo

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm tpr_shadow vnmi flexpriority ept fsgsbase tsc_adjust smep erms xsaveopt

vm1需要加载模块

[[email protected] ~]# modprobe kvm

[[email protected] ~]# modprobe kvm_intel

[[email protected] ~]# lsmod |grep kvm

kvm_intel             162153  0

kvm                   525259  1 kvm_intel

安装kvm的管理工具

[[email protected] ~]# yum -y install libvirt virt-install  qemu-kvm qemu-kvm-tools

启动libvirtd服务

[[email protected] ~]# systemctl start libvirtd

[[email protected] ~]# systemctl enable libvirtd

创建磁盘文件

[[email protected] ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm1-1.qcow2 8G

创建vm1-1

[[email protected] ~]#virt-install --cdrom=/opt/iso/CentOS-7.2-x86_64-DVD.iso --vcpu=2 --ram=1024 --network bridge=virbr0 --disk path=/var/lib/libvirt/images/vm1-1.qcow2 --graphics spice,listen=0.0.0.0  --name=vm1-1

WARNING  Unable to connect to graphical console: virt-viewer not installed. Please install the ‘virt-viewer‘ package.

WARNING  No console to launch for the guest, defaulting to --wait -1

Starting install...

Creating domain...                                                                                                        |    0 B  00:00:00

Domain installation still in progress. Waiting for installation to complete.

我在宿主机创建了网桥,所以可以直接在windows通过remote viewer连接进vm1-1

[[email protected] ~]# brctl show

bridge namebridge idSTP enabledinterfaces

brex8000.70e28405fa30yesenp10s0

vnet0

virbr08000.5254000f5751yesvirbr0-nic

通过remote viewer进行安装

如有勘误,欢迎指正。

时间: 2024-07-31 14:34:55

kvm嵌套虚拟化的相关文章

KVM嵌套虚拟化nested之CPU透传

嵌套式虚拟nested是一个可通过内核参数来启用的功能.它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化.该特性需要内核升级到Linux 3.X版本 ,所以在centos6下是需要先升级内核的,而在centos7下已默认支持该特性,不过默认是不开启的,需要通过修改参数支持. 启用Nested:# echo 'options kvm_intel nested=1' >/etc/modprobe.d/kvm-nested.conf卸载模块:# modprobe -r

KVM虚拟化之嵌套虚拟化nested

本文测试物理机为centos6.5 物理机使用Intel-V虚拟化架构,安装qemu-kvm版本0.12 我们知道,KVM虚拟化技术需要服务器硬件支持虚拟化(Intel-V/AMD-T)才能提高虚拟机性能, 如果我们需要测试一个openstack集群,但是又没有太多物理服务器可使用,如果我们的虚拟机能够和物理机一样支持硬件虚拟化,那么问题就解决了,使用嵌套虚拟化可以解决这个问题 嵌套式虚拟nested是一个可通过内核参数来启用的功能.它能够使一台虚拟机看起来就像物理机,具有物理机CPU特性,支持

centos7.2 KVM基本安装+嵌套虚拟化参数设置

这几天一直在用mac做下KVM,但是始终是因为图形话的问题,打不开虚拟机.基于windows的安装网上教程很多,我做下自己的总结. 在VMware fusion虚拟机打开三个参数 selinux和防火墙关闭 1.grep vmx /proc/cpuinfo flags : vmx 或者 svm vmx:Intel系列CPU支持虚拟化标志 svm:AMD系列CPU支持虚拟化标志 2.[[email protected] ~]# find / -name *.ko|grep kvm(模块文件存放位置

让Proxmox VE支持嵌套虚拟化

目前公司的测试环境使用Proxmox VE(PVE),PVE虚拟出来的主机CPU默认不支持vmx,即不支持嵌套虚拟化,在虚拟机中使用egrep "vmx|svm" /proc/cpuinfo验证,无输出,那么如何让他支持呢?其实PVE的内核还是采用了KVM+Qemu的方式模拟,那么参照如何让KVM支持嵌套虚拟化的方法操作,开启nested即可 nested是一个可通过内核参数来启用的功能.它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化.Proxmox

Windwos Hyper-v嵌套虚拟化

现在微软的虚拟化越来越成熟,许多人也渐渐的开始研究微软的Hyper-V的虚拟化,但是苦于没有太多的电脑提供部署环境,再加上之前的windwos版本是不支持在虚拟机中安装Hyper-V,让大家头大. 现在的win10和win server 2016都已经支持嵌套虚拟化,也就是说可以在虚拟机中安装Hyper-V. 首先当然是安装Hyper-V,安装过程就省略了,相信大家肯定都知道. 安装完Hyper-V后新建一台虚拟机.在这里我建立一台名为test的虚拟机. 然后以管理员方式运行powershell

Windows Server 2016 Hyper-v 嵌套虚拟化技术

我们前面已经有文章介绍了,近期微软正式发布了Windows Server2016,对于里面的功能更变确实变化很大,具体就不多介绍了,我们今天主要介绍的是windows server 2016下的Hyper-v的虚拟化嵌套技术,对于很多管理员来说,在日常的运维中会遇到很多突发问题,所以我们需要通过实验环境进行模拟测试,之前公司环境内部署了一条Hyper-v集群,所以借机想到做一次windows server 2016 Hyper-v的集群测试(Hyper-v虚拟机内运行Hyper-v虚拟机),在测

Hyper-V 嵌套虚拟化

先决条件 运行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V 主机. 运行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V VM. 配置版本为 8.0 或更高的 Hyper-V VM. 采用 VT-x 和 EPT 技术的 Intel 处理器(AMD-V技术的暂时不支持) >Set-VMProcessor -VMName 16Server1 -ExposeVirtualizationExtensions $t

嵌套虚拟化

嵌套虚拟化是一项功能,使你可以在 Hyper-V 虚拟机内运行 Hyper-V. 换而言之,借助嵌套虚拟化,Hyper-V 主机本身可进行虚拟化. 嵌套虚拟化的一些用例包括在虚拟化容器主机中运行 Hyper-V 容器.在虚拟化环境中设置 Hyper-V 实验室或者无需单个硬件测试多台计算机方案. 本文档将详细介绍软件和硬件先决条件.配置步骤和限制. 先决条件 运行 Windows Server 2016 或 Windows 10 周年更新的 Hyper-V 主机. 运行 Windows Serv

Vmware vSphere 开启嵌套虚拟化

一.vSphere 6开启嵌套虚拟化 已通过vSphere Client创建一个名字为Centos 7的虚拟机,现在需要打开该虚拟机的嵌套虚拟化功能. 1.在Esxi 服务器上面开启ssh服务,并关闭虚拟机 2.查找虚拟机配置文件,并且修改配置文件 [[email protected]:~]#  find / -name *.vmx /vmfs/volumes/570794cb-7a2de328-398b-000c294ee9b7/centos7/centos7.vmx 修改配置文件(在配置文件