本文共 5309 字,大约阅读时间需要 17 分钟。
openstack是一个开源的云计算管理平台架构,是一系列开源的软件项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
它为私有云和公有云的建设与管理提供了开源软件项目。在传统的运维管理服务器资源的基础上,有了openstack架构之后,才可在其之上部署云平台的服务,进行运维和管理。
云计算管理的是网络资源、存储资源、服务器资源等物理硬件资源。可以使客户在任何时间任何地点,通过网络,获取所需要的资源或服务,并且按需分配,按用量进行收费。
提供底层IT基础设施服务,包括处理能力,存储空间、网络资源,一般面对对象是IT管理人员。
用户可获取的是硬件或虚拟硬件,包括裸机或虚拟机,可以自行安装操作系统或其他应用程序。
把安装好开发环境的系统平台作为一种服务通过互联网提供给用户,一般面对对象是开发人员。
用户可获取的是安装了操作系统以及支撑应用程序运行所需要的资源库等软件的物理机或虚拟机,可以自行安装其他应用程序,但不能修改已经预装好的操作系统和运行环境。
直接通过互联网为用户提供部署好的软件和应用程序的服务,可直接使用,一般面向对象是普通用户。
用户可获取的是以租赁的方式来直接使用一些软件,而不是购买。
OpenStack优势
控制性
完全开源的平台,提供API接口,方便与第三方技术集成兼容性
OpenStack兼容其他公有云,方便用户进行数据迁移可扩展性
模块化设计,可以通过横向扩展,增加节点、添加资源灵活性
根据自己的需要建立相应基础设施、增加集群规模行业标准
众多IT领军企业已经加入到OpenStack项目整个OpenStack架构由多个子服务组成:以下是几个核心项目
服务 | 项目 | 描述 |
---|---|---|
Compute 计算服务 | Nova | 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展 |
Network 网络服务 | Neutron | 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 |
Identify 身份认证服务 | Keystone | 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制 |
Dashboard 控制面板服务 | Horizon | 提供一个Web管理界面,与OpenStack底层服务进行交互 |
Image Service 镜像服务 | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像 |
Block Storage 块存储服务 | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储 |
Object Storage 对象存储服务 | Swift | 为OpenStack提供基于云的弹性存储,支持集群无单点故障 |
Telemetry 计量服务 | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径 |
学习Openstack的部署和运维之前,应当熟悉其架构和运行机制,OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则如下:
如下图所示:
上图的核心为虚拟机,所有组件围绕虚拟机,为它提供服务。可将上图的架构分为三个部分:
红色方框为全局组件:
keystone:为所有服务模块提供认证与授权 ceilometer:度量、监控所有数据资源 horizon :UI平台管理,提供一个web管理页面,与底层交互黄色方框为外部辅助组件:
ironic 提供裸金属环境 trove 提供管理数据库服务(控制关系型和非关系型数据库) heat,sahara 提供对数据管理和编排蓝色方框为内部核心组件:
glance:提供镜像服务 neutron:提供网络服务 swift:提供对象存储资源 cinder:提供快存储资源 nova:管理实例的生命周期,并负责调取以上四个资源给虚拟机使用。具体流程:
云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(Image) 可以通过Swift的对象存储机制进行保存。如下图:
消息队列:常用的三种类型,包括rabbitmq、 rocketmq、kafka,是两个独立的服务之间,消息传递的载体,解决消息在传输是请求的高并发问题,会以容器的方式,存储消息列表(包括请求、交互、报文),划分重要等级放入队列中,逐个处理,处理完的会自动删除。
OpenStack组件通信关系:
物理架构可以从四个节点来看,包括控制节点,网络节点,计算节点,存储节点。
定位:运维人员通过控制节点从而控制整个openstack架构。
控制节点包括以下服务
管理支持服务
基础管理服务
扩展管理服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
RabbitMQ:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
控制节点一般来说只需要一个网络端口用于通信/管理各个节点
网络节点仅包含Neutron服务
网络节点包含三个网络端口
eth0:用于与控制节点进行通信
eth1:用于与除了控制节点之外的计算/存储节点之间的通信
eth2:用于外部的虚拟机与相应网络之间的通信
计算节点包含Nova,Neutron,Telemeter三个服务
基础服务
扩展服务
计算节点包含最少两个网络端口
eth0:与控制节点进行通信,受控制节点统一调配
eth1:与网络节点,存储节点进行通信
存储节点包含Cinder,Swift等服务
Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件
存储节点包含最少两个网络接口
eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务
转载地址:http://erkgf.baihongyu.com/