一,什么是openStack,全面了解openstack

  • NASA(美国国家航空航天局)和rackspace共同发起
  • 以Apache许可证授权的自由软件和开放源代码项目
  • 为公有云及私有云的建设与管理提供软件的开源项目
  • 覆盖了网络,虚拟化,操作系统,服务器等各个方面
  • 是一个大型的云平台管理的项目,不是一个软件,是由几个主要的组件组合起来完成一些具体的工作。
  • 是为公共及私有云的建设与管理提供软件的开源项目
  • 是由rackspace和nasa共同开发的云计算平台
  • 两个最主要的模块:nova和swift,前者是nasa开发的虚拟服务器部署和业务计算模块,后者是backspace开发的分布式云存储模块,两者可以一起使用也可以单独分开使用。
  • 由python开发的开源的代码

二, 哪些场合在使用openstack?

  • 电子商务,政府,学校,娱乐行业,医药机构,零售,银行
  • 华为,京东,360,美团网,携程,苏宁,小米,新浪,联想
    + 比如苏宁的私有云,联想的私有云

三,openstack的支持团队有哪些?

在这里插入图片描述

openstack的八个白金会员

在这里插入图片描述

四, open stack 与docker的对比

  • docker:提供了一种程序运行的容器,同时保证这些容器相互隔离
  • open stack:提供了一个完整管理数据中心的解决方案,至于用哪种hypervisor(vm)或docker只是云平台中的一个小部分
  • hypervisor和docker可以共存,hypervisor中可以包含docker

五,openstack优势

控制性

完全开源的平台,提供API接口,方便与第三方技术集成

兼容性

Openstack兼容其他公有云,方便用户进行数据迁移

可扩展性

模块化设计,可以通过横向扩展,增加节点,添加资源

灵活性

根据自己的需要建立相应的基础设施,增加集群规模

行业标准

众多IT领军企业已经加入到openstack项目

六,open stack架构

open stack架构之间的交互模式

基本架构分为四个组件:全局组件,核心组件,内部组件,外部组件
每个组件里面包含核心组件,每个核心组件会提供一个API
各组件之间是通过API来交互的,核心组件内部的服务是通过消息队列来交互的。

在这里插入图片描述

七,工作流程

openstack的 各个服务之间通过统一的rest-API调用,实现系统的松耦合,它内部组建的一个工作过程是一个有序的整体,诸如计算机资源分配,控制调度,网络通信等都通过AMQP实现。 openstack 的上层用户是程序员,一般用户和整个horizon界面等模块,这三者都是采用openstack各个组件提供的api接口进行交互,而他们之间则是通过amqp进行互相调用,他们共同利用底层的虚拟资源为上层用户和程序员提供云计算服务。

八,自我管理流程

open stack是一个开源的云平台项目,主要任务是给用户提供IaaS服务

关于QEMU

是一个纯软件的计算机硬件仿真器,通过单独运行QUEM来模拟计算机,具有非常灵活和可移植的特点,利用它能够达到使用软件取代硬件的效果
一般情况下,openstack可以部署在Linux操作系统上,为了进一步提高QEMU的运行效率,往往会增加一个KVM硬件加速模块,KVM内嵌在Linux操作系统内核之中,能狗直接参与计算机硬件的调度,这一点是QEMU所不具备的,一般的QEMU程序的执行必然要经过程序从用户态向内核态的转变,这必然hi在一定程度上降低效率,所以QUEM虽然能够通过转换对硬件进行访问,但在openstack中往往采用KVM进行辅助,使得openstack的性能表现得更为良好。

注意:KVM需要良好的硬件支持,有些硬件本身如果不支持虚拟化的时候,KVM则不能使用

关于Libvirt

Libvirt是一个开源的,支持Linunx下虚拟化工具的函数库,实质上它就是为构建虚拟化管理工具的API函数,libvirt是为了能够更方便的管理平台虚拟化技术而设计的开放源代码的应用程序接口,它不仅提供了对虚拟化客户机的管理,也提供了对虚拟化网络和存储的管理。

最初的livirt是只针对xen而设计的一系列管理和调度xen下的虚拟化资源的api函数,目前高版本的livirt可以支持多种虚拟化方案,包括kvm,qemu,xen,vmware, virtualbox等在内的平台虚拟化方案,又支持openvz,LXc等Linux容器虚拟化系统,还支持用户态Linux的虚拟化,他能够对虚拟化方案中的hypervisor进行适配,让底层hypervisor对上层用户空间的管理工具可以做到完全透明。

九, openstack的核心项目

open stack覆盖了网络,虚拟化,操作系统,服务器等各个方面,他是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目,孵化项目,以及支持项目和相关项目,每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目,截止到lcehouse版本,下面列出了10个核心项目

1,计算服务(compute):

Nova,一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务,负责虚拟机创建,开机,关机,挂起,暂停,调整,迁移,重启,销毁等操作,配置cpu,内寸等信息规格,自austin版本集成到项目中。计算资源单位,对hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展

2,网络服务(network)

