【OSS 排查方案-1】OSS 工具使用排查方案标准化

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 背景:针对使用 oss 工具出现疑问的用户,将自己经常遇到的问题解法 share 一下。 请大家在解决问题之前先做下必要的核对工作 是否是官网的最新版本 https://help.aliyun.com/document_detail/50452.html?spm=5176.doc31935.6.1056.TcGyZr。

背景:针对使用 oss 工具出现疑问的用户,将自己经常遇到的问题解法 share 一下。


请大家在解决问题之前先做下必要的核对工作

  • 是否是官网的最新版本 https://help.aliyun.com/document_detail/50452.html?spm=5176.doc31935.6.1056.TcGyZr。
  • 使用 oss 工具下载服务端文件时如果出现异常,可以先尝试 curl 下远端的文件看是否正常(curl -svo /dev/null http://object )
  • 如果是 ossimport 工具使用出现问题,请先按照 https://help.aliyun.com/document_detail/56990.html?spm=5176.product31815.6.1063.1AEmbe 确认自己的配置文件选项是符合业务情况且正确的。
  • 使用 oss 工具异常时一般会有明显的 message 和 requestID 回显在终端上,除非建联失败的情况下是没有 requestID 。拿到的 message 后可以到  help.aliyun.com 通过关键字检索答案,如果排查困难可以提交阿里云售后,将异常信息和能获取到的 requestID 反馈对方排查。
  • 如果遇到 SDK 、API、操作出现问题,可以先是用 ossutil 工具来测试是否可以正常操作,以排除是 oss 服务端问题还是 SDK、API 代码写的问题。

一、ossimport 单机/集群 版本出现异常
  • 优先按照 https://help.aliyun.com/document_detail/56990.html?spm=5176.product31815.6.1063.1AEmbe 检查配置文件是否服务业务场景且正确无误。
  • 单机版的情况,一个 ECS 上只有一个 worker ,但是拆分成多个 task 对应的多线程进行文件迁移,而且注意不需要配置 workers 文件。
  • 集群版本的注意要配置配置 workers ip 文件,而且第一行要填写 master ip  然后是 slave ip。
  • ossimport 没有进度条功能,终端上输出的内容就带有完成的任务数,或者通过我们的  logs/import.log 日志 查看当前上传情况。
  • ossimport 迁移的 object 中不要带有空格,比如(bucket/dir/ haoting.mp3)
ossimport  迁移中出现 overlappinglockfileexception

66b432112611b76a6be7ad41d3428ce8.png

A:出现这种问题,基本都是由于线程数量较多,master 进程对文件扫描的过快导致,但不会影响 ossimport 迁移,目前新版本中已经隐掉了该问题。

ossimport  多个迁移项目任务一起跑,原来的进程被踢掉

VcEFAFFQBGoBAGWqCVDkhZ+V3IhNaoIKAKKgCKwI

A:ossimport 工具单机版只能有一个 worker 进程,多个线程的方式迁移,启动多个脚本是不可以的,需要迁移多个项目,可以采用分布式版本的,将任务下发到不同的机器 worker 中执行。

ossimport  出现 workips empty 

df29f6716195f5417552bd19564d9d31373e2b64

A:出现这种问题,先确认使用的是单机版还是集群版,如果是分布式版本,如果是单机版,请查看是否存在 workers 的这文件,如果存在删除掉,单机版不会有这个文件。如果是分布式版本,请检查自己的 workers 文件中是否配置了 master IP。

二、ossutil 工具使用异常
  • 保证工具的版本是最新的。
  • 使用 ossutil 工具操作 oss 文件时可以增加 --retry-time 选项增加重试机制。
  • 使用 ossutil 解冻文件时,如果文件出现异常,可以优先使用 stat 选项查看文件的状态。
  • 异常时排查困难,请保留好异常 message 和 requestID 反馈给阿里云客服人员。

ossutil 工具上传中发现,有 skip 的情况,而且使用 -u 参数后 OSS 的文件没有被更新。

06755fb4ecdb6a4bb408bae634f138b094e50d77

A:出现 skip ,由于之前操作的是同名文件,加 -u 后,强制更新了文件,跳过了更新的过程。
如果怀疑文件没有被更新,可以 先固定 OSS 端下载文件,然后和本地的 MD5 值比对,如果 MD5 值一致则证明文件被更新,如果文件 MD5 值不一致则
文件没有更新。
测试命令如下 
./ossutil64 cp -u -r -f aa.test oss://bucket --access-key-secret=xxx --access-key-id=xx
测试 OSS  MD5 : curl -v  http://oss资 源/xxx | md5sum

ossutil 操作解冻文件出现 403

e873bb4904bc0e828ac0845da545454b.png

如图在操作解冻文件的过程中出现 403,可能与以下几个原因有关系
1)使用的子账号操作文件,权限不够。需要看是用的是 STS 操作还是直接用 RAM 子账户操作,核实好对应的 oss 读写权限。
2)用户的文件是违禁内容被封禁掉了
3)用户的文件可能是归档的文件不可以直接被访问。

ossutil cp 文件时出现 403 会中断

这种现象是正常的,工具在设计之初就是考虑到如果文件遇到 403 的话,代表没有权限操作该文件,那么通过该账号下的其他文件也操作不了,所以就会中断退出

ossutil 解冻文件出现 400

7fb4fcd3164b5020dcf6e49a103a959c.png

