购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 云计算的系统架构

了解系统架构是对云计算进行深入研究的必要前提。但是云计算系统架构具有一定的复杂性,主要体现在系统对软/硬件资源的应用、管理、交付等方面的处理具有多种方式,因此针对不同的场景,其架构存在着可变性。

从本质上看,云计算系统和传统PC系统之间存在着可类比性,因此借鉴传统 PC 系统的层次化架构将有助于对云计算的系统架构进行剖析。

2.1.1 传统的PC系统架构

出于技术实现和产业化生产的考虑,当前的PC系统具有清晰的层次化架构。

如图2-1所示,传统的PC系统架构通常由硬件资源、操作系统和软件3个层次组成。硬件资源层包括执行计算任务所需的处理器、内存、存储、网络等硬件资源。操作系统层包括用于进行软/硬件资源管理的操作系统软件。软件层可以被更详细地划分为系统软件层和和应用软件层:系统软件层包括如应用中间件、数据库软件、语言虚拟机等用于构建应用程序运行环境的软件及用于支持应用程序运行的库函数等软件资源,应用软件层指那些能够直接被用户运行或使用的软件。

在PC系统架构的各个层次中,操作系统层是整个架构的核心,其主要功能包括硬件资源管理、软件任务管理、文件系统管理等。

操作系统硬件资源管理的目标是对硬件资源进行操作并使之透明地被用户使用。硬件资源包括处理器、内存、I/O设备(例如类似磁盘的块设备、类似网卡的字符设备及其他常用外设)等。其中,对处理器的使用与控制主要通过对处理器上的任务进行合理调度来完成,对I/O设备的使用与控制主要通过硬件中断机制完成。在目前的操作系统中,特别值得关注的是操作系统对内存资源的管理,因为在 PC 系统中具有高速读/写和访问能力的内存资源比较少,所以操作系统会将在物理上互相隔离的内存资源虚拟成地址连续的内存空间来满足应用程序的需求。

图2-1 传统的PC系统架构

操作系统软件任务管理的目标是使软件任务能够在执行过程中获得最优的资源份额。目前的主流操作系统普遍支持应用程序的进程/线程执行模型,因此,操作系统的软件任务管理就是要控制进程/线程的生命周期状态和资源分配情况,其中最重要的是要解决进程/线程的调度问题,即哪个任务要以什么样的顺序被执行、执行时间是多长等。另外,随着底层硬件资源提供了对多核处理器的支持,在多个进程/线程同时执行的环境中如何确保系统的一致性,也是操作系统软件任务管理中需要解决的关键问题。

操作系统的文件系统管理的目标是屏蔽底层的存储资源细节,使用户能够方便地以文件形式访问存储资源。其实,文件系统就是一种存储资源管理机制,它对底层硬件存储资源进行了高层抽象,将其以文件的形式提供给用户使用。用户在利用文件系统对文件进行操作时,只需要通过文件名称、文件元数据(例如文件修改时间、文件长度等)等逻辑信息即可完成对存储资源的利用和管理,无须考虑底层硬件的实现。

2.1.2 云计算的系统架构

虽然业界对云计算系统的表述有多种不同的观点,但是从本质看,“云”可以被视作一台能力超强的大型计算机。这台依托在网络之上的计算机,拥有海量的硬件资源,具有强大的资源管理能力和应用承载能力,能够高效地运行应用软件。因此,云计算系统和传统的PC系统具有可类比性,如图2-2所示。

图2-2 云计算系统和传统PC系统架构对比

通过借鉴传统的PC系统架构特征并进行相关功能的类比,就可以建立云计算系统的层次化架构。

图2-2中的两个架构的最底层都是用于支撑上层软件执行的硬件资源层。但与传统PC系统不同的是,云计算系统在这一层中除了具有传统的物理硬件资源外,还具有另外一类特别重要的虚拟化资源。这些基础资源以“池”的方式存在,这意味着它们是“取之不尽,用之不竭”的,能够实现资源的按需配给。传统PC系统的硬件资源组织形态是彼此隔离、相对独立的,每台PC都具有独享的、通过总线在系统内部互连的处理器、内存、磁盘等资源。而云计算系统的目标则是资源规模最大化。它通过网络连接了大量的计算资源和存储资源,进而对它们进行统一的管理。相比物理硬件资源,虚拟化资源在管理上更具有便利性和灵活性,在构建云计算资源池时担当了非常重要的角色。

无论是传统的PC系统还是云计算系统,在硬件资源层之上都需要一个承上启下的层次来提供对底层硬件资源的管理和对上层应用软件执行的支持,这就是操作系统层。和传统的操作系统一样,云操作系统的主要功能包括云基础资源组织与调度、云软件任务管理与控制、云文件系统管理等。

