精华内容
下载资源
问答
  • Nova 各个组件介绍以及功能分析(逻辑架构,运行架构,开发架构以及数据库) 1.逻辑架构 nova是云主机控制器。它包含了很多组件,API服务器(nova-api),计算服务器(nova-compute),网络控制器(nova-...
    Nova 各个组件介绍以及功能分析(逻辑架构,运行架构,开发架构以及数据库)

    1.逻辑架构

    nova是云主机控制器。它包含了很多组件,API服务器(nova-api),计算服务器(nova-compute),网络控制器(nova-network),调度器(nova-schedule),卷控制器(nova-volume),消息队列以及DashBoard

    Nova各个模块之间的协作交互图如下所示:

    nova-api负责接受和响应终端用户有关虚拟机和云硬盘的请求,提供了openstackAPI、亚马逊EC2API以及管理员控制API一句话:nova-api是整个nova的入口。它接受用户请求,将指令发送至消息队列,由相应的服务执行相关的指令消息。

    nova-compute是主要的执行守护进程,职责是基于各种虚拟化技术Hyperivisor实现创建和终止虚拟机。nova-compute有两个工作,接受消息队列中的执行指令,并执行相关指令,如部署虚拟机。维护数据库相关模型的状态数据。

    nova-compute整合了计算资源CPU,存储,网络三类资源部署管理虚拟机,实现计算能力的交付。包括如下内容:运行虚拟机,终止虚拟机,重启虚拟机,挂载虚拟机,挂载云硬盘,卸载云硬盘,控制台输出。

    nova-volume/Cinder的职责是创建,挂载,和卸载持久化的磁盘虚拟机,运行机制类似nova-compute。同样是接受消息队列中的执行指令,并执行相关指令。volume的职责包括如下:创建云硬盘,删除云硬盘,弹性计算硬盘一句话:就是为虚拟机增加块设备存储。

    nova-network的职责是实现网络资源池的管理,包括IP池,网桥接口,VLAN,防火墙的管理。接受消息队列指令消息并执行。network的职责包括如下:分配私有云,VLAN管理,配置计算节点网络。Nova-network解决云计算网络资源池的网络问题。

    nova-schedule的职责是调度虚拟机载哪个物理宿主机上部署,接受消息队列指令消息并执行。

    Queue也就是消息队列,它就像是网络上的一个hubnova各个组件之间的通信几乎都是靠它进行的,当前的Queue是用RabbitMQ实现的,它和database一起为各个守护进程之间传递消息。


    2.运行架构

    nova-api对外统一提供标准化接口,各子模块,如计算资源,存储资源和网络资源子模块通过相应的API接口服务对外提供服务。

    这里的WSGI就是nova-apiAPI接口操作DB实现资源数据模型的维护。通过消息中间件,通知相应的守护进程如nova-compute等实现服务接口。API与守护进程共享DB数据库,但守护进程侧重维护状态信息,网络资源状态等。守护进程之间不能直接调用,需要通过API调用,如nova-compute为虚拟机分配网络,需要调用network-api,而不是直接调用nova-network,这样有易于解耦合。

    下面以创建虚拟机为例,分析Nova的不同关键子模块之间的调用关系。因为启动一个新的instance涉及到很多openstacknova里面的组件共同协作。

    1、通过调用nova-api创建虚拟机接口,nova-api对参数进行解析以及初步合法性校验,调用compute-api创建虚拟机VM接口,compute-api根据虚拟机参数(CPU,内存,磁盘,网络,安全组等)信息,访问数据库创建数据模型虚拟机实例记录(创建1个虚拟机实例)

    2、接下来需要调用具体的物理机实现虚拟机部署,在这里就会涉及调度模块novaschedulercompute-api通过RPC的方式将创建虚拟机的基础信息封装成消息发送至消息中间件指定消息队列“scheduler”

    3.nova-scheduler订阅了消息队列“scheduler”的内容,接受到创建虚拟机的消息后,进行过滤,根据请求的虚拟资源,即flavor的信息。scheduler会找到一个可用的主机,如果没有找到就设置虚拟机的状态设置成ERROR选择一台物理主机部署,如果有主机,如物理主机Anova-scheduler将虚拟机基本信息,所属物理主机信息发送至消息中间件指定消息队列“compute.物理机A”

    4.物理机Anova-compute守护进程订阅消息队列“compute.物理机A”,接到消息后,根据虚拟机基本信息开始创建虚拟机

    5.nova-compute调用network-api分配网络ip

    6.nova-network接收到消息就,从fixedIP(数据库)里拿出一个可用IPnova-network根据私网资源池,结合DHCP,实现IP分配和IP地址绑定

    7.nova-compute通过调用volume-api实现存储划分,最后调用底层虚拟化Hypervisor技术,部署虚拟机。


    3.开发架构

    nova的主要代码都是nova文件夹之下。

    /nova/service.py:主机上运行所有服务的通用节点基类;所有服务的start位置。

    /nova/config.py :配置信息

    /nova/api/openstack:提供openstacknova REST API接口服务

    /nova/api/ec2:提供兼容亚马逊标准化接口

    /nova/compute:计算资源池

    /nova/compute/api.py:处理关于计算资源的所有的请求;

    /nova/compute/manager.py:对实例相关的所有进程的处理;

    ComputeVirtAPI类:计算VirtAPI

    ComputeManager类:管理实例从建立到销毁的运行过程;

    /nova/network:网络资源池

    /nova/scheduler:调度资源池

    4.数据库表

    compute_nodes:计算节点信息

    consoles

    block_device_mapping:实例所在的磁盘分区信息

    fixed_ips:固定ip表,虚机实例的ip地址就是从这张表获取

    floating_ips:

    instance_actions:实例的所有操作都会在这张表中记录,包括create.delete.stop等操作。

    instance_action_events:实例操作的事件

    instance_faults:实例错误信息

    instance_metadata:为实例增加的元数据会记录在这张表中

    instance_types:就是flavorlist的信息

    instances:记录所有实例信息的表,删除的实例信息也会存储在这张表里面。

    key_pairs:记录key值信息的表

    migrations:将实例移到了可执行的主机的信息

    networks:网络信息

    s3_images:

    security_groups:记录安全组信息表

    security_group_instance_association

    security_group_rules:安全组规则表

    services:记录服务的信息。有computenetworks


    创建一个实例所涉及的表有一下一些:

    block_device_mapping

    instance_actions

    instance_actions_events

    instance_info_caches :记录了网络的一些信息

    instance_system_metadata:记录每一实例的详细信息。例如:实例类型。镜像类型等

    security_group_instance_association实例和安全组连接在一起的信息记录表

    instances


    展开全文
  • 理解 Nova 架构

    2017-05-05 10:00:22
    Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。...在上图中可以看到,Nova 处于 Openstak 架构的中心,其他组件都为 Nova 提供支持: Glance 为 VM 提供 image Cinder

    image135.5.png

    Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。
    OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的。

    image47.png

    在上图中可以看到,Nova 处于 Openstak 架构的中心,其他组件都为 Nova 提供支持:
    Glance 为 VM 提供 image
    Cinder 和 Swift 分别为 VM 提供块存储和对象存储
    Neutron 为 VM 提供网络连接

    Nova 架构如下

    image136.png

    Nova 的架构比较复杂,包含很多组件。
    这些组件以子服务(后台 deamon 进程)的形式运行,可以分为以下几类:

    API

    nova-api
    接收和响应客户的 API 调用。除了提供 OpenStack 自己的API,nova-api 还支持 Amazon EC2 API。也就是说,如果客户以前使用 Amazon EC2,并且用 EC2 的 API 开发了些工具来管理虚机,那么如果现在要换成 OpenStack,这些工具可以无缝迁移到 OpenStack,因为 nova-api 兼容 EC2 API,无需做任何修改。

    Compute Core

    nova-scheduler
    虚机调度服务,负责决定在哪个计算节点上运行虚机

    nova-compute
    管理虚机的核心服务,通过调用 Hypervisor API 实现虚机生命周期管理

    Hypervisor
    计算节点上跑的虚拟化管理程序,虚机管理最底层的程序。不同虚拟化技术提供自己的 Hypervisor。常用的 Hypervisor 有 KVM,Xen, VMWare 等

    nova-conductor
    nova-compute 经常需要更新数据库,比如更新虚机的状态。出于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor,这个我们在后面会详细讨论。

    Console Interface

    nova-console
    用户可以通过多种方式访问虚机的控制台:nova-novncproxy,基于 Web 浏览器的 VNC 访问nova-spicehtml5proxy,基于 HTML5 浏览器的 SPICE 访问nova-xvpnvncproxy,基于 Java 客户端的 VNC 访问

    nova-consoleauth
    负责对访问虚机控制台请求提供 Token 认证

    nova-cert
    提供 x509 证书支持

    Database

    Nova 会有一些数据需要存放到数据库中,一般使用 MySQL。数据库安装在控制节点上。Nova 使用命名为 “nova” 的数据库。

    image137.png

    Message Queue

    在前面我们了解到 Nova 包含众多的子服务,这些子服务之间需要相互协调和通信。为解耦各个子服务,Nova 通过 Message Queue 作为子服务的信息中转站。所以在架构图上我们看到了子服务之间没有直接的连线,它们都通过 Message Queue 联系。

    image138.png

    OpenStack 默认是用 RabbitMQ 作为 Message Queue。MQ 是 OpenStack 的核心基础组件,我们后面也会详细介绍。

    下一节我们讨论这些 Nova 组件如何协调工作。

    展开全文
  • Nova架构及原理详解

    万次阅读 2018-02-21 12:38:35
    Nova是什么OpenStack是由Rackspace和NASA共同开发的云计算平台类似于Amazon EC2和S3的云基础架构服务Nova在OpenStack中提供计算服务超过140家企业及18470位开发者参与开发二 Nova发展历程July 2010——initail ...
    一 Nova是什么
    OpenStack是由Rackspace和NASA共同开发的云计算平台
    类似于Amazon EC2和S3的云基础架构服务
    Nova在OpenStack中提供计算服务
    超过140家企业及18470位开发者参与开发

    二 Nova发展历程
    July 2010——initail announcement
    October 2010——Austin Release
    April 2011——Cactus Release
    October 2011——Diablo Release
    April 2012——Essex Release
    October 2012——Folsom Release
    April 2013——Grizzly Release
    October 2013——Hvana Release
    April 2014——Icehouse release

    三 参与开发的公司

    四 Nova在OpenStack中的位置

    五 Nova的架构

    六 Nova核心模块
    1 Controller
    Nova-api
    Nova-schedule
    Nova-conductor
    Nova-consoleauth
    Nova-novncproxy
    Nova-cert
    2 Compute
    Nova-compute
    3 Client
    Nova-client
    Nova-manage

    七 Nova内部组件的交互

    八 Nova与其他Openstack组件的交互

    九 Nova流程

    十 通用部署模式

    十一 高可用的部署模式

    十二 常见错误排查
    1 401认证错误
    检查用户密码以及tenant是否正确
    检查认证配置是否正确
    2 409错误
    Nova服务是否正常运行
    3 No valid host错误
    查看是不是没有可用的资源
    4 网络不通
    查dhcp,查路由,查openvswitch
    展开全文
  • Openstack逻辑架构

    2018-06-10 21:26:00
    nova-computer组件是一个守护进程,通过Hypervisor’s API(XenAPI for XenServer, LibvirtKVM, 和 VMware API for VMware)去创建和结束 VM的实例。 3. nova-network 主要是对网络做一些网络方面的操作和管理(比如...

    一. Keystone  -身份认证管理

    提供了认证和授权的服务,openstack不同的组件通信都要经过授权,确保正确的用户和服务是经过认证的。并且它集成了大量的认证机制,比如用户名/密码和令牌/基于系统的。并和LDAP和PAM能够进行集成。


    二. Swift – 对象存储

    对比传统的存储解决方案,文件共享或者基于块的访问,对象存储处理数据是当成对象来处理的和检索的。基于对象的存储就是把数据分成多个块,然后把它们进行分开放在不同的容器中,该容器可以复制到不同的节点,提供一个冗余、高可靠性、自动恢复和水平扩容的能力。

    它主要有以下几个方面的优点:

    1. 无中心大脑,表明不存在单点故障(Single Point Of Failure<SPOF>)

    2. 智能的,表明当遇见错误时,可以自动恢复。

    3. 具有很高的可申缩性,可以扩容至PB级别的存储。

    4. 通过把负载分离到不同的存储节点上,可以获得很好的性能。

    5. 通过非常便宜的硬件就可以实现数据群集的冗余。


    三. cinder – 块存储

    管理持续的块存储设备在openstack中是使用的cinder服务,它主要的能力就是对虚拟机提供块级别的存储,比如虚拟机中的磁盘设备等。NFS,Ceph,GlusterFs,Postfix协议都支持。

    ciner功能如下:

    1. 卷管理: 创建和删除卷

    2. 块照管理:创建和删除卷的块照

    3. 从虚拟机实例中关联或解除关联卷

    4. 刻隆卷

    5. 创建卷的块照

    6. 镜像复制到卷和卷复制到镜像

    四. Manila – 文件共享

    它可以作为一个远端的文件系统 存储,它和Storage Area Network(SAN)服务类似,作为后端的设备,它可以使用Common Internet File Ssytem(CIFS),NFS和SAMBA等协议。它提供了文件共享的功能 。


    Swift、Cinder、Manila三种适用的场景和区别如下:

    SpecificationStorage Type
    SwiftCinderManila
    Access modeObject through REST APIAs block devicesFile-based access

    Multi-access

    OKNo, can only be used by one clinetOK
    PersistenceOKOKOK
    AccessibilityAnywhereWithin single VMWithin multiple VMs

    Performance

    OK

    OK

    OK


    五. Glance – Image registry

    Glance服务提供了镜像注册和源数据,Openstack可以使用它作为一个虚拟机启动,并且基于选择的hypervisor不同,来支持不同的镜像格式。支持KVM/Qemu,XEN,VMWARE,Docker等。

    可能有人会奇怪,Glance和Swift的不同是什么?它们两个都提供存储服务,它们之间的区别在哪里。

    Swift是一个存储系统,而Glance是一镜像注册器。Glance是一个虚拟机镜像的跟踪和镜像源数据的关联。源数据就是那些比如内核,磁盘镜像,磁盘格式等。Glances可以使用各种各样的后端来做为存储,默认的是使用目录,但在大量的生产环境中,它常使用NFS甚至使用Swift.

    Swift是一个存储系统,它是对象存储,可以用它保持数据,比如虚拟磁盘、镜像、备份归档等。


    六. Nova – Computer Service

    在Openstack中Nova提供计算服务和响应OPenstack用户请求的虚拟机管理响应服务。


    1. nova-api

    Nova-api组件接受和响应终端用户和计算API调用。 比如通过 Openstack API或EC2 API和Nova-api进行,去创建实例。


    2. nova-computer

    nova-computer组件是一个守护进程,通过Hypervisor’s API(XenAPI for XenServer, LibvirtKVM, 和 VMware API for VMware)去创建和结束 VM的实例。


    3. nova-network

    主要是对网络做一些网络方面的操作和管理(比如设置网桥接口和改变IP table规则)


    4. nova-scheduler

    调度服务,比如当接受到创建实例的请求后,决定应该把创建的实例放在哪个计算节点上去运行。


    5. nova-conductor

    nova-conductor服务对计算节点提供数据库的访问,而不是直接访问数据库,因此它增强了数据库的安全。

    nova服务需要和好几种服务进行交互,比如认证的keystone,镜像的Glance,Web接口的Horizon,及Glance.



    七. Neutron – Networking services

    Neutron 在设备接口和Nova管理之间提供了Network as a Service(NaaS)能力。主要有以下功能:

    1. 它允许用户去创建它们的网络和关联接口到服务器

    2. 它有较多厂商的支持

    3. 提供了其它网络服务的扩展


    Neturon还引进了下列资源:

    1. ports:端口往往关联虚拟交换机,关联子网,定义MAC地址和接品的IP地址。

    2. Networks: 还定义了二层网络的隔离。

    3. 子网:网络子网划分


    使用扩展:

    1. Routers: 在不同的子网网络之间提供路由能力。

    2. Private IPs: 定义了两种类型的网络:

    (1) 租户网络:使用的是私有IP地址,该私有IP地址仅对租户可见。

    (2)外部网络: 外部网络是可见的和可以在互联网上路由的。

    (3)浮动IPs: 浮动IP是外部网络分配的Ip,是Netron映射到一个实例的虚拟IP。 意思就是外网IP地址是随机分配的。


    高级服务:

    1. Load Balancing as a Service(LBaas):在多个计算节点实例进行流量分布。

    2. Firewall as Service(FWaas): 提供了三层和四层网络边界的访问。

    3. Virtual Private Network as a Service: 在实例或者主机之间构建一个安全的通道。


    Neutron结构:

    Neutron server: 接受API请求和路由它们到适当的Neutron插件并执行动作。

    Neutron plugins: 执行实际的工作,比如创建网络和子网,和IP地址等。

    Neutron agents:运行在计算和网络节点,其实就是相当于代理一样,接受别人命令,执行相应的动作。


    八. Ceilometer, Aodh, 和Gnocchi – Telemetryh

    主要就是资源使用情况收集,和告警及与其它执行联动的一些功能 。


    九. Heat –Orchestration

    主要是完成一些自动化工作的,比如主机模板、自动化构建这些任务。使用的模板是YAML格式或者JSON格式 。


    10. Horizon – Dashboard


    就是图形化的界面,比如用来管是虚拟机实例,网络等,要不然全部要用命令行操作。


    11. Message Queue

    消息队列,就是在不同的组件进行传消息的,相当于传话筒一样,不过它通信是异步方式的。


    12. Database

    主要存储一些构建时和运行时的状态,实例的类型等等一些信息。


    各个组件可以总结如下:

    (1)认证肯定是首先执行的,keystone认证用户基于用户名和密码。

    (2)然后Keystone提供服务的目录,可以通过以下命令获取:

    $ openstack catalog list

    (3) 认证完成后,可以和API节点进行通信。下面图完美的呈现:


    image


    (4)参考下面图看下虚拟机是如何工作的。


    image



    调用认证服务进行认证

    产生一个token,子请求好使用。

    联系镜像的服务,去列出和检索基本镜像

    computer service ap处理该请求

    计算服务的调用处理决定安全组和keys。

    调用网络服务的API去决定有效的网络

    通过计算的调度服务选择hypervisor节点

    调用块存储服务 的API去分配卷

    调用网络服务的API去分配 网络资源到实例中去

    转载于:https://www.cnblogs.com/zangxueyuan/p/9164481.html

    展开全文
  • 1.逻辑架构nova是云主机控制器。它包含了很多组件,API服务器(nova-api),计算服务器(nova-compute),网络控制器(nova-network),调度器(nova-schedule),卷控制器(nova-volume),消息队列以及DashBoard。Nova各个...
  • 1、nova逻辑架构:  nova是云主机控制器,它包含很多组件。 API服务器(nova-api)计算服务器(nova-computer)网络控制器(nova-network)调度器(nova-schedule)卷控制器(nova-volume)消息队列(queue)
  • nova-scheduler[ˈskɛdʒʊlər]:虚机调度服务,负责决定在哪个计算节点上运行虚机nova-compute:管理虚机的核心服务,通过调用 Hypervisor API 实现虚机生命周期管理Hypervisor:计算节点上跑的虚拟化管理程序,...
  • 先介绍几个基本概念: Node:包含由若干个socket的组;...Thread:在Inter超线程的处理器上,每个core一般可以被虚拟为两个逻辑处理器,逻辑处理器会共享大多数内核资源。逻辑处理器被统称为Thread。 Proces...
  • 特别重要的网络通讯模块了,而Openvswitch主要为管理Linux bridge及接口,了解Linux Bridge是学习Neutron很重要的一部份,下面我带着一个平台中的两个节点(Neutron和Nova)去理解Neutron和Nova的网络逻辑关系:...
  • OpenStack学习笔记之--OpenStack Nova 架构

    万次阅读 2012-07-11 19:32:43
    Openstack是一系列开源技术组合在一起提供了一个可扩展性很强的云操作系统,我们可以把...Swift:提供对象/块存储,它大概类似于Rackspace的Cloud Files 和亚马逊的S3(Simple Storage Service)Glance:为Nova提供发现,
  • openstack网络架构nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点非常庞杂,包括bridge、vlan、gre、vxlan、ovs、openflow、sdn、iptables等,当然这里不会做具体技术介绍,概述...
  • Nova理论

    2020-12-23 15:48:58
    逻辑架构图 1.Nova-api 2.Nova-scheduler 3.nova-compute 4.nova-conductor 5.Hypervisor 6.DB 7.Network 三.工作流程 工作流程图 工作过程 一.Nova计算服务 计算服务是openstack最核心的服务之一,负责...
  • 3.nova体系架构  就目前而言,nova主要由四个核心服务组成,分别是API、compute、conductor以及scheduler,它们之间均通过AMQP消息队列进行通信。 ##4. 虚拟化技术 ## 1. KVM  KVM(Kernel-based ...
  • openstack网络体系中,网络技术没有创新,但用到的技术点非常庞杂,包括bridge、vlan、gre、vxlan、ovs、openflow、sdn、iptables...nova-network网络架构nova-network中,其网络模型包括flat、dhcp flat、vlan...
  • 目录 目录 服务器的计算平台体系结构 ...Nova 定义的 NUMA 对象概念 实现 NUMA 亲和的背景 操作系统发行版许可证(Licensing) CPU 拓扑对性能的影响 超线程对性能的影响 NUMA Top...
  • 一、概述 Nova(OpenStack Compute ...Nova 在整个 OpenStack 架构中的位置如下图: 在上图中可以看到,OpenStack 很多组件都为 Nova 提供支持: Glance 为 VM 提供镜像; Cinder 和 Swift 分别为 VM 提...
  • Nova与Neutron节点接口架构图继上一期的Nova节点网络逻辑关系,本期继续上一期话题,主要讲Neutron节点上的组件与接口,继续引用“逻辑图”。1.通过以上图,从网络节点(Neutron)入手,通过使用相关命令去查询一些...
  • Nova组件

    千次阅读 2016-05-09 11:35:27
    Nova用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。Nova组件包括以下几...
  • 计算管理(codenamed “Nova”) 是基于用户需求为VM提供计算资源管理,它基于Python语言编写。
  • 文章目录NOVA组件Nova计算服务Nova系统架构Nova组件介绍APISchedulerOpenStack-nova组件部署 NOVA组件 Nova计算服务 Nova系统架构 Nova组件介绍 基于命令界面进行管理Nova Nova计算服务 计算服务是openstack最核心...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,172
精华内容 868
关键字:

nova的逻辑架构