专栏首页腾讯云迁移服务平台团队MSP迁移实践-对象存储迁移篇
原创

MSP迁移实践-对象存储迁移篇

常见的迁移场景中,通常用户需要先了解源和目标两端的访问方法,自己开发脚本实施迁移。这使得迁移的难度高、周期长,并且由于迁移并非用户熟悉的常规操作,经常会遇到意料之外的问题。

为方便用户迁移,腾讯云建立了MSP迁移服务平台,目标是通过全界面化的操作为用户提供快速简便和高效的迁移能力。

因为各类迁移场景下需要关注的细节和具体操作会有差异,因此我们将针对不同的场景提供操作指引,帮助用户进一步了解和掌握这个平台工具的使用。

本篇针对对象存储迁移场景中的不同情况进行分析,说明如何针对不同的迁移类型和条件,基于MSP平台建立最合适的迁移方案并实施迁移。

一、迁移需求和条件确认

客户期望的启动时间、结束时间

何时能够启动和完成迁移往往与切量计划相关,针对时间的要求,制定方案时会权衡是否需要适当放宽成本,或者临时调整资源。

计划迁移的数据量

数据量的大小直接影响到对迁移资源的需求,并且影响迁移时间。

计划迁移的数据的特征

因为影响对象存储迁移速度的除了带宽外,还有存储桶的最高并发访问限制(QPS),平均文件大小越小,会因频繁访问而触达QPS上限,即:大文件迁移的瓶颈是带宽,小文件迁移的瓶颈是QPS。

是否需要增量迁移

因为迁移前后需要保障文件的完整性和一致性,如果迁移过程中迁移源有持续增加的新文件,需要根据客户的具体情况针对这些增量文件制定双写或增量迁移方案

是否存在低频、冷数据

如果迁移源存在低频和冷数据,一是需要确认是否需要进行预热(否则冷数据可能无法迁移),二是需要确认迁移到目标云之后是否需要保持低频和冷数据的状态(存储类型影响到存储成本)

客户的迁移源、目标是否存在正在服务的业务? 业务的波峰波谷是怎样的?

无论是直接访问对象存储或是通过URL进行访问,如果是在迁移生产环境的数据,迁移所产生的QPS或流量,都有可能对线上业务产生影响: 1)对象存储访问:迁移产生的QPS压力与业务QPS叠加可能超出数据桶的QPS上限,造成访问文件失败,业务出现故障; 2)URL(CDN)访问:迁移产生的高带宽有可能与业务流量峰值叠加,产生高额的CDN成本; 因此,迁移前需要请客户提供业务流量曲线和源存储云厂商的QPS上限能力,以便评估是否需要限速或采取错峰迁移方案。

客户是否已有专线或计划拉通专线?带宽多大?

如果客户因业务所需已有可复用的专线、或迁移量巨大希望避免通过公网迁移产生流量成本,那么需要评估专线迁移的可行性,结合数据量计算专线带宽需求。

二、迁移方案制定

根据收集到的客户迁移需求和条件,我们可以针对性的制定迁移方案。

2.1 确定迁移模式

根据客户是否有专线(或者根据迁移的预估成本判断是否需要拉专线)来选择模式

2.1.1 常规的通过公网访问对象存储或URL的拉模式

因拉模式会产生公网流量,给客户提供方案时需要讲预估的流量成本与客户进行确认

2.1.2 客户有专线的情况下采用推模式

2.2 确认增量迁移方案

1.1 方案一:客户先进行双写改造,改造完成后进行存量迁移

优点:业务不中断

缺点:客户侧需要有开发工作量

1.2 方案二:先进行一次存量迁移,迁移完成后进行业务切量,切量完成后进行二次增量迁移

优点:客户无需开发

缺点:需要切量到二次增量迁移过程中的数据不一致对业务是否产生影响

2.3 确认迁移数据量和资源需求

如果客户迁移任务时间紧数据量大,需要相应调整方案中的资源(专线带宽、后台服务器数量等)

三、迁移实施

3.1 公网拉模式迁移实施步骤(MSP操作说明)

公网拉模式迁移是非常简单的全托管模式,在MSP控制台上,新建迁移任务,按照迁移需求情况填写即可。

所有参数填写完成后,按下“新建并启动”按钮,迁移即会在后台自动进行。

3.2 专线推模式迁移实施步骤(MSP操作说明)

