在今年9月份杭州云栖大会的“下一代云存储技术与最佳实践”专场,阿里云智能存储产品资深技术专家罗庆超分享了 “对象存储海量数据管理和应用最佳实践” 议题,重点介绍对象存储 OSS 的架构原理、数据管理、最佳实践等精彩内容。
1 企业数据存储的挑战和需求
数据是企业的生命线,企业的数据存储也普遍面临着3个挑战:
• 数据快速增长:根据IDC统计,全球数据量在2020年将高达40,000EB,人均5TB。
• 数据不丢不错:Gartner报告指出,经历灾难系统停运的公司有40%立即倒闭,剩下的33%在两年内破产。
• 法规遵从:根据行业合规要求,需要长期保留的数据越来越多、越来越严格,如金融双录需保存6个月、证券投资警示材料与录像需保存20年、会计档案需保存10~30年,且不可修改。
通过与大量企业的深入交流,罗庆超从中总结了 5 个企业数据存储的关键需求,如下图所示:
• 可靠性:指在硬盘、服务器、网络等故障情况下,以及火灾、地震、洪水等灾害时,可以有效防止数据丢失,阿里云OSS技术通过跨机机柜、机房、区域的数据冗余,实现了12个9的高可靠性。
• 可用性:指在服务器故障时、光线挖断时,可自动切换实现业务连续性,OSS通过容错设计,实现了99.995%的可用性。
• 安全合规:指数据访问的认证、授权、加密、以及行业法规遵从,OSS支持多项合规认证,比如KMS加密、WORM认证等。
• 自动扩容:能够自适应业务数据快速增长,避免出现存储空间被打爆,OSS通过业界领先的资源供应链管理、软件分布式弹性设计,实现百EB级空间、百万亿级对象的规模能力。
• 自动生命管理:支持冷热数据的管理,优化TCO,OSS提供标准、低频、归档的存储类型,并能够自动化迁移,优化存储使用成本。
2 对象存储技术介绍
2.1 OSS 技术演进
阿里云OSS实现上述业界领先的核心竞争力,并不是一蹴而就,而是通过长期技术积累实现,如下是技术演进图:
OSS随着飞天云操作系统发展而演进,它立项于2008年,和盘古一起起航;开发完成后,先在阿里巴巴集团内打磨,2011年正式在阿里云做商业化发布。此后,每年都在不断发布新功能,在更多可用区开服,满足客户的关键应用需求。
今年是OSS的大年,内核演进到了第二代(OSS 2.0):
• 硬件上:引入了貔貅3存储新机型,从介质、服务器、网络等层面采用了业界领先的技术,性价比极具竞争力。
• 软件上:切换到盘古2.0引擎,提供更强大的分布式扩展能力。
同时,今年发布了9大新特性,以满足企业客户的需求。
2.1.1 OSS 同城区域冗余存储新特性
首先,介绍最重要的同城区域冗余存储特性,如下图所示:
为了提高可靠性和可用性,OSS实现了跨Location的纠删码技术,在任意一个Location故障后,数据依然能够访问和存储。通过对海量的开发运维数据分析,得到最优的Location间距离、带宽设计,防止Location发生故障、灾难,避免出现数据丢失或者业务中断。最终,实现了12个9的高可靠性,99.995%的高可用性,并且标准、低频存储类型都可以使用。
2.1.2 其他新功能
同时,2019年至今还发布了如下新功能:
• ZIP 包解压:实现上传ZIP包自动解压功能,它同函数计算结合,提供图形化界面,简单易用。
• 智能数据处理:包含文档预览(支持近50种格式文档格式)、人脸识别AI处理、标签识别AI处理功能。
• 多版本:提供数据按版本保存功能,可以保护数据避免数据被误删,并且通过读写版本分离来提高数据一致性。
• 标签:提供存储空间标签、对象标签功能,并且结合生命周期管理、安全策略一起使用。
• 授权管理:图形化Bucket Policy管理,可授权其他用户访问OSS,并配置基于访问IP的访问管理。
• 安全提升:提供了客户端加密、日志透明化、KMS加密支持BYOK增强能力。
• 单链接限速:实现了单链接流控,限制该链接的上传、下载和拷贝,可配置范围在100KB/s~100MB/s。
• 传输加速:利用OSS底层的全球网络,实现就近传输,最高可加速4倍,采用CNAME 可以自定义加速区域。
2.2 OSS架构原理
OSS能够在巨大的数据体量下更新内核、并发布大量新特性,无疑就是在飞行中更换飞机引擎,这需要优秀的架构来支撑,如下是OSS的架构原理图:
数据平面的核心:包含盘古分布式存储底座、有巢分布式KV 构建的对象存储元数据、对象存储后端服务;在此之上,就可以通过HTTP服务端和网络负载均衡提供服务。
运维管控面的核心:主要是赤骥DEVOPS平台,它提供了CI/CD、灰度发布/升级、下限维修、监控、日志、运营大屏等丰富的功能。
该架构实现了3个亮点:
• Global的分布式能力:提供了分布式数据复制功能,实现智能元数据负载均衡,零错误扩容、升级、迁移,以及全球的跨区域复制能力。
• 强一致性模型:对齐PAXOS复制协议实现强一致的分布式元数据处理,数据修改立即可见;无中间态临时数据,和最终一致性系统相比仍能保证性能领先。
• 智能开发运维平台:实现了多维度的数据可视化、全面的监控报警、智能日志分析和全面的白屏运维。
通过十多年来稳定的架构设计,保证了系统的快速演进,结合智能开发运维平台提高效率,实现人均效率是传统开发、运维方式的3~5倍。
2.3 OSS 智能数据处理框架
通过稳定的架构和功能开发,OSS存储了海量的数据,基于数据做智能分析、挖掘数据价值,将是存储未来技术的重要趋势。为此,OSS通过智能数据分析处理框架、有效卸载算法实现高效数据处理,如下图所示:
核心思想是构建计算框架,并将它和存储关联。为此,在对象存储最近的位置,部署计算引擎,实现就近访问(无需传输数据出OSS存储系统,极大地降低了网络带宽开销)。然后,在对象存储的数据路径上和计算框架打通,实现关联。为了支持种类丰富的数据分析处理,设计了智能的调度框架,其特点是:
• 底层支持 CPU、GPU、FPGA 芯片,匹配算法适配需求。
• 抽象机器为物理机、虚拟机、容器,从而为软件屏蔽硬件差异。
• 支持Linux、Windows运行环境,并能自动部署各类卸载的算子。
• 通过集群调度系统提供离线请求、实时请求的灵活调度,满足业务对调度对需求。
通过该框架,只需要认证卸载的算子,就可以快速部署起来,并基于框架的集群化调度能力快速服务化,并提供类似阿里云服务的SLA能力。它的亮点是:降低带宽开销(近数据处理)、Serverless 体验 (降低运维难度) 、简单易用(基于URL使用方式),目前提供如下4类的算法卸载:
• 图片处理:通过使用FPGA加速,和自主搭建CPU方式相比,单机的吞吐率可提升6倍,时延下降80%-90%,整体带宽优化可以达到5倍。
• 视频处理:通过此方法,无需搭建多媒体流服务,就可以让视频处理卸载到对象存储,并且还能支持音频流,在时延要求不高时还可做直播。
• SQL 卸载:和外部大数据平台实现SQL方式(OSS未卸载)相比,时延减少到原来的1/12,带宽最多可减少99%。
• 文档预览:目前支持近50种文档格式的预览,由于和OSS天然结合,从而也完全复用了OSS的SLA能力(大于99.9%),并可享受到OSS的安全设计。
3 对象存储最佳实践
通过技术架构原理介绍,大家基本掌握了OSS的相关功能,本节重点讲解OSS的数据管理和最佳实践。
3.1 海量数据管理
3.1.1 迁移数据管理
希望上云使用好对象存储OSS,先从迁移数据的管理开始;目前,OSS迁移数据包括两大类方法:
3.1.1.1 闪电立方服务:包含如下两个子类
• 在线迁移服务:将第三方数据轻松迁移至阿里云对象存储OSS,也可以在对象存储 OSS之间进行灵活的数据迁移。
• 离线迁移(闪电立方设备):它是一种PB级别端到端的离线数据迁移服务,能够使用安全设备将大量数据传入阿里云。如2018年迁移115网盘时,因为数据量巨大、迁移时间短,所以选择了离线迁移的闪电立方设备形式。通过双方努力,仅仅45天就完成100PB的数据迁移,迁移完成后115科技总经理刘睿表示:“将基础设施托付给阿里云后,115科技团队得以集中精力,聚焦顶层设计,为用户提供更好的产品体验和服务。”
3.1.1.2 工具:包括ossimport、ossutil、hdfs2oss4emr、OSS镜像回源,它们都可以简单便捷地迁移数据。
在迁移数据时,要综合考虑容量、带宽选择迁移方法,数据迁移后要对比数据的一致性、保证数据全部被迁移成功,同时要结合应用的易用性集成上述方法的API或者工具。
3.1.2 数据空间管理
海量的数据需要做好组织,在数据空间管理上,建议先从如下3方面考虑:
• 命名空间:要合理控制桶的数目,在使用静态网站托管功能时推荐CNAME绑定域名,对象名尽量散列、避免热点。
• 目录模拟:对象存储不是文件系统,而是采用前缀模拟目录;OSSFS封装的POSIX文件系统插件,受限于服务器操作系统Linux的FUSE架构,场景有限,不能提供高性能、丰富的文件系统功能;如果有大量重命名目录操作,对象存储是不合适的,建议在上层封装元数据来实现。
• 对象管理:如果桶的对象太多、超过十亿,尽量少执行List操作;可以采用对象清单来获取对象列表,便于应用的查询;同时,也可以利用对象清单实现对象的一致性检查。
3.1.3 保证业务连续性
海量的数据高效组织并存储后,要在运行上保证业务连续性,建议从如下4个方向考虑:
• 提高可靠性:开启同城区域容灾,提高单区域故障后的容错能力;使用跨区域复制,容忍区域级故障;打开多版本,降低误删除数据影响。
• 提高可用性:应用在多区域创建桶、同时并行访问使用,跟踪各区域时延、成功率,根据应用时延、成功率要求控制切换,在遇到请求错误时进行幂等回退处理。
• 流量控制:国内单用户、单区域缺省流量配额为10Gbps,如需要更高带宽可以提交工单来申请提升;在请求返回流控错误码时,根据带宽能力合理设置幂等回退;同时,支持单链接限速,帮助应用合理控制客户端流量。
• 安全管理:使用RAM控制授权用户访问、并设置访问策略,控制访问的IP来源,使用数据加密和日志审计。
3.2 应用最佳实践
基于OSS的架构、特性、数据管理建议,介绍3个近期最具代表意义的应用最佳实践:
3.2.1 基因测序解决方案
该方案的客户有两个主要测序中心,采用专线连接到阿里云就近区域。本地IDC具备一定计算和存储能力,用于处理部分业务,将处理数据归档到云上,同时利用云上的K8S、批量计算、ECS等做弹性大规模计算扩展。
它解决了客户的3个痛点:专线网络和OSS通信,直传数据;K8S &批量计算和OSS对接,直接计算;基于OSS的生命周期管理自动归档数据,降低成本。
3.2.2 人工智能自动驾驶训练应用解决方案
在该方案中,云端资源实时响应业务需求,支撑了业务快速迭代。快速使用阿里云提供的新技术、新产品,享受技术红利。CPFS和OSS结合专为训练优化性能和成本,提升训练速度,释放GPU的算力,使得整个AI计算平台效率更高。
该方案体现了3个优势:弹性资源供给、大带宽的吞吐能力、整体优化的TCO。
3.2.3 视频监控应用解决方案
此方案实现了视频监控统一存储,通过部署网关、监控接入平台、混合云存储阵列,成功对接五家不同类型的摄像头设备,无缝完成摄像头对接迁移,实现了云上、云下的统一平台。该平台可弹性承载10000+设备接入,后续在接入更多摄像头时,可弹性扩展计算资源,而不影响原有业务。同时,本地混合云存储使用云缓存技术,仅保存近期几天的数据,而将海量的近百天视频文件全量备份至云端,完全满足行业法规要求,而且还可以利用OSS的智能数据处理功能进行视频内容的分析。
该方案满足了客户3个典型需求:视频监控统一存储;数据高可靠,持久保存支撑行业法规;弹性资源按需供给,满足业务增长需求。
当然,OSS还有更多应用解决方案的最佳实践,可以在阿里云官网上查询。
总结
构建业界领先的高可靠、高可用、易管理、安全合规的非结构化数据存储平台目标,是阿里云对象存储OSS不断超越自我的驱动力,未来OSS将持续演进发展,满足企业数据存储要求。
关于“Linux宝库”微信公众号:
欢迎关注"Linux宝库"微信公众号,这里每天发布最新的开源人物和开源事件。谨以此号记录Linux和开源业界的点点滴滴,为开源爱好者和从业者点亮人生。
- END -
- 责任编辑:耿航 -