初识openstack

一、 什么是openstack?

  OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。

二、openstack前世今身

  openstack是一个跟Eucalyptus,AWS(Amazon web Service)类似的IaaS框

 openstack最有由美国国家航空航天局NASA研发的Nova和Rackspace研发swift组成。后来以Apache许可授权,指在为公共及私有云平台建设。openstack主要用来为企业内部实现类似于Amazon EC2和S3的云基础架构(IaaS)。每6个月更新一次,一般与Ubuntu同步,命名是以A-Z作为首字母来的。

三、openstack项目及组件功能简单介绍

  核心项目3个

    1.控制台

    服务名:Dashboard

    项目名:Horizon

    功能:web方式管理云平台,建立主机,分配网络,配安全组,加云盘

 

    2.计算

    服务名:计算

    项目名:Nova

    功能:负责响应虚拟机创建请求、调度、销毁主机

 

    3.网络

    服务名:网络

    项目名:Neutron

    功能:实现SDN(软件定义网络),提供一整套API,用户可以基于该API实现自己定义专属网络,不同厂家可以基于此API提供自己的产品实现

 

 存储项目2个

    1.对象存储

    服务名:对象存储

    项目名:Swift

    功能:REST风格的接口和扁平的数据组织结构。RESTful HTTP API来保存和访问任意非结构化数据,ring环的方式实现数据自动复制和高度可以扩展架构,保证数据的高度容错和可靠性

    2.块存储

    服务名:块存储

    项目名:Cinder 

    功能:提供持久化块存储,即为云主机通过附加云盘

    

 

 1 存储的基本知识:
 2 存储分为三大类:文件存储、块存储、对象存储
 3 
 4 文件存储:在用户的角度来说,就是一个文件夹。例如:U盘,ftp(文件传输协议)、nfs等
 5     特点:无法格式化
 6              基本操作单位是文件
 7              基于Postfix标准的文件处理,进行增删改查
 8 
 9 块存储:在用户的角度来说就是一块裸盘(空硬盘,进行格式化,分block大小)
10     特点:可以格式化
11             基本操作单位是block
12 
13 文件存储与块存储之间的关系:对用户来说,到最后用的仍是文件存储
14 
15 对象存储:key:value形式(例如网盘分享,一个连接代表一个key,一个文件代表value)
16     key:value的表示 httpd://1.1.1.1/api:object(冒号前面为key,后面为value)
17 
18     特点:一切皆对象,速度快(属于非关系型,比关系型快)
19             本质上无法再对象存储里修改文件

   共享服务项目3个

    1.认证服务

    服务名:认证服务

    项目名:Keystone

    功能:为访问openstack各组件提供认证和授权功能,认证通过后,提供一个服务列表(存放你有权访问的服务),可以通过该列表访问各个组件

 

    2.镜像服务

    服务名:镜像服务

    项目名:Glance

    功能:为云主机安装操作系统提供不同的镜像选择

 

    3.计费服务

    服务名:计费服务

    项目名:Ceilometer

    功能:收集云平台资源使用数据,用来计费或者性能监控

 

   高层服务项目1个

     1.编排服务

      服务名:编排服务

      项目名:Heat

      功能:自动化部署应用,自动化管理应用的整个生命周期,主要用于PaaS   

 

四、openstack各组件关系

  

openstack新建主机流程图

 

 

首先我们先分析一下这个流程图。整个的体系下来不止这29步

 

1.命令行或者通过web界面,就是dashboard,通过RESTful API向keystone获取认证信息

2.keystone通过用户请求进行认证,并生成auth-token返回给用户,这个第一个token是属于用户用没有权限登录的token

3.命令行或web界面通过RESTful API 向nova-api发送一个新建虚拟机的请求并携带一个token.这个token属于第二个token,看这个token是否有权限访问nova

4. nova-api 接受来自客户端的请求和token信息,然后拿着token信息向keystone认证。

5.keystone验证token是否有效,有效则返回有效的认证和对应的角色(有些操作需要有角色权限才能操作)

6.通过认证后nova-api将用户的创建虚拟机的请求写到数据库中,(新建虚拟机信息:cpu,内存,硬盘,网络结构,属于什么vlan等等)

7.初始化新建虚拟机的数据库记录并返回

8.nova-api将新建虚拟机的请求信息放到消息中间件(MQ)中。(通过rpc.call)只是请求信息并不是详细信息.

9.nova-scheduler(nova计算节点,安装了nova-compute的软件)接受nova-api的请求。就是在多个nova-compute中找到一个合适的nova-compute让它去建虚拟机

10.nova-scheduler通过查询nova数据库 计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机,并返回信息到nova-scheduler

11.对有符合创建虚拟的物理主机,nova-scheduler就会更新数据库中对应的物理主机信息

