导语
今年参加了 2019 云栖大会 下一代云存储技术与最佳实践专场,分享了 “对象存储海量数据管理和应用最佳实践” 议题,重点介绍对象存储 OSS 的架构原理、数据管理、最佳实践,现整理相关内容和大家探讨。
一、企业数据存储的挑战和需求
数据是企业的生命线,企业的数据存储也普遍面临着 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.1 OSS 技术演进
OSS 实现上述业界领先的核心竞争力,并不是一蹴而就,而是通过长期技术积累实现,如下是技术演进图:
OSS 随着飞天操作系统发展而演进,它立项于 2008 年,和盘古一起起航;开发完成后,先在阿里巴巴集团内打磨,2011 年正式在阿里云商业化发布。此后,每年都在不断发布新功能、在更多可用区开服、满足客户关键应用需求。
今年是 OSS 的大年,内核演进到第二代(OSS 2.0):
- 硬件上,引入了 貔貅 3 存储新机型,从介质、服务器、网络等层面采用了业界领先的技术,提供了极具竞争力的性价比。
- 软件上,切换了 盘古 2.0 引擎,提供更强大的分布式扩展能力。
同时,今年发布了 9 大新特性,以满足企业客户的需求。
2.1.1 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 的安全设计。
三、对象存储最佳实践
通过技术架构原理介绍, 基本掌握了 OSS 相关功能,本节重点讲解 OSS 的数据管理和最佳实践。
3.1 海量数据管理
3.1.1 迁移数据管理
希望上云使用好对象存储 OSS,先从迁移数据的管理开始;目前,OSS 迁移数据包括 2 大类方法:
闪电立方服务,包含如下子类:
- 在线迁移服务,将第三方数据轻松迁移至阿里云对象存储 OSS,也可以在对象存储 OSS 之间进行灵活的数据迁移。
- 离线迁移(闪电立方设备),它是一种 PB 级别端到端的离线数据迁移服务,能够使用安全设备将大量数据传入阿里云。2018 年迁移 115 网盘时,因为数据量有百 PB 量级、而且要求迁移时间短,所以选择离线迁移的闪电立方设备形式。
- 工具, 包括 ossimport、ossutil、hdfs2oss4emr、OSS 镜像回源,它们都可以简单便捷的迁移数据。
在迁移数据时,要综合考虑 容量、带宽 选择迁移方法,数据迁移后要对比数据的一致性、保证数据全部被迁移成功,同时要结合应用的 易用性 集成上述方法的 API 或者工具。
3.1.2 数据空间管理
海量的数据需要做好组织,在数据空间管理上,建议先从如下 3 方面考虑:
- 命名空间。要合理控制桶的数目,在使用静态网站托管功能时推荐 CNAME 绑定域名,对象名尽量散列、避免热点。
- 目录模拟。对象存储不是文件系统,而是采用前缀模拟目录;OSSFS 封装的 POSIX 文件系统插件,受限于服务器操作系统 Linux 的 FUSE 架构,场景有限,不能提供高性能、丰富的文件系统功能;如果有大量重命名目录操作,对象存储是不合适的,建议在上层封装元数据实现。
- 对象管理。如果桶的对象太多、超过十亿,尽量少执行 List 操作;而是采用对象清单来获取对象列表,便于应用的查询;同时,也可以利用对象清单实现对象的一致性检查。
3.1.2 数据空间管理
海量的数据高效组织并存储后,要在运行上保证业务连续性,建议从如下 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 将持续演进发展,满足企业数据存储要求。