场景介绍
因SFS容量型文件系统已停售,详见公告,且后续SFS容量型服务不再更新,无法保障SFS容量型文件系统的可用性及SLA,继续访问有业务中断和数据丢失的风险。为了保障您的业务连续性,建议您尽快启动业务迁移,将SFS容量型文件系统中的数据迁移至SFS Turbo文件系统中,本节主要介绍如何使用fpart工具迁移SFS容量型文件系统的数据到SFS Turbo文件系统。
方案概述
本次使用fpart工具将SFS容量型文件系统迁移至SFS Turbo文件系统,迁移目标是高效、安全地完成数据迁移,同时确保数据完整性和一致性,整个流程包含全量迁移(业务无影响)、第一次增量迁移(业务无影响)、解除SFS容量型文件系统挂载(需保持业务中断)、第二次增量迁移(保持业务中断),切换挂载点(保持业务中断)。
约束与限制
此方案仅适用于使用Linux系统的云主机进行数据迁移。
Linux系统云主机、SFS容量型文件系统和SFS Turbo文件系统需在同一VPC下。
使用CIFS协议或者需要挂载到Windows上的SFS容量型文件系统暂时无法迁移。
如果是CCE集群使用,CCE集群需要升级到1.15+版本,且everest插件版本要高于1.1.13才能使用SFS Turbo。
方案架构
图 SFS容量型文件系统迁移至SFS Turbo文件系统流程图
资源规划
本章节介绍案例中使用的资源信息。具体如下表所示:
表 资源规划
| 产品 | 配置示例 | 说明 |
| 弹性云主机ECS | 规格:8vCPUs | 16GiB 操作系统:Linux 区域:华北 VPC名称:VPC1 | 已创建/mnt/src和/mnt/dst的目录 |
准备工作
创建SFS Turbo文件系统,VPC选择与SFS容量型文件系统相同的VPC。如果没有VPC,则在同区域创建虚拟私有云VPC,然后再去创建SFS Turbo文件系统。
如果有可用的Linux云主机可以使用则跳过该步骤,如果没有请购买一个Linux云主机,建议购买机型8U或16U机型,配置ECS的VPC,保证ECS可以正常访问SFS容量型文件系统和SFS Turbo文件系统。
在Linux云主机中分别执行以下命令安装fpart工具。CentOS系统使用yum安装(安装fpart前需先安装EPEL源),Ubuntu系统使用apt安装。
#CentOS系统 yum install -y epel-release yum install -y fpart #Ubuntu系统 apt-get install -y fpart在Linux云主机中分别执行以下命令创建挂载地址:
mkdir /mnt/src mkdir /mnt/dst从控制台获取SFS容量型文件系统和SFS Turbo文件系统的挂载地址,分别执行挂载命令将SFS容量型文件系统和SFS Turbo文件系统分别挂载到/mnt/src和/mnt/dst目录下(挂载目录名称必须是/mnt/src和/mnt/dst):
mount -t nfs -o vers=3,timeo=600,nolock SFS容量型挂载地址 /mnt/src mount -t nfs -o vers=3,timeo=600,nolock SFS Turbo挂载地址 /mnt/dst
操作步骤
步骤1:全量迁移:SFS容量型文件系统中的文件全量复制到SFS Turbo文件系统中。使用控制台提供的VNC方式登录,执行以下命令进行数据同步:
fpsync -n 500 -f 500 -o "-lptgoDvu --numeric-ids" -v /mnt/src/ /mnt/dst/说明
n:并行的拷贝线程数量。
f:每个线程拷贝的文件数量。
o:rsync的拷贝配置选项,具体说明可参考 rsync 命令。
v:输出详细日志。
如果文件量比较大,可以对/mnt/src下面的子文件夹并行执行同步命令。
n和f参数可以根据文件和目录的结构进行相应调整。
默认运行的日志文件保存在/tmp/fpsync下,其中log目录为任务的运行日志,parts目录为文件分区的日志,queue目录为执行配置,work目录为执行的拷贝命令。可基于此日志观察任务的运行状态。
步骤2:第一次增量迁移:执行下方命令,将全量同步后的增量数据写入到SFS Turbo文件系统中。
fpsync -n 500 -f 500 -o "-lptgoDvu --numeric-ids" -v /mnt/src/ /mnt/dst/注意
记录本轮开始和结束时间,约等于以下步骤中客户需要中断业务的时间。
步骤3:解除SFS容量型文件系统挂载:为了避免不断有新的数据写入,需要在同步增量数据之前,在所有ECS和容器上停止使用源文件系统的业务应用。
注意
请务必确保所有执行业务的云主机(云容器)节点解除挂载SFS容量型文件系统,否则后续迁移完可能有SFS容量型文件系统和SFS Turbo文件系统数据不一致的问题。
请不要在执行迁移的ECS机器上解除SFS容量型文件系统的挂载。
ECS和CCE挂载方式不同,请按场景选择。
本步骤执行过程中需保证业务中断。
ECS挂载场景:
登录到挂载SFS容量型文件系统的云主机。
执行以下命令解除SFS容量型文件系统的挂载:
umount -f挂载目录
步骤4:第二次增量迁移:执行以下命令,将第一轮增量迁移后到中断业务期间产生的增量数据同步到SFS Turbo文件系统中。本轮同步后,SFS容量型和SFS Turbo文件系统中的数据即可完全一致。
fpsync -n 500 -f 500 -o "-lptgoDvu --numeric-ids" -v /mnt/src/ /mnt/dst/注意
保证SFS容量型文件系统和SFS Turbo文件系统中的数据完全一致。
本步骤执行过程中需保证业务中断。
步骤5:挂载SFS Turbo文件系统:解除挂载SFS容量型文件系统并重新挂载到SFS Turbo文件系统,业务切到SFS Turbo文件系统上运行。
ECS挂载场景:
登录到挂载SFS容量型文件系统的云主机,执行以下命令解除SFS容量型文件系统的挂载:
umount -f挂载目录执行以下命令挂载SFS Turbo文件系统:
mount -t nfs -o vers=3,nolock SFS Turbo文件系统挂载地址/mnt/dst
注意
请务必确保挂载参数和目录正确,否则可能会影响业务。
步骤6:客户可恢复业务,校验业务是否正常。
步骤7:观察一段时间业务运行情况后,释放SFS容量型文件系统资源,避免产生额外费用。