专线推模式迁移需要准备专线以及在用户侧部署和启动Agent工具,略微繁琐。

3.2.1 专线准备确认

Agent模式通过专线迁移,需要确保源云侧主机上使用COS SDK可经过专线访问COS,迁移前务必确认,以免产生外网流量。

3.2.2 迁移限速

MSP迁移工具提供了限制QPS(对象存储模式)和带宽限速(URL列表模式),但均为粗略控制,存在较大误差。在使用Agent迁移的情况下,建议在迁移服务器上进行限速操作,而在MSP中创建任务时选择“不限速”

1)查看网卡

[root@VM_10_12_centos ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 10.0.10.12 netmask 255.255.255.0 broadcast 10.0.10.255

ether 52:54:00:bb:49:0f txqueuelen 1000 (Ethernet)

RX packets 13361 bytes 19400520 (18.5 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 1001 bytes 67101 (65.5 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

loop txqueuelen 1000 (Local Loopback)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

2)限速前测试

[root@VM_10_12_centos ~]# wgegt https://msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com/bkce_src-5.0.2.tar.gz

-bash: wgegt: command not found

[root@VM_10_12_centos ~]# wget https://msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com/bkce_src-5.0.2.tar.gz

--2019-04-08 10:47:41-- https://msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com/bkce_src-5.0.2.tar.gz

Resolving msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com (msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com)... 211.159.131.23, 211.159.131.24, 211.159.130.21, ...

Connecting to msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com (msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com)|211.159.131.23|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 1574565066 (1.5G) [application/octet-stream]

Saving to: ‘bkce_src-5.0.2.tar.gz’

5% [========> ] 86,299,969 14.2MB/s eta 94s ^C

3)安装iproute工具(默认centos 7.x已安装,此步可跳过)

[root@VM_10_12_centos ~]# yum -y install iproute

Loaded plugins: fastestmirror, langpacks

Determining fastest mirrors

Package iproute-4.11.0-14.el7.x86_64 already installed and latest version

Nothing to do

4)限速

[root@VM_10_12_centos ~]# /sbin/tc qdisc add dev eth0 root tbf rate 50kbit latency 50ms burst 10000

如果需要限速10M,可以将50kbit改为10Mbit

5)限速后测试

[root@VM_10_12_centos ~]# wget https://msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com/bkce_src-5.0.2.tar.gz

--2019-04-08 10:49:15-- https://msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com/bkce_src-5.0.2.tar.gz

Resolving msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com (msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com)... 139.199.41.140, 119.29.47.254, 211.159.130.20, ...

Connecting to msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com (msp-test-src-1256125716.cos.ap-guangzhou.myqcloud.com)|139.199.41.140|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 1574565066 (1.5G) [application/octet-stream]

Saving to: ‘bkce_src-5.0.2.tar.gz.1’

0% [ ] 155,313 359KB/s

6)解除限速

[root@VM_10_12_centos ~]# /sbin/tc qdisc del dev eth0 root tbf

3.2.3 迁移源准备(以阿里云为例下操作)

3.2.3.1 准备好可以访问源数据桶的密钥对

在阿里云控制台右上方,选择accesskeys

此处的AccessKey/Acdess Key Secret,需要在创建迁移任务的时候用到

3.2.3.2 建立用于迁移的临时服务器(主控服务器)

因为建立迁移任务时需要填写Agent主控服务器的IP地址(内网IP地址,用于与迁移集群中的worker服务器通信),因此在建立迁移任务之前,先在阿里云准备一台服务器。操作系统CentOS 7.x 64位

如使用专线迁移,服务器必须配置为可通过专线直接访问COS。

例如,在阿里云上先创建一台主控服务器,内网IP地址172.19.97.94

3.2.4 建立迁移任务(本节在腾讯云迁移目标账号下操作)

正则表达式,仅迁移文件名中不包含下划线的文件:^((?!_).)*$

所有参数填写完毕后,按下“新建并启动”按钮,在Agent模式下任务已创建成功但并未运行,需要按以下步骤在阿里云主机上手工启动Agent。

3.2.5 启动Agent(在master主控服务器上操作)

1)将Agent工具解压到合适的目录(目录无特殊要求)

2)修改配置文件

./agent/conf/agent.toml

# 此处填写腾讯云用于迁移的云API密钥对 secret_id = '此处填写腾讯云API密钥AccessKey' secret_key = '此处填写腾讯云API密钥SecretKey'

