APP下载

基于开源Ceph的自研分布式存储架构及关键技术分析

2024-05-07汪秀兵

中国新通信 2024年3期
关键词:高性能

汪秀兵

摘要:随着大数据、云计算、物联网技术以及短视频直播技术的迅速发展,传统的集中式存储系统存在数据规模有限、存储和处理能力瓶颈、单点故障等问题,已经难以满足现阶段的业务需求。基于此,本文从非结构化数据增长、容器化技术发展、异地多活灾备等业务需求对存储技术的新要求进行分析,总结了自研存储待解决的三个问题,即技术选型、技术路线、架构设计,探究了自研存储部署架构、多集群管理、小文件合并等关键技术问题,并提出相应的解决思路。

关键词:分布式存储;Ceph;高可用;高性能

一、业务需求对存储技术的新要求

(一)非结构化数据高速增长及对象存储的兴起

随着大数据、云计算和物联网技术的迅速发展,手机短视频、基于摄像头的视频监控业务也随之迅猛发展,带来流量爆炸式增长,企业也面临着加密越来越多的大规模、非结构化的数据存储、敏感信息和隐私数据以及AI识别等处理需求。由于传统的集中式存储系统存在数据规模有限、存储和处理能力瓶颈、单点故障等问题,已经难以满足现阶段的业务需求。为了更好地满足大规模数据存储和处理的需求,从成本考虑,分布式存储系统的软硬件投资成本相比公有云具有明显优势;从国产化考虑,分布式存储系统自主可控,适配龙芯CPU、麒麟V10和统信UOS操作系统,能够根据业务的个性化需求定制需求支撑。分布式存储系统将数据分散存储在多个节点上,通过网络进行通信和协作,实现高可用性、高扩展性和高性能的存储和处理。目前,对自研分布式存储系统的要求进一步提高,应当具备数据迅速增长、多样化存储类型支持、自主可控及成本效益考量等方面的能力,并能够根据具体需求进行设计和优化,以满足企业或组织特定的数据存储和处理需求。

(二)存储虚拟化和容器化的发展

存储虚拟化技术和容器化技术的发展使得分布式存储系统能够更高效地在虚拟化环境或容器化环境中部署和管理。容器化有两个重点,一是控制平面,能够调度服务器资源来运行企业不同类型的应用;二是数据平台,无状态应用的数据要想落到统一存储上,开源Ceph提供的块存储是很好的解决方案,为企业提供了低成本、高可用性和可扩展性,并已经在业界取得了广泛应用。

(三)异地多活灾备和数据复制新要求

随着企业全球化业务的增长,异地多活灾备和数据复制成为迫切需求。分布式存储系统能够跨多个地理位置复制数据,以增加数据的可用性和容灾能力。对于异地多活,集群在不同的地理位置部署多个存储集群,通过复制数据和具有自动故障转移功能的Monitor来实现数据的跨地理位置访问与同步,即使一个地点的存储集群发生故障,其他地点的集群仍然可以提供服务。此外,集群需要提供灵活的数据迁移功能,能够在存储集群中的不同存储池或不同对象存储设备之间进行数据复制和搬迁。

二、自研存储需要解决的问题

(一)自研存储技术选型

分布式存储主要有两种方法一是开源路线,二是自研路线。国内分布式存储SDS产品以开源路线为主,Ceph占绝对多数,其他的有Gluster和BeeGFS。随着大文件、小文件、视频、文本等不同场景的代码沉淀逐渐增加,自研程度持续提升,以满足自主可控的诉求。巨头企业华为、浪潮、新华三、曙光参考Ceph架构以及初创企业星辰天合、杉岩SDS系列产品均基于开源Ceph的二次开发。

(二)自研存储技术路线

开源Ceph是一个高性能、可靠性、可扩展性、统一的、分布式文件系统,能够提供对象存储、块存储和文件存储。因此提出基于开源Ceph自研存储“三步走”路线如下:

(1)掌握开源系统实现系统稳定运行

研发数据模块,实现集群中数据复制、恢复、回填、再均衡;研发元数据模块,实现集群状态维护、存储位置映射、集群数据一致性;研发高速存储缓存模块,实现数据高速读写;研发面向客户端的开放API及SDK。

(2)集群高性能/高可用深度改造

研发软硬件使用情况、带宽、网络质量、存储使用量等的多维度数据采集子系统;根据业务场景配置、监控数据、调度算法,研发统一智能调度子系统;研发性能、容量趋势的多维度监控模块、短信、邮件、企业微信告警通知模块、日志统一管理模块。

(3)多应用场景支撑

研发丰富的API,支持不同场景下数据存储的管理和分析要求;研发数据分级存储,基于策略控制实现冷热数据分介质存储;研发对象網关负载均衡功能,提供轮询、权重等多种负载均衡策略。

