阿里云NAS之间迁移实践
本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本文将介绍如何通过LocalFs来进行阿里云NAS之间数据的迁移。
概述
阿里云在线迁移服务支持在阿里云NAS之间进行数据迁移,在线迁移服务把挂载到ECS的NAS当做普通本地文件系统,通过LocalFs源来实现迁移,具体参见LocalFS之间迁移教程。本文介绍了阿里云NAS多种迁移场景下的最佳实践。
迁移过程数据不保证数据一致性,请您务必在迁移任务完成后,校验目的端迁移数据。您在删除源数据前,未校验目的端迁移数据无误,导致数据丢失所引起的一切损失和后果均由您自行承担。
迁移流程图
迁移前准备
申请代理机器(ECS)
单机CPU核数不得低于4核,内存容量不得低于8GB,磁盘可用空间不得低于20GB,详见代理选型。
如果单台ECS的迁移速度低于用户的期望,则可以使用多台ECS:ECS数量 = 期望迁移速度 ÷ 单机迁移速度。
申请ECS时,需要确保源ECS能成功挂载源NAS,目标ECS能成功挂载目标NAS。
手动挂载NAS注意事项
对于NAS之间的迁移,建议源地址和目的地址各创建一个通道。
同一个通道下,如果有多个代理实例,则每个代理对应的ECS上挂载的本地目录必须保持一致。例如,源通道下有两个代理实例,部署在两台ECS上,源NAS在第一台ECS上挂载的本地目录为/mnt/src/,那么在第二台ECS挂载的目录也必须为/mnt/src,以此类推。
NAS的挂载命令,以NFS文件系统为例,推荐使用NFS v3协议挂载,详见挂载NFS协议文件系统:
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt
挂载命令参数说明如下表所示。
参数
描述
通用型NAS:file-system-id.region.nas.aliyuncs.com:/ /mnt
极速型NAS:file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt
表示<挂载地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。
挂载地址:您可以在文件存储NAS控制台文件系统列表页面,单击目标文件系统后的管理,进入挂载使用页面获取挂载地址。更多信息,请参见管理挂载点。
NAS文件系统目录:NAS的根目录(/)或任意子目录(例如:/share),如果是子目录,请您确保子目录是NAS文件系统中实际已存在的目录。
说明极速型NAS的共享目录必须以/share开头,例如:/share、/share/subdir。
当前服务器上待挂载的本地路径:Linux ECS实例的根目录(/)或任意子目录(例如:/mnt),如果是子目录,请您确保子目录已存在。
vers
文件系统版本。
vers=3:使用NFS v3协议挂载文件系统。
vers=4:使用NFS v4协议挂载文件系统。
其中,
minorversion
为协议次版本号,NAS支持的NFS v4协议版本为4.0,因此使用NFS v4协议挂载文件系统时,次版本号为0。
说明通用型NAS:支持NFS v3和NFS v4.0。
极速型NAS:只支持NFS v3,不支持NFS v4。
挂载选项
挂载文件系统时,可选择多种挂载选项,挂载选项使用半角逗号(,)分隔,说明如下:
rsize:定义数据块的大小,用于客户端与文件系统之间读取数据。建议值:1048576。
wsize:定义数据块的大小,用于客户端与文件系统之间写入数据。建议值:1048576。
说明如果您需要更改IO大小参数(rsize和wsize),建议您尽可能使用最大值(1048576),以避免性能下降。
hard:在文件存储NAS暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时会停止并等待至该文件系统恢复在线状态。建议启用该参数。
timeo:指定时长,单位为0.1秒,即NFS客户端在重试向文件系统发送请求之前等待响应的时间。建议值:600(60秒)。
说明如果您必须更改超时参数(timeo),建议您使用150或更大的值。该timeo参数的单位为0.1秒,因此150表示的时间为15秒。
retrans:NFS客户端重试请求的次数。建议值:2。
noresvport:在网络重连时使用新的TCP端口,保障在网络发生故障恢复时不会中断连接。建议启用该参数。
重要不建议使用soft选项,有数据一致性风险。如果您要使用soft选项,相关风险需由您自行承担。
避免设置不同于默认值的任何其他挂载选项。如果更改读或写缓冲区大小或禁用属性缓存,可能会导致性能下降。
在使用NAS的挂载命令和参数进行挂载后,务必确保NAS成功挂载到指定目录,并确保数据迁移期间挂载的有效性,否则可能导致数据写入本地磁盘而非NAS。如有挂载相关问题,请咨询NAS的技术支持。
迁移实施教程
阿里云NAS之间的迁移与本地文件系统(LocalFs)之间的迁移等同,详细迁移教程可参考LocalFS之间迁移教程。
任务迁移的实际速度受多种因素影响,包含网络、文件系统本身的性能限制和目录结构等因素,如网络链路长度和时延、NAS服务端读写处理速度、文件是否集中在单个目录下、源目录数量及层级深度、平均文件大小等。以上步骤计算得到的ECS数量仅供参考,不保证一定能达到期望的迁移速度。
迁移示例
示例一:源NAS和目的NAS位于相同的地域和VPC
假设用户的源NAS实例所在地域为cn-beijing,挂载点的VPC网络为vpc-nas,交换机为vsw-nas,源NAS下共有200TB数据量待迁移。目的NAS实例所在地域同样位于cn-beijing,挂载点的VPC网络同样为vpc-nas,交换机同样为vsw-nas,文件系统数据量为0。用户期望的迁移速度为2Gbps。
需要按照以下步骤操作:
确定代理机器(ECS)的硬件配置,例如确认单机ECS规格为ecs.c7.xlarge,具有4核CPU和8GB内存,基础带宽3Gbps。
计算每个通道所需的ECS数量:单个通道ECS数量 = 期望迁移速度 ÷ 单机迁移速度 = 2Gbps ÷ 3Gbps = 0.6 ≈ 1台。因此,需要为源NAS和目的NAS各申请1台ECS。
在ECS控制台上,分别为源NAS和目的NAS各申请1台ecs.c7.xlarge规格的ECS。地域选择为北京,VPC网络和交换机分别选择vpc-nas和vsw-nas。假设两台ECS实例名称分别为ECS-1和ECS-2。
以管理员身份登录至ECS-1,并创建/mnt/src/目录,然后将源NAS挂载至该目录;随后以管理员身份登录至ECS-2,并创建/mnt/dest/目录,将目的NAS挂载至该目录。
重要务必确保NAS成功挂载到指定目录,并确保数据迁移期间挂载的有效性。
在北京控制台地域,根据LocalFS之间迁移教程进行迁移。
创建1个源通道。创建1个源代理,网络类型选择专线/VPN(VPC),并关联到该源通道。将该代理部署到ECS-1上。
创建1个目的通道。创建1个目的代理,网络类型选择专线/VPN(VPC),并关联到该目的通道。将该代理部署到ECS-2上。
为源NAS创建源地址时,关联到源通道,并选择源代理。待迁移目录参数填写为/mnt/src/。
为目的NAS创建目的地址时,关联到目的通道,并选择目的代理。待迁移目录参数填写为/mnt/dest/。
使用地址创建任务。
示例二:源NAS和目的NAS位于同一地域,但属于不同的VPC
假设用户的源NAS实例所在地域为cn-beijing,挂载点的VPC网络为vpc-nas-1,交换机为vsw-nas-1,源NAS下共有200TB数据量待迁移。目的NAS实例所在地域同样位于cn-beijing,挂载点的VPC网络为vpc-nas-2,交换机为vsw-nas-2,文件系统数据量为0。用户期望的迁移速度为2Gbps。
需要按照以下步骤操作:
确认代理机器(ECS)的硬件配置,例如确定单台ECS规格为ecs.c7.xlarge,包括4核CPU和8GB内存,基础带宽为3Gbps。
计算每个通道所需的ECS数量:单个通道ECS数量 = 期望迁移速度 ÷ 单机迁移速度 = 2Gbps ÷ 3Gbps = 0.6 ≈ 1台。因此,需要为源NAS和目的NAS各申请1台ECS。
在ECS控制台上,需为源NAS申请1台ecs.c7.xlarge规格的ECS,地域选择北京,VPC网络和交换机分别选择vpc-nas-1、vsw-nas-1,实例命名为ECS-1。同样地,需为目的NAS申请1台ecs.c7.xlarge规格的ECS,地域选择北京,VPC网络和交换机分别选择vpc-nas-2、vsw-nas-2,实例命名为ECS-2。
以管理员身份登录ECS-1,创建/mnt/src/目录,并将源NAS挂载到该目录;然后以管理员身份登录ECS-2,创建/mnt/dest/目录,并将目的NAS挂载到该目录。
重要务必确保NAS成功挂载到指定目录,并确保数据迁移期间挂载的有效性。
在北京控制台地域,根据LocalFS之间迁移教程进行迁移。
创建1个源通道。创建1个源代理,网络类型选择专线/VPN(VPC),并关联到该源通道。将该代理部署到ECS-1上。
创建1个目的通道。创建1个目的代理,网络类型选择专线/VPN(VPC),并关联到该目的通道。将该代理部署到ECS-2上。
为源NAS创建源地址时,关联到源通道,并选择源代理。待迁移目录参数填写为/mnt/src/。
为目的NAS创建目的地址时,关联到目的通道,并选择目的代理。待迁移目录参数填写为/mnt/dest/。
使用地址创建任务。
示例三:源NAS和目的NAS位于不同的地域和不同的VPC
假设用户的源NAS实例所在地域为cn-beijing,挂载点的VPC网络为vpc-nas-1,交换机为vsw-nas-1,源NAS下共有200TB数据量待迁移。目的NAS实例所在地域位于cn-hangzhou,挂载点的VPC网络为vpc-nas-2,交换机为vsw-nas-2,文件系统数据量为0。用户期望的迁移速度为5Gbps。
需要按照以下步骤操作:
由于NAS跨地域,无法直接在北京的ECS上挂载杭州的NAS,需要先通过阿里云云企业网实现跨地域挂载访问,详见通过云企业网实现跨账号跨地域挂载NAS。
确定代理机器(ECS)的硬件配置,例如确认单机ECS规格为ecs.c7.xlarge,具有4核CPU和8GB内存,基础带宽3Gbps。
计算单个通道所需的ECS数量:单个通道ECS数量 = 期望迁移速度 ÷ 单机迁移速度 = 5Gbps ÷ 3Gbps = 1.6 ≈ 2台。因此,需要为源NAS和目的NAS各申请2台ECS。
在ECS控制台上,为源NAS申请2台ecs.c7.xlarge规格的ECS。地域选择北京,VPC网络和交换机分别选择vpc-nas-1、vsw-nas-1,假设实例名称分别为ECS-Src1、ECS-Src2。为目的NAS申请2台ecs.c7.xlarge规格的ECS,地域选择北京,假设实例名称分别为ECS-Dst1、ECS-Dst2。
以管理员身份依次登录到ECS-Src1、ECS-Src2,并创建/mnt/src/目录,在该目录下挂载源NAS;随后以管理员身份分别登录到ECS-Dst1、ECS-Dst2,创建/mnt/dest/目录,将目的NAS挂载到该目录下。
重要务必确保NAS成功挂载到指定目录,并确保数据迁移期间挂载的有效性。
在北京控制台地域,根据LocalFS之间迁移教程进行迁移。
创建1个源通道。创建2个源代理,网络类型选择专线/VPN(VPC),并关联到该源通道。将2个代理分别部署到ECS-Src1、ECS-Src2上。
创建1个目的通道。创建2个目的代理,网络类型选择专线/VPN(VPC),并关联到该目的通道。将2个代理分别部署到ECS-Dst1、ECS-Dst2上。
为源NAS创建LocalFS地址时,关联到源通道,并选择源代理。待迁移目录参数填写为/mnt/src/。
为目的NAS创建目的地址时,关联到目的通道,并选择目的代理。待迁移目录参数填写为/mnt/dest/。
使用地址创建任务。
迁移常见问题
必须要以管理员身份启动代理进程
源数据地址关联的代理进程需要具有读取源NAS待迁移目录下所有文件和子目录的权限,否则将导致读取失败,从而导致迁移失败。
目的数据地址关联的代理进程应具备对目的NAS待迁移目录下所有文件和子目录的读写权限,否则可能导致读写失败,从而引发迁移失败的情况。
文件系统的目录个数(层级)较多,每个(层)目录所含文件较少,可能会导致扫描速度变慢的问题,例如:在源NAS总文件数均为100万的情况下,若这些文件分布在50万个目录下,其扫描速度将会比分布在1万个目录下要慢。
在同一个目录下平铺超过20万个文件的情况下,由于受限于代理机器的操作系统内核和NAS服务的并发性能限制,可能会导致迁移速度较慢。
单个目录的体量较大或该目录正在被修改,可能会导致目录列举操作出现卡顿或无响应,从而导致迁移任务进度停滞,解决方案见性能说明FAQ。