3)启动Agent

# chmod +x ./agent/bin/agent

# cd agent/bin

#./agent

必须在bin目录中启动agent程序(否则会找不到配置文件)

Agent会定时自动从MSP平台获取任务的详细配置信息,如果创建多个迁移任务无需重复启动Agent。

3.2.6 扩充迁移集群(增加worker服务器)

Agent模式支持分布式迁移(多服务器协同),如果希望进一步提高迁移速度,在有可用带宽的情况下可以增加worker服务器加入到迁移:

  1. worker服务器必须与master服务器互通
  2. 如使用专线迁移,worker服务器必须配置为可通过专线直接访问COS

下例中,增加了一台服务器“workerA”,与master内网互通

worker服务器可以是任意配置,但建议与master保持一致。部署和启动Agent的方式与master服务器完全相同(同样需要修改agent.toml中的secret_id和secret_key),因新建任务的时候已经指定了master服务器,新加入的agent均被作为worker节点与master服务器通信获得任务。

Worker服务器可以随时加入迁移集群,但建议创建任务之前将所有的worker服务器与master一同创建并配置和启动Agent,以便master启动任务时可以更有效的进行分片调度。

四、迁移后的结果检查

当迁移任务建立后,可以在MSP的控制台上查看任务执行状态和执行结果

如果任务执行中有失败的文件(因网络原因等),可以在任务执行完成后直接点击“重试失败任务”,或者下载“失败文件列表”进一步确认问题的原因。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯云对象存储COS之间的数据如何进行迁移

    全托管公网迁移模式中,无需自主部署 Agent,任务创建之后自动化执行。腾讯云 COS 间迁移时 MSP 将通过内网拉取源对象存储桶数据并保存到目标对象存储桶,...

    云存储
  • 图文案例简述云迁移(一)

    现在云计算的服务,不仅仅是产品的竞争,对于政府企业等大型客户更关注服务,而云迁移则是服务中的关键环节。以后将简述云迁移的一些门道。

    希望的田野
  • 腾讯云文件迁移使用指南

    迁移上云的时候,会有迁移上腾讯云对象存储(cos)的需求,目前的迁移方案有两种:1、cos提供的COS Migration工具;2、客户自己利用友商和cos的a...

    Roy@Cloud
  • 姚俊军:如何设计数据迁移方案

    好的迁移方案设计不仅能够节省迁移成本,还能帮助用户拥有更加完备的异地部署和灾备能力。腾讯云技术专家姚俊军在现场讲解了如何设计数据迁移方案,还和大家分享了两个数据...

    云加社区专栏
  • 基于混合集成学习算法的热迁移超时预测模型

    在云计算资源管理中,热迁移是实现资源配置的重要手段,常常会因为多种场景需要发起热迁移:例如资源调配,母机负载均衡以及运维人工热迁移等场景。

    腾讯云计算产品团队
  • 你所不知道的 wechat-vfs —— 浅谈 Android 应用数据存储方案设计

    一、前言 Android 应用的数据存储问题也是一个被讨论多年的老话题了,伴随 Android 从诞生到现在的 Android 10。 时至今日还有很多问题...

    微信终端开发团队
  • 数据库迁移常见的四种方法

    数据的迁移就像搬家,基本每个用过手机的人都做过数据迁移,将旧智能手机中的电话号码、照片、微信聊天记录导入到另一台新的智能手机。因此数据迁移并不神秘。在上云的过程...

    希望的田野
  • 迁移上公有云的简单五种方法

    购买了云服务商的云计算资源,就像拿到了结婚证一样高兴,到手的云资源如何使用呢?将原有业务的数据迁移上云,成为麻烦事,就像”结婚后的第一天",生活总得回归平淡。而...

    希望的田野
  • 如何开始上云迁移

      在企业里,许多上云迁移成功的案例,都是先从一些较为简单的应用开始迁移,然后再一步步把更多的应用和数据迁移到云,不可能同时把所有的应用都一下迁移过去。

    孙杰
  • Datapump数据迁移的实践总结 (r9笔记第60天)

    虽说实践了不少的数据迁移项目,但是从我的感触来说,一些很细小的差别就会造成整个数据迁移方案的大不同。数据是系统的核心命脉,所以对于DBA来说,保证数据...

    jeanron100

扫码关注云+社区

领取腾讯云代金券