人工智能开发中,OBSutil如何一键配置
说到云上存储,用的对多的还是对象存储,可以说是云上用的最多的持久化方案。
在ModelArts服务里进行模型训练时,也要经常用到OBS:在开发环境里,客户可能会需要把数据倒到OBS中;在训练任务中,需要从OBS获取训练数据并保存训练输出到OBS。有没有一个比较好的OBS使用方案呢?
我个人觉得,OBSutil就是能看到的脚本开发人员用起来最舒服的工具了。该工具的详细介绍见:https://support.huaweicloud.com/utiltg-obs/obs_11_0001.html
基础使用
主要讲一下如何一键在对应环境上配置OBSutil工具。具体见下面的代码,然后复制到对应环境执行即可。
mkdir -p /home/ma-user
cd /home/ma-user
wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
tar -xzvf obsutil_linux_amd64.tar.gz
mv obsutil_linux_amd64_*/ utils
alias obsutil='/home/ma-user/utils/obsutil'
注意,其中'/home/ma-user'目录可以按需求自主修改,只要保证该目录可以正常创建、使用、及添加子文件夹即可。
初次使用前需要进行配置,配置时替换样例代码的"${AK}"和${SK}内容。样例代码如:
obsutil config -i=${AK} -k=${SK} -e=obs.myhuaweicloud.com
在Notebook里使用时,可以固化快捷命令,方法如下。配置后保存镜像即可完成固化,保存镜像参考文档。
echo "alias obsutil='/home/ma-user/utils/obsutil'" >> ~/.bashrc
具体使用时,用如下命令即可:
#列举桶列表
obsutil list
#列举桶文件
obsutil list obs://bucket_name/bucket_dir
#本地-OBS文件互传
obsutil cp -r -f local_dir/ obs://bucket_name/bucket_dir
obsutil cp -r -f obs://bucket_name/bucket_dir local_dir/
如果我们发现obsutil找不到的时候,重新执行“alias obsutil='/opt/utils/obsutil'”命令即可,或者把对应命令放到bashrc里。
并发传输配置
针对数据集里小文件较多的场景,建议在obsutil的参数里增加"-j 64"来增大下载并发,一般按每逻辑核4并发来配置。
增加以后,整体命令如“/opt/utils/obsutil cp -r -f -j 64 ${DATA_URL} /cache/data”。执行后,obsutil的下载进度条如下:
[---------------->______________] 54.75% tps:336.29 300.60MB/s 134.25K/251.15K 25.70GB/46.95GB 1m12s
其中“tps:336.29”表示每秒下载文件336.29个,“300.60MB/s”表示下载速度300MB。当下载速度低于10MB且tps稳定在300左右的时候,就需要考虑增加-j参数来减小下载时长。
AKSK配置
最后,AKSK的获取可用参考文档,或按下图流程来执行:


- 点赞
- 收藏
- 关注作者
评论(0)