OpenStack初步学习(一)

a.基本概念

  OpenStack是Rackspace和NASA共同发起的开源项目,是一系列开源软件项目的组合。

  OpenStack是基础设施(IaaS)资源的系统管理平台,是开源的云计算平台,按需分配资源。

  OpenStack由python语言开发,可以单独运行,不会存在单点故障,但安装较为复杂。

  通常OpenStack由许多硬件节点组合而成,包括控制节点、计算节点、网络节点等。

  AllInOne是最基本的模式,即单点部署,将所有必要组件安装到一台硬件节点上。

b.基本模块及原理

- 可根据IaaS模型将其分为五个层:表示层、逻辑控制层、资源层、集成层、管理层。<br>


|服务|简介|  
|---|---|
|Horizon-UI模块|管理控制台:将用户在管理控制台上的所有操作转化为对后台API的调用|
|keystone-身份服务模块|身份认证与权限控制,是控制核心。<br> 了解一些概念:User,Tenant,Role,Service,endpoint,Token.<br>Identity服务验证了身份,是否为合法用户。<br>Token服务验证管理用于验证请求身份的令牌。<br>Catelog服务提供了可用于端点发现的服务注册表。<br>Policy服务提供了一个基于规则的身份验证引擎,决定每个用户有哪些访问权限。|
|Nova-计算服务|实例生命周期管理<br>计算资源管理,云计算的核心思想<br>向外提供REST风格的API<br>nova-schedule、nova-compute、nova-api|
|Glance-镜像服务|提供虚拟机镜像的存储、查询和检索服务;<br>为nova组件提供服务,通过nova创建虚拟机的时候,就必须通过Glance获取相应的镜像;<br>依赖于存储服务(镜像)和数据库(与镜像相关的元数据)。|
|swift-对象存储服务|高可用分布式对象服务<br>无限可扩展,没有单点故障(有动态备份)<br>任何的object都可以被描述成为某一个账户下面的某一个容器里的没有个对象|
|Cindert-块存储服务|管理所有的块存储设备,为VM服务|
|Neutron-网络服务|提供云计算环境下的虚拟网络功能<br>给每个租户独立的网络环境|

- 组件关系

  ![这里写图片描述]()

  - Dashboard 表示层 几乎所有的请求都会通过它发送到其他模块
  - Keystone 集成层模块  几乎所有模块都需要关联
  - 对象存储组件并不是直接与虚拟机关联
- 访问流程


  一个用户需要创建一个新的VM,首先他就需要向keystone发送一些他的认证信息,通过keystone的认证,返回一个token,用户就可以发送创建VM的请求(+token),发送给Nova,Nova首先到keystone上进行验证,对请求进行处理,向Glance请求一个镜像,Glance验证token,查询相应的image,返回给nova,nova向neutron(quantum)申请相应的网络资源,Neutron验证token,返回资源给nova,nova创建VM.