云计算服务模型和openstack架构常用模块介绍

官方的架构图

云计算的服务模型

云计算有IaaS(Infrastructure as a Service,基础架构即服务),PaaS(Platform as a Service,平台即服务),SaaS(Software as a Service,软件即服务)三种基本模型。

1.IaaS:提供最底层的IT基础服务,包括处理能力,存储空间,网络资源等,用户可以从中获取硬件或者虚拟化硬件资源(包括luo机或者虚拟机),之后可以给申请到的资源安装操作系统和其它应用程序。一般面向IT管理人员。

  • IaaS通常分为三种用法:公有云,私有云和混合云

2.PaaS:是已经把安装好开发环境的系统平台作为一种服务通过互联网提供给用户。用户可以在上面安装其它应用程序,但不能修改已经安装好的操作系统和运行环境。一般面向的是开发人员。需要了解平台所提供环境下的应用开发和部署。

  • 简单的说,PaaS平台是指云环境中的应用基础设施服务,也可以说是中间件即服务

3.SaaS:可以直接通过互联网给用户提供软件和应用程序服务。用户通过租赁的方式获取安装在厂商或者服务供应商那里的软件。一般面向普通用户,最常见的是提供给用户一组账号和号码。

  • 用户不用再购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动,不用对软件进行维护,提供商会全权管理和维护软件,同时也提供软件的离线操作和本地数据存储

什么是Openstack

  • Openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目

  • OpenStack是一套IaaS解决方案

  • OpenStack是一个开源的云计算管理平台

  • 以Apache许可证为授权
    在这里插入图片描述

OpenStack架构原理与常见模块

主要组件服务

主要组件项目
Horizon【DashBoard,用户界面】

-用于管理Openstack各种服务的,基于web的管理接口

-通过图形界面实现创建用户,管理网络,启动示例等操作

Keystone【Identity,认证】

-为其他服务提供认证和授权的集中身份管理服务

-也提供了集中的目录服务

-支持多种身份认证模式,如密码认证,令牌认证,以及AWS(亚马逊Web服务)登录

-为用户和其他服务提供了SSO认证服务

Neutron【Network,网络】

-一种软件定义网络服务

-用于创建网络,子网,路由器,管理浮动IP地址

-可以实现虚拟交换及虚拟路由器

-可用于在项目中创建v*n

Cinder【Block Storage,块存储】

-为虚拟机管理存储卷的服务

-为运行在Nova中的示例提供永久的块存储

-可以通过快照进行数据备份

-经常应用在实例存储环境中,如数据库文件

Glance【Image Service,镜像服务】

-扮演虚拟机镜像注册的角色

-允许用户为直接存储拷贝服务器镜像

-这些镜像可以用于新建虚拟机的模板

-为Nova虚拟机提供镜像服务

Nove【Compute,计算】

-在节点上用于管理虚拟机的服务

-Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理

-Nova被设计成标准硬件上能够进行水平扩展

-启动示例时,如果有则需要下载镜像

Swift【Object Storage,对象存储】

-主要提供分部署存储结构

-可以存储无结构数据,允许存储或检索对象

架构

OpenStack由多种服务组成,每种服务都有独立的命名。在整个OpenStack架构中,Keystone提供认证服务,接收来自用户和服务的认证请求,并对其身份进行验证。各个服务之间通过公用的API接口进行交互。大部分服务都有一个API接口,用于侦听API请求,根据服务的性质选择处理请求或者转发请求。服务之间的通信通过消息队列【Message Queen】实现

流程

在部署完成的云平台上,用户通过Dashboard或者RestAPI的方式经过Keystone认证模块授权后,执行创建虚拟机的服务。通过Nova模块创建虚拟机实例,Nova模块先调用Glance模块的镜像服务,然后再调用Neutron模块提供的网络服务。根据需要可以选择给虚拟机增加存储卷,卷功能由Cinder模块提供。整个过程在Ceilmeter模块的资源监控下完成。同时Cinder模块提供的卷和Glance模块提供的镜像可以通过Swift对象存储机制进行保存。

架构图
四个核心模块:Nova【提供计算服务,类似于cpu】,Glance【提供镜像服务】,Cinder【提供块存储,卷服务】,Neutron【提供网络服务】
四个辅助模块:Horizon【web面板,Dashboard】,Ceilometer【整体的监控统计等】,Keystone【权限,认证服务】,Swift【对象存储】

模块

Dashboard

项目名horizon,是一个web接口。一个用于管理,控制OpenStack服务的web控制面板。

实现的任务

这篇有图有真相1
具体功能和操作

Keystone【身份认证服务】

主要概念
  1. 用户(user):使用OpenStack云服务的人。系统或服务。
  2. 项目(project):各个服务中一些可以访问的资源的集合,用来分组或隔离资源或身份对象。
  3. 角色(role):是一组可以访问的资源权限的集合,这些资源包含虚拟机,镜像,存储等。
  4. 服务(service):用户使用云中的资源是通过访问服务实现的。
  5. 令牌(token):是一串数字字符串,用于访问OpenStack服务的API以及资源。
  6. 端点(endpoint):是指用于访问某个服务的网络地址或url。
身份认证服务组件
  1. 服务器:一个中心化的服务器使用RESTful接口来提供认证和授权服务。
  2. 驱动:驱动或服务后端被整合到集中式服务器中,它们被用来访问OpenStack外部仓库的身份信息,并且可能以及存在于OpenStack被部署的基础设施中。
  3. 模块:运行于使用身份认证服务的OpenStack组件的地址空间中,这些模块用于拦截服务请求,获取用户凭据,并将它们送入中央服务器寻求授权。