相比传统的操作系统,为满足对系统中的“池”化资源进行统一管理的需求,云操作系统对下层的云基础资源的管理更具复杂性。海量的资源(包括物理硬件资源和虚拟化资源)是云计算系统的优势。特别是虚拟化资源,因为它屏蔽了底层硬件的实现细节,所以更便于管理。这些资源在被使用时可以具有多种灵活的组织方式,总的说来可以分为两类:一类是虚拟机,即将相关的计算资源和存储资源按照传统PC系统的硬件资源层的构成方式组建成一个相对封闭的虚拟机硬件环境;另一类是分布式集群,它在多台物理机或者虚拟机的基础上,进一步利用网络资源将这些资源互连,构成分布式集群,然后通过部署相关管理软件对集群进行统一管理。这两类不同的资源组织方式具有不同的粒度和不同的资源呈现方式,能够实现对硬件资源的有效管理,并为上层云软件的运行提供相应的支持。

云操作系统对软件任务的管理和控制受底层基础资源组织形式的影响。对于虚拟机而言,它的硬件环境在使用上与传统PC系统的硬件环境没有任何差异,通过安装传统的操作系统就可以支持上层传统软件的运行并对其进行管控;对于分布式集群而言,为了提高效率,其上的软件往往是分布式地运行在集群中的不同节点上的,并能通过网络进行通信,因此管控软件运行的复杂度更高。云操作系统对分布式软件的管控除了包括传统的软件任务生命周期管理外,还需要额外关注软件在分布式集群内的调度、通信、同步等问题,而云操作系统在解决这些问题时采用的方法会直接影响分布式集群上软件模型的设计与实现。

为了方便用户对存储资源进行访问和操作,与传统操作系统类似,文件系统也是云操作系统中不可或缺的重要组成部分。同样,根据底层云基础资源在组织形式上的差异,云操作系统的文件系统也有不同的类型。在虚拟机环境中,每台虚拟机的文件系统可以是传统PC操作系统中的文件系统,它在操作系统的控制下管理和应用本台虚拟机所属的磁盘资源;而在分布式集群中,则需要使用分布式文件系统对集群中所有的底层存储资源进行抽象,进而形成统一的文件资源视图供用户使用。无论是哪种形式的文件系统,都是一种对存储资源的管理机制,同时,还要为上层软件提供与文件访问、编辑相关的应用程序接口。

在如图2-2所示的架构中,云操作系统之上是云软件层。与传统的PC系统类似,云软件层也可以被更细地划分为云系统软件和云应用软件。

云系统软件层与传统操作系统中的系统软件层类似,都是由直接支持上层云应用软件执行的功能软件组成的。根据云操作系统层对基础资源进行管理时采用的不同的资源组织方式,云系统软件层的实现也有差异:对虚拟机而言,它提供的硬件环境和操作系统等软/硬件支持与传统PC系统相同,因此部署在其中的系统软件可以包括传统PC系统中的各类系统软件资源,例如应用服务器、数据库等;对分布式集群而言,它所呈现的是由多台传统PC连接而成的分布式集群,因此部署在其上的系统软件主要是用于支持分布式应用软件运行的分布式系统软件,例如分布式数据库等。分布式系统软件强调的是可扩放性,能够根据上层应用的规模进行动态的调整,依赖于底层云基础资源和云操作系统的支持。

云应用软件层也与传统操作系统中的应用软件层类似,它们的上面都运行着用户所需的应用软件。但是,传统PC系统中的应用软件往往只是利用本机资源,或者通过网络,在一个有限的范围内获取一些执行所需的数据。而在云计算系统中,随着硬件部署、资源组织、执行环境及用户需求的变化,应用软件的设计与实现都与传统PC系统有所差异。特别是用户需求的改变,对云计算系统中运行的应用软件产生了深刻的影响。

在参考传统PC系统架构的基础上建立云计算系统的层次化架构是行之有效的方法。根据图2-2的类比,可以发现,两个架构的相应层次在功能上具有相似性,同时,云计算系统具有很多自己的特点。层次化的架构可以帮助读者对云计算系统产生更全面、更清晰的认识,特别是有助于读者理解本书后续对云计算系统的服务模式和关键技术体系的更深入的剖析。 p0ndNPwO6ZvEzUe8YLFXs20zGHhGzoZ2yDj+2Y6/oIBExi7RUWjqjE/Mk/YVEGPN

点击中间区域
呼出菜单
上一章
目录
下一章
×