OpenStack入门之核心组件梳理(2)——新星篇

  

OpenStack入门之核心组件梳理(2)——新星篇

  

前言

  

?上篇文章我们从概念到原理,层层递进深入讲述了重点项目,而本文旨在继续介绍OpenStack核心组件之一的新星组件项目。

  

?相对于重点项目,Nova项目是作为OpenStack这个大开源项目最早也是最成熟的项目,从这一层面上也体现出新星项目所提供的计算服务从始至终都是OpenStack最为核心的部分,笔者在之前的文章中谈到OpenStack这一开源项目所提供和管理的三大资源就是计算,网络和管理。这同样也是云计算的核心部分。

  

?从笔者个人理解和观点来看的话,对于OpenStack而言,其真正的灵魂(可以理解为OpenStack中组件的复杂程度,使用概率以及故障出现概率等方面)一是在于宏观(这里“宏观的意思是相对早期版本的OpenStack平台而言”)的新星(计算服务),二是在于相对其他服务最为复杂的中子网络服务(之后的文章也会针对该组件进行详细介绍),这里不包括CEPH分布式存储,因为CEPH本身就是可以认为是一个独立的大项目,其作用不仅仅是OpenStack中迅速(对象存储服务)的高效分布式集群存储的替代,还包括与其他技术的结合和支持等作用。但是无论在实验环境还是生产环境部署OpenStack云平台基本上选择CEPH作为分布式存储服务,当然在此个人补充一下,若是要进行OpenStack实验环境部署的话,对PC所配的硬件资源要求还是比较高的,包括CPU、内存,存储(最好是SSD),笔者所配的基础硬件资源是i79代CPU, 32 g内存(三级缓存达到9米),1 t的SSD M.2接口的固态盘,网络是家用百兆宽带,当然在实验环境中未必需要过高的配置,可以相对降低一些要求,不过如果要想体验感较好的话还是高配比较好,如果是决定从事这一方向的工作人员,可以购置服务器来模拟生产环境,这对初学者并不推荐哈。

  

?闲话就不再多说了,接下来笔者将从其概念概述,主要组件,架构模式,工作原理四个方面介绍新星项目。

  

一、新星概述与发展

  

1.1新星概念介绍

  

?Nova项目,作为OpenStack核心项目,提供着十分重要的计算服务,虽说在其发展过程中,部分核心组件在后来独立成为其他的核心项目及服务,但是新星自身的核心地位也是非常之高的,因为了解OpenStack基础理论的朋友都知道OpenStack作为一种IaaS(基础设施即服务)的云计算服务,其最为核心的服务资源就是计算,存储和网络,而计算服务居于首位,在OpenStack云平台部署上,则正是通过新星项目实现其计算服务的。

  

?之所以前言部分从宏观角度说新星项目对于OpenStack是最核心也的项目之一是有其具体原因的。在早期的OpenStack版本中,项目并不是一次规划好的,而新项目在初期就将存储和网络包含于自身,及nova-volume和nova-network模块,即后期独立出的煤渣(块存储服务)和中子(网络服务)。

  

1.2新星发展历程及具体作用

  

?Nova项目从最初为云供应商提供实现IaaS服务的解决方案的初衷,到如今聚焦于大规模可扩展,高可用,可弹性伸缩服务和自助服务的目标,新星一直在被优化改进升级。在2010年OpenStack项目成立之初,Nova项目主要分为Nova-Compute, Nova-volume和Nova-network三大功能模块。在2012年9月OpenStack的福尔松的版本发行时,OpenStack社区才将Nova-volume和Nova-network独立出来分别构建了煤渣和量子项目(后因商标原因更名为中子项目)。

  

?综上而言,Nova作为核心项目,在Linux服务器上作为一组守护程序运行。当然也需要依赖其他服务从而实现功能,下面讲解原理会着重介绍。其具体的功能主要的是:负责管理实例虚拟机的生命周期,网络管理,存储卷管理.Nova支持创建虚拟机,裸机服务器(通过使用讽刺),并且新星计算资源的使用限额以项目为单位进行限制。

  

?

  

二,新星的主要组件

  

?Nova同梯形一样,有组成自身的功能模块,其是由负责不同功能的服务进程构成,新星对外提供的服务接口为REST API,其内部组件模块之间的通信基于RPC(远程过程调用)消息传递机制的。

  

?下面来看一下组成新星的一些主要组件:

  

2.1 Nova-API

  

?Nova API服务组件。接收并响应最终用户的计算API调用请求,当其接收到请求后,通常将请求转发给新星的其他组件进行处理,例如Nova-scheduler。

  

?其遵循特定的策略并初始化大部分的编排操作,例如创建实例。

  

2.2 Nova-API-Metadata

  

?Nova API服务组件.Nova-API-Metadata服务主要是用于接收来自实例的元数据请求。

OpenStack入门之核心组件梳理(2)——新星篇