设为首页 收藏本站
查看: 1321|回复: 0

[经验分享] Openstack架构及基本概念理解

[复制链接]

尚未签到

发表于 2018-6-2 11:35:04 | 显示全部楼层 |阅读模式
简介

Openstack是一个通过数据中心(datacenter)控制大量的计算(compute)、存储(storage)和网络(networking)资源的云操作系统;
所有的资源都可以通过面板(dashboard)被系统管理员管理,同时也可授权用户自由分配所需使用的资源。
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
版本历史

Revision DateSummary of ChangesOct 17, 2013




Havana release




Apr 4, 2013




Grizzly release




Sep 27, 2012




Folsom release




Apr 5, 2012




Essex release




Sep 22, 2011




Diablo release




Apr 15, 2011Cactus releaseFeb 3, 2011Bexar releaseOct 21, 2010Austin release架构

主要服务
服务项目名称描述DashboardHorizon用户和管理员仪表盘ComputeNova控制器NetworkingNeutron安全虚拟网络StorageObject StorageSwift对象存储Block StorageCinder块存储Shared servicesIdentify ServiceKeystone身份验证服务Image ServiceGlance虚拟机镜像服务Telemetry ServiceCeilometer监控及计费服务Higher-level servicesOrchestration ServiceHeat自动化部署服务概念架构

逻辑架构

简单架构

Identity Service
介绍:
Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证、服务规则和服务令牌的功能, 它实现了OpenStack的Identity API。Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获得目标服务的Endpoint来找到目标服务。
功能:
用户管理:跟踪用户及其权限;
服务目录:提供带API地址的可用服务的目录
相关概念:
User:用户,代表可以通过keystone进行访问的人或程序。Users通过认证信息(credentials,如密码、API Keys等)进行验证;
Tenant租户,它是各个服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些机器,在Swift和Glance中一个tenant可以是一些镜像存储,在Neutron中一个tenant可以是一些网络资源。User默认的总是绑定到某些tenant上;
Role角色,代表一组用户可以访问的资源权限。(例如Nova中的虚拟机、Glance中的镜像)Users可以被添加到任意一个全局的或租户内的角色中。在全局的role中,用户的role权限作用于所有的租户,即可以对所有的租户执行role规定的权限;在租户内的role中,用户仅能在当前租户内执行role规定的权限;
Credentials:证书,证明用户身份的一段数据(Data)(如用户名/密码,用户名/API key等);
Authentication:认证,验证用户身份的动作。
Token:令牌,类似于证书,但描述的是可访问资源的权限;
Service服务,如Nova、Glance、Swift等;
Endpoint“端点”,可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。
形象对比:
User住宾馆的人Tenant宾馆RoleVIP 等级,VIP越高,享有越高的权限Credentials开启房间的钥匙Authentication宾馆为了拒绝不必要的人进出宾馆,专门设置的机制,只有拥有钥匙的人才能进出Token也是一种钥匙,有点特别Service宾馆可以提供的服务类别,比如,饮食类,娱乐类Endpoint具体的一种服务,比如吃烧烤,打羽毛球

服务处理流程:



Image Service
包含的组件:
glance-api:接受Image API调用,用以镜像发现、检索和存储;
glance-registry:存储、处理和检索镜像的元数据,包括大小(size)、类型(type)等;
Database:存储镜像元数据,大多部署使用MYSQL或SQLite;
Storage repository for image files:镜像的存储仓库,支持普通文件系统、RADOS块设备、Amazon S3、和HTTP等
处理流程:
接受来自终端用户(end users)或计算组件(Compute components)对于镜像或者镜像元数据的API请求,并将镜像文件存储在Object Storage Service(Swift)中。
Compute Service
包含的组件:
ServiceDescriptionAPInova-api接受和响应终端用户的compute API调用,也支持Amazon EC2 API、Admin API等;同时初始化大部分部署活动,如运行实例、执行规则等nova-api-metadata接受来自实例(Instance)的元数据请求,只在多主机(multi-host)并运行nova-network下运行Compute corenova-compute一个worker dameon,通过hypervisor API创建或终止虚拟机实例,如XenAPI对应XenServer/XCP,libvirt对应KVM或QEMU,VMwareAPI对应VMware等nova-scheduler调度器,从消息队列中获取虚拟机实例任务(Task),并分发至compute server主机运行nova-conductor引导器,居中调解nova-compute和database间的交互,防止nova-compute直接访问数据库Networking for VMsnova-network一个worker daemon,从消息队列中接受网络任务(task),并执行任务以配置网络,如建立网桥接口,改变iptables规则等;
此服务已独立成为了Openstack Networking(Neutron)服务
nova-dhcpbridge一个脚本,追踪IP地址的租约期限(leases),并将其记录在数据库中;
此功能已迁移至Openstack Networking(Neutron)服务中
Console interfacenova-consoleauth验证VNC客户端用户的tokennova-novncproxy一个proxy,可通过VNC连接访问运行中的实例,支持基于浏览器的novnc客户端nova-console在Grizzly版本中移除,以nova-x***vncproxy代替nova-x***vncproxy一个proxy,可通过VNC连接访问运行中的实例,支持特定的Java客户端nova-cert管理x509证书Image management(EC2 scenario)nova-objectstore提供用以在Image Service中注册镜像的S3接口,主要用于支持euca2ools的安装euca2ools管理云资源(cloud resources)的一组解释命令的集合Command-line clients and other interfacesnova client允许用户作为Tenant管理员或终端用户提交命令nova-manage允许云管理员(cloud Administrators)提交命令Other componentsThe queue在各daemon间传输消息的中心hub,如RabbitMQ、Apache Qpid或ZeroMQ等SQL database存储云架构中大部分建立时(build-time)和运行时(runtime)的状态,包括可用的实例类型、使用中的实例、可用的网络和项目(projects)等;
如sqlite3 databases、MySQL和PostgreSQL等
处理流程:
作为IaaS系统中主要的组成部分,Compute Service与Identity Service交互实现身份验证,与Image Service 交互实现镜像存取,与Dashboard交互实现用户和管理员的界面访问。
逻辑架构:

