返回顶部
首页 > 资讯 > 数据库 >openstack(二)openstack组件详解
  • 123
分享到

openstack(二)openstack组件详解

2024-04-02 19:04:59 123人浏览 安东尼
摘要

   小生博客:Http://xsboke.blog.51cto.com             

   小生博客:Http://xsboke.blog.51cto.com

   

  

 

                             -------谢谢您的参考,如有疑问,欢迎交流


目录:

一、keystone详解     --------------- (openstack认证服务)

二、glance详解       ---------------(openstack镜像服务)

三、nova详解        ---------------(openstack计算服务)

四、neutron详解      ---------------(openstack网络服务)

五、cinder详解       ---------------(openstack存储服务)






一、 Keystone概述

   openstack(二)openstack组件详解

  1. Keystone提供认证、权限、服务列表三大功能:

1)认证:身份验证(identify)、令牌(token)

2) 权限:admin(管理员)、user(用户)

3)服务列表:体现在用户登录openstack后,能够使用的计算、存储、网络等服务列表

  2. Keystione的关键术语:

1)一个user(用户)可以关联一个或多个tenant(租户/项目

2) 一个项目(tenant/project)由一个或多个虚拟机组成

3)一个项目(tenant/project)可以关联一个或多个user(用户),每个user可以拥有不同的权限

4)Role(角色):定义用户的权限,openstack有几个内置的角色,admin,member等

5)Token(令牌):定义了令牌的有效时间和令牌中用户的权限,项目等基本信息

6)Service:对应业务模型服务,如计算(compute),存储(volume),镜像(Glance)等

7)Endpoint:服务的访问入口每个服务都会有自己的访问入口,也称之为访问端点。

 Endpoint使用对象分为三类:

  • admin url –>给admin用户使用,Post:35357

  • internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000

  • public url –>其它用户可以访问的地址,Post:5000

openstack(二)openstack组件详解

  3. keystone验证流程:以创建虚拟机的流程为例

   openstack(二)openstack组件详解

  • 用户向keystone发送用户名和密码,通过验证后,keystone会返回一个临时token和一个service catalog的列表。

  • 用户用这个临时的token向catalog列表中keystone的endpoint请求用户对应的tenant信息,keystone验证token通过后会返回用户对应的tenant列表。

  • 用户从列表中选取tenant,再次向keystone请求,keystone验证通过后,返回与该tenant相关的catalog信息和token。

  • 用户用该token以及tenant/user信息向catalog中的nova服务器端点请求开启虚拟机服务。nova向keystone请求验证:<1>.token是否合法<2>.这个租户和用户是否有权限来向nova请求服务?

  • keystone返回给nova:<1>.租户-用户具备访问nova权限。<2>. token合法<3>. token属于该租户-用户。

  • nova根据自己的规则判断用户是否具备开启虚拟机的权限,如果具备,启动虚拟机,并向用户报告状态。

二、 glance概述

openstack中的镜像管理模块,存储了镜像的元数据

功能:虚拟机的查找、注册和检索等操作

Glance在openstack中的位置:

openstack(二)openstack组件详解

  1. Glance的概念

    image identifiers/image URI:镜像标识

  2. Image 状态

l  queued:镜像ID已经被保留,镜像的metadata已经被写到数据库中,但镜像还没有上传

l  saving:镜像正在被上传

l  active:镜像可以使用了

l  killed:镜像损坏或者不可用

l  deleted:镜像被删除

  3. disk fORMat:镜像磁盘格式(取决于虚拟化类型)

  • raw:分配多少占用多少空间,性能好

  • vhd:vmware,xen,microsoft,virtualbox支持的格式

  • vmdk:common format 开源社区通用的,规范化的磁盘格式

  • vdi:virtualbox,qemu emulator这两类hypervisor支持的格式

  • iso: optical disc光盘镜像,主要用来做归档之用

  • qcow2:主要用于qemu类型的虚拟机,特点是磁盘大小动态扩展,占多少用多少,但是其性能比raw差

  • aki、ari、ami:亚马逊

  4. container format:容器格式

1)容器的作用:

  • 整合创建虚拟机的相关选项,如:购买华为云时选择云主机的配置

2)容器的格式:

  • Bare:当不确定磁盘格式时,使用。

  • Ovf:模版

  • aki、ami、ari:亚马逊

