A02. openstack架构实战-组件解析

 

 

 组件关系图1

组件详解:

Nova:管理vm的生命周期,是openstack中最核心的服务

Neutron:为openstack提供网络连接服务,负责创建和管理L2,L3网络,为vm提供虚拟机虚拟网络和物理网络连接

Glance:管理vm的启动镜像,Nova创建vm时将使用glance提供的镜像

Cinder:为提供快存储服务。cinder提供的每一个volume在vm看来就是一块虚拟硬盘,一般用作数据盘

Swift:提供对象存储服务。vm可以通过RESTful API 存放对象数据,作为可选的方案,glance可以将镜像存放在swift中;cinder也可以将Volume进行备份到swift中。

Keystone:为openstack的各种服务提供认证和权限管理服务,简单的说,openstack的每一个操作都必须通过keystone的审核。

Ceilometer:为openstack提供监控和计量服务,为报警、统计 或计费提供数据。

Horizon:为Openstack用户提供一个web的自服务Portal

Heat:编排服务,剧本playbook;定义多个虚拟机所需要的虚拟硬件等,一键用来部署多个虚拟机

 

组件分析详解:

1:Horizon

 

 

 

Horizon是openstack整个应用的一个入口,提供一个web UI 的方式来访问、控制他们的计算、存储、和网络资源:如创建和启动实例、分配IP地址等。 Horizon为两种用户提供了两种不同的功能界面:

1. 云管理员:提供了一个整体的视图可以总览整个云的资源大小及运行状况,可以创建终端用户和项目,向终端用户分配项目并进行项目的资源配额管理;

2. 终端用户:提供了一个自主服务的门户,可以在管理员分配的项目中,在不超过额定配额的限制内,自由操作、使用和 存储网络资源;

 

 

 

 

 

2:keystone

keystone的功能

认证管理:用户名密码

授权管理:权限管理,为每个openstack服务提供认证和授权:用户、租户,角色管理

服务目录:为每个服务提供API endpoint,为每个服务维护相应的用户特殊的服务租户,名称为service

 

 

 

所谓的服务目录:我们后端会创建很多用于openstack使用的服务,glance,nova等,当我们没创建一个服务的时候,我们需要到keystone进行注册,由keystone进行记录后端的服务地址,当用户需要使用的时候,只需要根据keystone的地址去查找后端服务就可以,不需要在一个一个详细记录后端服务的地址

 

Keystone身份验证/授权过程示例

             

 

 

  1. horizon以用户证书向keystone发送HTTP认证请求
  2. keystone使用临时令牌验证凭证和回复
  3. Horizon将包含令牌的POST请求发送给nova以开始配置虚拟机 
  4. nova将验证令牌发送给keystone进行验证
  5. keystone进行验证nova发送的令牌,并回复确认
  6. nova将附加的令牌转发给glance请求
  7. glance发送令牌给keystone进行验证
  8. keystone验证令牌之后,需要返回glance一个密钥
  9. glance提供镜像信息给nova
  10. nova用零盘向neutron发送网络请求
  11. neutron发送令牌给keyston进行验证
  12. keyston再次验证令牌
  13. neutron向nova提供网络相关信息
  14. nova报告vm供应请求的状态

 

 

 

 

 

3:glance

openstack glance是一种提供发现注册和下载的镜像服务;也是一种提供虚拟机的集中式仓库。通过Glance的Restful APi,可以查询镜像元数据下载镜像

 

glance的体系结构

 

 

 Glance有一下几个组件:

glance-api:主要用来接收镜像,发现,查询,和存储镜像的api调用

glance-registry:存储,处理和查询镜像的元数据信息

database:存储镜像元数据

 

glance支持的镜像格式:

 

 

 

qemu-img convert命令可以转换各种格式:

例如:qemu-img convert -f vmdk -o raw centos64.vmdk  centos64.raw

 

4:Neutron体系结构

 

 

 1:虚拟网络服务

提供api来定义网络连接和ip地址,被其他服务使用例如nova

2:抽象物理网络

允许插件来配置和管理物理资源,屏蔽底层物理的多样性,使用统一的api接口来管理

3:支持每个用户配置多个私有网络,允许自行选择ip范围

 

neutron功能:

1:分离网络的逻辑(用户)与物理(提供商)视角

2:创建和管理虚拟网络的api

3:L2/L3联网

4:FW

5:LB

6:vpn

7:nova集成

创建虚拟网络,subnet,port,vroute

 

neutron组成:

 

 

 neutron server (neutron-server and neutron-*-plugin)提供网络API,包括对L2 networking和IP地址管理的支持,同时支持创建L3路由器,连接L2网络和外部网络。网络服务提供各种商业和开源网络支持的插件,包括路由器,交换机,虚拟路由器和SDN控制器。负责插拔端口,创建网络和子网,提供IP地址。用户可针对自身需求选择相应的插件。需要注意的是,同时只能使用一个插件。plugin agent (neutron-*-agent)运行在每个计算节点上,管理本地的vswitch。DHCP agent (neutron-dhcp-agent)为租户网络提供DHCP服务L3 agent (neutron-l3-agent)为租户网络提供L3/NAT转发服务network provider services (SDN server/services)提供额外网络服务。比如VPN, 防火墙,负载均衡器等Messaging queue处理各agents之间的RCP请求。ML2 plugin中的消息队列,为neutron server和neutron agents提供RCP服务。ML2 mechanism drivers中的消息队列为Open vSwitch和Linux bridge提供RPC服务。

 

5:glance

 

 为虚拟机提供永久性块存储

使用iscsi或者fc和存储通信

支持nfs和cifs文件系统

 

cinder结构体系:

 

 

 cinder-api:负责接受和处理Rest请求,并将请求放入RabbitMQ队列

cinder-schedule:处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。

cinder-volume:该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。为了支持不同类型和型号的存储,Cinder为Volume Service支持不同类型的后端driver,如ceph, remotefs等

cinder-backup:该服务运行在存储节点上,管理卷备份。当前支持swift,ceph,nfs等后端。基于swift的方案实现了通用的备份策略,可以支持不同的后端存储,为了支持这种兼容性,设计上没有使用后端卷所提供的增量能力

 

posted @ 2020-05-24 10:30  Mr-呵呵哒  阅读(405)  评论(0编辑  收藏  举报