1.虚拟化技术概述
1.虚拟化概述
1.定义
在计算机领域,虚拟化指创建某事物的虚拟(而非实际)版本,包括虚拟的计算机硬件平台、存储设备,以及计算机网络资源)可见,虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、存储、网络等)予以抽象和转化出来,并提供分割、重新组合,以达到最大化利用物理资源的目的。
2.作用
简单说,虚拟化技术能将物理资源虚拟化。在传统架构当中,一个物理的主机只能支持一个操作系统及上层应用;有了虚拟化技术,一个物理主机可以被分割成多个虚拟的主机,向上支撑多个操作系统及其应用程序。
传统模式:

虚拟化: VMM为了达到虚拟化引入的软件层

2.虚拟化执行层面分类
从实现的方式上划分
- 硬件虚拟化
- 软件虚拟化

从虚拟化的程度上划分
- 半虚拟化
- 全虚拟化

3.虚拟化技术层面分类
虚拟化是云计算的入门技术,从云计算资源的角度,可以将虚拟化分为:计算虚拟化、存储虚拟化、网络虚拟化。
计算虚拟化
计算虚拟化主要包括CPU虚拟化、内存虚拟化、1/O虚拟化。

存储虚拟化
存储虚拟化主要涉及RAID、分布式存储、分布式文件系统。

网络虚拟化
网络虚拟化主要包含了网络虚拟化和软件定义网络。

4.虚拟化管理工具
虚拟机监控器:VMM
VMM,虚拟机监控器,也称为Hypervisor,为了达到虚拟化而引入的一个软件层。VMM向下能够掌握实际的各种物理资源,向上可以给虚拟机划分逻辑资源,实现了虚拟机独享物理资源的假象。

5.虚拟化技术优势
- 性价比高
虚拟化技术减少了数据中心里服务器和相关硬件的数量,降低IT成本
- 灵活性强
动态迁移技术有效减少迁移成本,服务不中断
- 稳定性强
强大的安全和故障隔离机制,实现同一主机上运行多个应用程序
- 利用率高
避免了服务器使用的浪费,充分利用现有的服务器资源
2.虚拟化技术产品介绍
1.KVM虚拟化解决方案
1.KVM概述
KVM全称是Kernel-based Virtual Machine,基于内核的虚拟机,KVM是采用硬件虚拟化技术的全虚拟化解决方案。
- 它由Quramnet开发,该公司于2008年被RedHat收购。
- 它支持x86 (32 and 64位), s390, Powerpc 等CPU.
- 它从Linux2.6.20起就作为一模块被包含在Linux内核中。
- 它需要支持虚拟化扩展的CPU。
- 它是完全开源的。
2.发展
KVM全称是基于内核的虚拟机(Kernel-based Virtual Machine),它是一个Linux的一个内核模块,该内核模块使得Linux变成了一个Hypervisor:它由Quramnet开发,该公司于2008年被 Red Hat收购。

2.KVM功能概述
KVM从诞生开始就定位于基于硬件虚拟化支持的全虚拟化实现。它以内核模块的形式加载之后,就将Linux内核变成了一个Hypervisor,但硬件管理等还是通过Linux kernel来完成的,所以它是一个典型的Type 2Hypervisor。

KVM的功能特性
- 内存管理
Linux内存管理的机制,如大页、KSM、NUMA、通过mmap的进程间共享内存,可以应用到客户机内存管理上。
影子页表
- 存储和客户机镜像格式
KVM能够使用Linux支持的任何存储来存储虚拟机镜像,包括具有IDE、SCSI和SATA的本地磁盘,网络附加存储,或者支持iSCSI和光线通道的SAN。
- 实时迁移
KVM支持实时迁移,在宿主机之间转移正在运行的客户机而不中断服务。
- 性能
KVM在CPU、内存、网络、磁盘等虚拟化性能上表现出色,大多都在原生系统
的95%以上
3.KVM发展现状及未来趋势
KVM已经成为Openstack用户主流的Hypervisor选择。

经过10年的不断发展和演变,KVM已经非常成熟。KVM未来会怎样进一步发展?

4.其他虚拟化解决方案

Xen

架构
Xen是英国剑桥大学计算机实验室开发的一个开源新项目。它是可以直接运行在计算机硬件上而不是操作系统里的软件层,还可以在计算机硬件上同时运行多个客户操作系统(Guest OS)。在开源社区获得了非常大的推广。Xen支持x86、x86-64、安腾、Power PC和ARM处理器,因而它能够在很多计算设备中运行。现阶段Xen支持Linux、NetBSD、FreeBSD、Solaris、Windows等常见操作系统。Xen在架构上是一个典型的Type1 Hypervisor,与KVM不同。没有宿主机的概念,而是由XenHypervisor(VMM)管理硬件

虚拟化类型---半虚拟化
半虚拟化(Paravirtualization)被称作"超虚拟化"(通称PV),是一种以Xen为主导虚拟化技术。此项技术使虚拟机操作系统可以辨别在Xen虚拟机管理程序上运行,而不是在硬件运行的虚拟机,并鉴别在同样环境里运行的多个虚拟机。

虚拟化类型---全虚拟化
完全虚拟化,又称"硬件虚拟化"(HVM),运行在虚拟环境里的虚拟机总是感觉自己运行在硬件上,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。

VMware
发展

代表性产品
VMware产品线非常全,既有PaaS产品,也有laaS产品;既有运行于Linux平台上的产品,也有Windows和Mac平台上的产品。

HyperV
Hyper-V是微软公司的服务器虚拟化商品,微软公司初次采用了虚拟机管着微软公司将更直接的和市场先峰VMware市场竞争,但仍然有所不同。
Hyper-V是微软公司明确提出的hypervisor虚拟化技术,能够实现桌面虚拟化。Hyper-V最早开始计划在2008年第一季度与Windows Server 2008与此同时发布。Hyper-V Server 2012已完成RTM版本的发布。
架构
HyperV在架构上与Xen类似,也是Type1HypervisorHyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V 底层的Hypervisor 运行在最高的特权级别下,微软将其称为ring-1(而Intel则将其称为root mode),而虚拟机的OS 内核和驱动运行在ring0,应用程序运行在ring3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。
Container
容器严格来说与虚拟化软件并不是一个大类,容器不是某个虚拟化软件,而是某类软件的统称,包括Docker和LXC等。另外,容器不是硬件平台级的虚拟化技术,而是软件运行环境的虚拟化,是一种操作系统级的虚拟化技术。
LinuxContainer容器技术的诞生(2008年)就解决了IT世界里"集装箱运输"的问题。Linux Container(简称LXC)它是一种内核轻量级的操作系统层虚拟化技术。Linux Container主要由Namespace和Cgroup两大机制来保证实现。
技术
Container技术利用了Linux kernel提供的cgroup、namespace等机制,将应用之间隔离起来。

技术特点
与硬件配置抽象层虚拟化hypervisor技术对比,容器的特性非常明显。传统虚拟化(虚拟机)技术不但部署环境与布署应用很麻烦,针对APP运用的可移植性也非常麻烦。例如把vmware中的vm虚拟机迁移到KVM就比较繁琐。但是,拥有容器技术就很简单,容器技术主要有如下的特性:
