以下内容出自《云计算架构技术与实践》第二版,作者是华为首席架构师顾炯炯。
OpenStack是目前最为流行的开源云操作系统框架。自年6月首次发布以来,OpenStack日渐成熟,OpenStack的功能强大而丰富,已经在私有云、公有云、NFV等多个领域得到了日益广泛的生产应用。
什么是OpenStack
OpenStack,是目前最为流行的开源云操作系统框架。
无论是服务器和个人电脑上的Linux、Windows,还是手机上的Android、iOS,都是操作系统的常见实例。与之对应,一个完整的云操作系统,需要管理的,是一个由大量软硬件组成的分布式的云计算系统,而一个普通操作系统需要管理的,则是一台服务器、一台个人电脑,或者一部手机。而OpenStack,则是实现云操作系统的关键组件,或者说,是构建一个完整的云操作系统的框架。
云操作系统框架,不等于云操作系统
要构建一个完整的云操作系统,需要对大量软件组件进行有机整合,让它们协同工作,共同提供系统管理员和租户所需的功能与服务。而OpenStack本身,尚且不能独立具备一个完整云操作系统所需的全部能力。举例而言:OpenStack不能独立实现资源接入与抽象,而需要和底层的虚拟化软件、软件定义存储、软件定义网络等软件相配合;OpenStack不能独立提供完善的应用生命周期管理能力,而需要在上层集成各类管理软件平台;OpenStack自身不具备完整的系统管理维护能力,在投入生产实用时,还需要集成各类管理软件与维护工具;OpenStack自身提供的人机界面,其功能也还不够丰富强大,等等。
由此不难看出,想在OpenStack基础上构建一个完整的云操作系统,需要将OpenStack与其他一些软件组件进行集成,以实现OpenStack自身并不提供的能力。因此,OpenStack自身的准确定位,是一个云操作系统框架。基于这个框架,可以集成不同的各类组件,实现满足不同场景需要的云操作系统,并在此基础上,最终构建完整的云计算系统。
OpenStack与计算虚拟化的关系
计算虚拟化,其对应的软件实现,就是平常所说的Hypervisor(虚拟机器监视器virtualmachinemonitor,缩写为VMM)),如开源的KVM、Xen,以及VMware的vSphere、华为的FusionCompute、微软的Hyper-V等。
OpenStack是一个云操作系统的框架。为构建完整的云操作系统,特别是,为实现资源接入与抽象的功能,OpenStack需要与虚拟化软件实施集成,从而实现对服务器的计算资源的池化。
OpenStack更像是系统的控制中枢,是云操作系统的“大脑”;计算虚拟化软件则更像是系统的执行机构,是云操作系统的“肢体”。二者分工合作,共同完成对云计算系统中的计算资源池的管理,但绝不能认为OpenStack等同于计算虚拟化软件。
OpenStack架构与组成
OpenStack已经日渐成熟和强大,其组成项目也已经大大增多,OpenStack中最为关键和有代表性的部分项目,有以下几项:
1.Keystone:身份认证与授权服务
将计算、存储、网络等各种资源,以及基于上述资源构建的各类IaaS、PaaS、SaaS层服务,在不同的用户间共享,让众多用户安全地访问和使用同一个云计算系统,是一个云操作系统的基本能力。而实现这个能力的基础,就是一个安全可靠的身份认证与授权服务。而Keystone就是OpenStack的身份认证与授权服务项目。
2.Nova:计算服务
向用户按需提供不同规格的虚拟机,是任何一个云操作系统最为基础的功能。而Nova就是OpenStack中负责提供此类计算服务的项目。
3.Ironice:裸机管理
Ironic通过与Nova相配合,共同为用户提供裸机服务能力。例如,当用户发起一个创建裸机操作时,Ironic需要根据Nova调度的结果,对选定的物理服务器执行硬件初始化配置、操作系统安装等一系列具体操作,以完成裸机创建动作。
4.Glance:镜像服务
Glance主要负责对系统中提供的各类镜像的元数据进行管理,并提供镜像的创建、删除、查询、上传、下载等能力。
5.Swift:对象存储服务
对象存储服务,是云计算领域中一种常见的数据存储服务,通常用于存储单文件数据量较大、访问不甚频繁、对数据访问延迟要求不高、对数据存储成本较为敏感的场景。Swift就是OpenStack中用于提供对象存储服务的项目。
6.Cinder:块存储服务
Cinder负责将不同的后端存储设备或软件定义存储集群提供的存储能力,统一抽象为块存储资源池,然后根据不同需求划分为大小各异的卷,分配给用户使用。
7.Neutron:网络服务
Neutron是OpenStack中的网络服务项目。Neutron及其自身孵化出来的一系列子项目,共同为用户提供了从Layer2到Layer7上不同层次的多种网络服务功能,包括Layer2组网、Layer3组网、内网DHCP管理、Internet浮动IP管理、内外网防火墙、负载均衡、VPN等。
8.Heat:资源编配服务
Heat项目的出现,就是为了在OpenStack中提供自动化的应用系统生命周期管理能力。Heat能够解析用户提交的,描述应用系统对资源类型、数量、连接关系要求的定义模板,并根据模板要求,调用Nova、Cinder、Neutron等项目提供的API,自动实现应用系统的部署工作。
9.Ceilometer:监控与计量
Ceilometer项目的核心功能,是以轮询的方式,收集不同用户所使用的资源类型与数量信息,以此作为计费的依据。
10.Horizon:图形界面
Horizon项目是OpenStack社区提供的图形化人机界面,可以满足云计算系统管理员和普通用户的基本需求。
11.Sahara:数据处理服务
Sahara项目,以实现Hadoop、Spark等主流大数据处理集群软件的云化。使用Sahara项目,即便是没有任何大数据处理集群软件安装部署和管理应用经验的用户,也可以以图形化的方式,极其简便地安装部署属于自己的、规模适当的大数据集群,并以简明易懂的方式对自己的数据集进行指定算法的处理,以获取处理结果。
12.Magnum:容器服务
Magnum项目就是OpenStack社区为实现容器集群管理系统的服务化而推出的新项目。使用Magnum,用户可以在基于OpenStack的云计算系统上,实现容器集群管理系统的生命周期管理自动化。