OpenStack是什么
历史:
- 最先由美国国家航空航天局(NASA)和 Rackspace 在 2010 年合作研发
- 目前是一个火热的开源项目
- 每年有两个大版本更新(一般在4月、10月中旬),命名从A-Z
基础概念:
- OpenStack是一个开源的云操作系统,或者说是开源的云计算管理平台(工具)
OpenStack是对底层资源(计算 Computing、存储 Storage 、网络 networking)进行管理(或者说是对IaaS层进行管理),并以服务的方式提供给上层应用(裸金属 Bare Metal、虚拟机 VM、容器 Containers)或者是用户去使用
注意:
- OpenStack管理 IaaS(基础设施即服务)层的
- OpenStack不是一个软件,是一个云平台管理的项目,有多个小项目组成(每个项目中包含一些小组件)(无中心架构)
- OpenStack约70%的代码(核心逻辑)使用python开发
OpenStack与虚拟化和云计算的关系
虚拟化
- 虚拟化是一种将物理资源变成虚拟资源的技术
- 主要的目的是提高资源利用率
- 并提供一些高级特性(快照等)
OpenStack
- OpenStack本身并没有虚拟化技术
- OpenStack只是一个控制面(管理器),向下管理资源池,并提供统一个管理接口向上对接
- OpenStack不包括系统的数据面组件(Hypervisor、网络、存储设备)
总的来说OpenStack就是一个管理者,可以管理底层的虚拟化资源,但它只是一个管理者,不会做虚拟化(老板负责管理和对外,但是不会底下员工的技术)
虚拟化是OpenStack底层的技术实现手段之一,但不是主要关注点
OpenStack与云计算区别
- OpenStack只是构建云计算的关键组件,是云计算的框架、骨干
OpenStack架构图
加粗组件为重要组件
常见组件主要功能简介:
Name | 名称 | Main functions |
---|---|---|
Keystone | 认证管理服务 | 提供了其余所有组件的认证信息/令牌的管理,创建,修改等;另外使用云计算的用户也需要在Keystone建立用户名、密码,并定义权限 |
Glance | 镜像管理服务 | 提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板(compute服务启动虚拟机的时候在这里获取镜像文件) |
Nova | 计算管理服务 | 真正的执行组件;管理虚拟机的整个生命周期:创建、运行、挂起、调度、关闭、销毁等。(注意:不是虚拟化) |
Neutron | 网络管理服务 | 提供对网络节点的拓扑管理;提供一组应用编程接口(API),用户可以调用它们来定义网络,并把定义好的网络附加给租户 |
Swift | 对象存储服务 | 为虚拟机提供非结构化数据存储,它把相同的数据存储在多台计箅机上,以确保数据不会丢失 |
Cinder | 块存储服务 | 为虚拟机管理 SAN 设备源。但是它本身不是块设备源, 需要一个存储后端来提供实际的块设备源(如 iSCSI、FC等);Cinder 相当于一个管家,当虚拟机需要块设备时,询问管家去哪里获取具体的块设备。它也是插件式的,安装在具体的 SAN 设备里 |
Ironic | 把裸金属机器(与虚拟机相对)加人到资源池中 | |
Heat | 编排服务 | 提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作(在很多虚拟机中安装配置一个相同的软件);也可以解决自动收缩,负载均衡等高级特性 |
Ceilometer | 结合 Aodh、CloudKitty 两个组件,完成计费任务,如结算、消耗的 资源统计、性能监控等;OpenStack 之所以能管理公共云,一是因为 Ceilometer 的存在,二是因为引人了租户的概念(所以个人使用可不选) | |
Horizon | 控制台 | 提供WEB界面作为图形化管理界面;又名Dashboard |