OpenStack

OpenStack

OpenStack是什么

  • 用于实现云项目的云计算技术解决方案

  • 云操作系统

作用:用于部署公有云、私有云、并实现对云项目的管理
开发语言:python

OpenStack核心服务

  • Compute
  • Networking
  • Storage

OpenStack组件项目

  • Compute 计算服务 Nova
  • Networking 网络服务 Neutron
  • Object Storage 对象存储e服务 Swift
  • Block Storage 块存储服务 Cinder
  • Identity 身份认证服务 Keystone
  • Image Service 镜像服务 Glance
  • Dashboard UI界面 Horizon
  • Metering 测量 Ceilometer
  • Orchestration 部署编排 Heat
  • Database Service 数据库服务 Trove
  • 消息队列–rabbitmq
  • 缓存系统–memcache

Keystone

用户管理

  • 认证
    • 方式:token令牌、账号密码、服务目录、策略
    • 核心术语
      • User:使用Openstack服务的一个用户
        Project:(Tenant租户)组件服务的一种资源隔离方式
        Role:角色,User访问指定Project资源的一种权限
        Token:令牌,一个综合的加密认证信息
        • 一个User赋予在指定Project中一个资源访问的Role角色
  • 授权

服务目录(端点目录服务)

  • Service:OpenStack各组提供的服务,用于用户访问
  • Endpoint:用户访问Service的一个url链接入口

组件部署

  • 数据库配置
  • 软件安装
  • 配置文件设置
  • 信息初始化
  • web页面配置(keystone需要httpd才能提供服务)
  • 认证权限管理
  • 验证方式
  • 端口梳理:5000-公共服务(普通用户)
    ​ 35357-管理副U(admin用户)

glance

作用:用户发现、注册及搜索VM实例镜像文件的功能

组件

  • glance-api
    • 查询获取:是RESTful格式的API,供外部用户查询VM实例镜像的元数据信息,和通过HTTP请求来获取镜像文件
    • 内容更改:涉及到数据库操作,会调用registry-client生成HTTP指令,交给glance-registry处理
  • glance-registry
    • 只响应从glance-api发送过来额镜像元数据REST请求,然后与数据库进行交互,实现VM实例镜像的元数据信息的存储、处理、获取
  • glance-db
    • 在OpenStack中使用数据库来支撑,用于存放VM实例镜像的元数据

镜像文件存储

  • 存储机制:普通文件系统、分布式文件系统(ceph、swift、glusterfs)、HTTP服务
  • 镜像格式:Raw、qcow2(qemu/kvm)、VHD(Hyper-v)、VDI(VirtueBox)、VMDK(VMWare)、OVF(VMWare,others)、Machine(不包含内核、内存、存储,例如AMI)
  • 访问权限
    • Public
    • Private
    • Shared
    • Protected
  • 镜像文件状态类型
    • Queued
    • Saving
    • Active
    • Delete/pending_delete
    • Killed

镜像文件介绍

  • 主要是操作系统,本身不做存储功能
  • 特点:支持由Openstack获取其元数据信息;
    支持对镜像文件的大小进行调整

组件部署

  • 数据库配置
  • 软件安装
  • 配置文件设置
    • glance-api.conf:数据库连接、keystone认证、glance存储
      glance-registry.conf:数据库连接、keystone认证
  • 信息初始化
  • 权限设置
  • 效果检查
  • 端口详情
    • 9292(glance-api服务),9191(glance-registry服务)

nova

组件

  • API组件
    • nova-api:负责接收外部操作请求,是外部访问nova的唯一途径
    • nova-api-metadata:是nova-api子服务,为VM实例创建提供metadata信息
  • Compute Core组件
    • nova-scheduler:VM实例的资源调度
    • nova-compute:管理VM实例,通过消息队列接受请求,承担操作工作
    • nova-Conductor:nova-compute 借助nova-Conductor 实现对数据库的访问
  • Console Interface 组件
    • nova-cert:负责身份认证
    • nova-comsoleauth:用户控制台的授权验证
    • nova-novncproxy:VNC代理,支持基于浏览器的vnc客户端

资源调度策略

  • nova-scheduler模块通过过滤和权重计算,来决策VM实例创建在那个计算节点上
  • 过滤:已用节点——>可用节点——>内存匹配——>磁盘匹配——>CPU匹配——>服务正常——>特性正常——>镜像属性正常——>主机组
  • 计算权重:对过滤后的计算节点进行空闲资源评分,选主机
    默认情况下,根据计算节点空闲内存量计算权重值

组件部署

  • 控制节点
    • 数据库——软件安装——配置文件修改——信息初始化——权限设置——测试效果
      • nova.conf:数据库连接、rabbitmq连接、keystone认证、网络类型、vnc。记录追踪
      • 00-nova-placement-api.conf:web访问权限
  • 计算节点
    • 软件安装——配置文件修改
      • nova.conf:rabbitmq连接。keystone认证、网络类型、vnc、记录追踪
  • 控制节点
    • 增加计算节点
  • 端口详情
    • 6080(vncproxy服务)、8773(nova-api服务)、8774(nova-compute服务)、8775(metadata服务)

neutron

基本网络架构

  • 管理网络
  • 数据网络
  • 外部网络

网络类型

  • Provider网络:半虚拟化网络
    • flat
    • local
    • vlan
  • Self-Service网络:全虚拟化网络
    • Flat
    • Local
    • VLAN
    • VxLAN、GRE

组件

  • neutron-server:接收API请求并转发给适当的网络插件来执行操作
  • Neutron database:存储网络相关参数信息的Neutron数据库
  • neutron-dhcp-agent:向所有Project网络提供动态主机配置协议服务
  • neutron-l3-agent:执行L3/网络地址转化(NAT)转发,以支持网络访问租户网络上的VM
  • neutron-l2-agent:二层网络插件
  • neutron-3rd party plugin:第三方网络插件

部署

  • 控制节点
  • 计算节点
  • 端口:9696(Neutron服务端口)

cinder

组件

  • cinder-api:接收用户的存储信息请求,将该请求路由给存储节点处理
  • cinder-scheduler:根据调度策略选择合适的后端存储节点来处理用户的请求
  • cinder-volume:处理存储服务的读取和写入请求,通过相关驱动程序架构直接与块存储服务进行交互
  • cinder-database:存储相关的运输局信息

Horizon

  • 是OpenStack各个服务项目与用户进行交互的统一管理界面

虚拟机

  • CPU
  • 内存
  • 存储
  • 网络
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值