1.3 平台架构
Q13.网络云平台系统架构及各层功能是什么?
如图 Q13-1 所示,网络云平台系统由硬件层、虚拟层、网元层及 NFV 管理编排域组成,通常称为“三层一域”架构。
图Q13-1 网络云平台系统架构
一、硬件层
硬件层是各类计算、存储、网络、安全等物理设备的集合。
二、虚拟层
虚拟层将物理计算、存储、网络资源虚拟化成虚拟计算、存储、网络资源,为虚拟化网元(VNF)的部署、执行和管理提供虚拟资源池。
三、网元层
网元层包括虚拟化网元(VNF)和网元管理系统(EMS)。VNF 部署在网络功能虚拟化基础设施(Network Function Virtualization Infrastructure,NFVI)上,实现软件化的电信网元功能。EMS 的功能与传统网元管理功能相同,可实现对VNF的管理,如配置、告警、性能分析等。
四、NFV管理编排域
NFV MANO(NFV Management and Orchestration,NFV管理编排域)主要包括 NFV 编排器(NFVO+)、VNF 管理器(VNFM)及虚拟化基础设施管理器(VIM)/物理资源管理器(PIM)三个部分,实现 NFV 管理与编排功能。NFVO+(Network Function Virtualization Orchestrator,网络功能虚拟化编排器)实现网络服务、虚拟网络生命周期管理及全局资源管理,是云管理的决策者;VNFM(Virtualized Network Function Manager,虚拟化网元管理器)实现虚拟网元生命周期管理,是VNF管理的执行者;VIM/PIM是虚拟化基础设施管理系统,是虚拟资源和物理资源管理的执行者。
Q14.NFV管理编排域(MANO)的组成及其功能是什么?
NFV 管理编排域(NFV MANO)主要包括 NFV 编排器(NFVO+)、VNF 管理器(VNFM)及虚拟化基础设施管理器(VIM)/物理资源管理器(PIM)三个部分。
一、NFVO+
NFVO+负责全网的网络服务、物理资源、虚拟资源和策略的编排、维护,以及其他虚拟化系统相关维护管理功能;实现网络服务生命周期的管理,与 VNFM配合实现VNF的生命周期管理和资源的全局视图功能,如表Q14-1所示。
表Q14-1 业务生命周期管理
二、VNFM
VNFM 实现虚拟化网元(VNF)的生命周期管理,包括 VNFD(Virtualized Network Function Descriptor,虚拟化网络功能描述符)的管理及处理、VNF实例的初始化、VNF 的扩容/缩容、VNF 实例的终止等。VNFM 支持接收 NFVO+下发的弹性伸缩策略,实现VNF的弹性伸缩,如表Q14-2所示。
表Q14-2 虚拟化网元的生命周期管理
三、VIM、PIM
VIM、PIM 分别负责基础设施层虚拟资源、物理资源的管理,监控和上报故障,并分别面向上层VNFM和NFVO+提供虚拟资源,如表Q14-3所示。
表Q14-3 资源生命周期管理
Q15.OpenStack的定义是什么?其有什么优势?
OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。OpenStack由NASA(美国国家航空航天局)和Rackspace合作研发并发起,是Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
OpenStack为私有云和公有云提供可扩展的、弹性的云计算管理服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
通俗地讲,云操作系统(Cloud OS)和普通的操作系统一样,可实现对硬件资源的抽象,并为上层提供统一的接口。除此之外,“云”的特征要求云操作系统借助计算、存储和网络虚拟化技术实现资源的组织和分配,进而实现资源的共享、弹性、快速部署和回收、可监控和可测量,实现“像使用自来水一样使用 IT 资源”的构想。在 Cloud OS 领域,最著名的当属 OpenStack。OpenStack属于Cloud OS 的管理部分,与虚拟化平台一起构成Cloud OS的功能。在一般表述中,OpenStack 直接被称为云操作系统,将虚拟化平台作为OpenStack的一部分。
OpenStack 的 Open 有两层含义:Open Source,和其他开源软件一样,其源代码是公开的;Open Mind,思想是开放的。OpenStack 以开源社区的方式向所有人开放,任何人都可以向社区贡献自己的想法和代码。
OpenStack 从众多的物理主机、存储和网络设备中抓取虚拟机所需要的计算、存储和网络资源分配给虚拟机。
OpenStack的优势如下。
1.开放架构
两级标准OpenStack API,完全开放架构。
2.即插即用快速集成
由于被级联的OpenStack只需要提供标准OpenStack API即可,因此架构具备即插即用快速集成第三方基础设施的能力,采用标准OpenStack API实现多厂家异构快速集成。
3.故障隔离的高可靠系统
单个被级联 OpenStack 管理的规模为 1024 台服务器,系统故障的影响范围局限于 1024 台服务器的小规模下。即使级联 OpenStack 出现故障,被级联OpenStack仍然可以管理。系统故障容忍度高,总是可用。
4.升级隔离
单个被级联 OpenStack 升级不影响其他系统,系统天然具备多版本并存能力,不会因为局部升级而引起百万台服务器系统规模的升级。
5.水平扩展
在被级联OpenStack 内,以服务器为单位和以被级联OpenStack为单位两个层面均具备大规模水平扩展能力,从极小规模的几台服务器到百万台级别服务器规模。
6.支持大规模、多数据中心
架构通过两级调度减少单一系统的总负载,第一个阶段十万台服务器、百万台虚拟机,第二个阶段百万台服务器、千万台虚拟机。
Q16.OpenStack为云计算带来哪些帮助?
OpenStack 是一个由美国国家航空航天局(贡献 Nova)和 Rackspace(贡献Swift)合作研发并发起的开源项目,是一系列软件开源项目的组合,可以理解为一个云操作系统。OpenStack 基本上以每 6 个月发布一个新版本的节奏在逐步迭代,2021 年 4 月 14 日 OpenStack 开源社区正式发布第 23 个版本,版本号Wallaby (简称“W 版”),中国移动网络云资源池使用的版本为 M+版(在Mitaka版基础上吸收了一些Pike和Queens版本的增强功能)。
OpenStack 提供可扩展的、弹性的云计算管理服务,具有架构开放、扩展性良好、支持多厂商基础设施的特点。OpenStack 可将各类硬件资源通过虚拟化与软件定义的方式,抽象成资源池;OpenStack 可根据管理员或用户的需求,将资源池中的资源分配给不同的用户,承载不同的应用。OpenStack 具备提供初步的应用部署、应用撤除、自动规模调整的能力。OpenStack 云操作系统架构如图Q16-1所示。
图Q16-1 OpenStack云操作系统架构
Q17.OpenStack的通用设计思路是什么?
OpenStack 的通用设计思路自上而下分为前端服务(API)、调度服务(Scheduler)、工作服务(Worker)、框架服务(Driver)、消息服务(Messaging)、数据库(Database)六个部分。
一、前端服务(API)
每个 OpenStack 组件可能包含若干个子服务,其中必定有一个前端服务负责接收客户请求。
以Nova为例,Nova-api作为Nova组件对外的唯一窗口,向客户暴露Nova能够提供的功能。当客户需要执行虚拟机相关的操作时,只能向 Nova-api 发送REST(Representational State Transfer,表征状态转移)请求。这里的客户包括终端用户、命令行和OpenStack其他组件。
设计前端服务(API)的好处在于:
(1)对外提供统一接口,隐藏实现细节;
(2)提供REST标准调用服务,便于与第三方系统集成;
(3)通过运行多个 API 实例轻松地实现 API 的高可用性,例如,运行多个Nova-api进程。
二、调度服务(Scheduler)
对于某项操作,如果有多个实体都能够完成任务,那么通常会有一个Scheduler 负责从这些实体中挑选一个最合适的来执行操作。一般来说,Nova 有多个计算节点,当需要创建虚拟机时,Nova-scheduler 会根据计算节点当时的资源使用情况选择一个最合适的计算节点来运行虚拟机。
调度服务好比开发团队中的项目经理。当接到新的开发任务后,项目经理会评估任务的难度,并考察团队成员目前的工作负荷和技能水平,然后将任务分配给最合适的开发人员。除了Nova,块服务组件Cinder也有Scheduler子服务。
三、工作服务(Worker)
调度服务只管分配任务,真正执行任务的是工作服务(Worker)。在 Nova中,这个Worker就是Nova-compute了。将Scheduler和Worker从职能上进行划分,会使OpenStack非常容易扩展。
当计算资源不够无法创建虚拟机时,可以增加计算节点(增加 Worker);当客户的请求量太大调度不过来时,可以增加Scheduler。
四、框架服务(Driver)
OpenStack作为开放的IaaS(Infrastracture as a Service)云操作系统,支持业界各种优秀的技术。这些技术可能是开源免费的,也可能是商业收费的。这种开放架构使得 OpenStack 能够在技术上保持先进性,具有很强的竞争力,同时又不会导致厂商锁定(Lock-in)。
那么,OpenStack 的这种开放性体现在哪里呢?一个重要的方面就是采用基于 Driver 的框架。以 Nova 为例,OpenStack 的计算节点支持多种虚拟化平台,包括KVM(Kernel-based Virtual Machine,KVM虚拟机)、Hyper-V、VMWare、Xen、Docker、LXC等。Nova-compute为这些虚拟化平台定义了统一的接口,虚拟化平台只需要实现这些接口,就可以Driver的形式即插即用到OpenStack中。
五、消息服务(Messaging)
消息服务是Nova-*子服务交互的中枢。为什么不让API 直接调用Scheduler,或者让 Scheduler 直接调用 Compute,而非要通过 Messaging 进行中转呢?这里做一些解释。
程序之间的调用通常分两种:同步调用和异步调用。
同步调用就是API直接调用Scheduler的接口。其特点是API发出请求后需要一直等待,直到Scheduler完成对Compute的调度,并将结果返回给API后,API才能继续进行后面的工作。
异步调用就是 API 通过 Messaging 间接调用 Scheduler。其特点是 API 发出请求后不需要等待,直接返回,继续进行后面的工作。Scheduler从Messaging接收到请求后执行调度操作,完成后将结果通过Messaging发送给API。
OpenStack这类分布式系统通常采用异步调用的方式,其好处如下。
(1)解耦各子服务。子服务不需要知道其他服务在哪里运行,只需要发送消息给Messaging就能完成调用。
(2)提高性能。异步调用使得调用者无须等待结果返回。这样可以继续执行更多的任务,提高系统的总吞吐量。
(3)提高伸缩性。子服务可以根据需要进行扩展,启动更多的实例以处理更多的请求,在提高可用性的同时提高整个系统的伸缩性。另外,这种变化不会影响其他子服务,也就是说变化对其他子服务是透明的。
六、数据库(Database)
OpenStack 各组件需要维护自身的状态信息。例如,Nova 中有虚拟机的规格、状态,这些信息都是在数据库中维护的。每个 OpenStack 组件在 MySQL 中都有自己的数据库。