韩同欣 何文春 吴鹏 李江涛
(国家气象信息中心, 北京 100081)
自云计算、大数据技术逐步成熟以来,众多行业领域采用虚拟化、分布式等技术构建适用于本行业的基础设施云平台,提供从基础设施资源服务到数据环境、中间件服务的多样化、服务化云资源,具备通用云计算平台的IaaS、PaaS、SaaS 3层特征[1],且针对行业特点深度定制、兼有行业云垂直领域集成的功能[2]。原国土资源部集成、整合已有基础设施、数据、管理、应用等信息化资源,形成“国土资源云”[3]。地震行业各级单位为满足业务发展需要,建设了私有云资源池[4]。浙江省农业部门构建智慧农业云平台实现全省涉农业务数据的采集、管控、决策和服务[5]。水文行业基于云计算与大数据技术构建混合云架构的数据中心[6]。国家电网公司建设的电力云资源池提出了资源池的六层物理模型[7]。
通过对已有研究分析可知:目前行业云的IaaS层资源服务已成熟应用,面向行业应用直接提供虚拟主机、共享存储资源;PaaS层的建设及应用正在逐步开展,主要体现在基于分布式技术对数据资源的整合、集中共享服务;SaaS层的建设及研究较少[8]。
国家级气象部门自2012年开始探索硬件平台集约建设技术,开始应用虚拟化技术构建私有云平台[9],引导各业务单位逐步采用虚拟机作为应用主机,降低对物理机数量的需求,提升物理机资源利用率,逐步实现硬件设备的集约管理[10]。经过多年不断建设,目前虚拟化资源池的规模、功能基本完备,虚拟机数量超过千台,正在根据业务发展需要,不断扩充计算、存储资源,逐步形成涵盖IaaS层和PaaS层服务的气象基础设施云平台。省级气象部门也逐步建立起以虚拟化技术为主的云平台[11-13]。
本文给出国家级气象基础设施云平台建设初期的资源现状、需求分析,以及建设过程中对资源构成、功能层次、拓扑结构等方面的关键设计,以及技术特点、应用效果,为相关部门及相关工作提供借鉴和参考。
气象基础设施云平台在建设初期以实现硬件资源集约为主要目标。经过2012—2016年的集约建设,国家级气象部门已基本实现硬件集约,通过集约化的虚拟化资源池支撑气象业务、科研、政务及服务等众多应用系统。
目前,业务网区、互联网区的虚拟化宿主机共109台,虚拟机存储空间近600 TB,采用了华为HCS6.5系统分别构建了业务网(内网)、互联网两个虚拟化资源池。虚拟化资源池已经为国家级气象业务部门提供了1224台不同配置规格的虚拟主机,平均单台宿主机与虚拟机的比例为1∶12,宿主机CPU资源利用率超过60%,存储空间利用率接近93%,通过虚拟化技术使得硬件集约支撑效果显著。
在实现业务应用主机集约入虚拟化资源池的基础上,继续推进气象数据环境、加工处理算法的整合集约。在推进过程中全流程的气象大数据业务(数据交换、解码入库、存储管理、加工处理、接口服务等)对IT支撑资源的类型提出新的技术需求,单纯的虚拟化资源已无法支撑满足气象大数据业务,亟需分布式的物理算力资源、海量的数据存储资源、服务化的基础软件资源:
物理算力资源需求:气象数据交换业务属于高IO、高负载业务,需要集群化的物理节点支撑运行。各类气象加工处理算法的管理、调度、流水线运行需要多种异构的计算框架引擎(Spark、Storm等)。气象数据的挖掘分析、气象数据的可视化渲染需要采用GPU计算环境[14]。以上应用场景,均需要CPU、内存配置相对较高的物理服务器支撑,且部分物理服务器需要配置GPU图形显卡、闪存加速卡。
数据存储资源需求:气象部门已积累海量数据资源,气象数据持续爆炸式增长,日增量40 TB,到2022年数据资源的总体规模将达到200 PB[15]。气象大数据云平台采用了在线、近线、离线的分级存储体系实现对实时、历史数据的存储,因此,需要配置海量的文件/对象存储资源。同时,为了数据的安全,所有业务数据需要归档,需配置海量的归档存储资源。
基础软件资源需求:气象应用的开发、测试、部署运行需要一站式的平台环境,按需获取需要的操作系统、中间件(数据库)环境,并灵活调度运行。
一般云平台的架构均为IaaS、PaaS、SaaS 3层架构,但在构建服务化、云化的资源方面有所不同:传统IT厂商提供的云平台解决方案主要基于虚拟化技术实现,为众多应用提供多租户隔离的虚拟主机资源。互联网IT服务商侧重于构建数据存储、分析服务,提供的云资源除去虚拟主机外,还提供云数据库、云存储、数据仓库等资源服务。
考虑气象数据安全方面的管理规定,以及气象应用与数据交互频繁的特点,气象基础设施云平台采用私有云部署模式,下一步将逐步纳管部分对外服务系统所使用的公有云资源。本文重点介绍私有云模式下气象基础设施云平台的资源构成。根据全流程气象数据业务负载高、需要专用物理服务器及海量存储资源的特点,以及天气、气候等众多气象应用系统需要弹性云主机、基础软件服务的需求特点,参考互联网IT服务商的云资源服务内容,气象基础设施云平台设计的云资源包括物理算力资源、虚拟主机资源、数据存储资源、基础软件资源,各类资源的构成、实现方式及特点如下:
(1)物理算力资源是由通用计算型服务器(不同的配置规格)、GPU服务器等物理服务器设备在内部互联交换机(网络交换机、IB交换机等)的连接下,通过分布式系统软件(如Spark、Storm)或应用软件(如气象产品加工流水线)构建形成。形成的物理算力集群支撑普通计算、分布式计算、AI训练推理等多种计算框架。与互联网云平台基于分布式系统软件构建算力集群的实现方式相比,气象基础设施云平台的部分物理服务器不作云化,通过应用软件构建算力集群支撑某一类业务。
近几年,气象业务应用对物理算力资源的需求最多。随着气象数据业务的快速发展,海量数据快速汇聚和加工、长序列数据在线分析、多源数据综合应用、基于数据挖掘和机器学习而发展的智能预报和服务算法等都需要规模化、集群化的物理算力节点构建大数据支撑环境。因此,云平台配置的物理算力资源能力(折算成TFLOPS计量)占云平台整体算力的65%。
(2)虚拟主机资源由物理服务器、虚拟化软件及虚拟化管理系统构建形成。按需创建、分配虚拟主机,支撑各类气象应用端的部署。与一般虚拟化平台单纯采用块存储作为虚拟化资源池的存储空间相比,气象基础设施云平台的虚拟化资源池采用块存储作为虚机实例、虚机系统盘空间,采用文件存储作为虚机数据盘空间,实现虚机系统存储空间与用户数据空间的分离,提升虚拟化资源池的用户数据可靠性。
虚拟主机资源用于支撑各类气象应用端系统,支撑虚拟主机的物理服务器算力约占云平台整体算力的35%。
(3)数据存储资源是由存储型服务器(配置不同规格、不同数量的SSD、SAS、SATA硬盘)、分布式NAS存储设备、分布式对象存储设备、磁盘阵列、磁带库/磁带等存储设备、介质,在互联设备,以及分布式文件/对象系统、数据库软件等系统软件的作用下形成全局统一命名空间。与一般的云平台、大数据平台相比,气象基础设施云平台通过自研的数据服务接口实现了实时数据库、分析型数据库、在线文件/对象存储、近线磁带库存储的分级存储功能。数据存储资源的规模将逐步达到100 PB,云平台中数据存储支撑设备量最多。
(4)基础软件资源:涉及到服务于用户层面的基础软件主要包括云数据库、机器学习支撑软件、负载均衡、消息缓存等中间件。通过PaaS平台技术实现基础软件的云化服务。
随着信息技术的发展,会有更多新型计算、存储设备,以及系统软件被采纳、应用于基础设施云平台,转化为算力、存储空间、基础软件等资源,支撑、服务气象应用。
气象基础设施云平台的云资源设计包括虚拟化、分布式物理节点、数据存储3类基础设施资源,在实现资源统一管理、提供基础资源服务之上,提供分布式计算环境、数据支撑环境,以及中间件基础软件服务。同时,租用公共云资源,高效支撑数据汇聚、加工处理、存储服务、智能预报、服务众创的气象大数据全流程业务。从云资源实现的功能角度,设计的云平台层次结构如图1。
图1 气象基础设施云平台功能层次结构
该层次结构自下而上依次分为硬件设备层、基础设施资源层、基础软件资源层、资源管理服务接口4个层次。气象基础设施云平台与一般云平台的层次结构类似,但在基础设施资源层的资源构成上结合了气象业务特点,创新性提出建设虚拟化池、分布式物理池、数据存储池、以及池管理服务接口。
(1)硬件设备层。云平台的支撑硬件包括物理服务器、分布式NAS设备、磁带库,以及网络设备。虚拟化池、分布式物理池的硬件设备均为物理服务器,根据服务器的功能用途(管理节点、计算节点、计算存储节点)配置不同性能的计算型服务器(均配置SSD固态盘提升服务器性能,部分服务器配置显卡等加速卡)、计算存储型服务器,通过软件定义方式(虚拟化软件、容器引擎、分布式块存储软件、分布式文件系统)构建计算集群。数据存储池主要硬件设备由分布式NAS设备、对象存储设备、物理服务器构成,同时面向数据归档提供磁带存储设备。
(2)基础设施资源层。通过虚拟化、分布式技术将硬件设备池化,构建虚拟机、容器、物理节点等不同资源形态的计算、存储集群,实现资源的逻辑抽象、封装、调度、计量,进而构建云资源。主要的云资源类型包括:物理算力资源、虚拟主机资源、数据存储资源、基础软件资源,以及公共云资源。
(3)基础软件资源。在云资源之上部署基础软件,将资源服务化、能力化,提供分布式计算环境、数据存储支撑环境、中间件等软件资源服务。计算环境主要提供普通计算、流计算、并行计算、分布式计算等计算环境,以及数据挖掘、机器学习环境。数据存储支撑环境主要是各类数据库集群、文件/对象存储环境,及备份归档环境。中间件服务包括消息、缓存等软件资源和服务。根据大数据服务众创等应用的需求,按需租用公共云的缓存服务、消息服务、文件/对象存储服务、云数据库服务、分布式计算服务,以及数据挖掘分析服务。
(4)资源管理服务接口。不同类型的云资源(虚拟机、容器、分布式物理节点、分布式NAS/对象存设备等)需要实现资源管理整体视图。同一类型的云资源存在不同的技术实现/技术架构,需要对异构的同类别资源实现统一的资源生命周期管理流程(如虚拟化资源可通过Vmware ESXi、Hyper-V、XEN、KVM等不同的技术产品实现)。因此,需要部署资源管理软件并提供资源接口,实现资源的统一管理、调度以及资源监控。
以上从业务需求角度设计规划气象基础设施云平台的资源构成、功能层次。作为数据中心基础的支撑平台,需要考虑网络分区、业务级别等因素对基础设施资源进行合理分区,确定每个分区的边界、资源构成。
基础设施资源的分区没有标准化参考,资源池规划应既能够满足各业务对IT资源的需求,又能够合理控制资源池建设投资,提高资源利用水平[16]。综合考虑网络区域m、等保区域n、业务级别b(业务/准业务、中试仿真、科研开发等)、备份级别q(同城、异地)、资源池类型c(虚拟主机、物理算力、数据存储等资源)、业务应用特殊要求d等因素,一个数据中心完备的资源分区p的数量:p=mnbqcd.若考虑以上诸多因素,数据中心的资源分区增多,在实际建设中不现实。因此,应选取与实际建设情况贴近的因素设计数据中心基础设施资源的分区。
与一般云平台仅考虑网络区域划分云资源分区的方式不同,在气象基础设施云平台的设计、建设中,选取网络区域、业务级别、支撑对象等3个主要因素划分、界定资源分区,通过资源监控系统实现资源的统一呈现。综上考虑,结合支撑的业务应用情况,设计气象基础设施云平台的资源分区如表1。
表1 气象基础设施云平台的资源分区
不同网络区域的资源边界、访问规则遵循中国气象局网络安全总体设计规范要求,同一网络区域、不同业务级别的资源逻辑隔离,必要时仿真、科研资源可用于支撑业务。
一般云平台主要采用3层网络架构(核心、汇聚、接入),独立组网。气象基础设施云平台采用扁平化网络结构,结合网络虚拟化功能、动态路由协议和多链路捆绑,实现多节点多链路连接访问,便于资源的横向扩展。服务器设备直接上连数据中心汇聚交换机,由通用物理服务器通过软件定义方式构造分布式计算环境和分布式存储环境。根据应用系统的需求,不同配置的服务器搭配出管理、计算、存储、应用等多种角色的节点,满足不同业务场景的资源架构需求。以“业务-内网业务区”支撑资源为例(其他分区类同),图2给出支撑业务系统的云平台在该网络分区下不同资源专区(子分区)的逻辑拓扑架构:
图2 气象基础设施云平台逻辑拓扑
虚拟化资源分区的支撑硬件主要包括物理服务器、万兆网络交换机。计算存储型物理服务器通过万兆网络交换机内部互联,部署虚拟化软件、分布式块存储软件(形成池化的系统存储空间)、容器引擎构建集群化的虚拟化、容器环境;计算型物理服务器部署中间件软件。虚拟化资源池为各类气象应用提供虚拟主机资源服务。
数据交换业务、解码入库资源分区的支撑硬件主要包括物理服务器、SAN交换机、磁盘阵列。物理服务器部署CFS集群文件系统,通过SAN交换机连接、共享使用盘阵空间。在物理服务器集群部署解码入库、交换服务等应用组件及支撑软件,支撑数据交换及质控系统的部署、运行。
数据存储与服务资源分区的支撑硬件主要包括物理服务器、分布式NAS存储、SAN交换机、磁带库、万兆网络交换机。不同配置规格的物理服务器由万兆网络交换机内部互联,通过部署数据库软件形成分布式关系型数据库、分布式表格系统、分布式分析型数据库集群。分布式NAS存储通过自带的分布式文件系统、存储管理软件实现多接口/访问协议的文件存储服务;存储型物理服务器通过部署对象存储软件实现对象存储服务的构建。配置备份及归档服务器,部署备份及归档软件,备份及归档缓存存储使用分布式NAS存储提供的文件存储空间,归档存储由磁带库、磁带提供磁带存储空间。通过气象大数据云平台的数据服务接口实现对外透明的实时、历史气象数据全集“在线服务”。
产品加工、挖掘分析资源分区的支撑硬件主要由物理服务器构成,采用CPU+GPU的混合算力,通过部署并行/分布式计算软件、容器软件,以及普通计算软件,形成不同的计算框架环境,支撑算法库、产品加工流水线。
业务监控资源分区的支撑硬件主要是计算型服务器(部署监控应用)、计算存储型服务器(部署监控日志库)。
经过多年扩充建设,气象基础设施云平台已成为气象业务、科研、管理及服务等众多应用的部署、运行的核心支撑平台,覆盖了云计算三层模型(IaaS、PaaS、SaaS)的IaaS层、PaaS层范畴。平台的特点如下:
(1)同时采用了“多聚一”的分布式技术和“一虚多”的虚拟化技术,分别支撑具有大数据特点的数据业务,以及各类气象应用端系统。通过定制化的资源管理服务接口实现不同类型云资源的统一管理、对外服务。
(2)支撑气象大数据业务(数据交换、解码入库、存储管理、加工处理、接口服务等)的物理算力资源及数据存储资源进行资源分区,分区间资源不调度,分区内资源专用于该基础信息支撑业务。
(3)基于物理算力资源搭建了普通计算、分布式计算、AI计算等多种计算框架,适配支撑不同计算类型的气象数据产品加工业务。
(4)采用分布式数据库、分布式文件、分布式对象、磁带库等多种存储技术支撑构建气象大数据分级存储体系,实现海量数据长序列在线、高并发快速存取。
目前,气象基础设施云平台的虚拟化资源池已经为智能网格预报系统、强天气预报业务系统、数值预报业务网站、CIPAS2.0系统、综合气象观测一体化业务平台等众多应用系统提供了1224台虚拟主机,整个虚拟化资源池资源利用率较高,集约化效果显著。物理算力资源的浮点运算能力已达683TFLOPS,为观测、天气、气候、公共服务等业务应用提供多种计算框架支撑环境(图3),包括普通计算、内存计算、容器计算、流式计算、GPU计算等,已经支撑雷达外推、降水融合、气候指数计算等超过100余个业务算法融入产品加工流水线运行。
图3 气象基础设施云平台物理算力支撑的计算框架环境及算法
气象基础设施云平台的存储资源已超过50 PB,且以分布式文件、对象存储为主。以解码入库、加工处理、存储管理等超过100个节点共享使用的分布式NAS存储为例,该套存储系统的数据节点26个,有效容量4 PB。存储带宽、延迟、IOPS是存储系统的关键衡量指标,分布式文件存储系统的并发读写能力主要体现在聚合带宽指标[17]。在单个访问节点(万兆网卡、通过万兆网络交换机与该套存储互联)读写情况下,该存储文件系统带宽能达到973 MB/s(图4),基本达到单节点网卡传输能力的最大值。多个访问节点共享读写情况下,聚合带宽能达到10 GB/s的数量级,能够满足气象数据被多个应用端共享读写的速率要求。
图4 气象基础设施云平台分布式NAS存储的单节点访问性能
气象基础设施云平台在2012—2016年主要由虚拟化资源构成,直接面向各类气象应用提供虚拟主机服务,逐步改变了一个应用系统使用一套硬件设备的“烟囱式”状况,实现了硬件资源集约。2017年至今在实现硬件集约的基础上,为进一步实现数据集约和业务集约,逐步扩充、构建起支撑气象大数据云平台业务的物理算力资源、数据存储资源,由气象大数据云平台以接口的方式为各类应用提供算力资源、数据资源[18],支撑应用系统在平台上直接构建、融入和运行,为“云+端”的气象业务体制打造了基础支撑架构。
与公共云资源服务相比,目前气象基础设施云平台主要提供计算资源服务,还无法提供弹性带宽、灵活配置的网络资源服务,且计算资源由于是统筹各个工程项目分批次建设,有时会存在虚拟主机、物理算力资源一时满足不了众多应用的计算资源需求,造成用户响应时效有时会较长。对于应用系统所需的数据存储资源,在数据集约、业务集约的要求下变为由气象大数据云平台直接提供数据资源,各应用系统、用户需要通过数据接口获取。
下一步需持续提升云平台资源服务的及时性、便利性,提升优化资源利用率,优化算力资源的调度机制,实现异构算力资源、多种计算框架的统一调度,进一步提升算力资源利用效率。同时,针对气象业务对人工智能算法研究的需求,尽快搭建平台化的机器学习支撑环境,支撑多用户、多学习训练任务的人工智能算法研究。