简述openstack
大家好,我顾某人又回来了,开学第一更。。。。
以下内容均为个人理解和整理,有不对的地方还望dalao指正。。。。。
本文所用图片均已标明来源。
openstack是什么?
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
openstack组成
openstack由以下七个主要部分组成:
- Nova:计算服务
- Neutron:网络管理服务
- Keystone:认证服务
- Swift:对象存储服务
- Cinder:块存储服务
- Glance:镜像管理服务
- Horizon:操作界面
openstack整体架构
图源网络

openstack组成详解
Nova
Nova提供CPU、内存、网络适配器和硬件驱动器等服务器资源虚拟化的功能,提高了资源的利用率。
通过Nova api来接受和响应用户的请求,实时对VM进行启动、挂起、停止等功能。
Nova主要包含的组件有:
- Nova-api
响应用户的请求 - Nova-scheduler
负责VM的调度,决定了VM运行在哪台主机上。 - Nova-compute
管理VM实例的生命周期 - Nova-conductor
计算服务与数据库的交互中介,避免直接访问数据库 - Nova-console
提供访问VM的控制台 - Nova-consoleauth
负责对VM控制台的请求提供Token认证 - Nova-cert
提供证书 - Hypervisor
虚拟化管理程序,用于实现硬件的虚拟化 - database
用于存放一些Nova的数据 - message queue
用于Nova子服务之间的相互协调和通信
Neutron
Neutron架构,图源CloudMan

