如何实现客户对象存储数据迁移到腾讯云COS

2018-10-25 12:06:44 浏览数 (1)

背景描述:

在云计算客户的拓展过程中,会面临客户的各种需求。其中最常见的需求包括,如何在云计算上构建客户的业务系统,搭建基础架构;另外一个就是如何实现客户数据的高效存储,包括存储新产生的用户数据,以及将现有的用户数据平滑迁移到云计算上来,提供更方便,更快捷的访问。

对比业界标杆,我们知道,亚马逊S3服务从诞生开始,受到客户的喜爱,是当前AWS上使用最广的服务之一。今天,介绍一下,多种客户场景下,如何将客户现有的数据迁移到腾讯云COS(Cloud Object Storage)。

场景描述:

对象存储(Cloud Object Storage,简称:COS)是腾讯云提供的面向非结构化数据,支持 HTTP/HTTPS 协议访问的分布式存储服务,它能容纳海量数据并保证用户对带宽和容量扩充无感知,可以作为大数据计算与分析的数据池。腾讯云 COS 提供网页端管理界面、多种语言的 SDK 以及命令行和图形化工具,并且完全兼容 S3 的 API 接口,方便用户直接使用社区工具和插件,COS 还可以和其他云产品结合,比如利用 CDN 的全球节点提供加速服务,利用数据万象的图片处理能力提供一站式图片解决方案等。

通过在项目过程中遇到的场景,我们也做了一些常用的场景总结,从数据的源地址,容量以及存储迁移的要求来看,我们可以遇到多种场景:

根据迁移源地址来考虑:

  1. 迁移的数据来自于客户的IDC。
  2. 迁移的数据来源于其它公有云厂商。

迁移的数据用途和迁移要求来分:

1.迁移的数据都是离线数据,对实时访问没有大的要求,基本无更新。

2.迁移的数据在实时更新,不希望有数据访问的中断。

迁移场景迁移场景

迁移方式描述:

  1. 使用对象存储迁移工具,来实现从客户现有IDC中数据的同步

如下图方案一~方案四中,使用腾讯云的对象存储迁移工具,来实现从友商或者IDC上实现现有对象存储的迁移,通过在CVM和友商/IDC计算节点上部署cos migration工具,来实现数据同步到COS,具体COS Migration工具的使用方式参考:https://cloud.tencent.com/document/product/436/15392

方案一:

方案二:

方案三:

方案四:

2.使用CDM工具,来实现从客户现有IDC中数据的同步

有些场景下,客户现网网络环境较差,公网带宽不足,存储的数据量也非常大,那么在这个场景下,可以使用离线邮寄存储阵列,实现用户数据的迁移,这个服务就是云数据迁移(CDM),参考https://cloud.tencent.com/product/cdm

但是该服务使用的时候,需要了解客户容量,现有CDM设备存货,客户现有运维能力,寄货周期等。所以在使用前综合评估一下。

常见的案例有深圳某手机厂商,以及深圳某文娱厂商,数据量级在160T左右。

3.CDN回源的方式来实现数据同步

操作步骤:

①用户继续访问原有域名,例如a.b.com

②腾讯云上创建对应的存储Bucket,用来存储迁移过来的文件。

③在创建的Bucket设置回源地址为七牛上的域名。

④本地host绑定a.b.com的解析记录到腾讯云上的CDN节点域名或者COS(刚才的COS Bucket开启了CDN的话,就用CDN的cname记录)。

⑤本机测试访问a.b.com某些URL,多次验证测试是否能够正常访问。

⑥在DNS上,灰度切量用户的解析记录到腾讯云CDN(COS),用户继续访问a.b.com/xx/yy.jpg(例子),DNS生效前,如果本地有DNS缓存,用户还是访问原有的域名,如果本地DNS已经生效,是最新的DNS记录,会CNAME到腾讯云CDN(COS)节点,COS发现本地没有记录,会回源到源站,将请求返回给用户的同时,将数据存储到本地COS的bucket中。

⑦用户持续访问,直至命中所有的数据,都缓存到腾讯云COS。

⑧新的用户数据建议写入到腾讯云COS。

配置说明:

限制说明:

时间较长,如果有些文件长时间没有用户访问,则这些文件无法同步到COS,因此建议配合后面数据迁移工具来使用。

4.实时数据读写,对迁移要求较高,不中断

应用场景:

①用户使用友商对象存储(例如七牛,阿里等)进行图片或者文件的上传保存,例如电商或者一些移动app(相册等),集成友商SDK,上传数据。

②上传数据后,最终用户通过CDN或者公网的URL访问这些文件。

客户要求:

①客户要求对现有业务冲击小,能够尽量平滑迁移,不影响用户的业务。

②客户深度集成友商的SDK或者API,存在数据写入,同时存在用户访问。

关键步骤:

①T0时刻:获取T0时刻在友商URL清单L0,持续从友商将L0的数据拷贝到COS

②T0时刻:同时开启用户侧的双写和双读,持续的将数据写入友商对象存储和COS(需要客户业务改造)。

③T1时刻:完成L1的数据传输,业务观察正常后,关闭到友商/IDC的写,完成迁移

第一步:收集现有CDN/存储逻辑

评估现有环境:

①现有存储容量,文件个数:以便权衡工具在迁移的时候的速度,例如都是小文件,那么迁移速度会相对较慢。

②计费方式,带宽还是流量:峰值带宽多少,如果持续超过峰值带宽,会为客户额外增加成本,所以需要选择低峰时间段复制,同时控制复制速度,节省成本,如果增加额外成本,可以和商务沟通是否有补贴。

③访问域名:有些厂商,例如七牛对象存储的域名不做生产用,会限速,访问必须使用CDN加速域名。

评估现有环境:

①现有存储容量,文件个数:以便权衡工具在迁移的时候的速度,例如都是小文件,那么迁移速度会相对较慢。

②计费方式,带宽还是流量:峰值带宽多少,如果持续超过峰值带宽,会为客户额外增加成本,所以需要选择低峰时间段复制,同时控制复制速度,节省成本,如果增加额外成本,可以和商务沟通是否有补贴。

③访问域名:有些厂商,例如七牛对象存储的域名不做生产用,会限速,访问必须使用CDN加速域名。

第二步:增量数据双写逻辑改造

推动客户的写逻辑改造,可以两个对象存储:

①在服务器端已经考虑解耦,有个写模块,来屏蔽多家差异,这样只需要基于COS的API/SDK来扩展一个模块即可,这样很快可以改造完。

②也存在与一家SDK绑死写到客户端逻辑,服务器端没有单独的上传模块,那只能推客户改造,周期长点。

举例:Java SDK文档参考:

https://cloud.tencent.com/document/product/436/10199

第三步:使用工具,拷贝存量数据

获取存量文件的URL List(双写开始时间点),通过工具实现复制:

启用MSP迁移服务:

设置源AK,SK

设置源URL列表和目的Bucket

设置复制时间段等等。

参考下图:

典型客户迁移案例说明:

用户现状:

①目前OSS存量323T,总文件数为29491911个

②CDN峰值40G,业务低峰期在0点~5点(10G以下)

文件同步过程:

①新增文件通过服务器端双写,同时写入友商OSS和腾讯云COS,需要客户端改造,改造周期两周。

②存量文件需要通过错峰从CDN拉取,拉取时间为0点到5点,拉取峰值按照10G来计算,每天拉取22T,预计需要20天拉完。

③COS配置镜像回源方式,预热部分URL

④切部分量到腾讯云CDN,观察调优。

0 人点赞