12.nova-scheduler通过rpc.cast像nova-compute发送对应的创建虚拟机请求信息

13.nova-compute会从消息列队中获取创建虚拟机的请求信息。

14.nova-compute通过rpc.call像nova-conductor请求获取虚拟机的信息

15.nova-conductor从消息列队中拿到nova-compute的请求信息

16.nova-conductor根据信息进行查询虚拟机对应信息

17.nova-conductor从数据库中获取虚拟机对应信息

18.nova-conductor把虚拟机信息通过消息的方式发送到消息列队中

(上述的nova部分属于回调机制)

19.nova-compute从对应的消息列队中获取虚拟机信息

20.nova-compute通过keystone的RESTful API 拿到认证token,并通过http请求glance-api获取创建虚拟机所需的镜像。

21.glance-api想keystone认证token是否有效,并返回认证结果

glance具体如何工作的:

glance-api接收到请求后,将请求发给glance-registry,glance-registry到数据库中将镜像的元数据拿到,并返回给glance-api。glance-api会到后端的存储拿到镜像的URL地址

22.token验证通过,nova-compute获得虚拟机镜像信息(URL)下载到本地

23.nova-compute通过keystone的RESTful API 拿到认证的token,并且通过HTTP请求neutron-server获取创建虚拟机所需要的网络

24.neutron-server去向keystone认证token是否有效,并返回结果。

25token认证通过后,nova-compute获得虚拟机网络信息

26.nova-compute 通过keystone的RESTful API拿到认证token,并通过HTTP请求cinder-api获取创建虚拟机所需的持久化存储信息

27.cinder-api向keystone认证token是否有效,并返回结果

28.token认证通过后,nova-compute获的虚拟机持久化存储信息

29.nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机

 

转载于:https://www.cnblogs.com/charles1ee/p/6274570.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arquillian 1.0.0.Final正式发布! 准备使用GlassFish和WebLogic! 杀死所有虫子!

红帽公司和JBoss社区今天宣布的1.0.0.Final发布的Arquillian ,其屡获殊荣的建在Java虚拟机(JVM)运行测试平台。 Arquillian大大减少了编写和执行Java中间件集成和功能测试所需的工作。 它甚至使测试工程师能够解决以前认为无法测试或测试成本…

qq五笔linux,QQ五笔 - 五笔小字典 QQ绑定很实用

九、 智能调频、空码检索、词序固定在QQ五笔中还有一些小亮点,比如它可以根据“最近输入”、“输入次数”对候选词排序。同时为了加快检索速度,默认只在常用字库(GB2312)中检索,只有出现空码后才会继续搜索容量更大的GBK字库,很好…

android 关闭蓝牙打电话功能,Android蓝牙开发【八】hfp接听、挂断电话

继续研究hfp相关功能。蓝牙耳机可以控制手机接听、拒接、挂断电话,拨打电话等功能。本文主要分析下起这些操作的大致流程。在系统应用Bluetooth中com_android_bluetooth.cpp提供了多个回调方法,由hardware、协议栈回调过来。蓝牙耳机的一些控制命令都会发…

将状态机模式实现为流处理器

在我的上一个博客中,我说我真的以为某些“四人行”(GOF)模式已经过时了,如果不是过时的话肯定不受欢迎。 特别是我说过StateMachine不是那么有用,因为您通常会想到另一种更简单的方式来执行您正在执行的事情&#xff0…

android 自定义actionbar,如何让android的actionbar浮动且透明

如上图所示,谷歌地图的actionbar是透明的,且浮动在整个布局之上,没有占用布局空间。其实要做到这样的效果,我们首先想到的是两个方面:1.将让actionbar浮动起来。2.给actionbar一个背景,可以为颜色也可以为图…

Ajax与CustomErrors的尴尬

在ASP.NET程序中&#xff0c;为了给用户显示友好的错误信息&#xff0c;通常在web.config中进行如下的设置&#xff1a; <customErrors mode"RemoteOnly" defaultRedirect"/error/error.htm"> </customErrors> 但如果是一个ajax请求在服务端发…

Java创建WebService服务及客户端实现

简介 WebService是一种服务的提供方式&#xff0c;通过WebService&#xff0c;不同应用间相互间调用变的很方便&#xff0c;网络上有很多常用的WebService服务&#xff0c;如&#xff1a;http://developer.51cto.com/art/200908/147125.htm&#xff0c;不同的语言平台对…

Java静态方法可能会产生代码异味

代码气味的定义 &#xff08;来自维基百科&#xff09;&#xff1a; “程序源代码中任何可能表明存在更深层问题的症状。” 在Java中&#xff0c; 静态方法允许您在“类范围”内执行代码&#xff0c;而不是像成员方法这样的实例范围。 这意味着&#xff0c;它们依赖于类级别的变…