(三)自研存储架构设计

为了实现分布式存储自主可控,应当避免采购的存储服务源码少或不全。厂商自研产品存在知识产权风险,针对云盘用户小文件占比高,摄像头音视频数据量大,但是CDN大文件热数据分发等不同类型的需求能按需定制,并支持高性能需求,如百亿级海量文件存储、SSD加速、低成本存储归档、异步复制容灾、秒级快照、数据安全等。本文研究内容如下:

(1)存储引擎子系统

该系统由数据存储、元数据管理、API&SDK几部分组成,核心目标是实现分布式、数据可靠性保护(副本或者纠删码)、分布式一致性和故障检测与恢复,以此为上层提供统一高可靠的存储引擎。

(2)数据采集子系统研究

收集研发软硬件使用情况、带宽、网络质量、存储使用量等指标数据,辅助用户快速直观地了解集群、节点池、硬盘池、Pool信息、存储卷以及主机和硬盘的运行状态,以此为智能调度提供决策数据来源。

(3)智能调度子系统

根据业务场景配置、监控数据、调度算法,研发统一智能调度子系统,对分布式核心存储集群进行实时监控,通过灵活配置约束条件以及大规模计算的算法优势,为不同业务场景提供高效的智能调度服务。

(4)运维管理子系统

为了使得硬件设备、网络资产、存储服务在成本、稳定性和运行效率上达成理想状态,建立存储运维管理子系统,包括设备管理,网络管理、智能巡检和事件管理,让整体软硬件系统实现全生命周期安全可靠、稳定高效地运行。

(5)集群协同子系统

研发数据迁移工具,实现第三方云存储、集群间等各类数据在线迁移。

(6)存储管理子系统

建设统一的存储管理门户,面向运维、运营等人员,提供软硬件资源的在线管理。资源申请的多节点审批、在线扩缩容、自动化部署,以实现多集群的独立部署、门户统一纳管。

三、自研存储关键技术研究

(一)软硬件网络部署架构分析

1.存储节点架构及介质选型

硬盘介质通常有HDD、SATA SSD和nvme SSD,SATA SSD的读写速度比HDD快,而NVMe的读写速度又比SATA SSD快,SATA SSD比普通HDD快5倍,其成本是HDD的1.5倍,不同类型的设备性能与成本不同,通常有以下4种模式可供选择。

(1)分层存储:缓存节点+存储节点

通过cache tier技术将ssd设备编排在一起,承接用户的读写请求,先写缓存,达到缓存阈值后,再转存到hdd设备中去。

(2)主副本分优先级:主本在SSD,其余副本在HDD

通过osd primary-affinity特性。通过降低Ceph OSD的主要亲和力值,实现控制SSD设备为主OSD、HDD设备为Replica OSD,以此实现读写数据流程的转变。

(3)存储池分优先级

当同一个集群需要应对不同的需求时,通常对存储池进行分级,SSD池和HDD池在RGW中;Index池存储的元数据对读写速度要求高,可以使用SSD池;Data池是存客户端的数据,可以使用HDD池。

(4)OSD组件分优先级

OSD分为WAL、DB、BLOCK三个部分,其中WAL存读写过程的日志,DB存OSD的Omap等数据,BLOCK存实际数据。WAL、DB的速度对于OSD的性能影响至关重要,所以通常使用SSD设备,以提高读写能力。

在集群建设规划时,存储节点架构应当根据不同需求分为三种场景,即成本优先、吞吐量优先、IOPS优先,再对照四种模式进行组合,调整相应的OSD硬盘介质、缓存节点以及存储节点的配置比例。

2.存储集群网络设备选型

在Ceph存储的设备选型方面,应该根据实际业务需求和数据量来选择合适的网卡和交换机,以确保数据的稳定性、可靠性和性能。同时,还应该注意网络安全和管理方面的问题,采取相应的措施以确保网络安全可靠。以下是关于业务网络、存储网络和管理网络的说明。

(1)业务网络。对于业务网络,生产环境建议选择2个万兆网卡,用于连接前端和后端的集群网络。使用万兆网卡可以确保足够的带宽和低延迟,以支持高并发访问和数据传输。如果需要支持更大的数据流量或者需要更高的性能,则可以考虑使用25G万兆网卡。

(2)存储网络。存储网络建议使用独立的网卡和交换机来连接Ceph集群和服务器之间的数据传输,以避免与其他网络流量的竞争,并确保数据的稳定性和可靠性。如果需要支持更大的数据流量或者需要更高的性能,可以考虑使用更高级别的交换机和网卡,或者使用分布式存储系统来扩展Ceph集群的容量和性能。

