一、前言
对象存储是一种无层次结构的数据存储方法,通常在云中使用。与其他数据存储方法不同,基于对象的存储不使用目录树。离散的数据单元(对象)存在于存储池中的同一级别。每个对象都有一个唯一的标识名称,客户端使用其来检索它。此外,每个对象都可能具有与其一起检索的元数据。
2006年, 美国Amazon公司发布AWS S3(Simple Storage Service)服务,正式将对象存储作为一项云存储服务,引入云计算领域。 UCloud优刻得则在发展过程中,也自研了对象存储服务US3, 以满足国内外客户的存储需求。
二、US3元数据服务的挑战
目前US3元数据服务支持了EB级存储规模,存储了超过千亿级别的文件索引。需要面临每日数十亿次索引访问, 文件上传请求,以及数亿次文件删除请求带来的索引更新压力, 同时客户大量的对象列表请求,也带来了极大的索引范围扫描挑战。
在之前的元数据服务架构中,UCloud优刻得采用了业内流行的MongoDB作为底层数据存储,同时辅以外部服务做数据路由、监控统计,很好地满足了客户数据存储需求。同时部署简单,设计上也有一定的可扩展性。但随着客户数量以及存储数据量的爆炸增长,此架构也遇到了一定的问题。
三、此前的US3元数据服务架构
US3元数据主要存储在MongoDB集群内,MongoDB集群则是链式结构,一个MongoDB集群由于写入量太大扛不住了,就在后面增加一个MongoDB集群,查询的时候接入集群将请求下发至DB-Gateway,DB-Gateway先将json数据转译成bson,然后根据Bucket对应的DB(可能有多个),从新MongoDB至老MongoDB依次查询数据。删除的时候则需要将发送请求发送至所有bucket涉及的MongoDB集群。
一定会有小伙伴问为什么不直接扩mongo分片?因为线上数据量大、服务压力大、客户需求高直接扩分片会有数据迁移,从而导致延迟,对线上服务的影响较大。
同时随着MongoDB存储的数据量越来越大, MongoDB的性能开始显得不足。而原先直接在MongoDB进行列表扫描的方式会极大地影响其读写性能,为了缓解MongoDB的压力,我们将列表服务分离出来,在外部同步MongoDB的数据,再对外提供服务。
列表服务对多个MongoDB进行同步,每加一个MongoDB集群就要加一个列表服务节点,查询的时候也是根据bucket对应的DB,同时发送至多个列表服务,然后再在接入层聚合。
由此我们总结了在元数据服务场景中,通常存在的一些痛点:
1、业务痛点:性能差
•链式架构,老MongoDB的写能力用不上,读会有放大。
•删除需要删除多个MongoDB数据,可能存在数据不一致,孤儿文档问题。
•列表服务同步数据有延迟,客户无法实时检索上传的文件。大量删除导致列表服务同步延迟飙升。
2、运维痛点:可扩展性差
•一个MongoDB顶不住就加一个MongoDB切,导致扩展同步繁琐、手动切换出错概率大。
3、运营痛点:成本高
•由于性能不够,需要更多的机器堆读写性能。列表服务由于分离出来,也需要额外的机器,导致元数据索引服务成本高昂。
四、新的US3元数据服务架构
我们简化了US3整个体系架构,主要将其分为了高兼容性的DB-Gateway服务、高可用的计算存储分离的分布式KV数据库-UKV以及高度定制化的RocksDB-URocksDB三部分,将元数据存储于UCloud优刻得自研的计算存储分离的UKV中,因此获得了更强大的容灾能力,更快的热点节点分裂、性能拓展能力,还有底层存储EC支持,异构存储等降低成本的潜力。
新架构带来了几个方面的提升:
•性能提升
元数据删除延迟降低、读放大降低。
•列表服务无延迟
解决了客户经常因为列表服务延迟而不能实时看到上传的数据的问题。(也不再有延迟告警问题)
•成本降低
元数据服务成本降低80%。
•运维更简单
计算节点容灾无数据迁移,无需提心吊胆。热点自动分裂,不再需要手动加节点扩容。
有几个关键产品(或环节)在这次优化中起到重要作用:
五、新架构的几个核心改变
1.DB-Gateway
DB-Gateway是一个无状态进程,它兼容老的元数据服务,同时具有底层UKV协议转换功能,Sharding路由功能,并且聚合了原先的列表服务功能,因此能够移除列表服务需要的机器。
DB-Gateway通过ConfigServer集群更新UKV的Sharding路由表,来将不同的请求打到不同的UKV节点上去。
2.UKV
UKV是UCloud优刻得自研的计算存储分离的分布式KV存储系统。其存储底座为分布式统一存储Manul,Manul是具备自动数据平衡、异构介质存储、EC存储等功能的高性能、高可用、分布式存储服务。
UKV提供了集群管理服务,快速备份等常规功能,还针对US3元数据服务设计了数据结构,使其在UCloud优刻得日常的业务场景下提供更优秀的性能。
UKV使用UCloud优刻得自研的、由开源RocksDB定制化的URocksDB作为计算节点,同时依托Manul,实现了主从热备,热点节点快速分裂等特色功能。
由于篇幅有限,对于UKV的架构设计以及特色功能不在此展开,敬请期待下一次的分享。
好文章,需要你的鼓励
OpenAI 本周为 ChatGPT 添加了 AI 图像生成功能,用户可直接在对话中创建图像。由于使用量激增,CEO Sam Altman 表示公司的 GPU "正在融化",不得不临时限制使用频率。新功能支持工作相关图像创建,如信息图表等,但在图像编辑精确度等方面仍存在限制。值得注意的是,大量用户正在使用该功能创作吉卜力动画风格的图像。
Synopsys 近期推出了一系列基于 AMD 最新芯片的硬件辅助验证和虚拟原型设计工具,包括 HAPS-200 原型系统和 ZeBu-200 仿真系统,以及面向 Arm 硬件的 Virtualizer 原生执行套件。这些创新工具显著提升了芯片设计和软件开发的效率,有助于加快产品上市速度,满足当前 AI 时代下快速迭代的需求。
人工智能正在深刻改变企业客户关系管理 (CRM) 的方方面面。从销售自动化、营销内容生成到客服智能化,AI不仅提升了运营效率,还带来了全新的服务模式。特别是自主代理AI (Agentic AI) 的出现,有望在多渠道无缝接管客户服务职能,开创CRM发展新纪元。
数据孤岛长期困扰着组织,影响着人工智能的可靠性。它们导致信息分散、模型训练不完整、洞察力不一致。解决方案包括实施强大的数据治理、促进跨部门协作、采用现代数据集成技术等。克服数据孤岛对于充分发挥AI潜力至关重要。