欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

云操作系统OpenStack架构分析

程序员文章站 2022-04-12 20:39:37
OpenStack是什么? OpenStack是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部...

OpenStack是什么?

OpenStack是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部署资源。

OpenStack项目
Horizon

提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。

Nova

在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。

Neutron

确保为其它OpenStack服务提供网络连接即服务,比如OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。

Keystone

为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。

Glance

存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。

Cinder

为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。

Swift

通过一个 RESTful,基于HTTP的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。

Ceilometer

为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。

Heat

Orchestration服务支持多样化的综合的云应用,通过调用OpenStack-native REST API和CloudFormation-compatible Query API,支持:term:HOT 格式模板或者AWS CloudFormation格式模板

Nova分析
1、Nova简介
OpenStack云中的计算组织控制器 管理OpenStack云中实例的生命周期 管理计算资源、网络、认证所需的可扩展性平台
2、Nova常用术语
KVM

内核虚拟化,OpenStack默认的Hypersvisor。

Qemu

KVM的替补角色,没有KVM执行效率高,不支持全虚拟化。

Flavor

新建虚拟机的配置列表,虚拟机模板。

Keypair

ssh连接访问实例的秘钥对。

安全组

用来控制实例访问策略的容器。

安全组规则

用来控制实例访问的具体策略。

3、Nova功能特性
实例的生命周期管理 管理平台的计算资源 统一风格的RestAPI 支持透明的hypervisor 各个模块通过消息队列实现交互
Swift分析
1、Swift简介
高可用分布式对象存储 为Nona组件提供虚拟机镜像存储 适用于互联网应用场景下非结构化的数据存储
2、Swift常用术语
Account

用户定义的管理存储区域。

Container

存储隔间,类似于文件夹或目录。

Object

包含了基本的存储实体和它自身的元数据。

Ring

记录了磁盘上的实体名称和物理位置的映射关系。

Region

地域,从地理位置上划分的一个概念。

Zone

可用区,按照独立的供网、供电基础设施划分。

Node

节点,存储服务器。

Disk

磁盘,物理服务器上的存储设备。

Cluster

群集,为冗余考虑的部署架构。

Keystone分析
1、Keystone简介
提供身份验证、服务规则和服务令牌功能 任何服务之间相互调用,都需要经过Keystone的身份验证
2、 Keystone常用术语
User

OpenStack最基本的用户。

Project

指分配给使用者的资源的集合。

Role

代表一组用户可以访问资源的权限。

Domain

定义管理边界,可以包含多个project/tenant、user、role等。

Endpoint

服务的URL路径,暴露出来的访问点。

Neutron分析
1、Neutron简介
提供网络服务的核心组件 基于软件定义网络的思想
2、Neutron常用术语
Bridge-int

实现内部网络功能的网桥

Br-ex

与外部网络通信的网桥

Neutron-server

提供API接口

Neutron-L2-agent

实现二层网络通信的代理

Neutron-DHCP-agent

为子网自动分发IP地址

Neutron-I3-agent

租户网络和floating IP间地址转换

Neutron-metadata-agent

响应Nova的metadata请求

LBaaS agent

为多台实例和open vswitch agent提供负载均衡服务

Glance分析
1、Glance简介
为Nova提供镜像服务 通常不负责镜像的本地存储 实现对镜像的管理
2、Glance镜像格式
Raw vhd vdi iso qcow2 aki ami
3、Glance组件
Glance-api

负责提供镜像服务的rest api 服务

Glance-registry

主要负责与Glance使用的数据库交互

Cinder分析
1、Cinder简介
为虚拟机实例提供volume卷的块存储服务 一个volume可以同时挂载到多个实例上 共享的卷同时只能被一个实例进行写操作
2、支持的文件系统类型
LVM/ISCSI NFS NetAPP NFS Gluster DELL Equall Logic
3、Cinder常用术语
Volume备份

volume卷的备份

Volume快照

卷在某个时间点的状态

Cinder API

为Cinder请求提供统一风格的Rest API服务

Cinder Scheduler

负责为新建卷指定块存储设备

Cinder Volume

负责与存储的块设备交互,实现卷的创建、删除、修改等操作

Cinder Backup

备份服务负责通过驱动和后端的备份设备打交道

Ceilometer分析
1、Ceilometer简介
OpenStack中的数据监控器 为流量计费提供数据支撑
2、核心概念
Ceilometer-agent-compute

收集计算节点上信息的代理

Ceilometer-agent-central

运行在控制节点上,轮询服务的非持续化数据

Ceilometer-collector

运行在控制节点上,监听Message Bus,将收到的消息写入到数据库中

Storage

数据存储,用于存储收集到的样本数据

API server

运行在控制节点上,提供对数据库数据的访问

Message Bus

计量消息的数据总线,收集数据给collector

Heat分析
1、Heat简介
OpenStack核心项目之一 提供基于模板的编排服务
2、Heat常用术语
Stack

指的是Heat要用到的所有设施和资源的集合

Heat template

是以.yaml结尾的文件,用于创建stack

Heat-api

提供rest api服务,将api请求发送给heat engine去执行

Heat-api-cfn

支持亚马逊格式访问的Rest api

Heat-engine

Heat的核心模块,接收API请求在openstack中创建资源

3、Heat组件
Heat-cfntools 、Heat-init

在镜像中安装完成虚拟实例操作任务的工具

Heat-api-cloudwatch

监控编排服务

Resource

底层各种服务抽象的集合

Heat-client

调用访问其他各个组件的client工具