当前位置:首页 > 虚拟化 > 正文

KVM虚拟化部署(kvm创建虚拟机)


一、kvm虚拟化分为哪三层?

KVM虚拟化分为以下三层:

1.KVM的第一层

KVM的第一层基本上是Linux内核本身;从Linux2开始。从6.20版本1开始,KVM完全集成到Linux内核中。KVM作为Linux内核中的一个模块存在。因此只要您运行的是Linux版本2.6.20或高于Linux2.6.20的版本。它已在安装过程中安装。由于KVM模块已加载,我们需要在CLI命令行模式下启用KVM模块。

2.第二层QEMU

第二层QEMU2012年,qemu-kvm分支并入主流QEMU。今后KVM将实现虚拟化。不需要特殊的qemu-kvm(你仍然可以使用它,目前CentOS使用它);但要使用KVM功能,需要在通用QEMU命令中添加“-enable-kvm”选项。、驱动KVM虚拟机;这意味着QEMU可以调用KVM内核;因此,效率比PureQEMU高很多。

3.第三层KVM管理工具

解决了第一层KVM和第二层QEMU之后,剩下的就是KVM管理工具了。使用KVM管理工具的方法有很多种。如果您公司的云计算团队只有40-50人,那么使用WebVirtMgr和ProxmoxVE等管理工具更有意义。如果您公司的云计算团队有数百人;如果你有资金支持,你可以使用像OpenStack这样的云计算管理平台。


二、kvm安装linux系统kvm安装linux

KVM可以安装在Windows系统上吗?

由于KVM的广泛兼容性,支持Windows、Linux、Sun等主流操作系统,兼容联想、曙光、浪潮、华为、Boyd、HP、IBM、戴尔。和思科。

Windows系统因此可以安装KVM。

KVM(虚拟机)可以直接安装在裸机(服务器)上吗?如何安装?

最流行的两种裸机开源虚拟化技术是内核虚拟机(KVM)和Xen,因此KVM可以直接运行在裸机上,无需任何操作系统。KVM支持几乎所有操作系统:Linux、MacOS、Unix、Windows以及您使用的任何操作系统。

如何连接KVM?

安装VNC1。安装VNC服务器(1)在Linux系统上安装VNCyum-yinstallvnc-serveryum-yinstalltigervnc-server(2)设置远程连接所需的密码。输入vncserver后,会提示输入密码。注:此密码是远程连接时必须输入的密码(3)通过vi/etc/sysconfig/vncservers配置vncserver,设置如下配置值VNCSERVRES=10000:root(10000为桌面)(5)重启VNC和防火墙Linux上的ows上安装TigerVNC软件2创建KVM虚拟机1、创建Linux虚拟机(1)通过qemu-img创建7G镜像文件qemu-imgcreate_7G(2)创建Linux虚拟机qemu-kvm_m1024__drivefile=;boot=on_bootd_ngraphic_vnc:

2注意:-vnc和:之间有一个空格:2.在另一台机器上启动TigerVNC,输入192.168。0.123:5902登录并执行安装操作并观察安装进度,注意:192.168.0.123是机器的基础IP,5902是对应的端口号(5900+2)2.创建Windows虚拟机(1)创建包含virtio驱动程序的映像并安装UltraISO软件。下载、、将解压到文件夹中。使用UltraISO打开,将virtio-win-0.1-30复制到相应路径。添加新的win7withvirtio驱动文件夹。Theisofileissavedasanewiosfilewin7_u-imgcreate_frawwin7_30Gqemu-kvm_m1024_cdromwin7__drivefile=win7_,if=virtio,boot=on__bootd_nographic_vnc:

3注意:-vnc和:之间有空格3.在另一台机器上启动TigerVNC,输入192.168.0.123:5903进行连接。执行安装操作并观察安装进度。注:192.168.0.123是本地IP地址,5903是对应的端口号(5900+3)三个远程桌面虚拟化连接。在另一台机器上启动TigerVNC并输入192.168.0.123:593。连接win7虚拟机

KVM、QEMU、KQemu有什么区别?

KVM完全基于内核虚拟化。Qemu本身是一种虚拟化和硬件仿真模拟器。KQemu是针对KVM和KVM优化的Qemu的组合。他的表现比Qemu本人要好得多。。。我们现在所说的KVM其实就是qemu-kvm。Linux下有/dev/kvm块设备和qemu-kvm三个组件和应用

