首页 理论教育云安全深度剖析:虚拟化与云计算应用实践

云安全深度剖析:虚拟化与云计算应用实践

【摘要】:正是因为虚拟化技术的种种优势,虚拟化技术已经逐步成为云计算服务的主要支撑技术。可以说,虚拟化和云计算正在共同重塑数据中心格局,云数据中心通过服务器虚拟化和应用虚拟化等形式,不但能有效提高各种资源的利用率,同时也赋予了业务管理更大的灵活性。随着需求的增长与云计算技术的出现,虚拟化和云计算聚焦于统一存储。

虚拟化技术允许在一台物理节点上同时运行多个不同的虚拟机,虚拟机共享使用的系统资源可以根据物理集群中的计算状态进行相应的调整,形成一种可伸缩的、可迁移的虚拟计算特性。这些虚拟机可以不因物理集群和物理机器的体系结构、计算能力的差异而丧失其计算能力。这样的虚拟特性和MapReduce框架形成天然的结合,使得云计算具有更加强大的可扩展性和健壮性。

1.虚拟化与云计算的关系

作为当今流行的虚拟化技术已在云计算中被广泛使用,但是,虚拟化与云计算之间到底存在着怎样的关系呢?

虚拟化技术在长期的使用中已经渗透到各行各业,而云计算是近年来随着处理器技术、分布式技术和互联网技术的发展而产生的一种新的分布式计算模型,力图改变传统的计算系统的占有和使用方式。

云计算的特点之一是多租户架构,即不同的用户共享一个物理主机的软硬件资源,如果不能保证多个用户之间的有效隔离,那么用户的使用体验可能受到影响,数据隐私可能受到侵犯。如果采用虚拟化技术,用户的每个应用或服务单独在一个虚拟机环境内,这样不同虚拟机之间就有较强的隔离。

云服务提供商对外提供服务的服务模式是“按需使用,按使用付费”。因此,云计算供应商通常都会引入虚拟化技术。因为利用虚拟化,他们就能获得灵活的基础设施以提供终端用户所需的灵活性。

数据中心具有规模巨大的硬件资源,而且这些硬件资源之间还各不相同,这为管理员对硬件资源进行统一管理带来了很大的麻烦。而虚拟化技术可以很好地屏蔽云数据中心硬件资源之间的差异,可以对硬件资源进行抽象为池化的虚拟化资源,方便管理员进行统一管理。

虚拟化技术能够使用户不再关心特定应用软件的服务方式,不用关心计算平台的操作系统以及软件环境等底层资源的物理配置与管理,可以方便地实现真正意义上的软件即服务、平台即服务和基础设施即服务。

正是因为虚拟化技术的种种优势,虚拟化技术已经逐步成为云计算服务的主要支撑技术。大部分云计算解决方案都采用了虚拟化技术。可以说,虚拟化和云计算正在共同重塑数据中心格局,云数据中心通过服务器虚拟化和应用虚拟化等形式,不但能有效提高各种资源的利用率,同时也赋予了业务管理更大的灵活性。但需要指出的是,云计算和虚拟化并非捆绑技术。

2.服务器虚拟化

服务器虚拟化是被广泛接受和认识的一种虚拟化技术,通过虚拟化可以实现操作系统和物理计算机的分离,使得在一台物理计算机上可以同时安装和运行一个或多个虚拟机。

目前,在大规模计算资源集中的云数据中心大量使用以x86架构为基准的服务器。如果出于安全、性能上的考虑,可以使这些服务器只运行一个应用服务,但这必然导致服务器利用率低下。由于服务器通常具有很强的硬件能力,因此可以通过虚拟化技术将整个数据中心的计算资源统一抽象出来,形成可以按一定粒度分配的计算资源池,提高服务器的资源利用率,降低运行成本。

服务器虚拟化是基础设施即服务的基础。因此,服务器虚拟化需要具备以下功能和特点[24]

1)多实例。多台虚拟服务器共用一个物理服务器。

2)隔离性。在多实例的服务器虚拟化中,不同虚拟机之间完全隔离,以保证系统的可靠性及安全性。

3)CPU虚拟化。将物理CPU抽象成抽象计算单元。这样,多个虚拟机可以同时提供服务,进而提高物理CPU的利用率。

4)内存虚拟化。统一管理物理内存,将其包装成多个虚拟的物理内存分别供给若干个虚拟机使用,使得每个虚拟机拥有各自独立的内存空间,互不干扰。

5)设备与I/O虚拟化。统一管理物理机的真实设备,将其包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。

6)透明故障恢复。运用虚拟机之间的动态迁移技术,可以使一个故障虚拟机上的用户在没有明显感觉的情况下转移到另一个正常运行的虚拟机上。

7)动态调度资源。在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以及时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况来分配调整给虚拟机的资源。

8)统一管理。由多个物理服务器支持的多个虚拟机的动态实时生成、启动、停止、迁移、调度、负荷和监控等,应当有一个方便易用的管理界面。比如管理员可以通过写时复制技术,轻松地在一台计算机上部置多个虚拟机。

