前言

当使用了像 OSS、S3 这样的开放对象储存的 PaaS 产品后,一面上体验到了网站核心同附件库分离的安全性、高性能以及免维护的便利性,一面上却又怕在一个厂家的对象储存上扎根了就无法迁移,会被厂家绑架。

如果你的网站大量应用了其他厂家的云服务像 云服务器、云数据库、对象存储要迁移到阿里云的上的话,像云服务器可以通过压缩、解压或者rysnc等同步方式传输,云数据库可以通过 DTS 迁移,那么对象储存,就可以使用阿里云的 OSSImport 工具。

介绍

OssImport 工具可以将本地、其它云存储的数据迁移到OSS,它有以下特点:

  • 支持的丰富的数据源,有本地、七牛、百度BOS、AWS S3、Azure Blob、又拍云、腾讯云COS、金山KS3、HTTP、OSS等,并可根据需要扩展;
  • 支持断点续传;
  • 支持流量控制;
  • 支持迁移指定时间后的文件、特定前缀的文件;
  • 支持并行数据下载、上传;
  • 支持单机模式和分布式模式,单机模式部署简单使用方便,分布式模式适合大规模数据迁移。

阿里集团内部像淘宝、优酷都已经完成了向阿里云的迁移工作,而存储数据的传输就是应用的 OssImport,所以 OssImport 是经历过大量数据迁移考验的,是一款非常成熟的迁移工具。

要求 & 收获

需要使用到的产品:

  1. 任意(包括非阿里云)服务器/ECS (阿里云服务器可以不计推送到 OSS 的流量)
  2. 阿里云 OSS
  3. 其他非阿里云的对象储存产品

通过本文你将讲学到:

  1. 安装 Java 环境
  2. 使用 OSSImport 迁移对象存储文件

教程

安装 Java

OSSImport 的运行需要 Java 1.7 以上版本,所以我们需要在服务器中安装 Java 运行环境。

这里以 Ubuntu 16.04 LTS 为例。 OSSImport 的单机模式支持 Windows 和 Linux 发行版,所以只要安装好了 Java 环境都可以使用 OSSImport。

一、安装依赖

apt-get install python-software-properties software-properties-common

二、添加PPA源,由 webupd8team 团队制作的快速命令行安装 Java 的工具

add-apt-repository ppa:webupd8team/java

三、刷新软件源缓存并安装

apt-get update
apt-get install oracle-java9-installer

四、查看安装后版本

java version

例如:

root@MF8.biz:~/ossimport# java version
Error: Could not find or load main class version
Caused by: java.lang.ClassNotFoundException: version
root@iZuf60ssdog3u50holkx23Z:~/ossimport# java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

下载 OSSImport

上图是迁移架构的图解,OssImport 有 单机模式 和 分布式模式 两种部署方式。对于小于 30TB 的小规模数据迁移,单机模式即可完成。对于大规模的数据迁移,请使用分布式模式。

这里介绍的是 单机模式 的部署,毕竟我暂时也接触不到大于 30TB 的数据迁移嘛。

一、下载 OSSImport

wget http://gosspublic.alicdn.com/ossimport/standalone/ossimport-2.3.1.zip

二、修改配置文件

配置文件有 conf/sys.propertiesconf/local_job.cfg ,前者主要是运行环境的参数,如果数据迁移量特别大建议把内存改大点。 后者是我们迁移的重点。

不同对象储存产品迁移的配置文件模板可以在下面选择:

迁移类型 配置文件 说明
从本地迁移到OSS job.cfg srcPrefix 是以 / 结尾的绝对路径,如 D:/work/oss/data/, /home/user/work/oss/data/
从七牛云存储迁移到OSS job.cfg srcPrefix 和 destPrefix 可以配置为空;如果不为空,请以 / 结尾,如 destPrefix=docs/
从百度bos迁移到OSS job.cfg srcPrefix 和 destPrefix 可以配置为空;如果不为空,请以 / 结尾,如 destPrefix=docs/
从AWS S3迁移到OSS job.cfg S3的 域名列表
从又拍云存储迁移到OSS job.cfg srcAccessKey/srcSecretKey填操作员账号及密码
从腾讯cos迁移到OSS job.cfg srcDomain请按照V4版本填写,如srcDomain=sh ; srcPrefix可以为空,当不为空时候,请以 / 开头和结尾,如 srcPrefix=/docs/
从Azure blob迁移到OSS job.cfg srcAccessKey/srcSecretKey填存储存储账号及密钥;srcDomain填连接字符串中的 EndpointSuffix,如 core.chinacloudapi.cn
从OSS迁移到OSS job.cfg 适用于不同区域之间、不同存储类型之间、不同前缀之间的数据迁移;推荐在ECS上部署,并使用带internal的域名,可以节省流量费用
使用高速通道迁移数据到OSS job.cfg 适用于所有数据源,如果您有高速迁移需求,请提交工单或联系OSS支持人员 1