1)使用 stat 选项看一下文件的状态是否是已经解冻了,如果以及解冻再次操作,就会出现 400


三、ossfs 使用问题:

  • ossfs 的报错都会有明显的 message,需要收集到这些 message,根据 message 判断是否直接看出问题,比如 socket 建联失败,或者响应的状态码 4XX 5XX 等,一般 403 是权限问题被 deny ,400 是用户的操作方法有误,5xx 一般和网络抖动以及服务端业务有关系,遇到 5xx 如果长时间无法恢复,需要反馈到阿里云客服,看下是否服务故障。
  • 如果使用 ossfs 发现性能很差,建议替换使用 ossutil,应为 ossfs 是将远端的 OSS 挂载到本地磁盘,如果对业务性能敏感性很高的业务,不建议使用 ossfs ,而且该工具也不是原子性,存在本地操作成功,但 oss 远端操作失败的风险。
  • 如果发现 ossfs 在 ls 目录文件时很慢,可以增加调优参数 通过 -omax_stat_cache_size=xxx 参数增大 stat cache 的 size,这样第一次 ls 会较慢,但是后续的 ls 就快了
安装 ossfs fuse 出现报错。

747ef05cd162d1d6b51f328a52c7060f.png

出现这种问题都是 fuse 的版本不满足 ossfs 的要求,2.8.3 的都不行,直接去 fuse 链接上下载最新版本的编译安装,不要用 yum, yum 安装的都不是新版
参考链接:https://github.com/libfuse/libfuse

ossfs 使用中出现 Input/output error

f82918f57983edb8dcb4f80f710dfd04.png

ossfs 与 rsync 同步使用会出现问题,而且用户对一个 141G 的文件进行 CP 操作,对 OSSFS 本身的磁盘读写比就是一个挑战,
如果想要将 OSS 下载到本地 ECS ,或者本地上传到 ECS ,可以通过 OSSUNTIL 的分片上传、下载进行操作。

四、ossftp 使用问题

1、由于 OSSFTP 是串行,而且是 FTPCLIET->FTPSERVER->OSS SERVER 两段操作性能无法保证,已经和客户沟通,推荐使用 ossutil ,链接:https://help.aliyun.com/document_detail/50452.html?spm=5176.doc31935.6.1032.YMtcGp'1、由于' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

2、OSSFTP 是 Python 编写,只能跑在单核上,并不是并发多核心处理任务,所以针对大文件 IO 操作时无法保证性能。












相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
7月前
|
存储 弹性计算 安全
对象存储OSS快速上手——ossutil工具管理OSS
本实验是对象存储OSS进阶实验。通过本实验,用户可学会如何使用ossutil工具在Linux环境下用命令管理oss,完成文件上传下载等操作。
1164 0
|
4月前
|
存储 Kubernetes 对象存储
Kubernetes版本对接对象存储几种方案
Kubernetes版本对接对象存储几种方案
167 0
|
移动开发 JSON JavaScript
阿里云OSS PostObject错误及排查详细版本
PostObject使用表单上传文件到OSS。PostObject的消息实体通过 多重表单格式multipart/form-data 编码,详细说明请参看 RFC 2388。Put Object中参数通过HTTP请求头传递,Post Object参数则作为消息体的表单域传递。
1560 0
|
对象存储 Python
Python文件上传Minio和阿里Oss工具 | Python工具
Python文件上传Minio和阿里Oss工具 | Python工具
|
存储 分布式计算 Kubernetes
Github 29K Star的开源对象存储方案——Minio入门宝典
对象存储不是什么新技术了,但是从来都没有被替代掉。为什么?在这个大数据发展迅速地时代,数据已经不单单是简单的文本数据了,每天有大量的图片,视频数据产生,在短视频火爆的今天,这个数量还在增加。有数据表明,当今世界产生的数据,有80%是非关系型的。那么,对于图片,视频等数据的分析可以说是大数据与人工智能的未来发展方向之一。
1213 0
Github 29K Star的开源对象存储方案——Minio入门宝典
|
存储 机器学习/深度学习 分布式计算
非结构化数据怎么存?——开源对象存储方案介绍
过去的相当长的一段时间里,商用对象存储占据了市场上的大量的份额。国外的Amazon S3,国内的阿里云OSS都成为了大多数公司的选择。但是构建一个企业级的数据湖(包括结构化和非结构化数据)已经成为了越来越多公司的目标。那么Hadoop还能满足我们的要求吗?还是我们需要更多的选择?
1028 0
非结构化数据怎么存?——开源对象存储方案介绍
|
存储 SQL 缓存
Flink + Iceberg + 对象存储,构建数据湖方案
上海站 Flink Meetup 分享内容,如何基于Flink、对象存储、Iceberg 来构建数据湖生态。
Flink + Iceberg + 对象存储,构建数据湖方案
|
存储 弹性计算 安全
OSS 可用性诊断排查
本文主要介绍遇到 OSS 可用性异常的排查方法
3253 0
|
存储 缓存 弹性计算
OSS 限流诊断排查
本文主要介绍遇到 OSS 限流的排查方法
2341 0
|
存储 监控 算法
OSS异常流量排查及防护
OSS适用于存储各种类型的静态资源。您在OSS中存储静态资源。当OSS生成流量大的异常流量时,可能是恶意引用黑客攻击或请求访问OSS资源的恶意IP引起的。针对上述情况,本文将向您展示如何定位异常流量以及如何保护流量。
1505 0
OSS异常流量排查及防护