(3)管理网络。对于管理网络,建议使用独立的网卡和交换机来连接Ceph集群和服务器之间的管理流量,不仅可以确保Ceph集群和服务器之间的通信安全可靠,还能够避免与其他网络流量的竞争。此外,为了方便管理和监控Ceph集群,可以使用开源工具,如Ansible、SaltStack等来自动化管理配置和部署Ceph集群。

(二)多集群存储管理及监控告警设计

通过设计一个集中管理和监控多个存储集群的系统,管理员可以更好地管理存储环境,从而提高存储系统的可靠性、性能和效率。多集群存储管理及监控告警系统的设计需要结合多集群管理、存储监控、告警管理、可视化界面和自动化运维等方面,以满足管理员对存储集群的管理和监控需求。

1.多集群管理

建立一个集中的管理控制平台,该平台可以管理和监控多个存储集群,并提供集群的注册、配置、扩展和删除等功能,使得集群管理变得更加便捷和灵活。

2.存储监控

为每个集群配置监控代理,用于定期收集和报告集群的存储指标,如可用空间、IOPS、吞吐量等。监控代理可以将监控数据发送到存储监控系统。存储监控系统则可以实时监控存储集群的状态,分析存储的性能和健康状况,并提供仪表盘和报告。

3.告警管理

存储监控系统应该提供灵活的告警规则配置和管理功能,管理人员可以设定阈值,当存储集群的某个指标超过或低于设定的阈值时,系统会触发告警。告警可以通过邮件、短信或即时通知等方式发送给管理员,以便及时采取措施解决问题。

4.可视化界面

为了方便管理员查看和操作,技术人员可以设计一个直观的图形界面,显示存储集群的拓扑结构和详细信息,以便管理员可以通过界面来查看存储集群的健康状况、性能指标和告警信息。此外,界面还可以提供存储资源的使用情况和预测,帮助管理员进行容量规划和优化。

5.自动化运维

在设计系统时,技术人员可以考虑引入自动化运维功能,如自动扩展、负载均衡和故障转移等,以此最大程度地减少管理员的手动操作,提高存储管理的效率和稳定性。

(三)基于元數据的小文件合并读写分析

通过基于元数据的小文件合并读写,可以将多个小文件合并为一个更大的文件,以此减少磁盘索引的开销,并且可以对这个大文件进行更高效地读写操作。这种技术可以通过以下步骤来实现:

1.文件合并

将多个小文件按照一定的规则(例如文件名的前缀、后缀或文件夹结构等)进行合并,生成一个较大的文件。合并后的文件可以是一个普通的二进制文件,也可以是一种特定的格式,例如压缩文件或归档文件。

2.元数据管理

为了能够正确地读取和修改合并后的文件,需要维护一些额外的元数据信息。元数据包括记录文件名、起始位置以及每个小文件的偏移量和长度等信息,可以存储在文件的头部、文件路径、独立KV数据库,并在读写操作时被使用。

3.读写操作

当需要读取或修改某个小文件时,可以通过查找元数据信息,确定文件在合并后的文件中的位置。读取操作可以根据元数据信息来定位文件的起始位置,并读取相应的数据。修改操作则可以通过读取相应的数据,并更新后再写回合并后的文件。使用基于元数据的小文件合并读写可以有效地减少小文件带来的存储和管理开销,并提高存储效率和读写性能。

四、结束语

本文从业务需求、技术选型、技术架构、关键技术等四个方面进行阐述,提出企业自研存储“三步走”路线,首先,基于开源Ceph搭建的分布式存储集群通过对部署架构设计、参数调优,使得企业快速构建实现数据在不同的机架、主机、磁盘的数据均衡分布存储,同时兼顾多级故障域及海量数据的均衡分布的分布式存储能力;其次,通过使用多集群管理、监控告警、自动化运维、多副本以及EC等特性,实现集群的高可用性以及数据的高可靠性,兼顾低成本与高性能,并实现数据容灾能力;最后,针对多种场景需求,例如小文件IOPS要求高进行元数据改造、大文件带宽要求高进行增加op线程、EC模式等方式优化,实现开源Ceph存储的集群稳定可控、代码可改以及功能可扩展。

猜你喜欢

高性能
倍耐力P Zero Elect原配超高性能极氪001FR
高性能3000N针栓式推力室设计
高性能海工结构钢API2W的研发
一种高性能CMOS温度传感器
基于高性能再生剂的大比例RAP厂拌热再生技术
高性能轻型国V柴油机的开发
一款高性能BGO探测器的研发
高性能砼在桥梁中的应用
精美绝伦,那些超高性能的飞驰艺术品
SATA推出全新高性能喷枪SATAjet 5000 B