3) image-create命令至少要接收三个参数:

  • --name:指定创建的镜像名

  • --container_format:用于表明镜像文件是否包含了虚拟机的元数据信息,然而,目前compute服务并未使用此信息,因此,在不确定的情况下可以将其指定为bare,而常用的格式主要有bare(没有container或元数据信息)、ovf、aki、ari或ami几种。

  • --disk_format:用于指明磁盘镜像文件的格式,包括raw,qcow2,vhd,vmdk,iso,vdi,aki,ari,ami等。

  5. Glance的基本组件

   openstack(二)openstack组件详解

  • Glance api:对外提供镜像接口服务,包括镜像的上传和下载,更改信息以及虚拟机、云硬盘快照管理等接口服务。

  • Glance ReGIStry(注册服务):存储镜像元数据信息与数据库交互实现镜像基础信息存储

  • store adapter(存储适配器):镜像本身的存储,提供多种存储适配,支持亚马逊云存储S3(Simple Storage Service简单存储服务),openstack自由的swift(对象存储)以及常用的文件存储系统,当然也可以自行开发拓展到其他存储上。

  • glanceDB:glance存在数据库中的镜像元数据

三、 nova概述

nova在openstack中用于提供计算服务,由多个组件组成

nova的核心组件:

  • nova-api:对外提供入口

  • scheduler:调度服务

  • compute:计算服务

  • compute driver:用于调度hypervisor的驱动

nova在openstack中的位置

openstack(二)openstack组件详解

  1. nova的架构(组件)

    openstack(二)openstack组件详解

    openstack(二)openstack组件详解

    openstack(二)openstack组件详解

    openstack(二)openstack组件详解

    openstack(二)openstack组件详解

    openstack(二)openstack组件详解

 2. 通过一个云主机的创建流程了解openstack及其组件nova的工作流程

大概流程来说:

  • 第一步:用户通过horizon(WEB)登录openstack,经过keystone认证并获取token

  • 第二步:用户请求连接nova进行相关操作,nova找到keystone验证用户和token

  • 第三部:用户的请求在nova中的MQ被提取,然后放入novacompute

  • 第四步:novacompute连接glance,然后glance找到keystone验证用户和token,获取镜像信息

  • 第五步:novacompute连接neutron,然后neutrom找到keystone验证用户和token,获取网络信息

  • 第六步:novacompute连接cinder,然后cinder找到keystone验证用户和token,获取存储

  • 第七步:novacompute交由底层的hypervisor创建虚拟机

    openstack(二)openstack组件详解

虚拟机启动过程如下:

  • 界面或命令行通过RESTful API向keystone获取认证信息。

  • keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

  • 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。

  • nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。

  • keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。

  • 通过认证后nova-api和数据库通讯。

  • 初始化新建虚拟机的数据库记录。

  • nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(HostID)。

  • nova-scheduler进程侦听消息队列,获取nova-api的请求。

  • nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。

  • 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。

  • nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。

  • nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。

  • nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)

  • nova-conductor从消息队队列中拿到nova-compute请求消息。

  • nova-conductor根据消息查询虚拟机对应的信息。

  • nova-conductor从数据库中获得虚拟机对应信息。

  • nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。

  • nova-compute从对应的消息队列中获取虚拟机信息消息。

  • nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。

  • glance-api向keystone认证token是否有效,并返回验证结果。

  • token验证通过,nova-compute获得虚拟机镜像信息(URL)。

  • nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。

  • neutron-server向keystone认证token是否有效,并返回验证结果。

  • token验证通过,nova-compute获得虚拟机网络信息。

  • nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。

  • cinder-api向keystone认证token是否有效,并返回验证结果。

  • token验证通过,nova-compute获得虚拟机持久化存储信息。

  • nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。


四、 neutron概述

  • neutron是在openstack m版才开始使用的,主要用于网络管理。

  • Neutron就是openstack的networking server 代码名称

  • Neutron为使用者提供了整合多个不同的网络技术来最大化发挥网络功能的机制,并提供了通过三层转发及NAT配置和管理网络功能的API以实现负载均衡,边缘防火墙及ipsec ***等

  1. neutron的功能

  • 提供网络模型:flat、flatdhcp、vlan

  • IP地址管理:novanetwork需要管理虚拟机使用的IP地址,这些地址包含两类,一类是fixed ip,在虚拟机的整个生命周期中该IP地址都不会发生变化;另一类是floating ip,是动态的分配给虚拟机的,随时都可以收回

  • Dhcp功能:在flatdhcp和vlan模式下,虚拟机是通过DHCP来获取其fixed ip的;novanetwork会启动dnsmasq作为虚拟机的DHCP服务器,该虚拟机分配ip

  • 安全防护:出于安全的考虑,nova中的虚拟机可以防止IP/Mac洪泛,不能随便修改虚拟机的MAC地址,修改后虚拟机就不能上网了,这项功能主要是通过ebtables/iptables实现的。

  2. Openstack早期版本的网络方案

