分布式海量云存储平台的技术创新及应用

简介:

随着大数据、云计算、物联网等新技术的发展,电信、互联网、政企等行业应用日新月异,数据呈爆炸式增长并成为战略性资源。据思科VNI预测,全球数据量每年约30%的速度递增,2020年达到惊人的40ZB。

传统存储面临的挑战

面对海量数据,传统存储面临诸多挑战,主要体现在以下方面。

成本高:传统存储硬件使用专有设备,通用性差,设备投资加上后期维护、升级扩容的成本非常高。

性能低:单节点I/O性能瓶颈无法逾越,容量和性能都不易扩展,难以支撑海量数据的高并发低时延场景。

可扩展性差:无法实现快速部署和弹性扩展。

此外,信息安全问题触及到国家和企业的安全命脉,信息安全已经上升为国家战略,IT系统核心技术自主研发的需求十分迫切。

中兴海量云存储平台及其优势

针对传统存储和业界现有存储技术的短板,依托中兴通讯30多年的技术积累,我们研制了分布式海量云存储平台ZXDFS,满足大数据时代的数据存储需求和业务发展需要。总体架构如图1所示,在架构上分为三个层次:硬件节点层、服务端和客户端,其中,服务端和客户端属于软件平台层。

图1 海量云存储平台架构图

中兴ZXDFS在架构、功能和性能等方面进行了大量创新,形成了独特的优势。

去中心化设计,大容量高可靠架构

元数据是分布式文件系统的核心,可靠性和一致性是基本要求,性能和容量是核心的竞争力。业界大部分分布式文件系统都要配置单独的元数据服务器,这样就造成了元数据的瓶颈和可支持文件数量的限制。如图2所示,ZXDFS采用全Active的Share nothing方式去中心化设计,元数据和数据分布在各个节点,每个节点都是元数据服务器同时也是数据服务器。访问文件数据时首先通过一致性Hash算法找到文件所归属的元数据服务器,然后通过元数据服务器获取文件的数据分布情况,再去访问数据块所在的节点完成数据操作。

这样,ZXDFS就提供了灵活强大的扩展能力,单域可支持256个节点,单节点可支持100亿文件。同时有效地消除了元数据访问热点,避免了系统资源争用。

在出现节点故障时,系统能够自动识别故障节点,自动恢复故障节点涉及的数据和元数据,使得单节点的故障不会影响到系统整体的对外服务,完全不影响业务的连续性。

图2 高可靠高扩展的元数据架构

横向伸缩,在线动态扩容

云存储作为后端的数据集中存储平台,必须具备动态伸缩的能力,这样才能满足前端应用系统不断扩展对存储伸缩的需求。ZXDFS采用分域架构实现磁盘/节点/域三个层级的容量和性能的横向(SCALE-OUT)线性扩展,克服单个节点元数据及数据服务造成的访问热点、性能瓶颈以及扩展性受限问题,提升系统整体IO并发性能。

采用全局统一命名空间保证每个存储服务节点具有相同的数据存储能力和系统管理能力,提供海量大并发的读写服务能力。ZXDFS的动态扩展能力体现在性能上的动态扩展和存储空间上的动态扩展两方面,并且这种动态扩展不影响前端应用系统的正常运行,也不增加整个存储云在管理、监控和使用上的复杂性。

高性能,高效数据冗余技术

ZXDFS可根据用户业务需求,自定义热点识别和热点迁移策略,实现冷、热数据在多级存储池之间的双向自动迁移。采用创新的分级收益算法,定期统计文件的访问收益,通过文件大小、文件平均访问间隔、文件访问次数以及文件访问字节数,计算出升级成本和收益的比值,对比值小于升级阈值的文件加入到升级队列中并进行排序。

迁移周期内,根据文件的历史访问收益以及当前访问收益计算文件分级收益,实现数据自动分级迁移。通过配置分级收益算法系数 和收益周期T,使得分级存储或缓存系统的一级存储池命中率保持在80%以上,一级存储池利用率保持在70%以下,内部数据迁移流量与外部数据读写流量比例不超过20%。

ZXDFS采用优化的删码算法和基于Intel CPU SSE指令集,减少CPU占用并大幅提升计算性能。通过无缝融合用户态NFS服务,简化了传统NFS访问模式中的VFS层和FUSE层,单次数据访问减少了两次用户态和内核态的切换开销,大幅提升了NFS接口数据读写效率。利用 DMA 引擎进行数据加速,减少了4次上下文切换所带来的内存拷贝和CPU开销,当传输大量视频数据时,使用该加速技术后性能提升非常显著。