Neutron ,负责虚拟网络的管理,为openstack其他服务提供网络连接服务,为用户提供接口,可以定义network,subnet, router,配置DHCP,DNS,负载均衡,L3服务,网络支持GRE,VLAN,插件架构支持许多主流网络和厂家技术,如,open stackswitch。创建网络的拓扑结构,是面向租户的网络管理,可以自定义自己的网络,各个租户之间互不影响。

3,身份认证服务(Identity)

Keystone ,类似于LDAP服务,对用户,租户和角色,服务进行认证与授权,且支持多认证机制。也就是为openstack其他服务提供身份验证,服务规则和服务令牌的功能,管理domains,projects,users,groups,roles,自essex版本集成到项目中

4,控制面板服务(Dashboard)

Horizen,又叫UI服务,提供一个web管理界面,与openstack底层服务进行交互,也就是openstack中各种服务的web管理门户,用于简化用户对服务的操作,例如:启动实例,分配Ip地址,配置访问控制等,自essex版本集成到项目中

5,镜像服务(image)

Glance,,一套虚拟机镜像查找及检索系统,提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝到镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像( AKI,AMI,ARI,ISO,QCOW2,RAW,VDI,VHD,VMDK),有创建上传镜像,删除镜像,编辑镜像基本信息的功能,自Bexar版本集成到项目中。

6,块存储服务(block storage)

cinder ,负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储,它的插件驱动架构有利于块设备的创建和管理,如创建卷,删除卷,在实例上挂载和卸载卷,(folsom)

7,对象存储服务(object storage)

swift,一套用于在大规模可扩展系统中通过内置冗余及高可容错机制实现对象存储的系统,允许进行存储或者检索文件。为glance提供镜像存储,为cinder提供卷备份服务,为OPENstack提供基于云的弹性存储,支持集群无单点故障。

8,计量服务(telemetry)

Cerlometer, 用于度量, 监控和控制数据资源的集中来源,为openstack用户提供记账途径,就像一个漏斗一样,能把openstack内部发生的几乎所有的事情都收集起来,然后为计费和监控以及其他服务提供数据支撑,自havana版本集成到项目中

十,云计算服务类型

IAAS(基础架构即服务)
  • 提供底层it基础设施服务,包括处理能力,存储空间,网络资源等
  • 面向对象一般是it管理人员
Paas(平台即服务)
  • 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
  • 面向对象一般是开发人员
SaaS (软件即服务)
  • 直接通过互联网为用户提供软件和应用程序等服务
  • 面向对象一般是普通用户

十一,核心服务

1,什么是Keystone身份服务
Keystone (OpenStack Identity Service)是OpenStack中的一个独立的提供
安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服
务目录、以及基于用户角色的访问控制。

Keystone类似一个服务总线,或者说是整 个Openstack框架的注册表,其他服务通过
keystone来注册其服务的Endpoint (服务访问的URL),任何服务之间相互的调用,
需要经过Keystone的身份验证,来获得目标服务的Endpoint来找到目标服务。
2,主要功能
  • 身份认证:负责令牌的发放和校验
  • 用户授权:授权用户有指定的可执行动作的范围
  • 用户管理:管理用户的账户
  • 服务目录:提供可用服务的API端点位置
3,管理对象
  • 用户(user):指的是使用openstack架构的用户。
  • 证书(credentials):用于确认用户身份的凭证,证明自己是自己,包括用户的用户名和密码,或是用户名和API密钥,或者身份管理服务提供的认证令牌。
  • 认证(authentication):确定用户身份的过程。
  • 项目(project):可以理解为一个人,或服务所拥有的资源的集合。
  • 角色(role):用于划分权限,通过给user指定role,使user获得role对应操作权限
  • 服务(service):openstack架构的组件服务,如nova、neutron、cinder、swift、glance等。
  • 令牌(token):由字符串表示,作为访问资源的凭证,是用户的身份/权限证明文件;token决定了用户的权限范围,在指定的权限内进行操作;也包括令牌的有效期,在指定的时间范围内用户才有这些权限。
  • 端点(endpoint):一个可以通过网络来访问和定位某个openstack service的地址,即用户创建一个项目过程中需要的各个服务资源的位置
4,工作流程如下图

在这里插入图片描述

  • 1 ,用户通过命令行或者horizon控制面板的方式登录openstack,凭借自己的证书(credentials)给keystone验证。
  • 2,Keystone对用户的证书验证,验证通过则会发布一个令牌(token)和用户所需服务的位置点(endpoint)给用户。
  • 3,用户得到了位置点(endpoint)之后,携带自己的令牌,向nova发起请求,请求创建虚拟机。
  • 4,nova会拿着用户的token向keystone进行认证,看是否允许用户执行这样的操作。
  • 5,keystone认证通过之后,返回给nova,nova即开始执行创建虚拟机的请求。首先需要镜像资源,nova带着令牌(token)和所需要的镜像名向glance提出镜像资源的请求。
  • 6,glance会拿着token去向keystone进行认证,看是否允许提供镜像服务。keystone认证成功后,返回给glance。glance向nova提供镜像服务。
  • 7,创建虚拟机还需要网络服务,nova携带token向neutron发送网络服务的请求
  • 8,neutron拿着nova给的token向keystone进行认证,看是否允许向其提供网络服务。keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。
  • 9,nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。创建完成返回给用户,成功执行了用户的请求。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