Kvm进程?

KVM虚拟化架构及三种模式

1.访客模式(guestOS):VM的操作系统为GuestOS

Guest运行在操作系统模式下,客户端分为内核模块和用户模式

2.用户模式:

为用户提供用户空间工具,用于管理虚拟机并代表用户执行I/O。Qemu工作在这种模式下(Qemu的主要功能)

内核模式

模拟CPU和内存,执行客户端模式切换,并管理从客端模式启动。KVM运行在这种模式下

KVM原理

:Guest系统,包括CPU(vCPU)、内存、驱动程序(控制台、网卡、I/O设备驱动程序等)

由KVM实现,用于在受限CPU模式下运行。

内核模块模拟CPU和内存来支持虚拟机运行

3.Qemu主要处理I/O并为客户提供用户空间/dev/kvm工具。libvirt来管理虚拟机

ioctl(定义)是一个专门用于设备输入输出操作的系统调用

libvirt:KVM管理工具

以上构成了完整的虚拟机虚拟化平台

简单理解:

KVM驱动提供CPU和内存虚拟化,以及对guestI/O的拦截。guestI/O被拦截后交给Qemu处理

Qemu使用libkvm接口调用(ioctl)/dev/kvm虚拟机设备接口来分配资源,管理和维护虚拟机

KVM工作流程

用户模式​​Qemu使用libkvm接口通过ioctl系统调用切换到内核模式。KVM驱动程序为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAU-NCH指令进入Guest模式,加载GuestOS并执行。如果GuestOS运行时发生异常,GuestOS操作将暂停,当前状态将被保存,系统将退出内核模式来处理这些异常。

当内核模式处理这些异常时,如果不需要V/O,则处理完成后将返回到客户端模式。如果需要V/O,则进入用户模式,Qemu将处理I/O。处理完成后,进入内核模式,然后进入客户端模式


三、企业级虚拟化Kvm实战

常用的虚拟化产品有哪些
(redhat)企业级

--Vmware-workstation(windows和linux)桌面级
--Vmware-fusion(mac)
--Vmware-esxi(企业级)是操作系统本身。
-v(微软)
(oracle公司--Windowslinux)virtulbox
(rhel6之前所有版本默认虚拟化产品)
技术分类虚拟化:

我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(ControlProgram,也称为VirtualMachineMonitor(VMM虚拟监视器)或Hypervisor)来隐藏。某些计算平台功能的实际物理性为用户提供了一个抽象的、统一的、模拟的计算环境(称为虚拟机)。
平台虚拟化的类型

完全虚拟化:

ParaVirtualization:

硬件辅助虚拟化

部分虚拟化
企业级虚拟化与桌面级虚拟化的区别

从rhel6开始,kvm模块直接成为内核的一部分

rhel6之前的企业版本默认内核不支持xen,需要重新安装xen内核功能

KVM目标是在x86硬件上运行的内核驻留虚拟化基础设施。KVM是第一个成为本机Linux内核(2.6.20)一部分的虚拟机管理程序,由AviKivity开发和维护,现在由RedHat所有。

该虚拟机管理程序提供x86虚拟化,可以访问PowerPC®和IA64。此外,KVM最近还添加了主机(和来宾)对称处理支持,并支持主动迁移(允许来宾操作系统在物理服务器之间移动)等企业级功能。

实现了KVM作为一个内核模块,所以Linux只需要加载这个模块就会成为hypervisor。KVM为支持虚拟机管理程序命令的硬件平台(例如Intel®虚拟化技术[IntelVT]或AMD虚拟化[AMD-V]产品)提供完整的虚拟化。KVM还支持半虚拟客户操作系统,包括Linux和Windows®。

该技术由两个组件实现。第一个是可加载的KVM模块。当安装在Linux内核中时,它可以管理虚拟化硬件并通过/proc文件系统公开其功能。第二个组件用于PC平台仿真,由QEMU的修改版本提供。QEMU作为用户空间进程执行,并根据客户操作系统请求与内核进行协调。

当一个新的操作系统在KVM上启动时(通过一个名为kvm的实用程序),它就成为一个主机操作系统进程,因此可以像任何其他进程一样进行调度。但与传统的Linux进程不同,来宾操作系统被虚拟机管理程序识别为处于“来宾”模式(独立于内核和用户模式)。