Flat:扁平

  • 所有虚拟机在同一网段,

  • 没有网路隔离功能,不需要dhcp,

  • 需要通过文件注入的方式设置网络,

  • 通过网络控制器(nova-network节点)对虚拟机实例进行NAT转换,实现与外部的通信

  • FLAT模式需要在安装openstack时需要手工配置好网桥(br100),所有的系统实例都是和同一个网桥连接,网桥与连接到网桥的实例组成一个虚拟网络。

Flatdhcp模式

  • 与扁平模式类似,也只有一个子网

  • 不需要文件注入

  • 通过dhcp server的方式监听网桥上的dhcpdiscover(dnsmasq)的包的方式为虚拟机分配IP地址,虚拟机启动时通过DHCP获取其fixed ip

Vlan模式

  • 每个项目(project)分配一个vlan id,每个项目也可以有自己的独立的ip地址段,属于不同project的虚拟机连接到不同的网桥上,因此不同的project之间是隔离的,不会相互影响

  • 访问一个项目的所有虚拟机需要创建一个***虚拟机,以此虚拟机作为跳板去访问该project的其他虚拟机

  • 每个project启动一个dnsmasq来配置虚拟机的fixedip

  3. Neutron服务简介

neutron是一个分层架构,所有的请求都先到neutron server上,neutron server有多个API,用于提供各种功能,用户调用API后,内部通过RPC机制调用agent层的一些服务,这些agent有二层、三层的,agent相当于一个中间代理层,agent再会调用设备层相应的驱动来完成用户API所请求的功能。

   openstack(二)openstack组件详解

  • 所有获取网络的请求——neutron server(多个API组成)——通过调用api接口来访问neutron提供的功能——然后基于RPC调用agent——通过agent提供的相关驱动调用服务——通过服务调用设备层的设备完成请求

  4. Neutron的基本概念

  1. Networking API:NetworkingAPI通过软件方式定义了虚拟网络(network),子网(subnet),port(端口)等抽象层,用来描述网络资源

  2. 网络(network):用于划分虚拟网络,neutron中“网络”是一个可以被用户创建的对象,相当于交换机

  3. 子网(subnet):子网就是一个地址池,不同的子网间通信需要路由器的支持,子网隶属于网络端口(port):相当于交换机的逻辑端口路由器(router):和物理环境下的路由器类似,Neutron中的路由器也是一个路由选择和转发部件。只不过在Neutron中,它是可以创建和销毁的软部件。

  4. Dhcp:为租户(也叫项目,project)网络提供DHCP服务,即IP地址动态分配,另外还会提供metadata请求服务

  • Dhcp aget:负责处理dhcp请求,为网络分配IP

  • DHCP agent scheduler:DHCP agent与network的调度,即某个网络的DHCP请求要发向那个DHCP agent,如采用轮询调度算法

  5. Neutron部署模式/模型

   1) Single FLAT Network:单一扁平网络

  • 所有虚拟机在同意网段

  • 可以使用dhcp分配ip地址

  • 不支持浮动IP(floating ip,不使用后释放)

   2)Mutiple FLAT network:多个扁平网络模式

  • 可以创建多个子网,每个项目可以连接一个或多个子网

  • 不支持floatingip

   3) provider router with privatenetwork:租户私有网络单个路由器

  • 允许每个租户拥有多个自己的私有网络,私有网络通过路由器router连接至外部网络

  • 支持浮动ip(floating ip)

   4)Per-tenant Routers with privatenetwork:多路由器私网模式

  • 子网重叠(overlapping):支持不同网络的子网重叠

  • 每个租户可以自己定义自己的虚拟路由器和私有网络,为虚拟机绑定floating IP,目前此种部署模式是最常用且先进的。

  • 部署novanetwork时至少需要两块网卡,一块作为public network,主要承载公网流量和openstack各个组建之间的流量,要能够访问公网,ip地址可以为内网地址也可以为公网地址;另一块作为internal network,承载虚拟机之间相互通信的流量,不需要为其分配ip地址,只需要保证它们物理上可以互联即可

  5. nova network的主要配置选项有

   openstack(二)openstack组件详解

  • Multihost:多主机模式,可以降低neutron的负载

  • 在multihost模式下,首先需要将multi_host设置为True,然后在每个计算节点上都安装好nova-network nova-api-metadata nova-compute

五、 cinder块存储

  • 只负责提供虚拟机存储

  • 在openstack中,硬盘以vda、vdb、vdc这种方式显示

  • 存储具体实现机制如图:

    openstack(二)openstack组件详解


nova存储实现机制包括以下几个关键环节:

  • nova-api调用nova-compute主机接口run_instance。

  • nova-compute调用存储接口volume-api的create方法,创建存储。

  • volume-api存储接口将存储信息通过调度方式发送至调度引擎scheduler。

  • 调度引擎scheduler根据一定的算法,选择具体一个存储节点,发指令至该节点cinder-volume

  • cinder-volume接收到创建云硬盘(create_volume)指令值,创建逻辑卷LV,并发布逻辑单元(LUN)

  • nova-compute接收到云硬盘创建成功的反馈后,调用其虚拟化实现,如Libvirt Driver的SCSI实现,实现ISCSI initiator连接至对应的存储逻辑单元LUN,将该块设备分配给虚拟机。


