Openstack逻辑架构
一. Keystone -身份认证管理
提供了认证和授权的服务,openstack不同的组件通信都要经过授权,确保正确的用户和服务是经过认证的。并且它集成了大量的认证机制,比如用户名/密码和令牌/基于系统的。并和LDAP和PAM能够进行集成。
二. Swift – 对象存储
对比传统的存储解决方案,文件共享或者基于块的访问,对象存储处理数据是当成对象来处理的和检索的。基于对象的存储就是把数据分成多个块,然后把它们进行分开放在不同的容器中,该容器可以复制到不同的节点,提供一个冗余、高可靠性、自动恢复和水平扩容的能力。
它主要有以下几个方面的优点:
1. 无中心大脑,表明不存在单点故障(Single Point Of Failure<SPOF>)
2. 智能的,表明当遇见错误时,可以自动恢复。
3. 具有很高的可申缩性,可以扩容至PB级别的存储。
4. 通过把负载分离到不同的存储节点上,可以获得很好的性能。
5. 通过非常便宜的硬件就可以实现数据群集的冗余。
三. cinder – 块存储
管理持续的块存储设备在openstack中是使用的cinder服务,它主要的能力就是对虚拟机提供块级别的存储,比如虚拟机中的磁盘设备等。NFS,Ceph,GlusterFs,Postfix协议都支持。
ciner功能如下:
1. 卷管理: 创建和删除卷
2. 块照管理:创建和删除卷的块照
3. 从虚拟机实例中关联或解除关联卷
4. 刻隆卷
5. 创建卷的块照
6. 镜像复制到卷和卷复制到镜像
四. Manila – 文件共享
它可以作为一个远端的文件系统 存储,它和Storage Area Network(SAN)服务类似,作为后端的设备,它可以使用Common Internet File Ssytem(CIFS),NFS和SAMBA等协议。它提供了文件共享的功能 。
Swift、Cinder、Manila三种适用的场景和区别如下:
| Specification | Storage Type | ||
| Swift | Cinder | Manila | |
| Access mode | Object through REST API | As block devices | File-based access |
|
Multi-access |
OK | No, can only be used by one clinet | OK |
| Persistence | OK | OK | OK |
| Accessibility | Anywhere | Within single VM | Within multiple VMs |
|
Performance |
OK |
OK |
OK |
五. Glance – Image registry
Glance服务提供了镜像注册和源数据,Openstack可以使用它作为一个虚拟机启动,并且基于选择的hypervisor不同,来支持不同的镜像格式。支持KVM/Qemu,XEN,VMWARE,Docker等。
可能有人会奇怪,Glance和Swift的不同是什么?它们两个都提供存储服务,它们之间的区别在哪里。
Swift是一个存储系统,而Glance是一镜像注册器。Glance是一个虚拟机镜像的跟踪和镜像源数据的关联。源数据就是那些比如内核,磁盘镜像,磁盘格式等。Glances可以使用各种各样的后端来做为存储,默认的是使用目录,但在大量的生产环境中,它常使用NFS甚至使用Swift.
Swift是一个存储系统,它是对象存储,可以用它保持数据,比如虚拟磁盘、镜像、备份归档等。
六. Nova – Computer Service
在Openstack中Nova提供计算服务和响应OPenstack用户请求的虚拟机管理响应服务。
1. nova-api
Nova-api组件接受和响应终端用户和计算API调用。 比如通过 Openstack API或EC2 API和Nova-api进行,去创建实例。
2. nova-computer
nova-computer组件是一个守护进程,通过Hypervisor’s API(XenAPI for XenServer, LibvirtKVM, 和 VMware API for VMware)去创建和结束 VM的实例。
3. nova-network
主要是对网络做一些网络方面的操作和管理(比如设置网桥接口和改变IP table规则)
4. nova-scheduler
调度服务,比如当接受到创建实例的请求后,决定应该把创建的实例放在哪个计算节点上去运行。
5. nova-conductor
nova-conductor服务对计算节点提供数据库的访问,而不是直接访问数据库,因此它增强了数据库的安全。
nova服务需要和好几种服务进行交互,比如认证的keystone,镜像的Glance,Web接口的Horizon,及Glance.
七. Neutron – Networking services
Neutron 在设备接口和Nova管理之间提供了Network as a Service(NaaS)能力。主要有以下功能:
1. 它允许用户去创建它们的网络和关联接口到服务器
2. 它有较多厂商的支持
3. 提供了其它网络服务的扩展
Neturon还引进了下列资源:
1. ports:端口往往关联虚拟交换机,关联子网,定义MAC地址和接品的IP地址。
2. Networks: 还定义了二层网络的隔离。
3. 子网:网络子网划分
使用扩展:
1. Routers: 在不同的子网网络之间提供路由能力。
2. Private IPs: 定义了两种类型的网络:
(1) 租户网络:使用的是私有IP地址,该私有IP地址仅对租户可见。
(2)外部网络: 外部网络是可见的和可以在互联网上路由的。
(3)浮动IPs: 浮动IP是外部网络分配的Ip,是Netron映射到一个实例的虚拟IP。 意思就是外网IP地址是随机分配的。
高级服务:
1. Load Balancing as a Service(LBaas):在多个计算节点实例进行流量分布。
2. Firewall as Service(FWaas): 提供了三层和四层网络边界的访问。
3. Virtual Private Network as a Service: 在实例或者主机之间构建一个安全的通道。
Neutron结构:
Neutron server: 接受API请求和路由它们到适当的Neutron插件并执行动作。
Neutron plugins: 执行实际的工作,比如创建网络和子网,和IP地址等。
Neutron agents:运行在计算和网络节点,其实就是相当于代理一样,接受别人命令,执行相应的动作。
八. Ceilometer, Aodh, 和Gnocchi – Telemetryh
主要就是资源使用情况收集,和告警及与其它执行联动的一些功能 。
九. Heat –Orchestration
主要是完成一些自动化工作的,比如主机模板、自动化构建这些任务。使用的模板是YAML格式或者JSON格式 。
10. Horizon – Dashboard
就是图形化的界面,比如用来管是虚拟机实例,网络等,要不然全部要用命令行操作。
11. Message Queue
消息队列,就是在不同的组件进行传消息的,相当于传话筒一样,不过它通信是异步方式的。
12. Database
主要存储一些构建时和运行时的状态,实例的类型等等一些信息。
各个组件可以总结如下:
(1)认证肯定是首先执行的,keystone认证用户基于用户名和密码。
(2)然后Keystone提供服务的目录,可以通过以下命令获取:
$ openstack catalog list
(3) 认证完成后,可以和API节点进行通信。下面图完美的呈现:

