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

2019-07-03 18:52:14 浏览数 (2)

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

为方便用户迁移,腾讯云建立了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.myzijiebao.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.myzijiebao.com/bkce_src-5.0.2.tar.gz

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

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

Connecting to msp-test-src-1256125716.cos.ap-guangzhou.myzijiebao.com (msp-test-src-1256125716.cos.ap-guangzhou.myzijiebao.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.myzijiebao.com/bkce_src-5.0.2.tar.gz

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

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

Connecting to msp-test-src-1256125716.cos.ap-guangzhou.myzijiebao.com (msp-test-src-1256125716.cos.ap-guangzhou.myzijiebao.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的控制台上查看任务执行状态和执行结果

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

0 人点赞