OpenStack 学习分享

举报
麻瓜蓝蓝路 发表于 2020/08/18 11:43:29 2020/08/18
【摘要】 OpenStack是什么 & 包含什么 & 基本原则OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个主要的组件组合起来完成一些具体的工作。OpenStack旨在构建一个内核,所有的软件厂商都围绕着它进行工作。OpenStack的许多子项目,对云计算平台中的各种资源(如计算能力、存储、网络)提供敏捷管理。此外,OpenStack也提供对虚拟化...

OpenStack是什么 & 包含什么 & 基本原则

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个主要的组件组合起来完成一些具体的工作。

OpenStack旨在构建一个内核,所有的软件厂商都围绕着它进行工作。OpenStack的许多子项目,对云计算平台中的各种资源(如计算能力、存储、网络)提供敏捷管理。此外,OpenStack也提供对虚拟化技术的支持。帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给用户

 

l  IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑

l  PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层

l  SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用


OpenStack包括:7个核心组件:

l  Nova(核心)控制器,用于虚拟机计算或使用群组启动虚拟机实例;

虚拟化管理程序,管理网络和存储。

l  Keystone这是提供身份认证和授权的组件(没法基于角色的授权,web管理用户等)

l  Horizon    为所有OpenStack的服务提供了一个模块化的web-based用户界面。使用这个Web GUI,可以在云上完成大多数的操作,如启动实例,分配IP地址,设置访问控制等。

l  Glance虚拟机镜像查找及检索系统,实现虚拟机镜像管理的镜像存储

支持本地存储,NFS,swift,sheepdog和Ceph,基本是够用了。功能就是多个数据中心的镜像管理,如何复制 和 租户私有的image管理

l  Swift用于在大规模可扩展系统中通过内置冗余及容错机制,以对象为单位的存储系统。是对象存储的组件。

l  Cinder是存储管理的组件。Cinder存储管理主要是指虚拟机的存储管理。

l  Quantum是网络管理的组件。上面介绍nova的时候,说过网络相关的内容,都会交给Quantum。


基本原则:开放 & 灵活 & 可扩展

OpenStack概念结构

                                                     

                                     

l  展示层,组件与用户交互,接受和呈现信息。Webportals为非开发者提供图形界面,为开发者提供API端点。如果是更复杂的结构,负载均衡,控制代理,安全和名称服务也都会在这层。

l  逻辑层为云提供逻辑(intelligence)和控制功能。orchestration(负责任务的工作流管理),scheduling(任务到资源的调度管理),policy(配额等服务)image registry(镜像实例的元数据管理)logging(事件 计费管理);

l  需要一个management层来操作这个环境。它应该包括一个API访问云管理特性以及一些监控形式(forms)

l  资源层。既然这是一个compute云,我们就需要实际的compute、network和storage资源,以供应给客户。

物理架构

结点

a)  单结点:一台服务器运行所有的nova- services,同时也驱动虚拟实例。这种配置只为尝试OpenStack Compute,或者为了开发目的;

b)  双结点:一个cloud controller 结点运行除nova-compute外的所有nova-services,compute结点运行nova-compute。一台客户计算机很可能需要打包镜像,以及和服务器进行交互,但是并不是必要的。这种配置主要用于概念和开发环境的证明。

c)  多结点:通过简单部署nova-compute在一台额外的服务器以及拷贝nova.conf文件到这个新增的结点,你能在两结点的基础上,添加更多的compute结点,形成多结点部署。在较为复杂的多结点部署中,还能增加一个volume controller 和一个network controller作为额外的结点。对于运行多个需要大量处理能力的虚拟机实例,至少是4个结点是最好的。

Controller compute节点

Controller节点与Compute节点不可缺少,Block StorageObject Storage则需要新添节点。

OpenStack核心组件组件介绍

Nova

l  Nova API作为 Nova 组件对外的唯一窗口负责接收客户端请求,向客户暴露Nova 能够提供的功能,客户端只能通过这些Rest API来执行虚机操作

l  Nova Scheduler当上面API的请求可以在多台实例或者节点上完成时,Scheduler可以根据当时的资源情况选择最合适的实例或者节点来执行请求

l  DB通过数据库来维护Nova虚机的状态信息

l  MQOpenStack这样的分布式系统中,一般程序的调用都是采用异步调用处理的,而nova各组件间的协同工作是通过消息队列来实现的,默认采用RabbitMQ

l  nova-conductor实现数据的访问

 

cinder

l  Cinder-api接收 API 请求,调用 cinder-volume

l  Cinder-volume管理卷volume 的服务,与 volume provider 协调工作,管理 volume 的生命周期。

l  cinder-schedulerscheduler 通过调度算法选择最合适的存储节点创建 volume

l  volume provider数据的存储设备,为 volume 提供物理存储空间。

l  Message QueueCinder 各个子服务通过消息队列实现进程间通信和相互协作。因为有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征。

l  Database Cinder 有一些数据需要存放到数据库中,一般使用 MySQL。数据库是安装在控制节点上。

Neutron

l  neutron-server:一个专门用来接收neutron REST API调用的服务器。负责将不同的rest api发送到不同的neutron-plugin

l  neutron-plugin:neutron database完成信息注册。然后将具体要执行的业务和参数通知给对应的neutron-agent

l  neutron-agent:接受相应的neutron-plugin通知的业务和参数,并转换为具体的设备级操作。当设备发生问题时,neutron-agent会通知给neutron-plugin

Keystone

OpenStack 新建云主机流程


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。