(三) OpenStack 概述 第二篇

一、OpenStack组件之间的通信关系

    OpenStack组件之间的通信关系,可分为以下4中类型。

1.基于AMQP

    基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)进行的通信,主要是每个项目内部各个组件之间的通信,如Nova的nova-compute 与nova-scheduler之间, Cinder 的cinder-scheduler和cinder-volume之间。

    虽然通过AMQP进行通信的大部分组件属于同一个项目,但是并不要求它们都安装在同一个节点上,这就大大方便了系统的水平(横向)扩展。管理员可以对其中的各个组件分别按照其负载进行水平扩展,使用不同数量的主机节点承载这些服务。

2.基于SQL的通信

    通过数据库连接实现的通信大多用于各个项目内部,也不要求数据库和项目中的其他组件安装在同一节点上,可以分开安装,也可以专门部署数据库服务器,通过基于SQL的连接进行通信。

3.基于HTTP进行通信

    通过各项目的API建立的通信关系基本都属于这一类,这些API都是RESTful Web API。最常见的就是通过Horizon仪表板或者命令行接口对各组件进行操作时产生的这种通信,然后就是各组件通过Keystone对用户身份进行认证时使用的这种通信。还有一些基于HTTP进行通信的情形,如nova-compute在获取镜像时对Glance API的调用、Swift数据的读写等。

4.通过Native API实现通信

    这是OpenStack各组件和第三方软硬件之间的通信方式。例如,Cinder与存储后端之间的通信,Neutron的代理与网络设备之间的通信,都需要调用第三方的设备或第三方软件的API,这些API被称为Native API,这些通信时基于第三方API的。

二、 OpenStack的物理架构

    OpenStack时分布式系统,必须从逻辑架构映射到具体的物理机架构,将各个项目和组件以一定的方式安装到实际的服务器节点,部署到实际的存储设备上,并通过网络将它们连接起来,这就是OpenStack的物理机部署架构。

    OpenStack的部署分为单节点部署和多节点部署两种类型。单节点部署就是将所有的服务和组件都放在一个物理节点上,通常时用于学习、验证、测试或者开发。多节点部署就是将服务和组件分别部署到不同的物理节点上。常见的节点类型由控制节点(Control Node)、计算节点(Compite Node)、存储节点(Storage Node)和网络节点(Network Node)。

                        

 

1.控制节点

    控制节点又称管理节点,安装并运行各种OpenStack控制服务,负载管理、节制其余节点、执行虚拟机建立、迁移、网络分配、存储分配等任务。OpenStack的大部分服务都是运行在控制节点上,通常包含以下服务。

  (1)支持服务(Supporting Service)

  • 数据库服务器,如SQL数据库。
  • 消息队列服务,如RabbitMQ。
  • 网络时间协议(Network Time Protocol, NTP)服务。

  (2)基础服务

    运行Keystone认证服务、Glance镜像服务、Nova计算服务的管理组件、Neutron网络服务的管理组件、多种网络代理(Networking agent) 和Horizon仪表板。

  (3)扩展服务

    运行Cinder块存储服务、Swift对象存储服务、Trove数据库服务、Heat编排服务和Ceilometer计量服务的部分组件。这对于控制节点来说是可选的。

    控制节点一般只需要一个网络端口应用于通信和管理各个节点。

2.计算节点

    计算节点是实际运行虚拟机的节点,主要负责虚拟机的运行,为用户创建并运行虚拟机,为虚拟机分配网络。通常包含以下服务。

  (1)基础服务

    Nova计算服务的Hypervisor(虚拟机管理器)组件,提供虚拟机的创建、运行、迁移、快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务。默认计算服务使用的Hypervisor是KVM。

    网络插件代理,用于将虚拟机实例连接到虚拟网络中,通过安全组为虚拟机提供防火墙服务。

  (2)扩展服务

    Ceilometer计量服务代理,提供计算节点的监控代理,将虚拟机的情况反馈给控制节点。

    虚拟机可以部署多个计算节点,一个计算节点至少需要两个网络端口,一个与控制节点进行通信,受控制节点统一调配;另一个与网络节点及存储节点进行通信。

