「星技术」X3DS海量小对象迁移之道
随着云、大数据、移动互联、社交网络的快速发展,企业信息化的非结构化数据呈现爆炸式的增长。然而,面临数据激增,原有存储在海量小文件、多地之间的数据共享、多级文件夹层级访问、性能、扩展性、并发性等限制都形成制约。选择更为合适的存储技术路线已成为企业数字化化转型基础设施建设中不可或缺的一环。
客户在选用开源ceph后,往往会遇到以下几个问题:
运维不方便,dashboard只有简单的管理功能。
扩容后数据重平衡问题。
无CRC防止静默错误。
海量小文件性能差。
不支持数据流动。
IDC《China SDS Market Overview》报告显示,XSKY 已经连续 3 年,名列中国对象存储市场第一,拥有大量的客户案例和完善的企业级对象存储构建经验以及领先的技术特性。
XEOS是一种更简单、更灵活的数据存储解决方案,可为企业信息化建设提供经济实惠、综合全面的底层基础设施。其可扩展的性能,先进的数据存储和管理功能,有效的消除了传统文件存储各种限制的同时,满足跨地域按需访问需求,使企业可以更安全、更轻松的管理海量非结构化数据。
在使用对象存储过程中,客户往往会往一个对象桶内写入大量小文件,当需要对海量非结构化数据进行迁移时,迁移软件通用方法是使用S3 API进行对接,通过list_objects接口获取所有对象KEY,再迁移到目标桶中。list_objects接口默认一次只获取1000条对象key,上亿对象需要消耗大量时间,且需要大量内存保存对象KEY、元数据。迁移进程多并发情况下,亿级小文件一次迁移需要几天时间甚至十几天。
总结迁移主要问题:
1、获取对象KEY缓慢。
2、对象KEY及元数据占用大量内存。亿级小文件需要100G+内存。
3、数据迁移,只能单节点多线程,迁移时间长。
X3DS如何解决对象海量小文件迁移
问题1:对象KEY list缓慢(默认一次请求list 1000个对象)。
解决方案:元数据管理中导出桶内所对象KEY。
问题2:对象KEY及元数据占用大量内存。亿级小文件需要100G+内存。
解决方案:对导出的所有对象KEY进行分片,每10万(可配置)对象为一个分片,每个分片使用一个迁移进程,节省大量内存。
问题3:数据迁移,只能单节点多线程,迁移时间长。
解决方案:问题1与问题2解决后,X3DS可为每个迁移节点分配一个分片或多个分片,实现多节点多进程并发迁移。
以下为某项目实测结果,都使用导出桶内全部KEY方式(未直接使用s3 api)。通过性能优化后,在线迁移9千万+对象小文件只需要7小时,增量迁移缩短在2~3小时,大大减少业务停机时间。
优化前迁移性能
9千万+小文件在优化前一次增量需要19.5小时。
I1207 17:59:42.864459 1 controller/migration_controller.go:408] Running migration imagesupervisoross2017
I1208 13:29:17.722477 1 migration/create.go:338] finished to transfer data for task(imagesupervisoross2017)
内存消耗9G,CPU消耗620%(注:单核是100%)。
优化后迁移性能
9千万+小文件优化后一次增量只需要2小时42分钟。
I1211 18:34:01.923888 1 controller/migration_controller.go:408] Running migration imagesupervisoross2017
I1211 21:16:21.262240 1 migration/create.go:352] finished to transfer data for task(imagesupervisoross2017)
内存消耗7G,CPU消耗440%。
以上是X3DS对海量对象小文件迁移的解决方案。通过不断性能优化,助力客户快速实现生产数据在不同集群之间流动,且几乎不影响业务使用。
X3DS秉承XSKY核心理念MAKE DATA ALIVE,不断完善迁移、备份、归档、复制功能,帮助客户管理好数据,让数据发挥出最大价值。
X3DS产品简介
X3DS(XSKY 3D data management System)是XSKY提供的立体数据管理系统。X3DS基于微服务架构,具有极大的弹性和扩展性。X3DS可提供非结构化数据的DR(Disaster Recovery,灾难恢复),DP(Data Protection,数据保护)和DM(Data Migration,数据迁移)这三大管理能力,是一个立体的三维数据管理平台。具体功能如下:
X3DS提供管理运维平台。方便客户统一管理及运维,减少学习运维成本。
往期推荐