配置 OSSImport

这里以腾讯云的 COS 的迁移为例来介绍,如何配置。

一、复制模板文件内容,将上面下载的 job.cfg 文件内容复制替换 conf/local_job.cfg 的内容,或者干脆删掉重命名也没问题。

二、是否开启增量传输(可选),如果像论坛、门户这样多用户的网站想不关站迁移以做到用户无感知的话,就需要进行增量传输,也就是传输一遍以后扫描列表看看有没有新增的文件再进行传输。把第 2 行的 isIncremental=false 改为 isIncremental=true,像博客、CMS这种单管理员用户的默认的话不用增量就行。

三、腾讯云的源access key,在 COS 的控制台左侧列表中就有 密钥管理

点击前往 API密钥管理 查看,如果没有就新建一个:

然后修改对应在第 2023 行的内容,改为自己对应的 srcAccessKeysrcSecretKey


#源access key,同步本地文件以及通过http地址同步的不需要填,大部分云平台填写控制台获取的acceess key/accss key id,又拍云填写操作员账号srcAccessKey=AKID******6ZEBKUn6D3mSJFMZ******GA1g#源secrect key,同步本地文件以及通过http地址同步的不需要填,大部分云平台填写控制台获取的secret key/access key secret,又拍云填写操作员密码srcSecretKey=dQ8g******bWn6jInD7vYz******341m

四、修改所在地域34 行的的内容,其实配置文件中默认有介绍:

#7.腾讯云: cos v3版本不需要填写;cos v4版本需要填上bucket所在的区域,比如华南园区填写:gz,华北园区:tj,华东园区:shsrcDomain=sh

例如我的 Bucket 是在 华东 的,那就是 sh 不变了。

五、srcBucket 也就是要迁移的 Bucket 的名称,例如我这个是 qcloud-demo 那就填 qcloud-demo

六、修改源前缀 是不是要迁移 Bucket 下的某个目录了,一般来说还是留空的好,第40行的内容:

#源前缀,默认为空,如果srcType=local,则此目录是本地目录,如果是其他类型,则是源Bucket里需要同步的Object的前缀,注意如果是本地目录,需要完整目录路径(以'/'进行分割并且以'/'结尾,例: c:/example/)
srcPrefix=

像我这样,等号后面啥都不要,留空即可。

七、阿里云的Accesskey4447 行,也就是,建议使用 RAM 实现,可以参考 《使用 AliCloud Duplicity 将服务器文件备份至 OSS》 中设置 RAM 的教程

#目的 access keydestAccessKey=Jwd1******nMnZBs#目的 secret keydestSecretKey=ir8Qt*****jwh5b0eF******xM5QE

八、修改目的endpoint 注意是只要 EndPoint 就行而不是 访问域名,这时候 ECS 的优越性就来了,上传的时候走内网带宽不计流量而且带宽够大。

destDomain=http://oss-cn-hangzhou-internal.aliyuncs.com

九、目的bucket 这个不用多说,就是 OSS 的 Bucket 名称了。

十、destPrefix 和上面第六步的前缀名称对应,如果是空的那么这一步也留空,如果是有目录的那也留目录。

十一、腾讯云 APPID,第 63 行的 APPID 在 https://console.cloud.tencent.com/developer 可以看到

十二、数据校验(可选) ,最后一行,对数据进行校验,防止数据传输发生错误。个人建议用第三种 MD5 校验的方式更可靠一点,不过时间也更长,修改为:

auditMode=detailed

使用 OSSImport

修改好上述文件以后进行保存,然后在解压后的文件夹中运行:

bash import.sh

如果是 Windows Server 就在 cmd.exe 中执行:

console.bat start

注:

Job运行信息,可以查看log/ossimport2.log;
Task的失败原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log;
Task的失败文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list

如果运行出错可以参考:https://help.aliyun.com/knowledge_detail/57110.html 针对反馈结果进行拍错。

可以看到我的文件都已经成功的完成了迁移:

