大家好,我顾某人又回来了,开学第一更。。。。
以下内容均为个人理解和整理,有不对的地方还望dalao指正。。。。。
本文所用图片均已标明来源。
openstack是什么?
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
openstack组成
openstack由以下七个主要部分组成:
- Nova:计算服务
- Neutron:网络管理服务
- Keystone:认证服务
- Swift:对象存储服务
- Cinder:块存储服务
- Glance:镜像管理服务
- Horizon:操作界面
openstack整体架构
图源网络
openstack组成详解
Nova
Nova提供CPU、内存、网络适配器和硬件驱动器等服务器资源虚拟化的功能,提高了资源的利用率。
通过Nova api来接受和响应用户的请求,实时对VM进行启动、挂起、停止等功能。
Nova主要包含的组件有:
- Nova-api
响应用户的请求 - Nova-scheduler
负责VM的调度,决定了VM运行在哪台主机上。 - Nova-compute
管理VM实例的生命周期 - Nova-conductor
计算服务与数据库的交互中介,避免直接访问数据库 - Nova-console
提供访问VM的控制台 - Nova-consoleauth
负责对VM控制台的请求提供Token认证 - Nova-cert
提供证书 - Hypervisor
虚拟化管理程序,用于实现硬件的虚拟化 - database
用于存放一些Nova的数据 - message queue
用于Nova子服务之间的相互协调和通信
Neutron
Neutron架构,图源CloudMan
Neutron通过plugin
和agent
提供的网络服务。
调用网络的API分为以下两种:
- Core API
对外提供network
、subnet
和port
的API - Resource and Attribute Extension API
对外提供管理router
、load balance
、firewall
等资源的API。
Neutron的plugin
分为Neutron Core Plugins
和Neutron Service Plugins
。
- Neutron Core Plugins
Neutron的核心插件,实现Core API
在数据库中维护network
、subnet
和port
的状态,并负责调用相应的agent
在network provider
上执行相关操作. - Neutron Service Plugins
Neutron的扩展插件,实现Extension Plugin API
,在数据库中维护router
、load balance
、security group
等资源的状态,并负责调用相应的agent
在network provider
上执行相关操作.
Message Queue:消息队列
用于Plugins
和Agent
相互之间的调用.
Keystone
keystone为openstack组件提供认证服务和管理用户及其权限。
keystone中有几个重要的概念要了解一下:User(用户)、Role(角色)、Tenant(租户)、Service(服务)。
- User 用户,keystone的授权用户
- Role 角色,表示用户可以访问资源的权限
- Tenant 租户,各个服务中可以访问的资源合集
- Service 服务,租户可以提供的服务
keystone的运作流程大概是这样的:当User想要去访问某个Service时,首先他要向keystone出示它的Credentials,Keystone认证之后会给User一个Token,然后User就可以使用这个Token去访问Service,这时这个Service就会向keystone去验证User的Token,如果验证成功,那么User就成功访问到Service中的Endpoint,且User的Role越高,访问到的Service越多。
通俗的来讲是这样的:
User|住酒店的人
|:-|:-
Tenant|酒店
Credentials|酒店房间钥匙
Authentication|房客认证机制
Token|发给能打开房间的人的凭证,用于享受酒店的服务
Service|酒店提供的一种服务
Endpoint|酒店提供服务中的具体服务
Role|酒店会员等级
Swift
Swift为OpenStack提供一种分布式、持续虚拟对象存储,主要用于存储大的对象文件,比如虚拟机的备份。
Cinder
openstack的一种块存储方式,挂载给虚拟机使用,可以给虚拟机提供额外的空间。
swift和cinder的比较swift
类似于保存PC的系统,而cinder
类似于保存PC里面的文件。
Glance
openstack中用于保存创建VM的镜像,比如,现在现在需要安装一个win7
的操作系统给公司的某个员工使用,按照传统的操作方式需要花费大量时间,但是现在在云环境中,只需要直接从glance
中按模板启动win7
即可,二七人只许耗费几秒钟的时间glance
包括glance-api
、glance-registry
和store backend
.
- glance-api
对外提供API,用于响应image
的查询、获取等调用。 - glance-registry
用于处理和存取image
的的元数据,例如大小、类型等,并且戴护具对应到Database
。 - store backend
用于存放image
。
Horizon
简单的来说,Horizon是一个web接口,用于将openstack的资源聚集到一起并进行图形化管理。
最后骗一波流量个人博客