全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

KS3和KPFS之间的数据迁移

最近更新时间:2025-03-03 12:07:15

本文介绍如何通过juicefs sync工具实现金山云对象存储KS3和文件存储KPFS(容量型&标准型)之间的数据双向迁移,包括将您金山云账号下的KS3存储桶数据同步至KPFS文件系统 以及 将KPFS文件系统数据同步至KS3存储桶。

费用说明

  1. 如果您使用云服务器或裸金属服务器作为数据传输的中转节点,则会根据实例配置收取费用。

  2. KPFS数据迁移至KS3,迁移过程中或涉及到KS3 Put类请求费用。KS3数据迁移至KPFS,迁移过程中会涉及到KS3 Get类请求费用。请参见 KS3 计费说明。

前提条件

  1. 创建文件系统。

  2. 已存在同地域下需要同步的KS3存储桶。

  3. 已创建同地域下的数据传输中转节点,可以是云服务器或裸金属,参考 创建云服务器实例、创建裸金属服务器。

KS3存储桶数据同步至KPFS文件系统

操作步骤

  1. 在执行迁移的云服务器或裸金属挂载KPFS文件系统,参考 快速上手-挂载文件系统

  2. 使用sync命令将您账号下的KS3存储桶数据同步至KPFS文件系统

    1. AK:快速上手-挂载文件系统 中获取到的AccessKey

    2. SK:快速上手-挂载文件系统 中获取到的SecretKey

    3. bucket:待同步的存储桶名称

    4. endpoint:待同步的存储桶endpoint

    5. vol_name:KPFS文件系统名称

    6. prefix:可选,源路径和目标路径的前缀,可用于限定只同步某些路径中的数据。

juicefs sync ks3://AK:SK@bucket.endpoint/prefix  jfs://vol_name/prefix

性能提升参数

  1. 如下为可提升单机sync性能的关键参数(需根据待迁移文件大小 以及 执行迁移的云服务器或裸金属的性能灵活调整)

    1. --flush-wait=5s:持久化到KPFS后端的时间间隔,默认 5s。在大文件写入慢的情况下,过于频繁地调用持久化会导致碎片化,可以考虑增加时间间隔,如10s、30s

    2. --buffer--size:客户端读写缓冲区大小,单位 MiB,默认 300。在大文件同步情况下,可根据客户端实际可分配的内存资源情况提高读写缓冲区大小以提高同步性能,如1024、2048

    3. --threads:并发线程数,默认为 10。可根据需要设置 --threads 选项调大或减少线程数,增大并发数会增加资源占用,如果您的单机资源不足,可以考虑使用分布式同步

    4. --max-uploads:上传并发度,默认为 20。可提高该参数以提高同步性能(KPFS容量Ⅰ型及容量Ⅱ型建议至多调整为64,标准型建议至多调整为256)

juicefs sync  --flush-wait=30s --buffer-size=1024 --threads=50 --max-uploads=64 ks3://AK:SK@bucket.endpoint/prefix  jfs://vol_name/prefix

分布式同步

  1. sync大量数据时,单机带宽往往会被占满出现瓶颈,针对这种情况,考虑使用多机并发sync

    1. Manager节点:作为主控节点执行sync 命令,通过 --worker 参数定义多个 Worker 节点(Manager 自身也参与sync),会根据 Worker 的总数量,动态拆分同步任务并分发给各个节点并发执行,单位时间内能处理的数据量更大,总带宽也成倍增加。

    2. Worker节点:执行数据sync

  2. 步骤如下:

    1. 步骤1:提前配置好 Manager 节点到 Worker 节点的 SSH 免密登录

      如果 Worker 节点的 SSH 端口不是默认的 22,请在 Manager 节点的 ~/.ssh/config 设置其端口号。Manager 会将 客户端程序分发到 Worker 节点,为避免兼容性问题,Manager 和 Worker 应使用相同类型和架构的操作系统。

    2. 步骤2:在Manager节点上挂载文件系统后运行sync指令,--worker为工作节点列表,使用逗号分隔。

juicefs sync --worker ip1,ip2 ks3://AK:SK@bucket.endpoint/prefix jfs://vol_name/prefix

运行这个命令后,当前节点与两个 Worker 节点 ip1ip2 将共同分担数据同步任务。同样的,您也可以参考性能提升参数部分进行性能调优。

KPFS文件系统数据同步至KS3存储桶

操作步骤

  1. 在执行迁移的云服务器或裸金属挂载KPFS文件系统,参考 快速上手-挂载文件系统

  2. 使用sync命令将您账号下的KPFS文件系统数据同步至KS3存储桶

    1. vol_name:KPFS文件系统名称

    2. AK:快速上手-挂载文件系统 中获取到的AccessKey

    3. SK:快速上手-挂载文件系统 中获取到的SecretKey

    4. bucket:待同步的存储桶名称

    5. endpoint:待同步的存储桶endpoint

    6. prefix:可选,源路径和目标路径的前缀,可用于限定只同步某些路径中的数据。

juicefs sync  jfs://vol_name/prefix ks3://AK:SK@bucket.endpoint/prefix

性能提升参数

参考性能提升参数

juicefs sync  --flush-wait=30s --buffer-size=1024 --threads=50 --max-uploads=64  jfs://vol_name/prefix ks3://AK:SK@bucket.endpoint/prefix

分布式同步

参考分布式同步,将步骤2的命令替换为:

juicefs sync --worker ip1,ip2 jfs://vol_name/prefix ks3://AK:SK@bucket.endpoint/prefix

纯净模式常规模式

纯净模式

点击可全屏预览文档内容