云改的核心基础:主机虚拟化(TO政企人员)
01
大家对IaaS和PaaS以及SaaS包括DaaS等概念应该比较熟悉了。具体如下图,但是大家可能没有意识到:云计算的最核心技术是虚拟化。无论是云主机、云存储,云数据库,他们的基础技术就是虚拟化,因此掌握和了解虚拟化技术是学习云计算以及云产品的核心基础。
02
先谈VMM,其学名是HyperVisor,别名是虚拟机器监控器。其可以放在RING0、1、2级别,代表着不同的主机虚拟化技术。
硬件层虚拟化:大家所熟悉的XEN,以及VMWARE EXSI(注意不是VMWARE SERVER)就是我们所说的硬件虚拟化技术,其直接放在RING 0级别。其是阿里裸金属服务器实现的基础。
其可以直接承载N个Guest OS(虚拟机),而且可以是不同的虚拟机如LINUX,如WINDOWS等等。
03
全虚拟化技术,是VMM放在Ring1级别的技术,主要代表是KVM,其最好和QEMU一起使用才具有最好的效果。(Host OS放在Ring 0,而VMM放在Ring 1)
04
OS虚拟化:也成为半虚拟化技术,其主要是对HostOS虚拟化。其最大的特点是虚拟机必须采用和Host OS一样的操作系统。
05
XEN、KVM、VMWARE比较(虚拟机技术比较)
Xen是一个开放源代码虚拟机监视器,由剑桥大学开发。其必须放在RING0级别,是硬件虚拟化技术的代表。
KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine)。KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。KVM的宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上。其是放在RING 1级别的代表。
VMWare (Virtual Machine ware) server是放在RING 2级别的全虚拟化代表,是一个“虚拟PC”虚拟机管理管理软件。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。
06
VM VS 容器
Docker建立在LXC(LINUX容器)的基础上。与任何容器技术一样,就该程序而言,它有自己的文件系统、存储系统、处理器和内存等部件。容器与虚拟机之间的区别主要在于,虚拟机管理程序对整个设备进行抽象处理,而容器只是对操作系统内核进行抽象处理。
Docker 是一种操作系统级别的虚拟技术,它运行在操作系统之上的用户空间(RING3,即用户空间),所有的容器都共用一个系统内核甚至公共库,容器引擎提供了进程级别的隔离(进程和线程的区别,每个容器可以可以理解为一个大进程),让每个容器都像运行在单独的系统之上,但是又能够共享很多底层资源。因此 docker 更为轻量、快速和易于管理。
07
因此,主机虚拟化技术包括:
RING0级别:XEN与VMWARE XESI技术,这是硬件虚拟化技术。
RING1级别:KVM,其是全虚拟化技术
RING2级别:VMWARE,其也是全虚拟化技术,但是其处于RING2。
RING3级别:DOCKER容器,其是用户级空间的虚拟化技术,和RING0、1、2这三个核心层虚拟化技术存在明显的区别,即其处于用户空间,实际说是一个操作系统的大进程而已。
这四个虚拟化技术,构成了云主机(云主机操作系统如Openstack,Openstack支持所有的虚拟化技术)的核心基础,理解他们后,再理解云主机和云主机操作系统就会清楚很多。