(4)参考下面图看下虚拟机是如何工作的。
调用认证服务进行认证
产生一个token,子请求好使用。
联系镜像的服务,去列出和检索基本镜像
computer service ap处理该请求
计算服务的调用处理决定安全组和keys。
调用网络服务的API去决定有效的网络
通过计算的调度服务选择hypervisor节点
调用块存储服务 的API去分配卷
调用网络服务的API去分配 网络资源到实例中去
Openstack逻辑架构的更多相关文章
- OpenStack的架构详解[精51cto]
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也为大云.小云提供可扩展的.灵活的 ...
- OpenStack的架构详解(转)
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也为大云.小云提供可扩展的.灵活的 ...
- (转)OpenStack —— 原理架构介绍(一、二)
原文:http://blog.51cto.com/wzlinux/1961337 http://blog.51cto.com/wzlinux/category18.html-------------O ...
- OpenStack的架构详解
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也为大云.小云提供可扩展的.灵活的 ...
- 深入理解openstack网络架构(1)
原文地址: https://blogs.oracle.com/ronen/entry/diving_into_openstack_network_architecture 译文转载自:http://b ...
- mysql 概念和逻辑架构
1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...
- 1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
1 游戏逻辑架构 具体介绍 A 一个导演同一时间仅仅能执行一个场景,场景其中,能够同一时候载入多个层,一个层能够可载多个精灵.层中亦能够加层. B 场景切换 sceneàaddChild(la ...
- openstack 网络架构 nova-network + neutron
openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点很庞杂,包含bridge.vlan.gre.vxlan.ovs.o ...
- MySQL逻辑架构概述
1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都 ...
随机推荐
- 【CodeChef】Prime Distance On Tree
vjudge 给定一棵边长都是\(1\)的树,求有多少条路径长度为质数 树上路径自然是点分治去搞,但是发现要求是长度为质数,总不能对每一个质数都判断一遍吧 自然是不行的,这个东西显然是一个卷积,我们合 ...
- Sequelize-nodejs-1-getting started
Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, ...
- 权限管理系统---django版本
权限管理:在简单的系统中,以往都是将每个权限赋予给用户,每个用户访问某个功能,通过查询db来判断用户是否有权限.但是如下情景不能够解决: 1.随着系统的复杂,权限较为复杂的时候,权限条目也多,系统角色 ...
- openstack的网络模式(转)
单节点上虚拟机和虚拟机之间通信 直接同过linuxbridge转发数据,即可通信 虚拟机跨物理节点通信 利用交换机的包转发机制,在大二层网络中转发数据包 虚拟机跟外网通信 同样利用交换机转发,将数据包 ...
- 更改KVM虚拟机root的密码
今天在使用qemu-kvm安装一个虚拟机,因为已经有一个虚拟机的image文件(qcow2格式的),所以创建虚拟机很简单,直接通过以下命令从image启动就行了. qemu-kvm -cpu host ...
- # pc端个性化日历实现
pc端个性化日历实现 技术:vue => v-for.slot-scop 插槽域 需求:需要实现日历上每一天动态显示不同的信息 思路:运用vue 中 slot-scop 插槽域的知识点,将个性化 ...
- Django:表单字段如何在模板中用中文显示
在处理中文显示的时候,刚开始接触django时,很容易弄混表单汉化和Admin后台汉化. 1.表单汉化:是针对用户的.用户浏览网页时,表单的名称如果是英文的,不够友好,所以需要显示为中文,虽然代码编写 ...
- 早上出现的zabbix启动错误
之前根据教程安装好zabbix,MySQL的版本是5.1. 昨天无聊想升级成5.6.不过升级比较麻烦.我就直接把5.1删了再装5.6. 安装中途zabbix挂了一次.把5.6装上启动后就好了. 早上z ...
- 筑基期—C语言
1.1 环境: 在ANSIC的任何一种是实现中,存在两种不同的环境.第一种是翻译环境,第二种是执行环境.标准明确说明这两种环境不必在同一台机器上,交叉编译器就是在一台机器上运行,但它所产生的可执行代码 ...
- 北京Uber优步司机奖励政策(4月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
