本文分享自天翼云开发者社区《虚拟化技术简介》,作者:s****n
在计算机科学中,虚拟化技术(Virtualization)是一种资源管理技术,将计算机的各种物理资源予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个虚拟计算机的配置环境。虚拟化技术是云计算的基础,本文将简介虚拟化技术,同时介绍虚拟化技术在云计算中的重要作用。
虚拟化技术的历史
1959年,牛津大学的计算机教授Christopher提出并论述了虚拟化技术概念,从此拉开了虚拟化发展的帷幕。但受限于服务器架构局限,当时的虚拟化技术发展不足。1998年,VMware软件公司成立,并推出VMware Workstation和ESX Server等虚拟化产品,成为行业领导者。目前主流商业虚拟化产品有VMware、Virtual PC以及开源产品Xen等。虚拟化技术起源于欧美国家,国内虚拟化相关的商业和科研起步相对较晚。近几年,国内云计算领域的快速发展,也推动着虚拟化相关技术和产品的进步[1, 2]。
HYPERVISOR
在虚拟化技术中,有一种软件可以让物理服务器拥有多个虚拟机实例,它被称为Hypervisor。这些实例是在虚拟化环境中创建的虚拟机,管理程序负责监督和控制这些机器进行通信、资源共享和重新分配虚拟机。管理程序有两种类型。第一个称为裸机管理程序,第二个称为托管管理程序。如图1所示,第一种类型直接安装在硬件上并控制所有资源。管理程序在虚拟机之间共享资源,并根据策略对其进行划分。在图2中,我们可以看到其他类型的虚拟化,即我们可以将其安装在具有正常硬件和软件的传统系统上[3]。
图1 裸机管理Hypervisor[3]
图2 托管管理Hypervisor[3]
网络虚拟化
在云网通信中,物理设备通过物理连接进行连接,可以与其物理网卡进行通信,而虚拟设备使用分布在主机内部的虚拟网卡。当两台虚拟机需要通过网络进行通信时,有两种场景。第一种场景是同一物理主机上的两个虚拟机之间的通信。在这种情况下,所有设备都将是虚拟设备,如虚拟交换机或虚拟防火墙。在第二种场景中,两台虚拟机位于不同的物理主机上,其通信是物理通信和虚拟通信的结合[3]。网络虚拟化技术可以减少了数据中心技术人员在布线和维护电缆上花费的时间。同时通过网络虚拟化技术,网络资源具有动态可扩展性。
存储虚拟化
为了使存储虚拟化,物理存储不能直接连接到服务器;它们通过网络连接到服务器。存储虚拟化最受欢迎的协议之一是存储区域网络(SAN)和网络附加存储(NAS)。对于快速交互的使用光纤通道和他们使用的协议是iSCSI。这些协议允许使用TCP/IP协议在网络上访问块存储。他们使用TCP进行可靠的通信。存储虚拟化还依赖于一个冗余的独立磁盘(RAID)技术来保护在任何物理故障中丢失的数据。在新的虚拟存储系统中,他们使用最新的技术,称为独立节点(RAIN)的冗余数组,而不是RAID。这种新技术即使有几个服务器下降,也帮助了数据的可用性。存储虚拟化的重要点是隐藏数据在云环境中的位置。对于这个存储虚拟化的重要点,将逻辑存储映射为数据的物理存储块[1, 3]。
内存虚拟化
在虚拟化概念中,我们也有一个虚拟内存环境。加载到不同虚拟机的客户操作系统,使用虚拟地址,这些地址将映射到物理内存地址。但是,客户操作系统不能直接访问实际的物理内存,负责控制这个操作是一个管理程序。Hypervisor是将虚拟设备映射到物理设备的虚拟化的核心。在现实中,有三种不同类型的内存:一个是由客户OS使用的,称之为虚拟内存,另一个内存在管理程序中处理,可以把它称为真实内存,最后一个是物理内存[3]。客户将虚拟内存映射到由管理程序控制的真实内存。在此之后,真正的内存或hypervisor内存映射到物理内存。
虚拟化在云计算中的重要性
虚拟化在云计算中扮演重要角色,它主要有以下几个作用:
1.提供虚拟机。所有操作系统和应用程序都是运行在虚拟机中的,这为云计算提供了基础。
2.帮助实现高可用性。通过虚拟机的动态分配和负载均衡,可以提高云服务的可用性。 如果某个服务器出现问题,可以将虚拟机迁移到其他服务器上,用户端感知不到中断。
3.促进可扩张性。通过动态调整虚拟机的资源(如CPU、内存等),可以按需扩张或收缩云计算服务,实现水平和垂直可伸缩。
4.提高资源利用率。通过将多台物理服务器虚拟化,有效合用资源,提高硬件资源利用率。
5.加强隔离性。虚拟机之间相互隔离,可以有效地在同一物理机上运行多个操作系统或应用,保证各自独立。
6.降低总拥有成本。通过虚拟化,可以实现服务动态分配,节省资金投入。
总结
虚拟化技术历经几十年的发展,已经成为一个非常重要的计算机技术。利用虚拟化技术可以生成虚拟机,并把网络、存储和内存资源虚拟化。虚拟化技术在云计算中扮演总要角色,是云计算蓬勃发展的基础。