简述虚拟化的架构及特点
虚拟化[1]是一个广义术语,指的是在虚拟平台而不是物理平台上运行的计算组件。
它是一种简化资源管理和优化的解决方案。
就像通风良好的办公楼,整个楼层没有固定的墙壁一样,用户可以用相同的成本建造一个更合适、更独立的办公空间,从而节省成本,最大限度地利用空间。
根据不同的需求重新规划有限的固定资源以达到最大利用率的思想在IT领域被称为虚拟化技术。
CPU虚拟化技术可以用一个CPU模拟多个CPU并行,让一个平台同时运行多个操作系统,应用程序可以在独立的空间运行而不互相影响,从而显着提高计算机的工作效率。
虚拟化技术与多任务和超线程技术完全不同。
多任务处理是指在操作系统中并行运行多个程序。
在虚拟化技术中,多个操作系统可以同时运行,每个操作系统上运行多个程序。
虚拟服务器;而超线程技术只是用单CPU模拟双CPU来平衡程序性能,但是模拟的两个CPU不能分开,只能一起运行。
虚拟化技术也不同,VMwareWorkstation等软件也可以实现虚拟效果。
这是一项巨大的技术进步,具体体现在软件虚拟机相关成本的降低以及对更多操作系统的支持。
虚拟化技术有很多定义,下面给出一些这样的定义。
“虚拟化是以用户和应用程序都可以轻松受益的方式表示计算资源的过程,而不是在部署、位置地理或物理包装方面以垄断方式表示这些资源。
换句话说,它提供了数据、计算能力、存储和其他资源的逻辑视图,而不是物理视图。
”-JonathanEunice,IlluminataInc.“虚拟化是表示计算机资源的逻辑组(或子集)的过程,因此可以通过从其初始配置中受益的方式来访问它们。
这种新的资源虚拟视图并不独立于部署、地理位置或底层资源“物理配置的限制”-维基百科“虚拟化:提供一组抽象接口”一组相似资源的通用符号,从而掩盖差异属性和操作之间,同时允许一种通用的方式来查看和维护资源。
”-OpenGridServicesArchitectureGlossaryofTerms。
CPU虚拟化,磁盘虚拟化,内存虚拟化,io虚拟化
CPU虚拟化是现代计算机体系结构中的一项关键技术,主要有三种实现方式:全虚拟化(如KVM,通过二进制翻译来模拟硬件)、半虚拟化(如Xen,需要操作系统支持)和硬件辅助虚拟化。。
KVM是Linux下的全功能虚拟化解决方案,可以为每个虚拟机提供独立的硬件资源。
Xen是一个开源的虚拟机监视器,支持多种操作系统,无需特殊的硬件支持。
内存虚拟化是另一个关键技术,通过VMM(虚拟内存管理器)实现,例如KVM内存虚拟化和影子页表技术。
内存虚拟化有助于隔离虚拟机并提高资源利用率。
IO虚拟化方式有I/Opassthrough等三种,允许虚拟机直接访问硬件,提高性能。
OpenVZ作为操作系统级虚拟化,基于Linux,提供高性能的虚拟化解决方案,而VirtualBox作为全面的开源虚拟机软件,适用于多种环境。
像IBM工程师开发的Lguest这样的轻量级虚拟化项目,只需要5000行代码,直接与硬件交互,避免了虚拟机作为中介带来的效率损失,并且在GPL许可下提供给用户。
这些虚拟技术共同构建了现代计算机系统中的虚拟环境,以满足不同场景的需求。
VPS虚拟化架构OpenVZ和KVM的区别
1.不同主题
1.OpenVZ:是基于Linux平台的操作系统级服务器虚拟化解决方案。
2.KVM:能够通过直接连接键盘、视频和鼠标(KVM)端口来访问和控制计算机。
2.功能不同
1.OpenVZ:您可以在单个物理服务器上创建多个隔离的虚拟专用服务器(VPS),并以最高效率共享硬件和管理资源。
2.KVM:提供真正的主板级访问,支持多平台服务器和串口设备。
3.不同的优势
1.OpenVZ:有标准的启动脚本,可以运行在软件厂商提供的VPS上。
OpenVZ内部软件无需特殊修改或调整。
2.KVM:即插即用设计,操作方便简单。
可支持PC、SUN、MAC等各种品牌的计算机和服务器。
参考来源:百度百科-KVM
参考来源:百度百科-openVZ
KVM虚拟化详解
KVM虚拟化详解1、KVM虚拟化架构1.1主流虚拟化架构对比主流虚拟化架构有ESXi、Xen、KVM等。ESXi内核实现所有虚拟化功能。
Xen只实现了CPU和内存虚拟化,IO虚拟化和调度由Domain0实现。
KVM内核实现CPU和内存虚拟化,QEMU实现IO虚拟化,通过Linux进程调度器管理虚拟机。
1.2KVM架构核心模块KVM架构包括KVM内核模块和QEMU设备模拟。
KVM内核模块负责CPU和内存虚拟化,而QEMU实现IO虚拟化用于虚拟机管理。
2.CPU虚拟化2.1pCPU和vCPU一台物理服务器由两个物理pCPU组成,每个pCPU有多个核心。
启用超线程技术会为每个核心分配两个线程。
在虚拟化环境中,一个线程对应一个vCPU。
KVM将每个VM视为用户空间中的QEMU进程,分配给来宾的vCPU成为该进程的线程。
2.2虚拟化类型比较ESXi是全虚拟化的,VMM运行在Ring0上,完全模拟底层硬件。
Xen支持全虚拟化和半虚拟化。
KVM依赖于完全硬件辅助的虚拟化。
2.3KVMCPU虚拟化KVM的vCPU有三种运行模式。
访客模式运行GuestOS,用户模式运行QEMU,内核模式运行KVM内核。
一旦KVM内核被加载,它就会执行VMXON指令进入VMX操作模式。
VMM运行VMExit切换到root模式处理特权指令,然后运行VMLANCH或VMRESUME指令返回非root模式。
3、内存虚拟化3.1EPT和VPIDIntel的EPT和AMD的NPT硬件辅助内存虚拟化技术提供了硬件辅助内存地址转换。
guest读写CR3寄存器或GuestPageFault并执行INVLPG指令,而无需触发VMExit,从而降低了内存转换复杂性。
3.2透明大页THP透明大页THP技术自动创建、管理和使用大页内存,以提高内存使用率和性能,同时避免传统大页的弊端。
3.3内存复用内存复用会导致分配给guest的内存总量大于实际的物理内存总量。
内存交换、气球和页面共享技术提供了内存超分。
4.IO设备虚拟化4.1IO设备虚拟化概述KVM支持设备模拟、virtio驱动、设备直通和共享。
4.2设备模拟和virtio驱动程序设备模拟是通过QEMU实现的。
virtio驱动程序将前端驱动程序部署到guest虚拟机,将后端驱动程序部署到QEMU,并通过虚拟环形缓冲区队列处理IO。
交换请求和执行信息。
4.3设备直通和共享设备直通PCIP直通将主机物理设备直接分配给访客。
设备共享SR-IOV标准允许物理设备支持多个虚拟功能接口,并将它们独立分配给不同的来宾。
4.4其他IO设备功能图像和声音是在QEMU中使用SDL实现的。
热插拔支持KVM中的PCI设备,但热插拔CPU和内存受到平台和操作系统的限制。