OSS加速器概述
随着互联网业务的发展,越来越多的业务对于数据的吞吐量有了更高的要求。为此,对象存储OSS推出加速器功能,可以缓存OSS中的热点文件(Object),提供高性能、高吞吐量的数据访问服务。
无地域属性存储空间不支持使用OSS加速器。
前提条件
OSS加速器功能目前仅在华东1(杭州)、华东2(上海)、华北 3(张家口)、华南1(深圳)、华北2(北京)和新加坡地域公测。
已提交工单申请使用OSS加速器功能。
白名单开通OSS加速器功能需要人工接入。提交工单申请后,您需要在工单沟通页面输入人工服务,然后单击联系售后工程师转入人工处理。
注意事项
加速器支持按照容量提供对应的带宽(1 TB容量对应200 MB/s带宽)。最小配置容量为20 TB。
加速器支持在线扩容和缩容。在线扩容约1分钟完成,在线缩容约1小时完成。
当加速器缓存已满后,OSS会根据缓存文件的热度将低热度的文件替换为高热度文件。
一个加速器可配置的Bucket数量无限制,每个Bucket最多可配置10条加速路径。
使用场景
OSS加速器适用于需要大量带宽,且数据重复读的场景。具体场景如下:
低时延数据共享
需求背景
客户在货柜上购买物品,先通过手机App扫描货柜的货物拍照上传,应用后端接收到图片后通过OSS加速器进行存储。后台的子系统随后进行内容安全分析和图片上条码的识别,条码识别后的结果反馈到应用后端进行扣费等操作。下载图片要求毫秒级完成。
解决方案
采用OSS加速器写时预热的模式。使用OSS加速器可以有效降低分析系统加载图片的延时情况,缩短交易链路。OSS加速器适合对延时敏感,多次重复读的业务。
大数据分析
需求背景
公司的业务数据按天进行分区,归档到OSS作为长期数据进行存储。分析人员使用Hive或Spark等计算引擎对数据进行分析,但不确定查询范围。分析人员要求尽量减少查询分析时间。
解决方案
使用OSS加速器读时预热的模式。该模式适用于离线查询场景下数据量大,且不确定数据查询范围,无法准确预热的场景。例如,分析人员A查询的数据,数据会缓存在加速集群。而分析人员B查询的数据包含分析人员A查询的数据,从而加快数据分析进度。
模型训练
需求背景
模型训练需要拉取训练数据集,将数据从OSS加载到训练机器时间较长,导致加载数据时计算资源利用率不高。当多个训练任务使用相同的数据集时,还会出现多次加载的情况。
解决方案
采用OSS加速器异步预热模式。OSS异步预热模式适用于数据量大,且数据查询以及分析范围确定的场景。对于批任务,下载任务通常存在带宽波峰的情况,OSS加速器提供弹性扩缩容能力,支持秒级修改容量和带宽配额。您可以在任务启动前扩大配额,任务完成后缩小配额,节省日常使用成本。
多级加速
需求背景
客户端缓存和服务端加速并不冲突,希望根据业务情况能够达到多级加速的效果。
解决方案
OSS加速器与客户端缓存搭配使用。Alluxio推荐co-locate的部署方式,与计算集群并置。当读取的数据未命中Alluxio缓存时,会从后端存储来读取数据。对于OSS加速器,采用读时预热,并在第一次获取数据时进行预热。由于客户端主机缓存空间的限制,Alluxio中每个文件和目录都会设置TTL。当TTL到期后缓存会被淘汰,以便节约空间。此时,OSS加速器中的数据并不会马上淘汰,其缓存空间可以存放数百TB的数据。当再次读取Alluxio中未命中的数据时,可以直接从OSS加速器加载,实现两级加速。
功能优势
缓存空间大
OSS加速器继承了OSS海量数据存储的优点,能够提供数TB至数百TB的缓存空间 ,支持直接缓存数仓中的多个表或者分区。
吞吐能力
加速器的吞吐能力显著提升,带宽随容量大小线性增长,能有效解决多种应用场景的读吞吐的挑战。
弹性伸缩
计算任务通常是周期性任务,每个任务所需资源存在差异。加速器可根据您的需求进行在线扩容或缩容,可有效避免资源浪费,降低您的使用成本。
OSS加速器提供秒级调整配额的弹性能力。对于批任务,下载流量通常存在波峰,OSS加速器可以提供秒级扩缩容量(数十TB到数百TB)和带宽(数Gbps到上百Gbps)配额的能力。您可以在任务启动前扩大配额,任务完成后缩小配额,节约日常使用成本。
低延迟
OSS加速器可以为业务提供更低的下载延迟,尤其适用于大文件的下载场景。对于容器化场景,云数据湖、数仓场景有较好的效果。
存算分离
加速器可满足计算资源和存储资源分离。面对不同的计算任务,您无需再自建不同缓存进行匹配,满足多业务场景的吞吐加速。
数据一致
加速器提供了传统缓存方案不具备的数据一致性。当OSS上的文件被更新时,加速器能自动识别并缓存更新后的文件,以确保计算引擎读取的都是更新后的数据。
多种预热策略
OSS加速器能够自动识别OSS上更新的文件,确保引擎读取到最新数据。OSS加速器提供以下预热策略。
写时预热:数据写入时同步预热。
读时预热:数据读取时未命中加速器,将其预热到缓存集群。
异步预热:通过命令触发批量预热。
多级加速
您还可以结合客户端缓存以及OSS加速器构建多级缓存,实现更优的加速效果。
通过OSS缓存计算集群中的普通数据。
通过OSS加速器缓存计算集群中的热数据。
通过客户端缓存来缓存计算集群中的极热数据。
使用流程
加速器创建完成后会拥有一个地域专属的加速域名。例如华东2(上海)地域的加速域名为http://oss-cache-cn-shanghai-g.aliyuncs.com
。当您与加速器在同一专有网络VPC时,您可以通过加速域名访问加速器内的资源,流程如下图所示:
流程说明如下:
写请求
未开启同步预热时,客户端向加速域名发送的写请求会直接转发至OSS Bucket,流程与使用OSS默认域名一致。
开启同步预热后,客户端向加速域名发送的写请求会直接转发至OSS Bucket和OSS加速器。
读请求
客户端向加速域名发送的读请求会被转发给OSS加速器。
加速器在收到读请求后会在缓存空间内查找目标文件:
若缓存空间存在目标文件,则文件直接返回给客户端。
若缓存空间没有目标文件,加速器会向绑定的OSS请求目标文件。OSS在收到请求后,会将目标文件缓存到加速器中,加速器将文件返回给客户端。
对于未缓存的文件,加速器根据自身容量提供320 Mbps/TB的回源带宽。
性能表现
下载响应延迟统计
通过OSS以及OSS加速器多次下载100 MB的Object进行测试,统计其响应延迟(单位ms)分位数,结果显示降低10倍延迟。
以下图表中的P50表示50%的请求符合当前统计的延迟情况,P999表示99.9%的请求符合当前统计的延迟情况。
云上数据湖及数仓场景
某用户分别对本地盘、原生OSS以及OSS加速器作为存储介质进行测试。
延迟情况
场景
Local Cache FS (本地)
OSS
OSS Cache (加速器)
点查
382ms
2451ms
1160ms
1000条数据抽取
438ms
3786ms
1536ms
10%不连续查询
130564ms
345707ms
134659ms
全量扫描测试
171548ms
398681ms
197134ms
性能情况
在线查询时,OSS加速器读命中RT是直读OSS的2~2.5倍。全量扫描、10%随机查询性能是直读OSS的2~2.5倍,约为Local ESSD CacheFs本地读性能的85%。
在线查询时,OSS加速器单个请求固有延迟为8~10ms。1000条随机查询、点查性能是直读OSS的1.5~3倍,约为Local ESSD CacheFs本地读性能的30%。
容器及自动驾驶仿真训练场景
大量容器同时启动获取镜像,地图,日志数据。仿真训练的整体时长降低60%。
类型
数据量
容器数
峰值带宽
数据加载
OSS
50 TB
2500个
50 Gb/s
约2.2小时
OSS加速器
50 TB
2500个
200 Gb/s
约40分钟
创建加速器
创建加速器。
登录OSS管理控制台。
在左侧导航栏,选择 。
在OSS加速器页面,单击创建OSS加速器。
在创建OSS加速器面板,按以下说明配置各项参数。
参数
说明
OSS加速器名称
设置加速器的名称。长度必须在3~63字符之间。
可用区
选择加速器可用区。
加速域名
用于访问加速器的加速域名。
加速器容量
设置加速器的缓存大小,单位TB。
填写的数值必须大于或者等于20,且是5的整数倍。
吞吐能力
显示加速器当前的吞吐能力。
吞吐能力=加速器容量 (TB) ×200 MBps/TB
。单击确定。
设置加速策略。
单击目标加速器右侧的设置加速路径。
在设置加速路径面板,单击新增,然后按以下说明配置各项参数。
参数
说明
Bucket名称
选择加速器对应的目标Bucket。
重要如果目标Bucket此前已被其他加速器加速,此操作会覆写已有的配置。
加速策略
选择加速器的策略。
指定路径加速:指定文件目录访问路径,最多可添加10条。指定后,加速器将只加速指定目录下的文件。例如您需要加速根目录下example目录的文件,则填写example/。
加速整个Bucket:加速Bucket内所有文件。
缓存策略
选中同步预热。此时,通过PutObject或者AppendObject方式向OSS写入数据时,数据会同时写入OSS Bucket以及OSS加速器。
单击保存。
您还可以单击新增,然后按操作指引新增多个使用加速器的目标Bucket。
使用加速器
通过加速器加速整个Bucket或者指定路径的数据说明如下。
修改加速器容量
您可以通过以下步骤对加速器进行扩容或缩容。
在OSS加速器页面,单击目标加速器右侧的编辑。
在修改OSS加速器面板,修改加速器容量。
加速器扩容或缩容的值必须是5的整数倍,且加速器的最低容量不得低于20 TB。扩容约1分钟完成,缩容约1小时完成。
单击确定。
查看加速器带宽数据
您可以通过OSS管理控制台以及云监控SDK查看加速器带宽数据。