一、OpenStack是一款开源的云操作系统,可以控制整个数据中心的大型计算、存储和网络资源池,从而实现软件定义数据中心。它将资源抽象、重组、重分配,以服务的方式对外提供服务
1)、OpenStack不是云计算,它只是构建云计算的关键组件(内核、骨干、框架、总线)
OpenStack组件
nova:计算服务 cinder:块存储服务 swift:对象存储软件 manila:文件存储服务
neutron:软件定义网络服务 glance:镜像服务 keystone:认证鉴权服务
heat:应用编排服务 horizon:图形化人机界面服务 ceilometer:计量、监控服务
ironic:裸金属服务
2)、其中keystone是和所有的组件相连接的,为其它组件提供认证鉴权和服务目录的 功能个不同组件之间的交互都是通过restapi接口进行通讯。
3)、RESTful API是利用HTTP请求访问或使用数据的应用程序接口(API)的体系结构样式。这些数据可用于GET,PUT,POST和DELETE数据类型,这些数据类型指的是与资源相关的操作读取、更新、创建和删除。使用RESTful风格的接口但从接口上你可能只能定位其资源,但是无法知晓它具体进行了什么操作,需要具体了解其发生了什么操作动作要从其HTTP请求方法类型上进行判断。
4)、OpenStack中公共基础组件MQ和Database。任何服务之间通讯,或组件之间通讯都要用到MQ。Rabbit MQ。
5)、Openstack一般分为控制节点、计算节点、网络节点
在控制节点的服务有:Nova-api、Nova-schduler、Nova-conductor、
Cinder-api、Cinder-schduler、
Neutron-server。
二、Nove
Nova是OpenStack计算的弹性控制器,负责整个OpenStack计算资源的管理和调度。实现虚机实例的生命周期管理。Nova支持大规模、可扩展、按需自助的计算资源。Nova支持管理裸机、虚拟机和容器。负责VM和其他计算资源生命周期的管理,如:创建删除重启、冷热迁移、规格调整、HA等,不负责VM的物理主机自身的管理和全面的系统监控状态。
nove内部各组件
Nova-API:对外提供REST API接口,接受和处理请求;对请求信息进行认证鉴权合法性校验;将请求写入数据库,对资源进行(CUDR)创建更新删除查询等操作。
Nova-scheduler:调度程序 作用是筛选合适的计算节点。 通过过滤和权重(1、默认是内存,可选CPU权重)(2、前面的都一样就随机选)。进行筛选选择合适的计算节点用于创建实例。
Nova-conductor:导体、指挥完成Nova内部组件的交互和复杂流程(创建、冷热迁移和规格调整等)操作处理,解耦Nova-Computer和数据库的关系,更易扩展,更安全,方便升级,性能上更优。Nova-Computer需要Nova-Conductor启动后才能启动,其他组件的心跳定时写入。
Nova-computer:虚拟机生命周期管理和资源管理,是VM生命周期操作的真正执行者(会调用对的后端driver对接不同虚拟化平台创建实例;资源管理模块配合插件机制,完成资源的统计。周期性的将自己的资源用量通过Nova-Conductor告诉DB
控制节点部署:Nova-api、Nova-scheduler、Nova-conductor,多活部署,有三个控制节点(可靠性)。
部署计算节点:Nova-computer。可以有一个或多个。多活部署
openstack有以下三类组件:
1、openstack本身的服务:比如计算nova、块存储cinder等
2、服务内部子组件:比如nova内部的api\compute等
3、openstack所使用的公共组件:DB、MQ
三种访问方式:
1、openstack不同服务的通信,比如nova访问keystone,glance访问swift(基于http的rest api访问)
2、服务内部子组件通信,比如nova内部的api访问compute(基于MQ的rpc调用)
3、访问数据库
三、Cinder
Cinder为openstack提供持久化块存储服务,可以通过后端驱动对接不同种类的存储(本地存储、fcsan、ipsan)。Cinder不提供存储空间,只提供对卷的管理(如卷的创建、删除、快照、备份等),存储空间由后端对接的存储提供。
Cinder内部组件
inder-Client:封装Cinder提供的rest接口,以CLI的方式供用户使用。
Cinder-API:对外提供rest api,对请求进行身份验证和合法性校验,对请求进行解析并记录到数据库,调用后端组件完成CUDR。如:卷的增删改查,快照的增删改查、备份,卷类型的管理挂载卸载等
Cinder-schduler详单、列表:负责收集后端上报的资源容量信息,通过过滤和权重筛选择合适的后端主机。多活部署。
Cinder-volume:,通过不同的驱动来支持不同类型不同型号的后端设备,完成卷和快照的操作。Cinder-volume会定期查询后端底层后端的容量信息,并通知scheduler更新内存中的后端设备信息。多活部署,部署在计算节点,和Nova-Computer部署在一起。
Cinder-Backup:实现将卷的数据备份和恢复的功能
Cinder创建卷流程:
租户或者别的项目到Cinder-API申请创建卷,Cinder-API将请求记录写入到数据库一份,然后调用Cinder-Scheduler创建卷,Scheduler通过过滤、权重选择最优的主机,然后将请求发送给Cinder-volume,由Volume对接后端不同的存储驱动创建卷
SAN(Storage Aera Network )存储区域网络,是一种通过网络方式连接存储设备和应用服务器的存储构架,这个网络专用于主机和存储设备之间的访问。根据数据链路使用的是网线还是光纤分别称IPSAN或者FCSAN。
四、swift
Swift是一款对象存储软件,将数据以对象的方式,在华为的OpenStack中是用来当做Glance的后端存储的,是非结构化数据。
1、基于rest API服务访问方式通过http承载通讯
2、数据在整个系统中均匀分布高可靠性,资源高效利用
3、支持多种硬件设备,无中央数据库没有单性能瓶颈。
4、数据高可靠性。Account/Container/Object三级存储结构均无需文件系统且均有N(>=3)份拷贝
5、最少是三副本进行数据保存,数据写到硬盘中,并不写到内存中
6、适合存放非结构化数据,如图片、音频等数据
应用场景:
1、在私有云中用于Glance的后端存储为其存储镜像文件
2、由于Swift的扩展能力,适合存储日志文件和数据备份仓库,
Proxy server:对外提供基于HTTP的REST接口,采用无状态的REST请求,可以进行横向扩展来负载均衡,对账户、容器、对象进行CRUD等操作。
Account server:提供账户元数据和统计信息,并维护所含容器列表的服务,所有的账号信息被存储在SQlite数据库中。
Container server:提供容器元数据和统计信息,并维护所含对象列表服务,每个容器的信息也存储在SQlite数据库中。
Object server:提供对象元数据和内容服务,每个对象会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议扩展属性的XFS文件系统。
Account server、Container server中存放的是结构化数据,存放在mysql中
Object server:存放的是非结构化数据,存放在后端存储中
五、Neutron
Neutron为openstack内部组件提供网络服务,也为发放出来的实例提供网络。同时可以作为SDN控制器,可以让本地网络无缝迁移到SDN的场景中。
Neutron中各个子组件
Physical network:物理网络。
Provider network:理解为内部网络。 相当于vlan或者flat网络。
Self-server network:自助网络,可以理解隧道(vxlan)网络。
External net:外部网络/公共网络。与internet相连。
SG(security group):安全组是在Neutron port(对应二层网络接口)上的一组策略。规定了VM出口入口流量的规则,默认拒绝所有流量,只有添加了放行规则的流量才允许通过。 默认规则:拒绝所有入口流量,允许所有出口流量。
Neutron Server:对外提供rest API,对请求进行身份验证和合法性校验,并调用Plugin处理请求。(Core api、service api)
Neutron-Plugin:处理Neutron Server的请求,维护网络状态,将请求写入数据库,并调用Agent处理请求。
Neutron-Agent:处理Plugin的请求,调用底层虚拟或物理网络设备实现各种网络功能。
Management Network
提供Openstack组件间的内部通信。该网络内的IP地址只有数据中心内部可达。
Data Network
提供云内部虚拟机之间数据通信。该网络内的IP地址取决于使用的网络插件程序。
External Network
提供VM与外部Internet间的通信。Internet上的任何人都可以访问该网络内的IP地址。
API Network
为租户提供包所有Openstack API。该网络内的IP地址应该被允许Internet上的任何人可达。
OpenStack生产环境中常用的两种网络类型:
1、linux Bridge+flat网络 工作于二层的网络设备。功能类似与物交换机
2、OVS虚拟交换机+VXLAN 网络
在openstack中叫Floating ip(浮动ip),在服务层:公有云上叫EIP(elastic ip)。这俩是一个东西只是叫法不一样。 Fixed ip:固定ip。VM使用的IP。
标签:存储,网络,Nova,API,Cinder,组件,openstack From: https://blog.51cto.com/u_14869798/6138644