OpenStack七大组件解析
b站视频链接:0-尚硅谷-Linux云计算- 虚拟化技术 - 为何需要云计算这种“新事物”_哔哩哔哩_bilibili
视频、课件、资料:
百度网盘链接:https://pan.baidu.com/s/1DQd0LDJND_MC3XvHxB3WKA
提取码:1234
一、Keystone
1.概念
Keystone是一个负责身份管理与授权的组件,给整个openstack的各个组件(nova、cglance...)提供一个统一的验证方式。主要功能:实现用户的身份认证、基于角色的权限管理、openstack其他组件的访问地址和安全策略管理。
两大管理功能:用户管理(3A认证)、服务目录管理
租户(项目)、用户、角色三者需要区分清楚。
一个用户允许有多个租户
一个用户可以绑定到不同的角色(角色代表权限)
一个角色可以绑定到不同的服务
2.组件间的沟通方式
主要过程:第一次user想访问任何组件会先经过Keystone,用户名+密码,如果用户有效且密码正确返回token1,token1对应的含义和权限会进行记录,但是用户必须有相应的租户(项目)才可以访问openstack的组件。如果user不知道当前有哪些租户(通常情况下是不知道的),user拿着token1访问Keystone当前的租户列表(tenant list)有哪些,user才可以在进行下一步访问。
第二次user确定了想访问nova服务,向Keystone提交用户名密码,Keystone放回token2和endpoint(端点),user拿着token2访问对应的endpoint,endpoint并不知道该user有没有权限,endpoint拿着token2提交给Keyston,如果token2认证成功,Keystone直接通知novatoken2是认证成功,你处理一下,nova处理完成后将结果提交给user。
二、Glance镜像服务
1.概念
openstact镜像服务使用户能够发现、注册并检索虚拟机镜像(.img文件),简而言之,就是镜像文件的存储仓库。
镜像URL:<Glance Server Location>/images/<ID> ,一般这三者组成一个全局唯一的URL。如果有两个glance服务,可以更改ID。
镜像的五种状态:
Queued(镜像ID已被保留,镜像还没有上传)
Saving(镜像正在被上传)
Active(镜像已经可以被使用)
Killed(镜像损坏或不可用)
Deleted(镜像已被删除)
2. 组件间工作流程
暴露接口Glance-api, 两种访问方式,一个是通过编程接口,一般上传的是json格式化存储文件,Glance-api下封装Glance-registry和底层,Glance-registry直接连接数据库,并且Glance-registry接口只暴露给Glance-api,不会直接暴露给用户。另外Glance-api可以直接操作底层S3、Object...
三、Nova
1.概念
Iaas的核心组件,也是openstack的核心组件,提供云计算服务、虚拟化服务,Nova本身不支持虚拟化,而是去管理底层的虚拟化(KVM或redhat)。
Nova-api:用于接收请求,请求的发起方可以是用户user通过命令或者程序编程接口或仪表台的套件。
Scheduler:调度服务,如果接收到的是新建虚拟机请求,Scheduler需要选择一个compute去启动一个虚拟机。
Compute Manager:管理虚拟机的启动、关闭、停止,管理虚拟化的整个生命周期。Compute Manager并不直接管理虚拟机,而是通过编写的底层驱动Compute Driver去控制Libvirt(redhat开发的虚拟机管理平台),Libvirt再而控制KVM、Xen等虚拟化平台。
Libvirt支持多种虚拟化监视器(hypervisor)
nova实质上有两种形式,通常由一个Controller和多个Compute计算节点组成,用户通过命令想nova-api发起创建一个虚拟机请求,nova-api向消息队列(queue)编写数据,随后调度Scheduler、nova-network、nova-volumne。调度成功后也向消息队列写数据,最后Compute接收到消息队列的数据开始响应请求。
虚拟机启动流程:如果创建虚拟机没有指定节点,进行权重计算,计算各个节点的剩余资源,Libvirty会自动检测(一般是1分钟)资源并保存在数据库中,nova-Scheduler可以在数据库拿到节点资源,一旦有新的数据写入Compute 节点,会马上更新资源统计并保存在数据库。
三、Netutron
1.概念
Linux环境下网络设备的虚拟化主要有以下几种形式,Neutron也是基于这些技术来完成项目私有虚拟网络network的构建。
(1) TAP/TUN
TAP/TUN是 Linux内核实现的一对虚拟网络设备, TAP工作在二层,TUN工作在三层,Linux内核通过TAP/TUN设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作硬件网络设备那样,通 过 TAP/TUN设备发送数据。
(2) Linux Bridge/VLAN
Linux Bridge (网桥)是工作于二层的虚拟网络设备,功能类似于物理的交换机。
(3) Open vSwitch
Open vSwitch 是一个具有产品级质量的虚拟交换机,它使用C语言进行开发 。可以区分被桥接的物理网卡上流淌的数据包属于哪个VM 、哪 个 OS 及哪个用户。接入到OpenvSwitch上的各个 VM分配到不同的VLAN中实现网络的隔离。
实现了分布式的虚拟交换机( Distributed Virtual Switch),一个物理Server上的vSwtch可以透明地与另一Server上的vSwitch连接在一起。
L3 agent
l3 agent可以为project(租户)创建router,提供Neutron subnet之间的路由服务。路由功能默认通过 IPtables 实现。
neutron agent服务:
(1)plug-in agent(neutron-*-agent)
插件代理,需要部署在每一个运行hypervisor的主机上,它提供本地的vSwitch配置,更多的时候得依赖你具体所使用的插件类型。(常用的插件是OpenvSwitch,还包括Big Switch,Floodinght REST Proxy,Brocade, NSX, PLUMgrid, Ryu)
(2)dhcp agent(neutron-dhcp-agent)
DHCP代理,给租户网络提供动态主机配置服务,主要用途是为租户网络内的虚拟机动态地分配IP地址。
(3)l3 agent(neutron-l3-agent)
L3代理,提供三层网络功能和网络地址转换(NAT)功能,来让租户的虚拟机可以与外部网络通信。
(4)metering agent(neutron-metering-agent)
计量代理,为租户网络提供三层网络流量数据计量服务。
Network--->Vlan
Subnet--->一段地址段(比Network的范围更小)
Router--->三层路由
Port--->虚拟交换机的端口号
Vif--->主机
流程:
主要组件功能:
ML2 Plugin功能实现以及对应协议:
拓网络扑
不同组件上运行的服务是不同的!每台Nova节点都会有ML2-agent代理端,管理端则在Neutron节点上Neutron ML2 plugin。
Per-tenant Routers with Private Network
这是一种最具意义的网络构建方式,不同的租户有各自的路由器,同一个租户可以拥有不同的网段,租户间的通信使用各自的路由器通过浮动网络进行通信,浮动网络后就是物理路由器了,通过物理路由器就可以与外网通信了。
绿色租户,蓝色vlan,每个租户一个路由,一个路由多个vlan。
五、Horizon仪表盘套件
Horizon安装前必须安装Compute、Keystone组件,必须安装Python2.6或2.7,并支持Django。
演示:
六、 Cinder块存储
controller节点运行The Block Storage API服务和Schedule服务,The volume service运行在一个或多个存储节点,存储节点可以是本地磁盘、SAN、NAS等设备,为云主机提供卷存储。
cinder-api:允许API请求,并路由他们到cinder-volume。
cinder-volume:直接与块存储服务通信,支持多种存储类型。
cinder-scheduler daemon:类似于nova-scheduler组件,用于计算节点资源,选择最优的存储节点创建卷。
swift和cinder的区别
swift类似于网盘,而cinder类似于移动硬盘,随意格式化,随意存取。swift对象存储通常存储一些不会修改的数据,比如用于存储 VM 镜像、备份和归档以及较小的文件,例如照片和电子邮件消息。更倾向于系统的管理。
OpenStack七大组件解析相关推荐
- Openstack七大组件介绍
Openstack七大组件介绍 OpenStack是一套laas解决方案 OpenStack是一个开源的云计算管理平台 以Apache许可证为授权 Horizon组件 --Horizon为OpenSt ...
- 末学者笔记--openstack共享组件:rabbitmq(3)
openstack共享组件:消息队列rabbitmq 一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方 ...
- 人工智能应用最多的七大领域解析
人工智能是一门边缘学科,属于自然科学和社会科学的交叉.涉及哲学和认知科学,数学,神经生理学,心理学,计算机科学,信息论,控制论,不定性论等.人工智能就其本质而言,是对人的思维的信息过程的模拟. 人工智 ...
- Openstack各个组件的关系简介
Openstack简介 OpenStack是一个由美国国家航空航天局(NASA)和Rackspace合作研发并发起的开源项目.其中Rackspace贡献了Swift, NASA贡献了Nova项目,这两 ...
- 【SSM框架系列】Spring-MVC的组件解析
SpringMVC完整执行流程 用户发送请求至前端控制器DispatcherServlet. DispatcherServlet收到请求调用HandlerMapping处理器映射器. 处理器映射器找到 ...
- openstack及组件简要介绍
openstack及组件简要介绍 为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中 ...
- OpenStack的组件
OpenStack的组件: Compute:代码名nova,管理VM的整个生命周期,主要职责包括启动,调度VMs. Networking:代码名Netron(早期名叫Quantum,)为opensta ...
- OpenStack——nove组件部署
OpenStack--nove组件部署 一.部署Placement 1.创建数据库实例和用户 2.创建placement服务用户和API的endpoint 3.安装placement服务 4.导入数据 ...
- 不负春光不负卿,听康大厨讲讲OpenStack重要组件的那些事儿
文/康鹏 前言 又到春暖花开时,不负春光不负卿. 康大厨精心烹饪OpenStack大餐,即将上菜! OpenStack 私人课堂今日第二讲,每周一期,期期不落,总有一款适合你~ Op ...
最新文章
- 固态器件理论(9)晶闸管
- 【Java】练习题:蒙眼过马路
- 在BackTrack下基于MS08-067漏洞的渗透
- linux内核input子系统解析
- Electron - 创建跨平台的桌面客户的应用程序
- 【codeforces 103E】 Buying Sets
- html5图片长按保存,一文彻底解决HTML5页面中长按保存图片功能
- 本地mysql新建用户名和密码错误_mysql新建用户本地无法登录
- JAVA-初步认识-第十四章-多线程(面试题)
- css内容渐入效果实现
- js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
- echarts实现水波球
- 华为鸿蒙os2.0游戏,华为鸿蒙os2.0系统下载-华为鸿蒙系统官方下载入口2.0下载 - 一游网手机游戏...
- 推荐一款点阵字库生成工具/点阵生成器
- r 语言计算欧氏距离_R语言-KNN算法
- 高等数学几何图形凸优化
- win10无线网卡无法连接网络
- 安装anaconda时报错“failed to create menus”尝试各种解决方法
- 广达服务器进系统重启,广达 服务器 远程开机
- 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式