您可能感兴趣的文档:

--结束END--

本文标题: openstack(二)openstack组件详解

本文链接: https://lsjlt.com/news/37068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • openstack(二)openstack组件详解
       小生博客:http://xsboke.blog.51cto.com             ...
    99+
    2024-04-02
  • OpenStack的Swift组件详解
    目录一:简介背景原理特性二:架构核心架构组件详解Swift对CAP的支持程度三:常用操作一:简介 背景 1.Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服...
    99+
    2024-04-02
  • OpenStack、keystone组件
    一、部署OpenStack1、环境OS:CentOS6.5 X86_64各节点时间同步、能基于主机名通信,清空iptables,关闭SElinux,禁用WorkManager服务各节点的主机/etc/hos...
    99+
    2024-04-02
  • Openstack Mitika组件介绍
    OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和...
    99+
    2024-04-02
  • openstack的3大组件
    OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova)OpenStackObjectStorage(Swift) OpenStackImageService(Glance)。Nova,为...
    99+
    2023-01-31
    组件 openstack
  • openstack组件工作流程
    OpenStack组件的工作流程大致可以分为以下几个步骤:1. 用户使用OpenStack的命令行工具或Web界面发起请求。2. 请...
    99+
    2023-10-11
    openstack
  • Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
    本节开始,我们将详细讲解 Nova 的各个子服务。前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个。今天先讨论 nova-api 和 nova-conducto...
    99+
    2024-04-02
  • openstack反亲和组
    OpenStack中的反亲和组(anti-affinity group)是一种策略,用于指定一组虚拟机实例不能同时运行在相同的物理主...
    99+
    2023-10-11
    openstack
  • OpenStack 认证服务 KeyStone [二]
    OpenStack 认证服务 KeyStone [二]OpenStack 认证服务 KeyStone [二]openstack 时间:2016年11月23日openstack认证服务Keystone 介绍K...
    99+
    2024-04-02
  • 如何安装openstack的基础组件
    这篇文章主要介绍如何安装openstack的基础组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!将安装一些关于openstack的基础组件,例如:数据库、中间件、ntp等。配置DN...
    99+
    2024-04-02
  • centos7 查询openstack所有组件状态
    要查询OpenStack所有组件的状态,可以使用以下命令:1. 首先,确保已经登录到CentOS 7的OpenStack控制节点上。...
    99+
    2023-10-11
    openstack
  • OpenStack核心组件功能是什么
    今天小编给大家分享一下OpenStack核心组件功能是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、OpenStac...
    99+
    2023-07-05
  • OpenStack 安装 Keystone的过程详解
    目录OpenStack 安装 Keystone1.OpenStack 官网2.KeyStone 概述3.安装 OpenStack packages4.Network Time Pro...
    99+
    2024-04-02
  • OpenStack中Swift组件的作用是什么
    OpenStack中Swift组件的作用是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一:简介背景Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储...
    99+
    2023-06-14
  • openstack存储组件的作用是什么
    OpenStack存储组件的作用是提供可扩展的、弹性的存储服务,以满足云计算环境中的存储需求。这些存储组件包括以下几个方面: 云...
    99+
    2023-10-25
    openstack
  • Openstack Mitaka for Centos7.2 部署指南(二)
    4.4 计算服务配置(Compute Service Nova)部署节点:Controller Node在Controller节点上需要安装novaapi  novaconductor  ...
    99+
    2024-04-02
  • openstack的主要组件及功能是什么
    这篇文章主要讲解了“openstack的主要组件及功能是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“openstack的主要组件及功能是什么”吧!主要组件有:1、keystone,认证...
    99+
    2023-06-20
  • Openstack各组件逻辑关系及运行流程解析
    目录各组件逻辑关系图Openstack 新建云主机流程图虚拟机启动过程各组件逻辑关系图 Keystone:认证服务 Glance:镜像服务 Nova:计算服务 Neutron:网络...
    99+
    2024-04-02
  • 【N版】openstack——基础环境准备(二)
    【N版】openstack——基础环境准备一.版本演化版本名称版本日期包含组件代码名称Austin2010-10-21Nova,SwiftBexar2011-02-03Nova,Swift,GlanceCa...
    99+
    2024-04-02
  • openstack云计算组件glance部署及操作步骤
    目录一 简单架构图示参考二 部署glancestep 1:glance关于数据库的操作step 2:glance关于keystone的操作step 3:安装软件包step 4:配置/...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作