Node Express4.x 片段视图 partials

1.在Express 4.x使用片段视图&#xff0c;需要引入partials模块 步骤&#xff1a; 1.在全局中安装express-partials模块&#xff1a; 2.在本地模块中安装express-partials,将模块安装到package.json中&#xff1a; 3.在入口文件(如&#xff1a;app.js)中引入模块&#xff1a; v…

bzoj1690:[Usaco2007 Dec]奶牛的旅行(分数规划+spfa判负环)

PS:此题数组名皆引用&#xff1a;戳我 题目大意&#xff1a;有n个点m条有向边的图&#xff0c;边上有花费&#xff0c;点上有收益&#xff0c;点可以多次经过&#xff0c;但是收益不叠加&#xff0c;边也可以多次经过&#xff0c;但是费用叠加。求一个环使得收益和/花费和最大&…

红米note4x Android7,红米Note4X能升级安卓7.0吗?红米Note4X如何升级Android7.0?

欢迎来到PPL网站的行业资讯知识分类&#xff0c;你现在观看的这篇文章要和大家分享的是关于红米Note4X能升级安卓7.0吗&#xff1f;红米Note4X如何升级Android7.0&#xff1f;的一些相关内容&#xff0c;希望大家能够感兴趣&#xff0c;并且希望我们能够帮助到你&#xff01;在…

java基础----数字签名算法的介绍

数字签名&#xff08;又称公钥数字签名&#xff09;是一种类似写在纸上的普通的物理签名&#xff0c;但是使用了公钥加密领域的技术实现&#xff0c;用于鉴别数字信息的方法。关于数字签名的介绍&#xff0c;可以参见百度百科&#xff1a;http://baike.baidu.com/view/7626.htm…

Android宫格自动换行,九宫格视图的布局及展示(相册选择)

上周一个朋友带的项目出了点问题&#xff0c;招的ios开发人员在实现选取相册图片后用九宫格的样式展示时遇到了瓶颈&#xff0c;花了将近2周都没有解决。后来在跟我交流的过程中他把项目的图片发给我看了下&#xff0c;看完我就笑了&#xff0c;这就只是个算法的问题&#xff0…

具有LCS方法的通用文本比较工具

常见的问题是检测并显示两个文本&#xff08;尤其是几百行或几千行&#xff09;的差异。 使用纯java.lang.String类方法可能是一种解决方案&#xff0c;但是对于此类操作最重要的问题是&#xff0c;“性能”将不能令人满意。 我们需要一种有效的解决方案&#xff0c;其可能具有…

eclipse 开发 scala

(环境&#xff1a;jdk1.7,scala插件scala-2.1.1.2-site.zip) 1:下载scala插件 http://download.scala-ide.org/sdk/helium/e38/scala211/stable/site2&#xff1a;解压到本地将这两个文件里的jar包全部复制到eclipse的安装目录对应的文件夹里三&#xff1a;重启eclipse这时会提…

Quartz Scheduler失火指令说明

有时&#xff0c;Quartz无法在您需要的时间运行您的工作。 这有三个原因&#xff1a; 所有工作线程都忙于运行其他作业&#xff08;可能具有更高的优先级&#xff09; 调度程序本身已关闭 该作业是在过去的开始时间安排的&#xff08;可能是编码错误&#xff09; 您可以通过…

改进租房练习

代码基本没有改动&#xff0c;函数有变化&#xff0c;老师只用了一个函数&#xff0c;自己做写了4个function&#xff0c;减少了代码量 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio…

Google App Engine JAX-RS REST服务

在本文中&#xff0c;您将学习如何使用JAX-RS参考实现&#xff08;Jersey&#xff09;创建REST服务并将其部署在Google AppEngine上。 先决条件 对于本教程&#xff0c;您将需要&#xff1a; Google AppEngine帐户 Eclipse Galileo&#xff08;3.5.x&#xff09; 适用于Java的…

鸿蒙系统的全面开源,华为:打造全球的操作系统,鸿蒙今日全面开源!

原标题&#xff1a;华为&#xff1a;打造全球的操作系统&#xff0c;鸿蒙今日全面开源&#xff01;今日下午&#xff0c;2019华为全球开发者大会在华为松山湖基地正式开幕。华为正式对外推出了自研操作系统——鸿蒙系统(Harmony OS)。华为消费者业务CEO余承东指出&#xff0c;鸿…

html5 游戏制作教程,html5一步步实现超级玛丽游戏制作(新手教程源码)

【实例简介】【实例截图】【核心代码】My first Gamebody {border:none 0px;margin:0px;padding:10px;font-size : 16px;background-color : #f3f3f3;}canvas {border : 1px solid blue;}// 页面初始化函数function init(){//加载图片,并存入全局变量 ImgCache,// 加载完成后,调…