ZXDFS云存储平台支持副本和EC两种数据冗余方式。副本模式下,分布式海量云存储平台以一定大小对文件进行切分并将切分的文件块以多个完全副本方式跨磁盘、跨节点存储。EC模式支持N+M<=16范围内任意的EC比例配置,支持磁盘和存储节点两个不同层次的EC编解码冗余颗粒度。两种冗余方式可根据不同应用场景下对存储可靠性、性能和成本的需要进行灵活配置。

创新的海量小文件存储优化技术

ZXDFS采用在元数据层聚合、数据存储层聚合技术,成功攻克海量小文件模型(LOSF)下存储空间利用率低及访问性能低下的痛点。典型的文件大小和分布模型下,应用本创新后IOPS性能比原来提升了4倍,数据存储空间利用率提升近2倍。

根据局部相关性原理,将业务上处在同一路径下的多个的逻辑文件进行聚合,减少文件句柄的占用,降低了磁盘的碎片化且提升空间利用率;同时针对海量小文件模型(LOSF)的数据和元数据采用创新的读写缓存优化技术,将原来产生大量耗时的文件打开、磁盘随机IO、元数据读取与加载等操作转换为对缓存中聚合后的文件数据和元数据的偏移操作,大幅提升了小文件访问效率以及磁盘空间利用率。

快速部署,维护便捷

支持一键式自动化批量安装、升级和巡检,大大缩短安装、升级、巡检周期,提升系统可维护性。支持磁盘故障数据自动快速重构恢复,不需人工干预,只需定期更换坏盘,大大降低磁盘维护工作量。

应用实践

中兴分布式海量云存储平台在全球各地承载着大量的电信及政企业务应用,包括中国电信、中国移动、中国联通、央视的IPTV CDN系统,以及视频监控、媒资存储、信令检测、彩信、WAP、139邮箱、云盘、统一存储资源池等,其中中国移动南方基地存储资源池达到13.6PB容量、存储上百亿文件,实现了大规模成熟商用。

总结

中兴分布式海量云存储平台使用通用X86架构硬件,具有大容量、高性能、高扩展性和易管理等方面的突出优势,为大数据时代的社会、经济、生活提供基础技术平台支撑,实现了无所不在的数据存储服务。

本文转自d1net(转载)

相关文章
|
11天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
2月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决了 Session 共享问题。其特性包括:API 及实现用于管理用户会话、以应用容器中性方式替换 HttpSession、简化集群会话支持、管理单个浏览器实例中的多个用户会话以及通过 headers 提供会话 ID 以使用 RESTful API。Spring Session 通过 SessionRepositoryFilter 实现,拦截请求并转换 request 和 response 对象,从而实现 Session 的创建与管理。
分布式session-SpringSession的应用
|
2月前
|
存储 NoSQL Java
分布式session-SpringSession的应用
Spring Session 提供了一种创建和管理 Servlet HttpSession 的方案,默认使用外置 Redis 存储 Session 数据,解决 Session 共享问题。其主要特性包括:提供 API 和实现来管理用户会话,以中立方式替换应用程序容器中的 HttpSession,简化集群会话支持,并在单个浏览器实例中管理多个用户会话。此外,Spring Session 允许通过 headers 提供会话 ID 以使用 RESTful API。结合 Spring Boot 使用时,可通过配置 Redis 依赖和支持缓存的依赖实现 Session 共享。
分布式session-SpringSession的应用
|
19天前
|
缓存 网络协议 API
分布式系统应用之服务发现!
分布式系统应用之服务发现!
|
2月前
|
人工智能 Kubernetes Cloud Native
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
|
2月前
|
存储 运维 应用服务中间件
阿里云分布式存储应用示例
通过阿里云EDAS,您可以轻松部署与管理微服务应用。创建应用时,使用`CreateApplication`接口基于模板生成新应用,并获得包含应用ID在内的成功响应。随后,利用`DeployApplication`接口将应用部署至云端,返回&quot;Success&quot;确认部署成功。当业务调整需下线应用时,调用`ReleaseApplication`接口释放资源。阿里云EDAS简化了应用全生命周期管理,提升了运维效率与可靠性。[相关链接]提供了详细的操作与返回参数说明。
|
2月前
|
Dubbo Java 应用服务中间件
分布式(基础)-RMI简单的应用
分布式(基础)-RMI简单的应用
|
3月前
|
数据库 C++ Ruby
为什么你应该选择分布式平台与微服务?
为什么你应该选择分布式平台与微服务?
|
3月前
|
机器学习/深度学习 分布式计算 PyTorch
大规模数据集管理:DataLoader在分布式环境中的应用
【8月更文第29天】随着大数据时代的到来,如何高效地处理和利用大规模数据集成为了许多领域面临的关键挑战之一。本文将探讨如何在分布式环境中使用`DataLoader`来优化大规模数据集的管理与加载过程,并通过具体的代码示例展示其实现方法。
106 1

热门文章

最新文章