背景信息
本作业讲解如何将本地图片数据迁移到OSS。
图片特点:图片数量1500万张,相对集中在某一两个目录中,小图片偏多(公式、特殊符号)。
上云要求
- 避开 OSS热点分区 问题
- 减少修改html代码src的工作量
- 三天时间
准备工作
阿里云对象存储OSS
- 创建存储空间(Bucket)
创建目标存储空间,用于存放迁移的数据。详情请参见创建存储空间
阿里云ECS
阿里云默认的inode比较小,通过挂载云盘并 修改inode数量 来解决
挂载云SSD云盘
登录阿里云
- 购买按量付费ECS,配置为4核4G,100M按量付费宽带
- 进入ECS实例列表,点击上面购买的ECS实例,进入管理页面
- 左侧菜单选择本实例磁盘
创建云盘, 调整所需容量
挂载云盘,选择上述购买的云盘,确定
ossutil
参考 ossutil官方文档 进行配置
最后执行 ossutil64 ls
查看是否能运行
root@iZwz914pbzq5ymv637xr8qZ:/tmp# ./ossutil64 ls
CreationTime Region StorageClass BucketName
2018-12-12 16:43:36 +0800 CST oss-cn-shanghai Standard oss://cloudshell-cn-shanghai-ccr3tylw9i
2017-12-12 10:10:29 +0800 CST oss-cn-shenzhen Standard oss://ennjoydev
附录
进行图片转存时,您需要确保分区容量和inode容量充足。
- 分区容量
运行
df -h
选择分区容量充足的目录
dev@yinzhuo:/home$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.9M 3.2G 1% /run
/dev/mapper/ubuntu--vg-root 467G 29G 415G 7% /
tmpfs 16G 0 16G 0% /dev/shm
- inode容量
运行
df -i
查看inode使用情况
dev@yinzhuo:/home$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 4100886 528 4100358 1% /dev
tmpfs 4109062 1024 4108038 1% /run
/dev/mapper/ubuntu--vg-root 31121408 252063 30869345 1% /
tmpfs 4109062 1 4109061 1% /dev/shm
若inode不够用, 考虑 修改inode数量
迁移实施
步骤一:文件目录二次处理,并压缩
- 递归遍历文件夹,取出所有文件路径
- 对文件路径进行md5,截取前几位,作为新路径的根目录
- 把文件搬迁到新的目录
提速技巧
- 利用find把所有文件找出来,写到文件
find /文件所在绝对路径 -type f -print > /home/files.log
- 根据自身规划,合理规划目录个数和层级数量,从而降低inode消耗量,减少压缩解压缩工作时间
md5目录得到十六进制字符串,截取前几位。如本次作业截取前三位,共有 16 * 16 * 16 个一级目录
- tar 打包文件时,取消压缩参数,以空间换时间,加快压缩和解压缩速度
本作业属于一次性压缩和解压缩任务,使用 tar -cvf ,而不是 tar -czvf
步骤二:上传压缩文件到ECS,并解压
- 上传压缩文件到ECS
提速技巧
- 先上传压缩包到oss,然后在ecs使用内网下载压缩包
改url域名走内网通道
oss-cn-shenzhen.aliyuncs.com ==> oss-cn-shenzhen-internal.aliyuncs.com/
步骤三:上传图片文件至OSS
- 利用ossutil64将文件推送至oss
ossutil64 cp -rf /图片目录/ oss://ossBucket名称/
提速技巧
- ossutil64 配置endpoint时候, 改内网endpoint
后续操作
上传结束后,先卸载释放云盘,再释放ECS
QA
为什么不使用OSS的 ECS数据迁移到OSS 方案
该方案要提交申请,截止19年4月3号,并不是完全商业化的
为什么不在本地主机,利用ossutil64直接上传到oss
本地上到oss,走的是外网,ECS到oss,走的是内网。速度有差距
是整体打包,还是分成几部分打包
看磁盘容量而定
如果分几部分,后期可用多台ECS并行上传,提高上传效率
图片完全重命名,还是沿用原来的名称
沿用原来名字。因为图片完全重命名,收益小于成本
删除大量文件,速度很慢
可以参考这篇文章
网友评论