3.存储节点

    存储节点负责对虚拟机的外部存储进行管理等,即为计算节点的虚拟机提供持久化卷服务。这种节点存储需要的数据,包括磁盘镜像、虚拟机持久化卷。存储节点包含Cinder和Swift等服务,可根据需要安装共享文件服务。

    块存储和对象存储可以部署在同一个存储节点上,也可以分别部署块存储节点和对象存储节点。不论采用哪种方式,都可以部署多个存储节点。

    最简单的网络连接存储节点只需要一个网络节点,直接使用管理网络在计算节点和存储节点之间进行通信。而在生产环境中,存储节点最少需要两个网络节点,一个连接管理网络,与控制节点进行通信,接受控制节点下发的任务,受控制节点统一调配;另一个专门的存储网络(数据网络),与计算节点和网络节点进行通信,完全控制节点下发的各类数据传输任务。

4.网络节点

    网络节点可实现网关和路由的功能,它主要负责外部网络与内部网络之间的通信,并将虚拟机连接到外部网络。网络节点仅包含Neutron服务,Neutron负责管理私有网络与公有网段的通信,以及管理虚拟机网络之间的通信拓扑,管理虚拟机上的防火墙。

    网络节点通常需要3个网络端口,分别用来与控制节点进行通信、与除控制节点外的计算节点和存储节点之间的通信、外部的虚拟机与相应网络之间的通信。

    网络节点根据虚拟网络选项来决定要部署的服务和组件,它有两种选择,一种是提供者网络(Provider Networks,又译为供应商网络),另一种是自服务网络(Self-service Networks),这两种网络所需要的组件如下图:

                              

  (1)提供者网络

    选择提供者网络选项,将以最简单的方式部署OpenStack网络服务,它使用基本的二层(网桥/交换机)服务和虚拟局域网(Vritual Local Area Network, VLAN)分段。它实质上是将虚拟网络桥接到物理网络,并依靠物理网络基础设施提供三层(路由)服务。另外,还需要一个动态主机配置协议(Dynamic Host Configuration Protocal,DHCP)服务为虚拟机实例提供Ip地址信息。

    OpenStack用户需要了解底层网络基础设施的更多信息来创建虚拟网络,以精确匹配基础设施。

    提供者网络不支持自服务(私有)网络、三层路由服务,以及像LBaaS(负责平衡服务)和FWaaS(防火墙服务)这样的高级服务。如果要使用这些特性,应选择自服务网络选项。

  (2)自服务网络

    选择自服务网络选项,会在提供者网络的基础上增加三层(路由)服务,这样才能够使用想VXLAN这样的覆盖分段方法。它实质上是通过NAT将虚拟网络路由到物理网络。两位,该选项将提供想LBaaS和FWaaS这样的高级服务。

    OpenStack无须了解数据网络的底层基础设施即可创建虚拟网络。如果要配置相应的二层插件,这也会包括VLAN。

    在提供者网络架构中,所有实例均可直接连接到提供者网络。在自服务网络架构中,实例可以连接到自服务或提供者网络。自服务网络可以完全在OpenStack环境中或者通过外部网络使用NAT方式提供某种级别的外部网络访问。

5.节点的组合

    OpenStack是一个松散耦合系统,具有弹性的设计和部署,上述节点可以根据需要进行整合。

    可以从控制节点中分出一个专门的API节点,API节点去除Neutron服务之外的管理控制服务(如Nova、Glance、KeyStone等)。API节点又可以与网络节点合二为一。

    数据库服务器和消息队列协议可以部署在控制节点(或API节点)上,也可以运行于网络节点上,Glance、Keystone、Cinder服务可以在API节点上运行,也可以在网络节点或控制节点上运行。

    Cinder-api与cinder-scheduler需要在同一节点上运行,公用同一配置文件;nova-api,nova-scheduler,nova-novncproxy服务需要在同一节点上运输,共用相同的配置文件。nova-compute与Neutron(openSwitch,neutron-openvswithch-agent)服务必须在一个节点上运行,否则虚拟机实例无法获得网络分配。

    谢谢大家的支持,openstack的概述到此结束,明天一起来部署OpenStack集群吧。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值