OpenStack overview 笔记
Example architecture
example architecture 至少需要两个节点启动一个虚拟机或者实例。可选的服务,例如Block storage和Object storage需要额外的节点。example architecture和minimal production architecture的区别如下所示:
(1)、Networking agent存在于controller node中,而不是一个或多个独立的network nodes
(2)、对于self-service network的Overlay(tunnel)是走management network而不是dedicated network
Controller
Controller node运行identify service, image service, networking的管理部分,各种networking agents和dashbord。其中还可以包括很多supporting service,例如SQL 数据库,消息队列和NTP
事实上,controller node还可以运行block storage,object storage,orchestration和telemetry service。最后,controller node 需要至少两个网卡
Compute
compute node运行compute的hypervisor部分用于操作虚拟机实例。默认情况下,Compute使用KVM作为hypervisor。compute node还要运行networking service agent,它能将虚拟机连接到虚拟网络中,并且给虚拟机提供firewalling service。我们可以部署多个compute node,每个node需要至少两个网卡。
Block Storage
Block Storage node是可选的,其中包含了为虚拟机提供的Blocke storage和Shared File System service的磁盘。为了简单起见,compute node和本节点是使用management network进行通信的。在生产环境中需要提供专有的网络用于提高性能和安全性。我们可以部署多个block storage node,每个node至少需要一个网卡
Object Storage
Object Storage node是可选的,其中存放了Object Storage service的磁盘用于存放accounts,containers以及object。和Block node类似,为了简单起见,compute node和本节点直接是使用management network进行通信的。但是在生产环境中,需要实现专有的网络用于通信。该服务需要至少两个节点,每个node至少需要包含一个网卡。
Networking
Networking Option 1:Provider networks
Provider networks 用的是最简单的OpenStack Networking service部署方案,提供了基本的layer-2(birdging/switching)services和VLAN segmentation of networks。本质上,它将虚拟网络和物理网络相连,并且依赖物理网络的基础设施来提供layer-3(routing) services。另外,DHCP service为虚拟机提供IP信息
Networking Option 2:Self-service networks
self-service networks 在provider networks的基础上提供了layer-3(routing) service,主要是利用overlay segmentation methods,例如VXLAN实现的。事实上,它通过NAT将虚拟网络路由到物理网络。另外,这种network option提供了一些高级的服务,例如LBaas和FWaas。
Identity service
OpenStack的Identity service提供了对于管理认证,授权,以及service目录的单点集成。Identity service通常是用户解除的第一个service,一旦通过认证,端用户就能通过它们的identity去获取OpenStack service。同样,其他的OpenStack services利用Identity service来确认用户,以及发现其他service部署在什么地方。Identity service还能和其他的外部用户管理系统集成(例如LDAP)。
用户和service能够通过service目录获取其他目录的位置。如名字所示,service目录是OpenStack集群上可用的service的集合。每个service都可以有一个或多个endpoint,每个endpoint都是admin, internal或者public三个类型中的一种。在生产环境中,不同的endpoint类型会存在于不同的network中,因为处于安全的考虑,不同的类型是有不同的network的。比如,public API network在Internet上是可见的,从而用户能管理他们的云。而admin API network可能仅仅局限于那些云基础设施的管理者。internal API network则局限于那些运行着OpenStack service的主机。为了扩展性,OpenStack支持多region,但是出于简单起见,我们对于所有的类型都使用同一网络并且使用默认的RegionOne region。总之,Identity service中创建的region,service和endpoint构成了集群中的service目录。对于每一个OpenStack service,都需要在Identity service中存放一个伴有相应endpoint的service entry。这些都能在Identity service安装和配置好之后完成。
Identity service由以下组件组成:
Server:一个中心化的server提供使用RESTful接口的授权和认证
Drivers:drivers或者service back end是和中心化server集成的。它们是用于为OpenStack外部的库提供identity信息的,并且可能在OpenStack还在部署的时候就已经存在了。
Modules:OpenStack组件地址空间上运行的Middleware module也使用identity service。这些modules解析service request,抽取出user credentials,并且将它们发送给中心server用于授权。Middleware和OpenStack组件之间通过Python Web Server Gateway Interface进行通信。
Image service
Image service能够让用户发现,注册,检索虚拟机镜像。它提供了一个REST API,从而让你能查询虚拟机镜像的元数据以及检索实际的镜像。我们可以将虚拟机镜像存放在各种地方,从简单的文件系统到像OpenStack Object Storage的对象存储系统
为了简单起见,我们使用file back end来配置image service,即将镜像存放在运行image service的controller node的目录中。默认情况下,该目录为/var/lib/glance/images/。在进行操作之前,我们需要确保在controller node中的相应目录至少有几个G的存储空间。需要注意的是,file back end通常是在controller node的本地的,而这对于多节点的部署显然是不合适的。
OpenStack的image service位于IAAS的中心。它接收来自端用户或者OpenStack计算组件对于磁盘,服务镜像以及元数据定义的API请求。同时,它还支持磁盘存储,多种类型的服务镜像,包括OpenStack Object Storage。OpenStack image service上有一定数目的周期性运行的进程用于支持caching。Replication services用来确保集群的一致性和可用性。其他周期性运行的进程包括,auditors, updaters,reapers。
glance-api:接收镜像API调用,包括镜像发现,检索和存储
glance-registry:存储,处理和恢复镜像的元数据。元数据包括大小和类型。(注:registry是OpenStack image service的一个private internal service,不能将它暴露给用户)
Database:用于存储镜像的元数据,我们可以根据自己的偏好任意选择数据库。大多数部署使用MySQL或者SQLite
Storage repository for image files:OpenStack支持各种各样的repository type,包括普通的文件系统(或者任何挂载在glance-api所在的controller node上的文件系统),对象存储,RADOS块设备,VMware数据库以及HTTP。需要注意的是,一些repository只支持只读。
Metadata definition service:一个通用的API用于为vendor,admins,service,以及user定义它们自己的元数据。这些元数据可以被用于不同类型的资源,例如images,artifacts,volumes,flavors以及aggregates。一个标准的定义通常包括,新特性的键值,描述,约束以及相关的资源类型。
Compute service overview
使用OpenStack Compute管理云计算系统。OpenStack Compute是IAAS系统的主要部分。它的主要部分是由Python实现的。OpenStack Compute通过和OpenStack Identity交互来进行认证;和OpenStack image service交互用于磁盘和服务镜像;和OpenStack dashboard交互用于user和administrative的接口。镜像的访问受项目和用户的限制,配额则受到项目的限制(例如实例的数目)。OpenStack Compute可以在标准硬件上水平扩展,并且下载镜像来生成实例。
OpenStack Compute由以下这些组件构成:
nova-api service:用于接收以及回复端用户的compute API调用,该service支持OpenStack Compute API,Amazon EC2 API,以及special Admin API为特权用户执行管理员操作。它强行执行一些策略,以及初始化大多数的编排操作,例如运行一个实例。
nova-api-metadata service:接收来自实例的元数据请求。nova-api-metadata service通常在运行multi-host模式并且安装了nova-network的时候使用。
nova-compute service:一个worker daemon通过hypervisor API创建并且终止虚拟机实例。比如:XenAPI for XenServer/XCP,libvirt for KVM or QEMU,VMware for VMware。
处理的过程是非常复杂的。通常,daemon从队列中接收指令,再执行一系列的系统命令,例如启动一个KVM实例,以及更新它在数据库中的状态。
nova-scheduler service:从队列中获取一个虚拟机实例请求,并且决定在哪个compute server上运行。
nova-conductor module:nova-compute service和数据库的中介。它限制了nova-compute service对于云数据库的直接访问。nova-conductor module可以水平扩展。然而不要将它部署在运行nova-compute service运行的节点上。
nova-cert module:用于提供X509 certificate Nova Cert service的server daemon。用于为euca-bundle-image生成证书。只在EC2 API中使用。
nova-network worker daemon:和nova-compute service类似,从队列中接收并处理networking tasks。执行例如设置网桥接口或者改变IPtables 规则等任务。
nova-consoleauth daemon:验证console proxies提供的tokens。参见nova-novncproxy和nova-xvpvncproxy。如果要console proxies能正常工作,这个service必须运行。在集群配置了单个的nova-consoleauth就能运行两个proxy中的任意一个。
nova-novncproxy daemon:为通过VNC连接一个运行实例提供代理。支持基于浏览器的novnc客户端。
nova-spicehtml5proxy daemon:为通过SPICE连接一个运行实例提供代理。支持基于浏览器的HTML5客户端。
nova-xvpvncproxy daemon:为通过VNC连接一个运行实例提供代理。支持OpenStack的Java客户端。
nova-cert daemon:x509证书。
nova client:使用户能够作为租户管理员或者端用户提交请求
The queue:用于daemon之间传递数据的central hub。通常通过RabbitMQ实现,也能通过另外的例如AMQP消息队列实现,例如ZeroMQ。
SQL database:用于存储大多数云基础设施的build-time和run-time状态,包括:可用的实例类型,正在使用的实例,可用的网络,Project。
理论上来说,OpenStack Compute能支持任何SQL-Alchemy支持的数据库。通用的数据库为SQLite3,用于测试和开发工作,MySQL,MariaDB和PostgreSQL。
OpenStack overview 笔记的更多相关文章
- openstack学习笔记一 虚拟机启动过程代码跟踪
openstack学习笔记一 虚拟机启动过程代码跟踪 本文主要通过对虚拟机创建过程的代码跟踪.观察虚拟机启动任务状态的变化,来透彻理解openstack各组件之间的作用过程. 当从horizon界面发 ...
- CentOS7和OpenStack的笔记(一)
CentOS7和OpenStack的笔记(一) 最近搞CentOS7系统和OpenStack框架,整了近一个星期,系统装了好几次,框架搭了又从搭.虽然最后的实例没能启动成功,但是在这专研的一个星期里, ...
- Openstack实验笔记
Openstack实验笔记 制作人:全心全意 Openstack:提供可靠的云部署方案及良好的扩展性 Openstack简单的说就是云操作系统,或者说是云管理平台,自身并不提供云服务,只是提供部署和管 ...
- OpenStack 学习笔记 (一)
后续的文章都贴在:臭蛋上 这一系列笔记已经记录很长一段时间了,种种原因没有贴出来,现在陆陆续续的贴出来.可能由于自己理解的 错误和疏忽,导致存在错误,欢迎大家指正,交流. 所有的源码分析都是基于Ope ...
- OpenStack学习笔记(一)----安装虚拟化工具
下面的命令运行在操作系统Ubuntu 14.04上. 在开源软件里面,主要是采用KVM和Xen.尽管OpenStack对KVM和Xen都支持,但是OpenStack对KVM的支持明显要比Xen做得好, ...
- openstack详细笔记-nova-glance-swift-cinder-keystone等
一.openstack各大模块 1.openstack总架构图 http://3ms.huawei.com/km/blogs/details/2655265 2.nova 2.0架构图 2.1 nov ...
- openstack 部署笔记--neutron计算节点
控制节点 # vim /etc/neutron/neutron.conf [DEFAULT] # ... transport_url = rabbit://openstack:root@control ...
- openstack 部署笔记--neutron控制节点
控制节点 配置neutron用户及服务 $ . admin-openrc $ openstack user create --domain default --password-prompt neut ...
- openstack 部署笔记--nova
控制节点 配置用户与服务 $ . admin-openrc $ openstack user create --domain default --password-prompt nova $ open ...
随机推荐
- 使用EasyUI的插件前需要引入的文件
一.使用EasyUI的插件需要引入一些文件 1.引入相关文件 easyui.css: easyUi的样式文件 icon.css:easyUI的图标样式文件 easyui.min.js:easyUi的类 ...
- ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍新增文档目录控件(TOC),通过拖拽操作便可添加报表目录. ...
- Web基础开发最核心要解决的问题
Web基础开发要解决的问题,往往也就是那些框架出现的目的 - 要解决问题. 1. 便捷的Db操作: 2. 高效的表单处理: 3. 灵活的Url路由: 4. 合理的代码组织结构: 5. 架构延伸 缓存. ...
- [moka同学笔记]yii2场景的使用(摘录)
前半部分为自己使用的过程,下边为转载的,具体地址见:http://blog.sina.com.cn/s/blog_88a65c1b0101j717.html 1.在model中 public func ...
- SQL Server SQL语句执行顺序
执行顺序: 1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1 2.ON:对vt1表应用ON筛选器只有满足 为真的行才被插入vt2 3.OUTER(join):如果指定了 OUTER ...
- Web Service(一) 基础学习
1 基础的Web Service平台是XML+HTTP. 2 Web Service平台的元素包括:SOAP(Simple Object Access Protocol)简单对象访问协议: UDDI( ...
- web安全——防火墙
简介 用于实现服务器(Linux)的访问控制的功能的. 分硬件和软件防火墙. 主要是控制访问的流入和服务器的流出. 通过黑名单和白名单的思想来实现更细粒度的控制,这个一般结合其他的应用来定义策略实现. ...
- html-制作导航菜单
导航菜单nav: 1.使用列表标签<ul> 2.使用浮动布局float 3.使用超链接标签<a>:要使用<a>标签的margin外边距,需要让<a>标签 ...
- 利用jQuery的淡入淡出实现轮播器
基本原理:将所有图片绝对定位在同一位置,透明度设为0,然后通过jQuery的淡入淡出实现图片的切换效果: 但我在使用fadeIn淡入时却无效果,最后只能使用fadeTo实现,求大神指教 HTML: & ...
- [ javascript html Dom image 对象事件加载方式 ] 对象事件加载方式
<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...