完整解决方案 与业界软件开发伙伴和开源社区联手合作

使用OpenStack的CORD基础知识

简介 - 理念的改变

云计算和云中心在数据行业最大的架构中占主导地位。谷歌,Facebook,苹果,亚马逊等公司开创并打磨了这些技术,以最大限度地降低成本,同时最大限度地提高用户性能和网络灵活性。然而,机构,企业和家庭用来访问这些云(以及所有形式的互联网接入)的网络提供商传统上受到使用多个供应商专有设备来提供这些服务的限制。用于客户端和提供商边缘数据办公室的供应商设备通常具有直接驻留在设备上的所有控制,特征和服务软件。这种类型的齿轮一直受到高资本和运营成本以及有限的可扩展性和可升级性的限制。例如,使用来自供应商A的接入设备的提供商可能希望引入客户非常期望的新功能,并且仅可从供应商B获得。如果可能,提供商需要等待供应商A提供升级,或者完全替换接入设备。由于网络变动通常会对技术和财务方面造成影响,因此这两者都非常耗时,成本高,而且有时也会冒险。

CORD(中央办公室重新构建为数据中心)是一个开源项目,承诺利用云技术的优势并应用它们,以便基本的接入网络架构在敏捷和经济的云环境中实现虚拟化。传统的电信边缘机房正在转变为由CORD定义的云访问数据中心。在边缘办公室使用云环境提供了可扩展性,模块化和可编程性的弹性优势。这种弹性使供应商能够迅速引入新的收入来源,同时使用新技术来满足客户的需求,这些新技术可以增加风险,而且支出也相当少。

那么什么是CORD以及如何替换现有的接入网络呢? - 本文的其余部分致力于深入研究回答这个问题,并旨在让读者熟悉CORD的基本工作知识。

CORD硬件

CORD原则之一是使用利用商用芯片的白盒设备硬件。最近,制造商一直在生产通常被称为“裸机”设备的白盒,其类别包括服务器,交换机和现在的边缘设备,例如OLT。这些类型的设备已被标记为云可以驻留或利用以执行移动数据工作的硬件商品。将硬件作为商品导致市场,网络提供商可以从任何白盒供应商处获得硬件。不再局限于使用单一供应商的设备相当于经济和采购效率的显着优势。

物理硬件 -  CORD POD

CORD术语中的POD是支撑虚拟化交付平台的网络设备的物理集合。术语POD源于“交付点”,这正是CORD作为边缘办公室架构所追求的目标。 CORD定义基本或完整POD,包括架顶式管理交换机,四个交换机交换机和三个x86服务器。

此外,CORD POD还将具有白盒接入设备,以满足客户驻地和/或聚合需求,从而为CORD云和客户的虚拟服务提供物理和逻辑数据路径。根据容量或服务扩展要求,运营商只需购买额外的白盒,因为需要额外的交换或计算资源。



 

数据平面

在CORD中,白盒交换结构节点以脊和叶交换机配置相互连接,并且接入节点,x86服务器和城域网(因特网)配备有到POD叶交换机的链路。
x86服务器按如下方式分配。
  • 头节点1  - 提供编排,控制和配置服务
  • 计算节点1  - 虚拟服务的可分配计算服务
  • 计算节点2  - 虚拟服务的可分配计算服务
  • 随着客户,流量和服务的扩展,可以添加头和计算节点的其他商用服务器。
从客户设备到上游网络的CORD用户平面通常如下所示遍历POD:
  1. 客户端访问设备 - 裸机CPE设备 - 光纤/ RF /以太网介质朝向白盒聚合设备,例如 R-CORD vOLT。
  2. 聚合设备到计算节点 - 从接入或聚合节点,客户的数据通过结构网络流向计算节点,计算节点包含管理客户数据流的实例化虚拟服务。
向上游网络计算节点 - 通过虚拟路由器实例化,该实例化也存在于POD计算节点内,利用叶和脊结构来提供计算节点(如果需要)和上游网络之间的数据路径。


 

控制和管理

