OpenStack组件

OpenStack的架构及组件(Havana)

服务项目名描述
控制台Horizon用户通过该服务与OpenStack的各服务进行交互,如启动虚机实例、分配IP地址、设置访问控制等;
计算Nova按需分派并管理虚机;
网络Neutron通常是计算服务通过该服务管理网络设置之间的连接,也可以允许终端用户创建并添加网络接口;通过一个插件式架构支持大量网络广商设备及网络技术;
存储类
对象存储Swift存取文件,但并不提供传统挂载式的文件服务;
块存储Cinder向虚机提供可用于持久存储的块存储服务;
共用服务
身份服务Keystone为OpenStack提供认证及授权服务。
镜像服务Glance提供虚机镜像的注册服务;同时计算服务也使用该服务分派实例;
计量/监控服务Ceilometer用于计费、基准测试及数据统计等功能
更高层服务
编排组织服务Heat使用自带的HOT模板或AWS的CloudFormation模板,通过OpenStack中各服务的REST API,将各组件的资源组织形成云应用;

 

Nova

计算服务是OpenStack的核心服务,它由nova-compute模块通过libvirt、XenAPI等管理hypervisor,从而管理虚机,此外它还通过nova-api服务向外提供如EC2兼容、管控功能等的接口,通过nova-scheduler模块提供虚机调研逻辑等;这些模块间的通信全部通过消息队列完成;

Swift

对象存储服务是OpenStack最早期的两个服务之一(另一个是计算服务),在OpenStack平台中,任何的数据都是一个对象;swift-proxy模块对外提供如HTTP(S)、OpenStack Object API及与S3兼容的存取接口。对象的存取经swift-proxy接入后,还需要经三个模块进行定位,即account、container、object;这是因为在OpenStack中一个对象被描述为:某个帐户下某个容器中的某个对象;

Glance

Glance的出现是解决虚机镜像的管理问题;在生成一个镜像后,需要将镜像注册到系统的数据库中;当要实例化一个虚机时,需要将镜像分派到一台具体的实机上用来以启动虚机;因而Glance最重要的接口是镜像的注册和分派;

 

Cinder

Essex将nove的卷管理api独立化后,Folsom终于将卷管理服务抽离成了Cinder;Cinder管理所有的块存储设备,块设备可以挂接在虚机的实例中,然后虚机里的guest系统可以像操作本地卷一样操作块存储设备;
Cinder需要处理的主要问题应该是接入各种块设备,如本地磁盘、LVM或各大广商提供的设备如EMC、NetApp、HP、HuaWei,还有如Vmware提供的虚拟块设备等。
值得一提的是发现在Cinder的驱动列表中出现了NFS,按理说NFS提供的不是块访问接口,而是文件访问接口,走到文档中看到说明为:NFS based cinder driver. Creates file on NFS share for using it as block device on hypervisor.竟然是用NFS上的文件模拟块设备。为什么不直接写一个将本地文件模拟为块设备的驱动呢?应该是写成NFS驱动,可以将NFS的挂载动作封装在驱动中。

Neutron

经过一定时间的演变,网络管理也抽离成一个独立的服务;在OpenStack的网络管理流程中,通常需要经过以下几个步骤:
1.    创建一个网络;
2.    创建一个子网;
3.    启动一个虚机,将一块网卡对接到指定的网络上;
4.    删除虚机;
5.    删除网络端口;
6.    删除网络;

Keystone

身份服务需要进行认证凭证的验证及关于用户、角色等的信息,及所有相关的元数据;这些数据全都由Keystone服务管理,并提供CRUD的操作方法;另外这些信息可以从另一个认证服务中获取,例如使用LDAP做Keystone的后端。

 

OpenStack与VM

以上这些服务与服务、服务与虚机的关系如下图所示:

 

 

  • 真正服务于VM的服务只有Nova、Glance、Neutron、Cinder:
    • Nova调派资源实例化虚机;
    • Glance提供虚机实例化时需要的镜像;
    • Neutron提供网络连接;
    • Cinder提供外接的块存储服务;
  • Ceilometer从上面与虚机相关的几个服务中收集数据,用于统计、监控、计费、报警等;
  • Swift可以为Glance提供镜像的存储服务,可以为Cinder提供卷的备份服务;
  • Keystone为所有服务提供认证、授权等服务;
  • Horizon为所有服务提供基于Web的操作接口;
  • 通过Heat可以方便地将各组件组织起来;

 

转载于:https://www.cnblogs.com/xueluo/p/3510761.html

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

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

相关文章

python 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值

3. 统计数字 中文English 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值。 Example 样例 1: 输入: k 1, n 1 输出: 1 解释: 在 [0, 1] 中,我们发现 1 出现了 1 次 (1)。样例 2&#x…

[转]Design Pattern Interview Questions - Part 2

Interpeter , Iterator , Mediator , Memento and Observer design patterns.(I) what is Interpreter pattern?(B) Can you explain iterator pattern?(A) Can you explain mediator pattern?(I) Can you explain memento pattern?(B) Can you explain observer pattern?…

python爬虫面试题

