随着互联网数据规模越来越大,并发请求越来越高,传统的关系数据库系统在性能、价格、可扩展性方面已经不能很好地满足需求。谷歌、亚马逊等互联公司率先在后台基础设施中引入超大规模分布式存储系统,用来解决海量数据的存储问题。与传统的集中式存储技术不同,分布式存储没有将数据存储在某个特定节点上,而是通过网络将各个节点分散的存储资源汇聚成一个虚拟的存储备,将数据分散在各处。相较于集中存储,分布式存储成本低,扩展性好,弱化了关系数据模型,可以得到高并发和高性能。
1 分布式存储概念及特点
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。随着各行业数字化转型的加速,越来越多的数据被生产出来,分布式存储成为我们应对海量数据挑战的重要助力。从20世纪80年代开始,历经几十年的演进,分布式存储已经走过了四个阶段:第一阶段是1980年代的网络文件系统,通过少量服务器实现网络环境下的简单文件共享;第二阶段是1990年代的共享SAN文件系统,已经能够外接SAN设备实现更大的文件系统;第三阶段是2000年代的Share-Nothing存储,开始利用通用服务器构建起高扩展的存储系统;第四阶段是2010年代逐步产生的企业级云存储,这类存储开始具备丰富的企业特性,存储性能、效率和数据保护能力有了显著的增强,开始在各行各业中广泛应用。
此外,不同类型的数据需要用不同的分布式存储系统去处理。图片、视频等非结构化数据,由于个体相互之间没有关联,体积大,采用二级制,通常使用分布式文件系统进行存储;自描述的数据结构和内容混在一起的半结构化数据,比较简单的可以用分布式键值系统存储,较为复杂的一般采用分布式表格系统来存储区;结构化数据由分布式数据库存储。
2 云计算的概念及特点
云计算是网格计算、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。广义云计算指服务的交付和使用模式,指通过网络以按需要、易扩展的方式获得服务。这种服务可以是IT软件和互联网相关服务,也可以是其他服务。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源。总体来说云计算具有以下几个特点:1) 超大规模:“云”具有相当的规模,企业私有云一般拥有数百上千台服务器并且能够横向平滑扩展,“云”赋予了用户前所未有的计算能力;2) 虚拟化:云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置;3) 高可靠性:“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性;4) 通用性:云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行;5) 高可扩展性:“云”的规模可以动态伸缩,满足应用和用户规模增长的需要;6) 按需服务:“云”是一个庞大的资源池,你按需购买;7) 廉价性:由于 “云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势。
3 分布式存储在云环境下的应用场景
3.1 分布式存储系统架构
云和AI时代,数据迎来海量增长。高速5G通信、高清8K视频、自动驾驶和大数据分析等越来越多的新兴应用正逐步推高对数据存储的需求。企业不断扩展业务边界,整合云场景存储资源,以更低TCO(Total Cost of Ownership) 、更灵活的弹性部署应对非结构化数据快速增长。在这样的背景下,分布式存储架构成为了首选。各存储厂家纷纷推出自己的分布式存储产品,通过存储系统软件将每个硬件节点的本地存储资源组织起来,按需为上层应用提供文件存储、对象存储、大数据存储和块存储服务。实现海量数据储存更经济、多样性数据使用更高效、在线业务承载更可靠。其系统架构如图1。
目前大多分布式存储产品都会提供基于三层的分布式存储架构,会融合分布式文件、对象、大数据和块多个服务形态,支持文件、对象、大数据服务部署在一个集群,并统一管理,整体功能架构由存储接口层、存储服务层、存储引擎层和存储管理组成,如图2所示,此外还会提供一些杀毒、异构开源存储管理的特色功能。
分布式存储系统具有海量数据储存更经济、多样性数据使用更高效、在线业务承载更可靠等优势,已被广泛应用于如下场景:
1) HPC(High Performance Computing) 场景:在气象、基因、石油等HPC高性能计算场景,应用对分布式存储的性能要求高。文件服务提供的DPC可减少跨网络传输延迟,并提供标准接口给应用,在不修改应用的情况下提供比标准协议更高的性能。
2) 内容存储、备份归档场景:高性能、高可靠的企业级对象存储资源池可满足互联网数据、在线音频/视频、企业网盘等实时在线业务吞吐量大、热点数据频繁访问的业务需求,以及长期保存、在线访问需求。例如应用于金融电子票据影像、双录(录音/录像) ,医疗影像、政企电子文档和车联网场景存储、备份或归档。
3) 大数据分析场景:大数据计算存储分离解决方案可整合传统数据孤岛,构建统一的企业大数据资源池,结合大比例EC、存储和计算分离按需部署和扩容等企业级能力,实现大数据业务效率提升及TCO降低。例如应用于金融大数据分析、运营商日志留存大数据和政务大数据等。
4) 云/虚拟化场景:为云和虚拟化提供按需获取、弹性扩展的海量存储资源池,基于通用服务器大幅提升存储资源的部署、扩展和运维效率。例如应用于金融互联网渠道接入云、开发测试云,运营商BOM域业务云化、B2B云资源池、政务云等。
5) 关键业务数据库场景:通过分布式Active-Active双活、稳定低时延等企业级能力,保障OLAP或OLTP类关键业务数据库、数据仓库高效稳定运行。
3.2 云环境下分布式存储的应用场景
用户访问层是基于云存储开发的应用程序的入口,授权用户可以通过标准的公共应用接口登录云存储系统,享受云存储服务。云存储产品服务商不同,云存储提供的访问类型和访问手段也不同。
数据服务层是利用云存储资源进行应用开发的关键部分,云存储平台通过数据服务层为用户提供统一的协议和编程接口,进行应用程序的开发。应用接口层是云存储最灵活多变的部分。不同的云存储运营机构可以根据实际业务类型开发不同的应用服务接口,提供不同的应用服务。
数据管理层是云存储最为核心的部分,也是最复杂的部分。数据管理层采用集群技术、分布式存储技术,实现多存储设备之间的协同工作,对外提供高可用性、可扩展性的服务,同时还负责数据加密、备份、容灾以及必要的计费等任务。
数据存储层是云存储最基础的部分,由不同类型的存储设备和网络设备组成。数据存储层实现海量数据的统一管理、存储设备管理、状态监控等。存储层位于云存储的最下层,它是云存储中最基础的部分。存储设备的选择多种多样各种存储设备都可以用来构建这一层。云存储中的存储设备通常数量众多且分布在多个不同位置,彼此之间通过互联网或者光纤通道等把各种网络连接在一起。分布在存储设备之上的是一个统一的存储硬件设备管理系统,通过这一层可以实现存储设备的逻辑虚拟化管理、多链路冗余管理,以及硬件设备的状态监控和故障维护。
在行内分布式存储主要以分布式SAN为虚拟化资源池提供服务,以分布式文件为媒体/视频监控/HPC提供服务、以分布式对象为备份归档提供服务,以分布式数据库为大数据服务。
3.2.1 为云平台底座提供基础存储资源
云环境下,分布式存储系统能够实现计算资源和存储资源的单独横向扩展,计算资源不足时直接扩容计算节点,存储空间不足时只需扩容存储节点,极大地节省硬件资源降低成本。对于云平台中部署的轻量级企业关键应用程序,可选用中等性能的磁盘类型,满足性能要求不高但是要求具有丰富的企业级特性场景,例如普通数据库、应用VM、中间件VM等数据存储需求。通过云硬盘的形式挂载给虚拟机或裸金属服务器使用,满足企业用户应用数据的存储需求。
分布式存储在云平台提供基础存储服务,通过弹性云硬盘的形式提供给应用虚拟机和裸金属使用,在应用对性能要求不高的情况下,通常在初期用于渠道类应用、各类外围应用、灰度发布应用、容器技术应用、桌面以及开发测试环境,采用分布式存储做云平台底座存储设备,提供弹性扩展、存算分离、存储类型可选、EC纠删可靠和高并发等便捷场景服务的作为结合点。
为了应对互联网金融带来的业务浪涌,除核心账务系统采用集中式高端全闪存储外,外围业务以及海量非结构化数据业务场景已经全面向分布式存储过渡。凭借分布式存储的弹性资源分配能力,金融行业的新业务开发和部署效率相比传统存储都有所提升和加速,突发资源获取周期从过去的天级缩短到小时级,资源池化后,存储效率得到显著提升,运维费用也不断降低,整体TCO实现有效压降。
银行的七大类业务系统(账务处理类、业务处理类、渠道服务类、服务支撑类、外联三方类、数据服务类、办公管理类),在与金融云平台和分布式存储架构功能特点的结合中,我们对各类系统的资源需求变动、业务迭代速度、数据一致性要求、并发要求进行分析,得出云平台中适用的业务系统类型,如表1所示,进而为选择和配置云平台中各区域分布式存储提供依据。
3.2.2 为云平台提供分布式数据库存储资源
在云计算平台中,传统数据库以Oracle、DB2或者MySql的关系型数据库为主,但是当单表数据量爆炸或者单个数据库无法承受高强度I/O时,集中式数据库是无法解决性能和数据处理瓶颈问题的,难以应对应用层的高并发数据访问。业务核心数据库使用场景需要支持应用高峰期的密集访问,要求磁盘具有持续稳定的高性能和低时延,通过选用超高性能的磁盘类型,可以实现超强性能与超高可靠性的集合,满足关系型数据库等数据密集型场景下低时延、高I/O性能密度的严苛性能要求。
在基于MySQL的分布式数据库中,分表支持动态漂移,随着表的热度和大小进行动态的扩容和伸缩,保证资源分配最优化;而分布式存储节点可以无限水平扩展,从而提供可动态无限扩展的存储容量;性能随节点扩展而线性增长,满足云计算平台对容量和性能的需求,具备云服务所有的弹性、敏捷、按需和轻运维特性。因此,采用分布式存储优化后用于数据库的数据存储,提高性能的同时确保了数据的安全性。
在金融及其他领域,基于分布式存储加速多域融合,实现降本增效。通过对非关键业务进行云化部署,并使用分布式存储构建统一的云资源池,实现多域融合。云资源池替换传统存储的烟囱化建设,大幅提升了存储资源的利用率,业务上线时间也大幅降低,为金融行业降本节支提供了很大助力。
4 分布式存储在云环境下的部署
国内分布式存储相对于集中式存储而言是一种分布式技术,是在规格维度上按照扩展性进行分类的,国际上则是按照架构将存储分为企业级存储和软件定义存储,不论企业选择存储产品的资本与管理支出模式,也不论存储厂商是否能够真正做到分布式存储的软、硬件解耦,本文暂定已经完成了对比集中式存储的全面而细致的选型评估过程,结合企业自身情况对分布式存储能够物善其用的前提下进行下面的实施与部署,对冷热数据分层、数据湖建设需求以及高可用性要求能够充分考虑,如果多个AZ在百TB级别以上,建议进行较为合理的规划。
在云基础架构中,分布式存储有两种部署形态,融合部署和分离部署,融合部署多用于云平台管理区域服务的使用,分布式存储多用于用户业务使用。根据交换机组网形态分多种组网形态和部署方案,如存储节点前后端共享网络和前后端独立网络部署方案,以前后端独立部署为例,按照前后端网口的类型又可分为10GE、25GE、100GE、IB网络四种类型(10GE前端+10GE后端、25GE前端+25GE后端等) ,本文以10GE前端+10GE后端独立组网为例,阐述云平台内分布式存储系统的部署方式。
4.1 组网规划
规划云平台各网络平面时,对分布式存储业务网络平面、存储网络平面和管理网络平面进行合理规划,如图4和图5所示,针对各个网络平面进行规划设计。同时,针对物理硬件设备进行角色梳理和机柜位置合理规划,管理节点(管理分布式事务进程的服务器,负责块存储服务的告警、监控、日志、配置等操作维护功能) 、存储节点(提供存储资源的服务器) 、计算节点(运行应用系统的服务器) ,根据不通功能角色规划不同网络平面地址。
1) 业务网络(iSCSI网络) :用于计算节点和VBS之间通过iSCSI协议进行通信。
2) BMC/管理网络:BMC网络,用于接入节点Mgmt接口,提供远程硬件设备带外管理功能。
3) 存储网络:用于VBS和OSD间或者OSD和OSD间数据通信。
4) 容灾复制网络:用于主端存储系统和从端存储系统间网络的数据传输。
4.2 节点网口规划
根据组网规划,分别对计算节点、存储节点的网口进行规划,保持同一类型的节点网口位置和功能一致,方便实施和后续运维。计算节点按实际需要进行环境规划各计算节点接口的用途和上行链路。对存储节点的规划,可根据服务器物理接口,如图6所示:
规划各存储节点接口的用途和上行链路,以表2为例建立计算和存储节点的节点总网络规划。
4.3 硬件安装和软件部署
根据规划的接口和连线规则,进行物理设备的加电、连线、网络配置和测试,物理硬件初始化完成后进行分布式软件系统的安装部署,期间硬件安装的如图7所示。
根据分布式存储软件的安装指南,进行分布式存储系统的安装,以华为OceanStor Pacific分布式存储在华为云环境下的部署为例,主要安装流程如图8所示,主要流程如下。
1)分布式存储系统安装前准备
检查交换机是否已经根据网络规划配置完成,并准备相关的软件包、安装工具和安装指导文档。
2)准备管理虚拟机
在对接云平台时,通过Web-UI方式在云平台虚拟化底座中安装管理节点虚拟机,以便后续为管理节点安装管理软件。
3) 配置Fusionstorage-Block角色
通过云平台底座虚拟化系统的安装部署界面,为计算节点配置Fusionstorage-Block角色,并保证网络通信正常。
4) 配置各节点BMC管理面IP并检查存储节点各检查项指标
配置各节点BMC管理面IP,通过该远程管理系统可以对硬件进行高可靠的监测和管理。同时,安装前对存储节点服务器的固件版本、操作系统版本、操作系统是否安全加固、系统盘缓存策略、JBOD功能、SMMU功能、设备固件驱动版本以及查硬盘背板的兼容性。
5) 配置节点管理网络
按照网络规划,对存储节点进行管理节点网口IP配置。
6)安装分布式存储软件
按照安装流程,进行分布式存储软件部署(安装管理节点、增加存储节点、配置存储网络、安装存储节点、创建控制集群) 。
根据技术能力和实际场景可部署GFS、Ceph等开源分布式存储软件,以Hadoop集群为例,由云平台进行统一纳管,则在基础配置之后(配置jdk环境、配置集群环境变量、关闭防火墙、修改主机名、master和slave的IP地址、配置SSH免密登录),进入HDFS集群配置(安装master和slave的hadoop文件、配置core-site文件调优、集群环境变量、并启动集群和web管理),完成与云平台的对接。对于存量的Hadoop/HDFS集群,而且存有多种格式数据量大的情况,可考虑利用类似DI on Hadoop的迁云工具进行对接。
7) 配置交换机流控并加载存储License
当存储网络使用RoCE组网时需要配置交换机流控,对后端网络进行流量阈值监控,同时加载分布式存储授权license,并登录云平台管理面使用分布式存储提供的弹性云硬盘服务。
4.4 分布式存储测试与上线
在分布式存储部署完成之后,通过设备常规检验测试、兼容性测试、功能测试、性能测试、稳定性和可靠性测试,以及运维管理功能等非功能方面的测试,全面验证分布式存储各方面特性,之后在云管平台中实现对基础设施中存储资源进行纳管与上线,各企业都有成熟的流程规范,在此不再赘述。
5 总结
本文从云和分布式存储各自特点出发,从分布式存储架构特点引入云环境下提供分布式存储的使用场景和银行业中适合承载的业务类型。后续对分布式存储在云环境下的基本部署进行描述,希望能够加深云环境中分布式存储应用管理的理解,充分利用分布式存储实现块存储、文件存储、对象存储的方式和特点,补充集中式企业存储的短板,针对PB级别海量非结构化数据等典型场景,体现存调优势,为云环境提供有力资源保障的同时,分布式架构为运维能力和技术水平提出了更高的要求标准和规范。
物联网、人工智能、区块链等新技术的不断产生和迭代,会给云计算带来颠覆性的改变,数字资产的安全保障,态势感知等技术发展都是应运而生的必然产物。在元宇宙的时代,万物皆有虚拟化身,而云计算作为数字化的基础设施,势必准备好为元宇宙提供高性价比、高可靠、高兼容性、高扩展性、高运算速度的特性,最终实现打破时间和空间的界限,实现社交、游戏、办公等场景的虚拟和现实的融合。