【云计算的1024种玩法】轻松将其他云的对象储存迁移至阿里云OSS相关推荐

  1. 【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站

    前言 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP ...

  2. 【云计算的1024种玩法】云端打造家庭文件备份中心

    摘要: 其实ECS的用途其实非常广泛,不仅仅是用于建设网站,这里介绍的就是使用ECS打造家庭文件备份中心. 我们这里使用的软件是Syncthing,其所有的信息通讯都会用TLS进行加密,Syncthi ...

  3. 【云计算的1024种玩法】打造个人专属网盘

    作为一个学生,需要经常看文献,积累知识,可是论文多了以后就有了论文保存和分类的相关问题.因此需要一个个人网盘存储论文,这样就可以做到通过在线登录个人网盘,实现对网盘文档的在线阅读和管理. 然而在自己的 ...

  4. 【云计算的1024种玩法】回忆经典,用虚拟主机重建复古DZ和无心宠物

    前言 在移动互联网和大型网游没有普及前,很多地方论坛或者专业性论坛都会有一个 -- "无心宠物" 插件来引流和吸引用户,可以说是当下网页游戏的老前辈了.还记得我以前就是为了玩这个游 ...

  5. 【云计算的1024种玩法】自己搭游戏服务器:我的世界Minecraft

    <我的世界>(Minecraft)是一款风靡全世界的 沙盒游戏.玩家可以独自一人或与朋友们一起自由冒险,探索随机生成的世界,创造令人惊叹的奇迹. 玩游戏当然少不了一台"游戏机&q ...

  6. 【云计算的1024种玩法】一.半小时轻松搭建属于自己的Discuz论坛

    半小时轻松搭建属于自己的Discuz论坛 简介: 操作步骤: 一.远程到创建的服务器内部 1.使用远程工具登陆到服务器中 二.安装WEB服务-Apache 2.1 安装Apache服务 2.2 启动h ...

  7. 【云计算的1024种玩法】巧用迁云工具轻松实现服务器迁移到ECS

    摘要: 很多时候如何将服务器迁移到阿里云的ECS成了很多用户上云之路的拦路虎,特别是在本地操作系统中已经有了非常复杂的软件部署这时候迁移上云或者在不同公有云之间迁移就让不少人犹豫不决了. 阿里云提供的 ...

  8. 【Microsoft Azure 的1024种玩法】十五.通过Web浏览器对Auzre VM 服务器运维管理

    [简介] Apache Guacamole是无客户端远程桌面网关.它支持标准协议,例如VNC,RDP和SSH.我们称其为无客户端,因为不需要插件或客户端软件.多亏了HTML5,在服务器上安装了鳄梨调味 ...

  9. 【Microsoft Azure 的1024种玩法】二十六. 在Azure VM中手动部署Windows Admin Center管理平台

    [简介] Windows Admin Center是微软开发的一套可以部署在本地基于浏览器的GUI的工具集平台,其平台可用于管理Windows相关服务器和PC机器,我们可以利用Windows Admi ...

最新文章

  1. 利用.NET的XML序列化解决系统配置问题
  2. Redis在C#中的使用及Redis的封装
  3. mysql更新记录删除_mysql 插入-更新-删除
  4. 计算机应用基础作业北语,北语计算机应用基础作业.doc
  5. Siebel Issue:Siebel菜单栏无法在IE7/8下展开问题解决方案
  6. 用java代码写美国时间_如何衡量Java代码所用的时间?
  7. 传统数仓不够怎么办?不妨看看这个银行的混合数仓实践,建议收藏
  8. 为什么不断做迁移,那是在还技术债
  9. Uva(10305)
  10. 【深度学习】卷积神经网络(Convolutional Neural Network)
  11. java是学习方程!
  12. WinRAR 密码 模板的秘密:
  13. 靠给员工画大饼,一口气创办10家公司身价过亿,吓傻周鸿祎!
  14. 15nm粒径球形纳米金AuNPs-Thrombin修饰R-藻红蛋白/阿霉素的制备过程
  15. 家用监控摄像头意想不到的五条用途
  16. .com 域名三十年回顾:从 1 到 1 亿个,一部互联网的变迁史
  17. frdora10_a8_linux,8楼 【A8】 linux系统的不刻盘的安装 一:.pdf
  18. 2019 SUST暑期集训题解(计算几何(平面几何))
  19. 资深架构师成长路线 -- 架构师筑基必备技能
  20. 计算机自带24种音乐,十分钟教你搞懂24个大小调,学音乐必存

热门文章

  1. 人脸识别技术在支付场景的机遇与挑战
  2. 一图看懂所有机器学习概念
  3. 《百面机器学习》笔记-特征工程相关面试题
  4. SAP MM MI01界面上的‘Freeze book inventory’标记初探
  5. AI寒冬将至?这10大突破点至关重要
  6. 北大副校长詹启敏回应“25篇论文造假”,​PubPpeer到底靠不靠谱?
  7. 【学术快报】韩世辉课题组在《eLife》发表论文揭示群体冲突中复仇的神经生物学机制...
  8. 波士顿动力机器狗量产版首次亮相:先造100台,能当警犬能工地巡逻
  9. 国内5G工程建设面临的6大挑战
  10. 日本机器人实力大盘点,和Atlas的高调刷屏相比,日本机器人的默默崛起更让人忌惮...