虚拟化技术

添加时间:2016-7-18 11:17:25 编辑:罗建东 阅读:491


什么是虚拟化

我的理解:将某一类分布式的资源“池化”,并提供一组用于管理控制资源池的API给上层应用。虚拟化的核心是一个中间件,这个中间件负责完成“资源的池化”和“API调用的响应”两个功能。

虚拟化的多样性就源于“资源”的多样性,在IT软硬件设施中,资源有很多种,已被虚拟化的有四类:存储、计算、网络、容器。

不同类型的虚拟化有不同的用途,但毋庸置疑的一点是:虚拟化技术是云计算的核心支撑技术。

下面我们就分别看看这四类虚拟化技术。


存储虚拟化

技术架构
典型代表是SAN和NAS,日后 iSICI + 万兆以太网 的组合可以将二者逐渐融合起来。
典型应用
各种网盘,大型计算虚拟化平台的存储层。
关键指标
高并发的读写速率,可用性,数据安全。

计算虚拟化

技术架构
按照对客户机OS是否需要修改,分为两类:
1.全虚拟化,不需要修改客户机OS,但是Hypervisor管理成本高,按照Hypervisor的构成,还可以细分为两类:
1.1 纯软件虚拟化,以QEMU、VMware Workstation为代表
1.2 Hyper与服务器OS融合,以XenServer、VMware VSphere为代表
2.半虚拟化,需要修改客户机OS,Hypervisor工作负荷小,当下使用的较少。
特殊说明:KVM在虚拟化方面采用的是QEMU的方案
典型应用
AWS等IaaS平台,云桌面
关键指标
可用性,资源动态调度能力,VM隔离性,容灾备份的RPO和RTO。

网络虚拟化

技术架构
广义理解,网络虚拟化就是通过软件手段来多路共用同一个物理网络带宽资源,不同的场景下有不同的技术。
代表性的有传统的VPN技术、伴随计算虚拟化出现的VxLAN技术。
此外,在IaaS平台中,广泛采用了OVS或linux bridge,这是网络虚拟化的实现方式。
典型应用
公司校园网的VPN连接,云计算中心大二层VxLAN技术。
关键指标
网络的资源动态调度能力、网络可用性。

容器虚拟化

技术架构
容器是Linux系统特有的技术,简称LXC(LinuX Container)。在资源管理方面依赖 Linux 内核的 cgroups (Control Groups) 系统,cgroups 系统是 Linux 内核提供的一个基于进程组的资源管理的框架,可以为特定的进程组限定可以使用的资源。
因此,容器,就是指令运行所需的资源集合。
容器虚拟化是将由单个操作系统管理的资源划分到不同的容器中,不同的容器可以独立拥有自己的资源也可以公用资源,实现多个不同的资源环境的并行运行。
典型应用
Docker,提供了一种在安全、可重复的环境中自动部署软件的方式。
通俗的讲,不使用容器虚拟化,开发人员开发出程序后,要写明系统运行环境(内核版本、java版本、mysql版本等等),系统部署人员要按此部署出运行环境才能部署程序。Docker简化了这个过程,程序开发完就可以直接移植,相当于程序与开发环境封装在一个容器里,打包移植。
【笔者暂时没有实践,以上是带有猜测的理解。】


容器虚拟化与计算虚拟化


关键指标
隔离性,可移植性,性能。 (由于没有实践,理解不深不全)


【后记】SaaS和PaaS的资料较少,但实现方式上应该是有多种选择的,没有固定的标准,例如,采用Docker来部署SaaS和PaaS环境就是一种实现方式。