1 :列表生成式和生成器的区别 ? 列表生成式直接生成一个列表,所有元素对象被立即创建在内存中,当元素过多时,势必会占用过多内存, 不可取,要用到生成器,它即时创建一个生成器对象,…

%hd %d %ld %u ......

%d 有符号10进制整数 %ld 长整型 %hd短整型%md,m指定的是输出字段的宽度,默认左补空格, 如果数据的位数小于m,则左端补以空格,若大于m,则  按实际位数输出,如:  printf("%4d,%4d",a,b)  若…

我的扑克牌

main.m文件&#xff1a; #import <Foundation/Foundation.h> #import "hearts.h" #import "spade.h" #import "wintersweet.h" #import "diamonds.h" #import "stdio.h" #import "string.h" int main(int a…

在使用selenium,Chrome无界面浏览模式与自定义插件加载问题

Chrome启用无界面浏览模式时&#xff0c;自定义插件是没法加载的&#xff0c;会报以下错误&#xff1a; selenium.common.exceptions.WebDriverException: Message: unknown error: failed to wait for extension background page to load: chrome-extension://cdkhikphdegmcl…

一遍学习,一遍进步

做挨踢这块也快两年了&#xff0c;还是个小白。懂得技术有限&#xff0c;会的东西不多。知道的东西越多越觉得该知道更多东西。新的知识技术更新越来越快。有点应接不暇。 2013很糊涂的过来了。没有看几本书&#xff0c;没有自我提高&#xff0c;有点浑浑噩噩的感觉。单位的工作…

ubuntu18 安装redis-manager

参考&#xff1a;https://blog.csdn.net/momomomomm/article/details/83626147

Ios17个常用代码整理

1.判断邮箱格式是否正确的代码 //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex "[A-Z0-9a-z._%-][A-Za-z0-9.-]\\.[A-Za-z]{2,4}"; NSPredicate *emailTest [NSPredicate predicateWithFormat:"SELF MATCHES%",…

ubuntu18 激活 pycharm

1、到官网上下载好对应的版本 2、到安装好的pycharm的bin文件夹下&#xff0c;找到 pycharm.vmoptions 和 pycharm64.vmoptions&#xff0c;在两个文件后面添加代码&#xff1a; -javaagent:-javaagent:/home/maxzhang/user/pycharm/bin/JetbrainsCrack-release-enc.jar&#…

jquery背景自动切换特效

查看效果网址&#xff1a;http://keleyi.com/a/bjad/4kwkql05.htm 本特效的jquery版本只支持1.9.0以下。代码如下&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">2…

pandas和spark的区别

参考&#xff1a;https://blog.csdn.net/u013613428/article/details/78138857

Android ImageView图片自适应

网络上下载下来的图片自适应&#xff1a;android:adjustViewBounds"true"&#xff08;其详细解释在下面&#xff09;<ImageViewandroid:id"id/dynamic_item_image"android:layout_width"wrap_content"android:layout_height"wrap_conten…

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

BytesIO StringIO操作的只能是str&#xff0c;如果要操作二进制数据&#xff0c;就需要使用BytesIO。BytesIO实现了在内存中读写bytes&#xff0c;我们创建一个BytesIO&#xff0c;然后写入一些bytes&#xff1a; 写入的不是str&#xff0c;而是经过UTF-8编码的bytes。 (1).参考…

都江堰很美-佩服古人_Crmhf的一天

地震遗迹&#xff1a;一条背街&#xff0c;损坏严重&#xff0c;基本没什么人。真正的水利工程&#xff0c;值得每个人学习&#xff1a;转载于:https://www.cnblogs.com/crmhf/p/3823157.html

爬虫的增量式抓取和数据更新

不管是产生新页面&#xff0c;还是原本的页面更新&#xff0c;这种变化都被称为增量&#xff0c; 而爬取过程则被称为增量爬取。那如何进行增量式的爬取工作呢&#xff1f;回想一下爬虫的工作流程&#xff1a; 发送URL请求 ----- 获得响应 ----- 解析内容 ----- 存储内容 我们…

Spring Data JPA初使用 *****重要********

Spring Data JPA初使用我们都知道Spring是一个非常优秀的JavaEE整合框架&#xff0c;它尽可能的减少我们开发的工作量和难度。在持久层的业务逻辑方面&#xff0c;Spring开源组织又给我们带来了同样优秀的Spring Data JPA。通常我们写持久层&#xff0c;都是先写一个接口&#…

flask-笔记

-super() 使用super()保留基模板中定义的原始内容 - link标签&#xff1a; 用来指定当前文档和外部资源的关系。它最常见的是用来链接样式表&#xff0c;也用来创建网站图标(既是网站图标样式也包括移动设备和app图标)。 -csrf: CSRF概念&#xff1a;CSRF跨站点请求伪造(…

MySQL 无法连接

Host localhost is not allowed to connect to this MySQL server 错误 解决办法&#xff1a; C:\Program Files\MySQL\MySQL Server 5.5\my.ini 在[mysqld]下加下面两行&#xff0c; skip-name-resolve skip-grant-tables 重启mysql的windows服务&#xff0c;在mysql命令行界面…

能让你少写1000行代码的20个正则表达式

参考: (1).http://www.codeceo.com/article/20-regular-expressions.html