在CORD中,白盒交换结构节点以脊和叶配置相互连接,并且接入节点,x86服务器和城域网(因特网)配备有到POD叶子交换机的链路。
x86服务器按如下方式分配。
  • 头节点1  - 提供编排,控制和配置服务
  • 计算节点1  - 虚拟服务的可分配计算服务
  • 计算节点2  - 虚拟服务的可分配计算服务
  • 随着客户,流量和服务的扩展,可以添加头和计算节点的其他商用服务器。
从客户设备到上游网络的CORD用户平面通常如下所示遍历POD:
  1. 客户访问设备 - 裸机CPE设备 - 光纤/ RF /以太网介质朝向白盒聚合设备,例如R-CORD vOLT。
  2. 聚合设备到计算节点 - 从接入或聚合节点,客户的数据通过结构网络流向计算节点,计算节点包含管理客户数据流的实例化虚拟服务。
向上游网络计算节点 - 通过虚拟路由器实例化,该实例化也存在于POD计算节点内,利用叶子和主干结构来提供计算节点(如果需要)和上游网络之间的数据路径。

白盒交换机协调器

多个提供商业设备的供应商通常需要协调器来允许供应商A的白盒与来自供应商B的白盒一样好用。除了具有兼容的商品硬件之外,来自开源社区另外一环是称为ONIE的项目或开放网络安装程序环境(Open Compute Project下的子组项目)。 ONIE是安装在白盒固件上的缩小版Linux。其目的是简化设备将使用的操作系统的安全安装。可以生成来自供应商或来自ONL(开放式网络Linux)等开源项目的交换机操作系统,以与ONIE兼容。这为大规模自动化操作系统配置开辟了道路。运营商可以从他们选择的供应商(CAPEX优势)购买裸机商品交换机硬件,并将其集成到CORD网络中。然后,他们可以通过单一安装环境平台的自动化实现OPEX收益。 (MAAS,将在后面讨论。)

通过OpenStack了解云功能

在处理计算云的功能以及OpenStack如何实现它时,有必要了解OpenStack的操作。 OpenStack提供可提供云服务的功能,包括计算服务,存储服务和网络服务。租户(数据与其他人隔离的用户或服务)需要访问这些云服务,OpenStack通过充当云的协调器和框架来实现这一点。 OpenStack由一系列开源软件项目组成,CORD使用这些项目来“边缘化”边缘办公室。 OpenStack中的大多数项目都是“作为服务”,下表列出了其中一些项目以及简要说明。
 
项目 服务 即服务
Nova 提供一种创建计算机服务的方法,例如虚拟机,裸机服务器和一些容器服务。 计算即服务
Swift 提供对象存储 - 通常用于不需要更新的大型静态存储需求,即Web内容,备份图像等。 存储即服务
Neutron 通过向Nova创建的计算服务提供虚拟NIC来提供网络连接。 可以提供不仅仅是扁平网络拓扑,即可以为每个租户实例化丰富的网络拓扑。 网络即服务
Glance 租户映像服务 -  VM映像等.Glance映像服务包括发现,注册和检索虚拟机(VM)映像。 Glance有一个RESTful API,允许查询VM图像元数据以及检索实际图像。 影像即服务
Heat 编排 - 实例的配置和配置 - 包括软件配置,网络配置,数据库配置,块存储对象存储等 - 文本格式(YAML)建模输入。 实例即服务
Sahara 为集群处理应用程序提供框架,包括Apache的Hadoop,Spark和Storm。 数据处理即服务
Trove 用户数据库实例 - 用户可配置,可管理等 - 在Nova内生成单个租户数据库。 数据库即服务
Keystone 身份验证 - 身份服务 身份验证即服务
Gnocchi Ceilometer项目使用的时间序列dB 时间序列数据库即服务
Cinder 来宾实例块存储 - 标准存储服务(如硬盘驱动器)通常会提供 - 更好地用于动态数据。 块存储即服务
Horizon Openstack服务的Web UI  - 仪表板  
Ceilometer 遥测 遥测即服务
Manila 共享文件系统服务 共享文件系统即服务
RabbitMQ 用于群集的消息队列 消息即服务
 

OpenStack  - 基本操作

