四种常见的虚拟化介绍VMware、XEN、KVM、HyperV

一、【写在前面】

因为工作原因先后接触过vmware、kvm、Citrix xen。前两个多多少少都听说过名头,不过第一次听到Citrix时,一度认为是一个野鸡厂商,毕竟国内都是洋买办在管,现在也已经退出中国了,但是了解了一下在国外是一个非常牛逼的厂商,具体有多牛逼呢?Citrix的技术可能比主流的KVM还要早。他是业内四大门派之一,刚好借着这个话题介绍一下业内常用的四种虚拟化技术吧,业内四种主流的虚拟化技术分别是:

二、【四种虚拟化介绍】

  1. VMware的VSphere解决方案

这个VMware非常著名,相信很多同志都是从vmware的产品最早接触的虚拟机。不过其本身不说是三姓家奴,也经历了多次收购,据笔者所知其归属公司至少包括了:EMC,Dell,博通等公司。

他成立的也很早,早在1998年,产品线包含Paas Iass产品,估计很多人接触虚拟机都是从VMware Workstation开始的,不过这个VMware Workstation是桌面及应用,这种部署方式损耗比较大,生产上一般直接使用VMware ESXi来做,ESXi是直接在物理机上装一个虚拟化的操作系统,是Type1 Hypervisor(Type 1 Hypervisor,也被称为“Bare Metal Hypervisor”或“Native Hypervisor”,是一种直接运行在物理硬件上的虚拟化层。与之相对的是 Type 2 Hypervisor,它运行在主机操作系统之上。Type 1 Hypervisor通常直接管理硬件资源,并允许多个虚拟机(VM)在物理服务器上同时运行)

其完整解决方案被称为VSphere,其负责提供虚拟化平台的操作系统被称之为ESXi,多物理机的统一虚机管理被称为VCSA(vCenter Server Application),其升级、补丁管理工具被称之为VUM(vSphere Update Manager),容器管理平台被称之为VIC(vSphere Integrated Containers),客户端被称为VSphere Client。vsphere解决方案中甚至有一个容器管理平台叫做VIC(VMware integrated containers)

2. Citrix的Xen解决方案

Xen的出现要早于KVM,可以追溯到1990s,他是剑桥大学的一个开源项目,直接运行在硬件上而不是操作系统的软件层,同时还可以在计算机硬件上同时运行多个OS,架构支持X86、ARM、安腾、PowerPC等,系统支持Linux、NetBSD、Solaris、Windows等。与KVM不同的是,其没有宿主机概念,而是由Xen Hypervisor(VMM)管理硬件。

其支持半虚拟化(Paravirtualization)和硬件虚拟化(HVM),区别是OS是否能感知自己运行在硬件上,是否能感知到毗邻的虚拟机。

其在2002年开源经过几个迭代之后,2007年思杰收购了这个项目。说白了臭做技术的最终还是要找一个金主爸爸,讲故事把自己的估值做上去

3. Microsoft的Hyper-V解决方案

Hyper-V是微软的服务器虚拟化商品,能够实现桌面虚拟化。HyperV架构与Xen类似,也是Type 1(之前我们介绍过什么是type1 or type2),HypervisorHyper-V采用微内核架构,兼顾安全和性能。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring-1,虚拟机的OS和驱动运行在ring-0,应用程序运行在ring-3,这种架构不需要复杂的BT(二进制特权指令翻译)技术,进一步提高了安全性。

4. Redhat的KVM和OpenStack解决方案

KVM全称Kernel-based Virtual Machine,基于内核的虚拟机,完全开源,直接采用的硬件虚拟化技术的全虚拟化解决方案。由Quramnet开发,08年被RedHat收购,支持x86,S390,Powerpc等CPU,从Linux2.6.20起作为一模块被包含在Linux中。

它以内核模块的形式加载之后,将Linux内核变成了一个Hypervisor,但硬件管理还是通过Linux Kernel来完成的,所以它是一个经典的Type 2 Hypervisor。

在这个概念中,一个KVM客户机对应一个进程,每个vCPU对应进程下的线程,硬件设备由QEMU模拟,QEMU截获操作并转为实际的物理设备驱动操作完成

KVM的内存管理机制,比如大页、KSM、NUMA、通过mmap的进程间共享内存,可以应用到客户机内存管理上。

KVM能够使用Linux支持的任何存储来存储虚拟机镜像,包括具有IDE\SCSI\SATA的本地磁盘,网络存储,或者支持iSCSI和光纤通道的SAN

KVM支持实时迁移,在宿主机之间转移正在进行的客户机而不中断服务,说白了就是支持热迁移。

KVM按照文档给的损耗,可以达到原生系统的95%,至于剩下的5%有没有什么解决方法,目前据笔者所知,业内阿里在15年从XEN转为KVM后,使用了一种叫做“神龙架构”的东西来解决虚拟化造成的损耗,具体是由FPGA实现的,但是更详细的笔者不太了解不敢妄议,从互联网上的蛛丝马迹可以看到“他们将网络和存储、console balloon这些 virtio驱动都用FPGA实现到MOC卡上了,MOC卡上运行了个OS跑在卡上的cpu上”。AWS则是收购了一个称之为Annapurna Labs的实验室来做了一款叫做Nitro卡的产品,看起来本质上还是多了一个协处理器来解决虚拟资源的损耗问题。至于其他公司,笔者建议了不了解都行,毕竟这种科技公司马太效应很严重。

KVM和OpenStack的关系,据笔者了解是KVM可以作为一个hypervisor运行在openstack里,更详细的关系有机会另写一篇文章给出。

 

 

 

你可能感兴趣的:(技术积累,linux,运维,服务器,openstack)