Neutron通过plugin和agent提供的网络服务。
调用网络的API分为以下两种:
- Core API
对外提供network、subnet和port的API - Resource and Attribute Extension API
对外提供管理router、load balance、firewall等资源的API。
Neutron的plugin分为Neutron Core Plugins和Neutron Service Plugins。
- Neutron Core Plugins
Neutron的核心插件,实现Core API在数据库中维护network、subnet和port的状态,并负责调用相应的agent在network provider上执行相关操作. - Neutron Service Plugins
Neutron的扩展插件,实现Extension Plugin API,在数据库中维护router、load balance、security group等资源的状态,并负责调用相应的agent在network provider上执行相关操作.
Message Queue:消息队列
用于Plugins和Agent相互之间的调用.
Keystone
keystone为openstack组件提供认证服务和管理用户及其权限。
keystone中有几个重要的概念要了解一下:User(用户)、Role(角色)、Tenant(租户)、Service(服务)。
- User 用户,keystone的授权用户
- Role 角色,表示用户可以访问资源的权限
- Tenant 租户,各个服务中可以访问的资源合集
- Service 服务,租户可以提供的服务
keystone的运作流程大概是这样的:当User想要去访问某个Service时,首先他要向keystone出示它的Credentials,Keystone认证之后会给User一个Token,然后User就可以使用这个Token去访问Service,这时这个Service就会向keystone去验证User的Token,如果验证成功,那么User就成功访问到Service中的Endpoint,且User的Role越高,访问到的Service越多。
通俗的来讲是这样的:
User|住酒店的人
|:-|:-
Tenant|酒店
Credentials|酒店房间钥匙
Authentication|房客认证机制
Token|发给能打开房间的人的凭证,用于享受酒店的服务
Service|酒店提供的一种服务
Endpoint|酒店提供服务中的具体服务
Role|酒店会员等级
Swift
Swift为OpenStack提供一种分布式、持续虚拟对象存储,主要用于存储大的对象文件,比如虚拟机的备份。
Cinder
openstack的一种块存储方式,挂载给虚拟机使用,可以给虚拟机提供额外的空间。
swift和cinder的比较
swift类似于保存PC的系统,而cinder类似于保存PC里面的文件。
Glance
openstack中用于保存创建VM的镜像,比如,现在现在需要安装一个win7的操作系统给公司的某个员工使用,按照传统的操作方式需要花费大量时间,但是现在在云环境中,只需要直接从glance中按模板启动win7即可,二七人只许耗费几秒钟的时间
glance包括glance-api、glance-registry和store backend.
- glance-api
对外提供API,用于响应image的查询、获取等调用。 - glance-registry
用于处理和存取image的的元数据,例如大小、类型等,并且戴护具对应到Database。 - store backend
用于存放image。
Horizon
简单的来说,Horizon是一个web接口,用于将openstack的资源聚集到一起并进行图形化管理。
最后骗一波流量个人博客
简述openstack的更多相关文章
- CentOS7.4安装部署openstack [Liberty版] (二)
继上一篇博客CentOS7.4安装部署openstack [Liberty版] (一),本篇继续讲述后续部分的内容 一.添加块设备存储服务 1.服务简述: OpenStack块存储服务为实例提供块存储 ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- 马哥教育Linux网络班结业考试(架构师)-简答题题目(附答案)
1.叙述 centos7 启动图形界面的开机启动流程? 答:新版本的CentOS7里,已经做了调整.具体/etc/inittab 文件的第7行已经做出了说明: 系统已经使用'targets' 取代了运 ...
- OpenStack概念架构简述
什么是OpenStack OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也为大云 ...
- 大型网站技术学习-2. 云计算之OpenStack简述
上一章讲,虚拟化能够充分的利用资源,带来各种各样的好处. 当一个网站不大,只需要四五台机器就可以支撑的时候,可以采用手工的方式虚拟机,但是当网站流量很高,需要成千上万台机器的时候,那就非常不方便了. ...
- Openstack 架构简述
概述 在学习OpenStack的过程中,感觉对整个OpenStack的架构稍稍有些了解,所以将这些记录下来,一来防止自己忘记,二来也可以对有需要的人提供帮助 本文章相关的灵感/说明/图片来自于http ...
- Openstack简述
1.Openstack项目发展概况: Nova 计算服务 Swift 对象存储服务 Glance 镜像服务 Neturon 网络服务 Keystone 身份认证服务 Celimeter 计 ...
- openstack学习心得:keystone 架构、概念、访问流程
1.keystone 介绍及其组成 OpenStack Identity 服务提供了一个单一的功能集合,包括管理认证,授权和服务目录. Identity 服务通常作为和用户第一个交互的服务.一旦认证成 ...
- [转帖]Qemu 简述
Qemu 简述 记得KVM 就是 底层用的qemu https://www.cnblogs.com/bakari/p/7858029.html 本文首发于我的公众号 Linux云计算网络(id: cl ...
随机推荐
- 华为路由器 HDLC 实验
HDLC 简介 高级数据链路控制(High-Level Data Link Control 或简称 HDLC),是一个在同步网上传输 数据.面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据 ...
- SpringBoot解决ajax跨域问题
一.第一种方式: 1.编写一个支持跨域请求的 Configuration import org.springframework.context.annotation.Configuration; im ...
- Redirect all output to file
That part is written to stderr, use 2> to redirect it. For example: foo > stdout.txt 2> std ...
- Docker 系列一(概念原理和安装).
一.概念原理 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间 ...
- Flask 系列之 HelloWorld
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 创建一个显示 Hello World 页面的网站. 环境 ...
- 7.通用程序设计_EJ
第45条: 将局部变量的作用域最小化 该条目与第13条(使类和成员的可访问性最小)本质上是类似的.要使局部变量的作用域最小化,最有利的方法就是在第一次使用它的地方声明.在每个局部变量的声明处都应该包含 ...
- 清除float影响
条件: 父元素中有子元素float的话,可能就会影响父元素的高度,从而影响布局: 解决方案: 1.直接给父元素定高: 弊端:必须知道父元素的高: 2. 父元素使用overflow属性值为hidden解 ...
- windows 上用 docker 部署aspnetcore 2.0
首先下载docker for windows 并且 安装. 这其中需要显卡支持虚拟化 windows系统升级到专业版 bois 启用虚拟 通过vs2017 创建一个net core ap ...
- log4j介绍
log4j.properties文件的三种加载方式 1.默认自动加载 满足以下条件时: 1).配置文件名为log4j.properties 2).在classpath根目录下(即resources根目 ...
- es6 语法 (字符串扩展)
{ console.log('a',`\u0061`); //a,a console.log('s',`\u20BB7`); //s ₻7 console.log('s',`\u{20BB7}`) / ...