工作流程图

在这里插入图片描述

Glance【镜像服务】

镜像服务允许用户发现,注册和获取虚拟机镜像。

Glance主要组件

1.glance-api
接收镜像API的调用。对外提供REST API接口,响应用户发起的镜像查询。获取和存储的调用。
2.glance-registry
用于存储、处理和恢复镜像的原数据。内部接口服务,不建议暴露给普通用户。
3.dtabase:存放镜像元数据。
4.storage repository for image files
一般镜像存储在后端仓库中。glance支持多种repository,如对象存储Swift,块存储Cinder、VMware的ESXI或者vCenter、亚马逊的S3、HTTP可以服务器、Ceph等。

镜像格式
  • RAW:保存的原始数据。
  • QCOW2:磁盘文件大小可以动态按需增长,不会占用所有实际磁盘的空间大小。
  • VHD:微软使用的。
  • VMDK:VMware公司的,开放的通用格式。
  • VDI:Oracle公司的VirtualBox虚拟软件常用格式。
  • ISO:存档数据文件在光盘上的格式。
  • AKI,ARI,AMI:Amazon公司的AWS所使用的镜像格式。

Nova【计算模块】

主要功能

负责虚拟机实例的生命周期的管理,网络管理,存储卷管理,用户管理以及其它相关云平台管理功能。

主要组件
  • Nova-api
  • Nova-api-metadata
  • Nova-Compute
  • Nova-placement-api
  • Nova-Conductor
  • Nova-Schedule

Neutron【网络模块】

主要功能

1、IP地址分配:虚拟主机分配私有(固定)和浮动IP地址
2、网络模型与管理:虚拟网络使虚拟主机之间以及与外部网络通信。
3、安全控制:通过ebtables和iptables来实现

网络模型分为三种:

1、扁平网络 (Flat Network):在创建虚拟主机时,nova-network会从指定子网中取一个空闲IP并将它写入此虚拟主机的配置文件。在一个子网内的虚拟主机可以通过创建Linux桥实现互通。
2、带DHCP功能的扁平网络 (Flat DHCP Network):在创建虚拟主机时,nova-network会在指定的子网中为此虚拟主机分配IP和物理地址,并将这些信息告知DHCP服务器(默认是dnsmasq)DHCP服务器会监听虚拟主机所在的桥。当有虚拟主机启动时,会自动从DHCP服务器获得IP。可以看到DHCP服务器只是按照nova-network给定的列表(IP和物理地址)分发IP,如何分配还是nova-network说了算。
3、VLAN网络 (VLAN Network):这是nova-network的默认模型。每个项目里的私有IP地址只能在本项目的vlan里访问。与项目对应的vlan需要子网,这个子网是由管理员动态分配给项目的。与带DHCP功能的扁平网络类似,子网内的IP地址也是通过DHCP服务器分发的。所有在一个子网内的虚拟主机都通过网桥互通。

Openstack的设计理念是把所有的组件当做服务来注册的。
Neutron就是网络服务。它将网络、子网、端口和路由器抽象化,之后启动的虚拟主机就可以连接到这个虚拟网络上,最大的好处是这些都可视化的在Horizon里得到了实现,部署或者改变一个SDN变得非常简单

组件

1)Neutron Server
分包含守护进程neutron-server和各种插件neutron–plugin,它们既可以安装在控制节点也可以安装在网络节点。neutron-server提供API接口,并把对API的调用请求传给已经配置好的插件进行后续处理。插件需要访问数据库来维护各种配置数据和对应关系,例如路由器、网络、子网、端口、浮动IP、安全组等等
2)插件代理 (Plugin Agent):
虚拟网络上的数据包的处理则是由这些插件代理来完成的。名字为neutron–agent。在每个计算节点和网络节点上运行。一般来说你选择了什么插件,就需要选择相应的代理。代理与Neutron Server及其插件的交互就通过消息队列来支持。
3)DHCP代理(DHCP Agent):
名字为neutron-dhcp-agent,为各个租户网络提供DHCP服务,部署在网络节点上,各个插件也是使用这一个代理。
4)3层代理 (L3 Agent): 名字为neutron-l3-agent,
为客户机访问外部网络提供3层转发服务。也部署在网络节点上。

Cinder【块存储模块】

主要功能

块存储服务提供对 volume 从创建到删除整个生命周期的管理。 从 instance 的角度看,挂载的每一个 Volume 都是一块硬盘。
OpenStack 提供 Block Storage Service 的是 Cinder,其具体功能是:

提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type

提供 scheduler 调度 volume 创建请求,合理优化存储资源的分配

通过 driver 架构支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他诸如 EMC、IBM 等商业存储产品和方案
组件

1、cinder-api:接收 API 请求,调用 cinder-volume 执行操作。

2、cinder-volume:管理 volume 的服务,与 volume provider协调工作,管理 volume 的生命周期。运行 cinder-volume 服务的节点被称作为存储节点。

3、cinder-scheduler:scheduler 通过调度算法选择最合适的存储节点创建 volume。

4、volume provider :数据的存储设备,为 volume 提供物理存储空间。

cinder-volume 支持多种 volume provider,每种 volume provider 通过自己的 driver 与cinder-volume 协调工作。

5、Message Queue:Cinder 各个子服务通过消息队列实现进程间通信和相互协作。因为有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征。

6、Database:Cinder 有一些数据需要存放到数据库中,一般使用 MySQL。数据库是安装在控制节点上的

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值