第1章
OpenStack云计算基础
云计算提供的计算机资源服务是与水、电、煤气和电话类似的公共资源服务。亚马逊AWS平台是目前较为著名的商用云计算服务平台,已成为公有云的事实标准,而OpenStack是开源云计算平台的一面旗帜,已成为开源云架构的事实标准。OpenStack旨在简化云的部署过程,实现类似AWS EC2和S3的IaaS(基础设施即服务)。企业可以使用OpenStack来运行核心生产业务,也可以基于OpenStack开发自己的云计算产品。本章首先介绍云计算和Linux虚拟化基础知识,然后讲解OpenStack的项目与版本、架构与运行机制,最后简要说明OpenStack的部署。
1.1
云计算概述
OpenStack 是云操作系统,用于部署云计算平台。学习 OpenStack 首先需要了解云计算的基本知识,理解相关概念。
1.1.1 云计算的概念
在传统模式下,企业建立一套 IT 系统不仅要采购硬件等基础设施,而且要购买软件的许可证,还需要专门的人员维护。当企业的规模扩大时,企业就要继续升级各种软硬件设施以满足需要。这些硬件和软件本身并非用户真正需要的,它们仅仅是完成任务的工具,软硬件资源租用服务能满足用户的真正需求。而云计算(Cloud Computing)就是这样的服务,其最终目标是将计算、服务和应用作为一种公共设施提供给公众。
云(Cloud)是计算机网络、互联网的一种比喻说法。云计算是提供虚拟化资源的一种模式,将以前的信息孤岛转化为灵活高效的资源池和具备自我管理能力的虚拟基础架构,从而以更低的成本和更好的服务形式提供给用户。云计算意味着,IT的作用正在从提供IT服务逐步过渡到根据业务需求优化服务的交付和使用。
云计算是IT系统架构不断发展的产物。早期的IT系统架构是面向物理设备的物理机架构,所有应用都部署和运行在物理机上,资源使用率低,部署和运维成本高。随着物理服务器的计算能力不断提高,为解决这些问题,出现了基于虚拟机的IT系统架构,它面向资源,将应用系统直接部署到虚拟机上。服务器虚拟化是一种可以为不同规模的企业降低IT开销、提高效率和敏捷性的有效方式。虚拟化提高了单台物理机的资源使用率,但并不提供基础设施服务。最新的云计算架构面向服务,将计算、存储和网络类IT系统资源以服务的形式提供给用户,用户只需向云平台请求所需的虚拟机来运行自己的应用系统,无须关心虚拟机在哪里运行,从何处获取存储空间,如何分配IP地址等。所有的一切都由云平台来实现。
云计算可以说是虚拟化技术的升级,通过在数据中心部署云计算系统,可以完成多数据中心之间的业务无感知迁移,并可同时为公众提供服务,此时数据中心就成为云数据中心。云计算旨在通过Internet按需交付共享资源,利用虚拟化实现云计算的所有功能。云计算系统的平台管理技术能够使大量的服务器协同工作,方便进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。服务器虚拟化不是云,而是基础架构自动化或者数据中心自动化,它并不需要提供基础设施服务。虚拟化是构建云基础架构不可或缺的关键技术之一,服务器虚拟化技术可用于云计算,其常见的应用是通过虚拟化服务器将虚拟化的数据中心搬到私有云。当然,一些主流的公共云也都使用这种虚拟化技术。
1.1.2 云计算架构
云计算架构是一个面向服务的架构,云计算包括3个层次的服务:基础设施即服务(Infrastructureas-a-Service,IaaS)、平台即服务(Platform-as-a-Service,PaaS)和软件即服务(Software-as-a-Service, SaaS)。这3种服务代表了不同的云服务模式,分别在基础设施层、平台层和应用层实现,共同构成云计算的整体架构,如图1-1所示。从图中可以看出,云计算架构还包括用户接口(针对每个层次的云计算服务提供相应的访问接口)和云计算管理(对所有层次云计算服务提供管理功能)这两个模块。