Block Storage Service
功能:
Block Storage Service用以管理卷(volume),卷快照(volume snapshots)和卷类型(volume types)。
包含的组件:
cinder-api:接受API请求,并将请求路由(route)至cinder-volume中;
cinder-volume:运行在存储节点上,管理存储空间;可通过驱动的形式(driver architecture)与多样的存储提供者交互,如本地存储、EMC、Netapp等;
cinder-scheduler: 类似于nova-scheduler,以选择需创建卷的最优的块存储提供者节点;
Messageing queue:在各程序间路由消息
逻辑架构:

Object Storage Service
功能:
Swift 构筑在比较便宜的标准硬件存储基础设施之上,无需采用 RAID(磁盘冗余阵列),
通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,
支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。
包含的组件:
swift-proxy-server:代理器,接受Object Service API和原生的HTTP请求,以上传文件、修改元数据和创建容器等;
swift-account-server:管理账户(accounts)
swift-container-server:管理容器(containers)的映射(mapping)
swift-object-server:管理存储节点上的实际对象,如文件(files)
A number of periodic process:在大型数据存储上执行一些事务任务,如复制(replication)、审计(auditor)、更新(updater)、(账户清理reaper)等
数据模型:
Swift 采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。
这里的账户和个人账户不是一个概念,可理解为租户,用来做顶层的隔离机制,可以被多个个人账户所共同使用;
容器代表封装一组对象,类似文件夹或目录;叶子节点代表对象,由元数据和内容两部分组成


系统架构:



Orchestration Service
功能:
提供了一种通过模版定义的协同部署方式,实现云基础设施软件运行环境的自动化部署
Heat对于虚拟机内部操作的控制是需要利用heat-cfntools这个工具。其实质是,通过向实例镜像中注入heat-cfntools,
然后实例利用heat-cfntools同heat交互,进而实现相关的对于实例内部的相关操作(如安装和配置mysql数据库等)。
包含的组件:
heat command-line:与heat-api通信以运行AWS CloudFormatiom APIs,终端用户也可直接使用Orchestration REST API;
heat-api:提供Openstack原生的 REST API,并将API请求通过RPC传递给heat-engine;
heat-api-cfn:提供与AWS CloudFormation兼容的AWS 查询API,并将API请求通过RPC传递给heat-engine;
heat-engine:执行模板(templates)的部署,并返回事件(event)
Telemetry Service
功能:
Ceilometer是OpenStack里数据采集(监控数据、计费数据)的唯一基础设施,采集到的数据提供给监控、计费、面板等项目使用。
包含的组件:
ceilometer-agent-compute用来收集计算节点上的信息,该Agent通过Stevedore管理了一组pollster插件, 分别用来获取虚拟机的CPU, Disk IO, Network IO, Instance这些信息;
ceilometer-agent-central运行在控制节点上,主要收集其它服务(Image, Volume, Objects, Network)等的信息;
ceilometer-collector主要作用是监听Message Bus,将收到的消息以及相应的数据写入到数据库中;另一个作用是对收到的其它服务发来的notification消息做本地化处理,然后再重新发送到 Message Bus中去,随后再被其收集;
ceilometer-alarm-notifier :运行在控制节点上,允许设置报警;
data store:处理并发的来自多个collector的写操作和来自API server的读操作;
API server(ceilometer-api) :运行在控制节点上,提供对data store中数据的访问;只有collector和API server有权限访问data store。
架构:
Ceilometer项目主要由Agent,Collector,DataStore,API和消息队列组成。

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-506726-1-1.html 上篇帖子: Openstack Nova network flatdhcpManager Configure .... 下篇帖子: CentOS 6.5系统部署OpenStack云计算平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表