下图“Openstack - 基本流程图”,当用户需要访问诸如计算服务的云功能时,用户(或需要虚拟CPU机器的实体)将向OpenStack的Nova组件发送请求。然后,能够创建虚拟机的Nova将使用OpenStacks的Keystone组件对请求进行身份验证。如果验证通过,则从Neutron请求任何所需的网络,例如简单的虚拟NIC IP地址。 Neutron是OpenStack的网络管理组件。在Neutron分配网络并返回Nova后,可以通过驻留在计算节点硬件资源上的OpenStack Hypervisor将虚拟机设置为租户。管理程序将从名为Glance(OpenStack的成像服务)的服务请求镜像,该服务可以将OS分发从存储的用户图像上传到新的虚拟环境中。顺便提一下,Hypervisor是与OpenStack一起使用的软件,允许共享物理硬件,在这种情况下可以是白盒服务器。它可以在计算资源上创建和管理租户虚拟机。



如果将来需要添加新的网络服务或功能,可以在Neutron中更新网络设置,并使用Glance使用新的规定服务更新镜像。下次从用户发送云资源请求时,所有新功能将在虚拟机租户中实例化并可用,而无需用户在用户设备上添加或更新软件。

CORD软件 - 基本构建模块

与OpenStack的云模型类似,CORD使用云架构来提供白盒和裸机节点所需的应用程序,以适当地转发客户流量。可以使用OpenStack框架在“CORD云”中实例化和配置应用程序,以便在服务租赁安排中创建虚拟化实例。网络节点与控制软件分离。这意味着通常在设备内计算的转发服务现在在计算和头节点内进行事务处理。

在下图“基础的R-CORD POD”图中,描绘了R-CORD框图以说明如何通过从头节点集群完全编排和创建的硬件节点的抽象来进行这种分解。从图中可以看出,CPE的传统功能分解为用户vSG(虚拟用户网关)控制器。这些是在由计算节点托管的虚拟机(VM)内的单个容器中创建的。此外,对vOLT和叶子交换机内的数据流的控制分解为分别在ONOS(CORD的SDN控制器)上执行的VOLTHA和vRouter控制应用程序。这两个应用程序抽象了PON和上游可路由网络。它们与ONOS协同工作,以便它可以通过OpenFlow协议为用户设置流量。

XOS

通过输入到CORD的XOS(一切即服务)中的数据模型创建CORD服务。 XOS是CORD体系结构中的协调器,虚拟系统的所有模板都可以在其界面中找到。不仅从裸机硬件中抽象出虚拟实例,还包括OpenStack,ONOS和MAAS等云软件项目的其他配置。作为示例,下面是在“Cord in a Box”模拟器中执行的XOS服务的屏幕截图,该模拟器在单个服务器(也称为CIAB)内创建CORD POD。屏幕截图显示了XOS为POD头节点部署创建OpenStack安装所需的镜像配置。这是一个简单的例子,但基本CORD POD中的所有内容都可以在XOS的不同模板中找到。



返回参考图“基本R-CORD POD”,一旦请求由XOS创建服务,OpenStack将工作以实例化该服务。例如,这包括在计算节点上找到的称为vSG,vCDN和vRouter的虚拟服务租户。这些租户中的每一个都是在VM中创建的,在VM中,在可用计算或头节点上的VM中创建“容器”。例如,当客户需要在其位置安装新的CPE时,仅需要裸金属盒子。传统系统中直接驻留在CPE上的任何服务(如DHCP或防火墙)现在都在由计算节点上的XOS模板和OpenStack创建的vSG中实例化。优点是速度和灵活性。速度可以在边缘办公室的CORD POD中快速实例化服务。并且能够根据需要灵活地在边缘办公室虚拟租户中添加或减少客户服务。它不仅仅是vSG,还有其他服务应用程序,如vCDN或虚拟化内容交付网络,以及ONOS上的vRouter应用程序,它为CORD上游的互联网,核心网络或城域网提供必要的网关服务。边缘办公室。
 

ONOS

通过XOS和OpenStack,CORD头节点能够生成代表网络节点的虚拟机和容器。一旦创建了这些,ONOS或开放网络操作系统(开源平台)就以CORD的SDN控制器的形式运行,使用其北向抽象和API与XOS和OpenStack交互。相应地,它为CORD POD节点提供南向抽象和OpenFlow接口,并充当控制平面上用于动态配置数据流的整体权限。 ONOS与OpenStack的中子服务协同工作,创建互连CORD POD所需的虚拟网络,最终为客户创建一系列服务。最后,ONOS还可以使用前面提到的控制应用程序。例如,vRouter应用程序(由XOS创建的服务)在ONOS之上运行。它学习将流量转发到上游网络所需的路由。作为软件路由器,它创建转换为基于OpenFlow的路由规则,通过ONOS将叶子交换机配置为能够正确地将任何数据包转发到上游网络。