3.存储虚拟化

存储虚拟化的是伴随大型计算机的发展而出现的一个概念。早在20世纪70年代,由于当时存储设备的容量小、价格高,大型应用程序或多程序应用都受到了极大的限制。为克服这一局面,人们开始采用存储虚拟化技术。

SNIA给出的存储虚拟化定义是:“通过将存储系统/子系统的内部功能从应用程序、计算服务器及网络资源中进行抽象、隐藏或隔离,实现独立于应用程序、网络的存储与数据管理”。通俗地讲,存储虚拟化就是把底层存储介质模块如硬盘、磁盘阵列RAID等通过一定的手段集中起来管理,所有的存储模块在一个存储池中得到统一管理,为使用者提供大容量、高数据传输性能的存储系统。

随着需求的增长与云计算技术的出现,虚拟化和云计算聚焦于统一存储。存储虚拟化将整个云系统的存储资源进行统一整合管理,为用户提供一个统一的存储空间。而且,云计算在概念上延伸和发展出了一个新概念,即云存储。云存储是指通过集群应用、网格技术或分布式文件系统等技术,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。

根据云存储的构成,可将虚拟化存储的模型划分为图3-13所示的三层结构。(www.chuimin.cn)

978-7-111-53353-5-Chapter03-13.jpg

图3-13 虚拟化存储的三层模型

(1)物理设备虚拟化层 主要用来进行数据块级别的资源分配和管理,利用底层物理设备创建一个连续的逻辑地址空间,即存储池。

(2)存储节点虚拟化层 可实现存储节点内部多个存储池之间的资源分配和管理,将一个或者多个按需分配的存储池整合为在存储节点范围内统一的虚拟存储池。

(3)存储区域网络虚拟化层 可实现存储节点之间的资源分配和管理,集中地管理所有存储设备上的存储池,以便组成一个统一的虚拟存储池。

上述三层虚拟化存储模型大大降低了存储管理的复杂度,有效地封装了底层存储设备的复杂性和多样性,使系统具备了更好的扩展性和灵活性。用户只需将存储设备添加到存储池中并进行简单配置,就可以创建虚拟卷,而不必关注系统中单个设备的物理存储容量和存储介质的属性,从而实现统一的存储管理。

4.应用程序虚拟化

对于应用程序如微软的Office的虚拟化来说,具体操作流程如下:Office软件应用程序被安装在服务器中,但可以被众多用户远程使用。与安装在个人计算机中的Office应用程序所不同的是,在应用程序虚拟化中,用户是通过网络中的虚拟机制实现对Office应用程序的调用。一旦终端用户在虚拟机中开始使用Office应用程序,Office应用程序将被存储在缓存里,这样节省了服务器和终端用户个人计算机之间的传输过程,同时在离线状态下用户依然可以使用Office应用程序。

从实现机制来看,应用程序虚拟化是把应用对底层系统和硬件的依赖抽象出来,从而解除应用程序与操作系统和硬件的耦合关系。应用程序虚拟化是软件即服务的基础。应用程序虚拟化需要具备以下功能和特点[21]

1)独立性。对于终端用户来说,虚拟应用程序之间是相互独立的,所以利用应用程序虚拟化不会出现应用程序之间相互冲突的现象。

2)共享性。应用虚拟化可以使一个应用程运行在任何共享的计算资源上。

3)虚拟环境。应用虚拟化为应用程序提供一个虚拟的运行环境,不仅拥有应用程序的可执行文件,还包括所需的运行环境。

4)兼容性。虚拟应用应屏蔽底层可能与其他应用产生冲突的内容,从而使其具有良好的兼容性。

5)快速升级更新。真实应用可以快速升级更新,通过流的方式将相对应的虚拟应用及环境快速发布到客户端。

6)用户自定义。用户可以选择自己喜欢的虚拟应用的特点以及所支持的虚拟环境。

但是,应用程序虚拟化也存在一些缺陷,如部署及使用应用程序虚拟化需要消耗更多的服务器资源;虚拟环境下的终端运行应用程序时可能会出现延迟的现象,所运行的应用程序规模越大,延迟现象越明显。

5.平台虚拟化

平台虚拟化是集成各种开发资源虚拟出的一个面向开发人员的统一接口,软件开发人员可以方便地在这个虚拟平台中开发各种应用并嵌入云计算系统中,使其成为新的云服务供用户使用。平台虚拟化通常具备以下特点[21]

1)通用接口。支持各种通用的开发工具和由其开发的软件。

2)内容审核。各种开发软件在接入平台前都将被严格审核,包括身份认证,以保证软件及服务的合法性。

3)测试环境。新服务在正式推出之前必须在一定的测试环境中经过完整的测试。

4)服务计费。合理计费系统可以保证服务提供人获得准确的收入,而虚拟平台也可以得到一定比例的管理费。

5)升级更新。允许服务提供者不断完善自己的服务,平台要提供完善的升级更新机制。

6)管理监控。平台需要有一个完善的管理监控体系以防出现非法行为。