目录
一、产品介绍
1.1 对象存储oss
1.2 特点
二、产品技术背景
三、产品架构及功能
四、常见问题及排查思路
4.1 两个bucket目录文件如何快速复制?
4.2 oss里的目录如何删除?
4.3 能否统计oss一个目录的大小
4.4 异常诊断 - 上传下载速度慢
4.5 异常诊断 - 图片处理不符合预期
4.6 异常诊断 - object访问内容不符合预期
4.7 异常诊断 - OSS访问报错
一、产品介绍
1.1 对象存储oss
阿里云对象存储OSS是一款具有行业领先的海量扩展、稳定可靠、安全合规、低成本、智能的云存储服务,可以帮助各行业的客户为各种使用场景存储和保护任意数量的数据,同时具备丰富的数据处理能力,帮助客户更便捷地使用数据。
1.2 特点
- 海量扩展
单Bucket支持EB级容量,万亿级文件
- 稳定可靠
99.995%的可用性SLA&12个9的可靠性完整的数据保护和冗余能力基于对象存储的原生DDos防护能力
- 安全合规
5种加密模式,涵盖服务端加密与客户端加密唯一支持国密算法(SM4)国内唯一支持WORM,Cohasset Associates审计认证唯一原生支持敏感数据保护功能
- 低成本
5种存储类型,冷数据更低最短留存时间(30/60/180天)2种生命周期管理策略(最后修改时间、最后访问时间)深度冷归档0.0075分/GB月的极致低成本
- 智能处理(数据湖&媒体处理)
10000+数据湖构建于OSSHDFS全兼容能力,无缝对接Hadoop生态Oss加速器提供Tbps级的读吞吐原生的图片、视频、文档处理能力,支持RTMP写入
二、产品技术背景
块存储、文件存储、对象存储的区别
存储产品 | 挂载方式 | 时延 | 吞吐 | 协议 |
块存储EBS | ECS挂载 | 极低时延(微秒级) | 数十Gbps | NVMe |
文件存储NAS | ECS/ACK通过挂载点挂载 | 低时延(毫秒级) | 数百Gbps | NFS(Linux) /SMB(Windows)/POSIX |
对象存储OSS | 主要使用API进行访问调用 | 较低时延(几十毫秒级) | 数百Gbps | HTTP/S3 |
三、产品架构及功能
( 1 ) 多种存储类型:支持5种存储类型满足数据的全生命周期覆盖以及各种业务场景的数据冷热需求,具备数据冷热分层,提供更具性价比的存储方式。
( 2 ) 稳定可靠:提供多重冗余能力及多样的数据保护功能,高达99.995%可用性的SLA承诺,12个9的数据持久型,确保业务数据的稳定可靠。
( 3 ) 安全合规:支持多维度的权限控制能力与多种加密能力(服务端、客户端等)、加密算法(AES256、国密SM4)的支持,满足企业安全与合规要求。
( 4 ) 企业级数据管理:支持生命周期(最后编辑时间、最后访问时间)、标签、清单、回源、丰富的数据上传与下载方式等,提供更简单易用、更便于管理的对象存储。
( 5 ) 数据处理能力:面向数据湖具备HDFS的全兼容接入能力,无缝对接Hadoop生态,并无缝支持阿里云SLS、EMR、MaxCompute、Hologres等各种计算分析平台与数据源,满足企业数据洞察分析与管理的需求;面向媒体处理场景提供图片处理、视频截帧、文档预览、图片场景识别、人脸识别等能力,满足媒体数据智能分析应用的需求 。
( 6 ) 大规模数据迁移:支持在线、离线迁移方案,提供更安全、更快速的数据迁移上云方案。
四、常见问题及排查思路
4.1 两个bucket目录文件如何快速复制?
排查思路:OSS本身没有目录概念,目录A拷贝其实就是遍历以“A/”为前缀的所有文件,进行一个个拷贝,目前api还不支持,可以使用ossutil工具的CP命令进行拷贝。
4.2 oss里的目录如何删除?
排查思路:OSS本身没有目录概念,删除目录A其实就是遍历以A/为前缀的所有文件,进行一个一个删除。 删除方案: 1、在控制台执行目录删除操作。 2、使用工具删除:ossbrowser、ossutil。 3、API:批量删除指定前缀的文件可以实现删除目录的功能。
4.3 能否统计oss一个目录的大小
排查思路:OSS本身没有目录的概念,假如用户上传 d01/object 这样的资源,控制台展示看着是d01目录下有个文件叫object ,实际这个文件真正的名称是d01/object,d01/这个目录实际是不存在的,除非用户上传一个object 名称叫做 d01/;所以要统计一个目录的大小,需要遍历以该目录名为前缀的object,累加这些object的大小,得到目录的大小;
- ossutil工具封装了遍历累加的逻辑,通过du命令即可统计某目录的大小来查看
- 用户也可以调用sdk/API 的listobject接口 遍历某目录前缀的object,结合headobject接口获取object的content-length 进行累加,得到目录大小。
4.4 异常诊断 - 上传下载速度慢
知识背景:
OSS上传文件的几种方式:简单上传、表单上传、分块上传及断点续传、追加上传、授权第三方上传等,客户在使用SDK、API、官方工具进行文件上传的时候经常会遇到上传/下载速度较慢的情况,此时需要收集端侧信息查询相关日志进行详细确认。
处理思路和流程:
1. 收集基本信息
- 用户上传、下载的bucket
- 客户端ip、ping、mtr、traceroute信息 使用的工具(如SDK or api or ossutil等工具)和传输方式(内网 or 公网)
- 调用的api接口(简单 or 分片-如果是分片,片大小是多少)
2. 查看bucket是否触发流控 or bucket所在region触发流控(即被其他bucket影响)
3. 询问客户是否能提供对应慢请求的时间点、文件名或者Requestid信息。
4. 拿到对应信息(如果是文件名+时间点,让在实时日志里过滤对应请求,获取到Requestid),分析耗时是集中在哪部分。耗时由turn_around_time和response_time组成。
- 若turn_around_time/response_time的占比较高,则说明该请求主要耗时在服务端处理,可以从sls日志里看下当前turn_around_time是否还是持续耗时高,若存在该情况,则升级后端核实。
- 若turn_around_time/response_time的占比较低,则说明该请求主要耗时在客户到服务端的中间链路上。
5. 若问题持续,可以核实下客户端自身负载是否正常、带宽冗余是否充足、链路是否存在时延较高的情况,通过查看CPU、IO、MEM、ping、抓包等信息来判断,看看是客户端问题导致的慢还是链路时延较高导致的慢。
4.5 异常诊断 - 图片处理不符合预期
知识背景:图片处理操作OSS图片处理服务可以通过三种方式处理图片:
为图片URL添加参数进行单次处理
使用图片样式对不同图片进行相同处理
使用OSS SDK对图片进行处理
排查思路:
1、收集信息:客户使用图片处理的什么功能,详细参数,图片的格式,图片处理预期效果与当前效果的出入;
2、核实客户使用的参数格式是否正确,参考:图片处理操作方式 若格式不正确,修改为标准格式即可,
3、若格式正确之后仍然不符合预期,可能是图片格式本身限制、图片处理限制、当前图片处理参数不太合适导致,可以查看对应操作官方文档中注意事项,及图片处理常见问题进行排查处理,参考:图片缩放
4、若格式标准且未触发限制,可能是客户图片处理规则做了特殊配置(例如自定义样式分隔符)与当前操作冲突导致,当前售后同学无法查图片处理规则配置,需要通过升级工单至oss后端同学确认。
4.6 异常诊断 - object访问内容不符合预期
问题背景:客户在使用对象存储产品的的过程中经常会遇到访问不符合预期的情况,例如:oss在线预览.txt文件出现乱码问题怎么办?、访问URL被强制下载等,这类case需要先定为具体功能或配置项目,再根据实际反馈情况对比确认。
如:用OSS提供的默认域名请求,默认会强制下载,具体排查思路如下:
1、content type 设置的是否正确
不正确会强制下载 ,请网上搜索(http content type)对应格式资源的正确content type 进行修改
2、是否对应的object设置了content disposition这个设置了也可能会强制下载
3、都是直接在控制台--OSS--具体bucket--object管理--设置http头中查看
4、如果经过了cdn 缓存, 对应源站设置正确后请刷新cdn缓存
5、如果以上均正常,浏览器访问对应的object资源还是强制下载,那么很可能是浏览器不支持了
4.7 异常诊断 - OSS访问报错
阿里云访问4XX基础知识:oss访问400一般原因有:
- 请求参数非法
- 请求参数缺失
- 配额达到限制
oss访问403一般原因有:
- 权限原因
- 鉴权key生成不正确-SignatureDoesNotMatch
- 鉴权过期-SecurityTokenExpired or InvalidAccessKeyId
- 防盗链-AccessDenied
- 欠费-UserDisable、BucketDisable
- 账号权限不足-AccessDenied
- 命名原因,中文特殊字符没处理好
- 涉黄封禁-确认用户权限正常但访问仍报403,通过站内信邮箱查看文件是否被封禁