MAAS

硬件即服务或MAAS是CORD头节点操作的组成部分。它的功能是提供裸机节点启动和与CORD OpenStack和ONOS服务交互所需的工作软件映像。在CORD中,如前所述,节点都是通用商业盒子,有些节点使用商用交换芯片。 MAAS的工作方式与PXE服务器类似,它为这些商用盒子提供安装映像,这些商用盒子通常只安装了一个小型引导加载程序。下面是MAAS接口部署在头节点上后的屏幕截图。根据节点架构,MAAS可以从适合设备及其架构的多个映像中进行选择。选择后,MASS可以自动传送到设备:所需的启动过程,操作系统和软件包。


 

容器化 -  Docker

早些时候,OpenStack描述中讨论过虚拟机用于提供租赁服务。然而,在CORD中,情况并非总是如此。在CORD服务链中,实例化的ONOS应用程序(例如vSG或vOLT(又名VOLTHA)服务租户)需要一种方法来将租户彼此隔离。不使用虚拟机来提供隔离,而是使用称为Linux容器的概念。 CORD通过Docker容器技术使用容器化。与虚拟机相比,容器使用的系统资源要少得多。代表每个客户的vSG在CORD POD中需要数百或数千个实例。容器提供了足够大的操作系统,其程序和库,vSG服务可以执行但仍然保持隔离状态。

其他CORD架构

本简介以Residential CORD为例。目前,OpenCORD定义了三种不同的CORD架构,其中包括R-CORD。另外两种架构是移动CORD或M-CORD和企业CORD或E-CORD。这些CORD架构中的每一个都使用与R-CORD相同的原理,因为网络服务是虚拟化的(分解),并且相同的通用硬件平台用于容纳CORD POD服务的服务实例。 M-CORD旨在为4G和即将推出的5G网络提供RAN和CORE组件的分解。 4G节点,如MME,SG,PG和PCRF都可以使用M-CORD进行虚拟化。另一方面,E-CORD使用至少两个相同的基本CORD POD来支持企业客户。然后,可以通过第2层或第3层VPN连接两个E-CORD POD。与R-CORD类似,E-CORD实例化(如vCPE)为客户数据创建QinQ头,并分别为上游和下游数据添加或删除VLAN标记。其他一些E-CORD服务是:vEE(以太网边缘)来聚合流量,vEG(企业网关)提供虚拟网络功能,如带宽功能,防火墙和诊断,以及vRouter,以提供上行连接到互联网。每种CORD技术都是自己的主题,但使用此处概述的相同原则进行操作,因此,最好让读者进一步调查。

总结

Open CORD是开放网络基金会的一部分,他们的目标是“创建一个开放的虚拟化服务交付平台,提供云经济和敏捷性”。客户设备,汇聚和核心办公设备被简化为商品裸机设备和白盒服务器,其中客户的数据由从节点的实际硬件中抽象出来的虚拟化实例来提供服务。虚拟化服务和底层硬件都是使用OpenStack框架,XOS,ONOS和MAAS从CORD头节点配置,控制和配置的。头节点集群最终创建在Docker容器中作为租户排列的虚拟服务。然后,这些虚拟化服务形成一个链,以便在客户遍历CORD网络时为其提供数据。

通过应用云技术,CORD可以通过在OpenStack云框架之上创建虚拟化边缘办公室,从根本上改变住宅,移动和企业边缘办公室的特征。此外,使用SDN原理的CORD POD利用ONOS的功能来控制跨虚拟化网络的数据流,其中可以应用计量,DHCP,防火墙或任意数量的服务。

建议参考开放网络基金会保护伞组织及其子组织(如OpenCORD),进一步研究CORD和其他软件项目(包括ONOS和XOS)的细节。其他软件(如MAAS,ONIE和Docker)的更多信息也可以在各自的组织网页下找到。