每个客户操作系统都通过/dev/kvm设备进行映射,它们有自己的虚拟地址空间,该虚拟地址空间映射到主机内核的物理地址空间。如前所述,KVM使用底层硬件虚拟化支持来提供全(本机)虚拟化。I/O请求通过主机内核映射到在主机(管理程序)上执行的QEMU进程。

KVM在Linux环境中作为主机运行,但只要底层硬件虚拟化支持,就可以支持大量的客户操作系统。


四、debian下openvz和kvm同机部署安装方法我最近造了一台机器。我想创建一个支持openvz和kvm虚拟化技术的主机。原则上我觉得问题并不严重,因为两者都是不同层面的虚拟化技术,一个是硬件级虚拟化,一个是组级进程级虚拟化控制(这个我不太了解)。这个,所以如果我错了,请不要怪我)。因此,始终可以同时安装它们。
经过寻找解决方案,确实有一个proxmox发行版可以满足这个需求。看了文档,发现集成了一堆面板,越多,bug就越多。或者自己DIY一个。
由于openvz需要打补丁的内核才能工作,所以kvm需要加载kvm和kvm_intel(amd是kvm_amd)内核模块。因此,困难在于兼容性。如果与其他用户模式进程发生冲突,可以轻松解决。
首先,我选择了Debian7(我喜欢Debian),然后发现我必须使用OpenVZ源。源代码中使用的OpenVZ内核是2.6.32。Debian7内核目前是3.2。风险相对较高。我从源代码中拖动了openvz内核deb包并查看了它。我发现32位内核没有kvm模块,但64位内核有。哭。我不知道他们是怎么做到的。于是64位系统就开始了。原来是kvm_intel无法加载。报告输入/输出。使用-f强制加载并发出签名被拒绝的信号。我猜编译时出了问题。即使我有内核源代码和.config,我仍然不会自己编译它。太麻烦了。
始终使用Debian6。debian6官方源码已经包含了openvz。内核版本也是2.6、32系列。与Debian6的默认内核版本相同。看起来很靠谱。安装并重新启动以访问openvz内核。modprobe加载kvm内核模块。好的,成功了。
下一步是调整流程和网络。这也没什么大不了的。
结论是:openvz目前推荐使用debian6官方源码的包。兼容性好。
五、kvm功能特性包括?

KVM本身不执行任何模拟,而是运行一个用户空间程序,该程序通过/dev/kvm接口配置来宾虚拟服务器的地址空间,为其提供I/O,并将其视频显示映射到主机。我需要它。应用程序是QEMU。

内存管理

1、KVM具有强大的Linux内存管理能力,可以进行如下格式的交换:作为大页面或磁盘文件共享。NUMA支持(非均匀内存访问,多处理器的内存设计)允许虚拟机有效地访问大量内存。

2.支持Intel的扩展页表(EPT)和AMD的嵌套页表(NPT),也称为快速虚拟化索引-RVI,以提高CPU利用率和吞吐量。Masu。

3.通过内核功能同页合并(KSM)支持内存页共享。KSM扫描每个虚拟机之间共享的页面,仅保存一份副本,并将这些页面合并为虚拟机之间共享的单个页面。如果客户发生变化,该客户将获得自己的独家副本。

存储

可以使用LInux支持的任何存储来存储虚拟机镜像。这包括具有IDE、SCSI、SATA、网络附加存储(NAS)(包括NFS和SAMBA/CIFS)的本地磁盘,或支持iSCSI和光纤通道的SAN。

还支持全局文件系统(GFS2)。)和其他共享文件系统在多个主机之间共享虚拟机映像或使用逻辑卷共享。

3、KVM原生磁盘格式为QCOW2,支持快照,并允许多级快照、压缩加密等功能。

设备驱动

支持混合虚拟化。这会将半虚拟化驱动程序安装到来宾操作系统中,从而允许虚拟机使用优化的I/O接口,而无需使用模拟设备。

半虚拟化驱动程序使用VirtIO标准,这是一个用于构建独立于管理程序的设备驱动程序的接口。您可以为多个虚拟机管理程序使用同一组设备驱动程序

性能和可扩展性

1.它继承了.虚拟化可以覆盖95%以上的非虚拟化原生环境。

还具有高度可扩展性,可以支持多核CPU和大容量内存。