简介
- openstack是一套资源管理平台
- 主要基于KVM之上
- 开源、免费、python编写
openstack与云计算
- 云计算需要openstack
- openstack是一个管理平台
- openstack管理的是计算、网络、存储等资源
- 计算、网络、存储需要云计算技术
- 虚拟化技术需要底层硬件支持
openstack架构介绍
- KeyStone:负责认证,keystone API和Keystone DB
- Nova:负责计算,核心模块,创建虚拟机,虚拟机调度等。控制节点,计算节点(Nova compute和计算节点的Hypevisor打交道),虚拟机运行在计算节点(配置,资源很高)
- Neutron: 负责网络
- Glance:负责镜像
- Cinder:块存储,U盘
- Swift:负责对象存储,网盘
- Heat:负责硬件编排
- ceilometer: 负责监控
- Trove: 数据库服务
- Heat:集群服务
- KeyStone:创建用户,创建service,创建endpoint
- 管理用户及其权限
- 维护openstack 各项服务的Endpoint
- Authentication(认证)Authorization(授权)
2.Keystone基本概念
- User:使用openstack的实体、用户、服务、系统等
- Credentials:身份证明信息,用户名密码,token,API Key等
- Authentication: keystone 验证User身份的过程
- Token:数字或字母组成的字符串,默认有效期24小时
- Project:对openstack资源进行分组和隔离
- Service:每个组件度差不多是一个service,比如Nova、Cinder、Neutron等
- Endpoint:网络上的可访问的一个地址,URL,Service通过Endpoint暴露自己的API,有public,private和admin这三种权限
- Role: 角色
- Glance
- 提供镜像模板
- 支持本地存储、NFS、Swift和ceph等(镜像存储方式)
- raw、qcow2、vmdk、iso等
- Nova
- 管理instance(虚机)生命周期
- 生成、调度、终止实例
Nova api
- 暴露REST API接口
- 接受和发送跟虚拟机生没那个周期相关的API请求
- 相关API可在界面查看
Nova-scheduler
- 完成虚拟机实例调度
- schedulerdriver、scheduleravailable_fileters、schedulerdefaultfilters
- Weight权重
Nova-computer
- 定期向openstack报告节点状态:调用libvirt api拿到hypervisor的详细信息,发送给openstack
- 实现instance生命周期管理:准备资源->创建instance镜像文件->创建instance xml文件->创建虚拟网络->启动虚机
Nova-conductor
- 帮助Nova computer访问数据库
- 提高系统安全性
- 增加系统伸缩性
Neutron
- 提供网络服务
1. 二层交换机Switching
linux Bridge/OPen vSwtich
2. 三层路由 Routing
3. 负载均衡
4. 防火墙
5. VPN
- 可插拔的架构设计
- 支持众多主流网络供应商以及技术
- SDN
Cinder
- 提供数据块存储服务
- 可插拔驱动架构设计
- 后端支持LVM、NFS、Ceph和其他商业存储方案(EMC、INBM等)
Swift
- 提供对象存储功能
- 存储非结构化数据
- 具有高度的容错性
- 网盘…