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.