最近更新时间:2025-08-22 16:59:15
本文介绍如何将非金山云数据迁移至金山云文件存储KPFS(容量型&标准型)。
如果使用云服务器或裸金属服务器作为数据传输节点,会根据实例配置收取费用。
如果需要通过公网写入数据至KPFS文件系统,弹性公网IP会收取流量费用。
如果需要经由KS3中转数据至KPFS,KS3会收取容量费用及KS3 Put、Get类请求费用。
迁移数据时,数据源及迁移工具多种多样。如下表格中展示了不同的数据源以及建议使用的迁移工具,请根据实际业务选择合适的迁移工具。
数据源 | 迁移方案 | 前提条件 | 特点 | 应用场景 |
|---|---|---|---|---|
本地数据中心或个人客户端 | 使用KS3 util、KS3 Finder(命令行工具)或KS3控制台、KS3 Finder(图形化工具) + juicefs sync工具,参考经由KS3中转数据至KPFS |
|
| 适合大量文件上传(数十TB量级)至KPFS。 |
|
| 适合大量文件上传(数十TB量级)至KPFS。 | ||
| 适用少量文件需要一次性上传至KPFS文件系统和将KPFS文件系统内的数据下载到本地。 | |||
其它云对象存储 | 使用juicefs sync工具,参考其它云对象存储数据迁至KPFS |
|
| 您的数据在其它云对象存储,需要上传至KPFS。 |
若您有大量本地文件需要上传至KPFS文件系统,可以经由KS3中转数据至KPFS。
整体步骤为先通过KS3 util、KS3 Import (命令行工具)或KS3控制台、KS3 Finder(图形化工具)将数据通过公网从本地上传到KS3,然后使用juicefs sync工具通过内网将KS3数据导入至KPFS。
如果您的本地文件数量在10万以下,推荐使用KS3 Util工具;如果您的文件数量上百万时,推荐使用KS3 Import工具。
本地文件迁移完成后,登录数据传输节点,执行sync命令将KS3数据迁移至KPFS文件系统。
AccessKey:快速上手-挂载文件系统 中获取到的AccessKey。
SecretKey:快速上手-挂载文件系统 中获取到的SecretKey。
bucket:前提条件 中创建的KS3存储桶名称。
endpoint:KS3存储桶所在区域的对应内网域名。
地域 | 内网域名 |
|---|---|
华北1(北京) | ks3-cn-beijing-internal.ksyuncs.com |
西北3区(宁夏) | ks3-cn-ningxia-internal.ksyuncs.com |
西北4(海东) | ks3-cn-qinghai-internal.ksyuncs.com |
华东1(上海) | ks3-cn-shanghai-internal.ksyuncs.com |
vol_name:KPFS文件系统名称。
命令示例如下:
juicefs sync ks3://AccessKey:SecretKey@bucket.endpoint jfs://vol_name数据迁移完成后,执行sync命令将KS3数据删除,以免产生额外费用。
--delete-dst:删除目标中多余的文件和目录(即目标中有但源存储中没有的数据)。
--dirs:同步目录(包括空目录)。
命令示例如下:
# 在本地创建一个空目录
mkdir empty-dir
juicefs sync ./empty-dir ks3://AccessKey:SecretKey@bucket.endpoint --delete-dst --dirs由于该方式使用SFTP访问目标端,但SFTP目标端不支持同步文件元数据信息,故不支持断点续传。
若您有大量本地文件需要上传至KPFS文件系统,可以使用juicefs sync迁移数据至KPFS。
Linux或Mac操作系统的操作步骤
下载juicefs客户端。
curl -L https://juicefs.com/static/juicefs -o /usr/local/bin/juicefs && chmod +x /usr/local/bin/juicefs在执行命令的过程中如果遇到了 Permission denied 错误,需要使用 sudo 或切换成 root 用户执行。
下载完毕后在命令行运行 juicefs --help,如果正常打印出帮助信息,就表示客户端安装完成了。如果报错 command not found,请检查你的系统环境变量设置,确保将 /usr/local/bin 加入 PATH。
执行sync命令将本地数据迁移至KPFS文件系统。
username:数据传输节点的用户名。例如:root。
password:数据传输节点的登录密码。例如:root登录密码。
ip:数据传输节点的公网IP地址。例如:120.92.208.190。
--perms:可选,保留文件所有权和权限,默认为 false。注意该参数默认只影响文件(不包含目录),如果需要保留目录的所有权和权限,需要配合--dirs一起使用。
--dirs:可选,迁移目录(包括空目录),因此如果源和目的地均为文件系统,一般都应该启用 --dirs 来拷贝空目录。
--links:可选,将符号链接复制为符号链接,默认为 false,此时会查找并同步符号链接所指向的文件。
--check-all:校验源路径和目标路径中所有文件的数据完整性,默认为 false。校验方式是基于字节流对比,因此也将带来相应的开销。
--threads:并发线程数,默认为 10。增大并发数会增加资源占用,尤其是大文件场景下,因为更多的大文件会被读入进程内存。
juicefs sync /source_dir username@ip:/localfolder --perms --dirs --links
# 指定密码(可选)
juicefs sync /source_dir "username:password"@ip:/localfolder --perms --dirs --links当使用 SFTP/SSH 协议时,如果没有指定密码,执行 sync 任务时会提示输入密码。如果希望显式指定用户名和密码,则需要用半角引号把用户名和密码括起来,用户名和密码之间用半角冒号分隔。
Windows操作系统的操作步骤
点击下载,下载juicefs客户端。
为了便于管理,建议在系统中创建一个专用的目录来存放juicefs客户端。例如,可以在 C:\ 目录下创建一个名为 juicefs 的文件夹,将解压后的 juicefs.exe 客户端放入该目录。
将juicefs客户端所在的目录添加到系统的环境变量中。
打开命令行提示符(CMD)或PowerShell,输入以下命令:
juicefs version
# 如果安装成功,你应该可以看到类似以下输出:
juicefs version 5.2.7 (2025-07-28 cb8c821)执行sync命令将本地数据迁移至KPFS文件系统。
username:数据传输节点的用户名。例如:root。
password:数据传输节点的登录密码。例如:root登录密码。
ip:数据传输节点的公网IP地址。例如:120.92.208.190。
--perms:可选,保留文件所有权和权限,默认为 false。注意该参数默认只影响文件(不包含目录),如果需要保留目录的所有权和权限,需要配合--dirs一起使用。
--dirs:可选,迁移目录(包括空目录),因此如果源和目的地均为文件系统,一般都应该启用 --dirs 来拷贝空目录。
--check-all:校验源路径和目标路径中所有文件的数据完整性,默认为 false。校验方式是基于字节流对比,因此也将带来相应的开销。
--threads:并发线程数,默认为 10。增大并发数会增加资源占用,尤其是大文件场景下,因为更多的大文件会被读入进程内存。
juicefs sync D:/source_dir username@ip:/localfolder --perms --dirs
# 指定密码(可选)
juicefs sync D:/source_dir "username:password"@ip:/localfolder --perms --dirs当使用 SFTP/SSH 协议时,如果没有指定密码,执行 sync 任务时会提示输入密码。如果希望显式指定用户名和密码,则需要用半角引号把用户名和密码括起来,用户名和密码之间用半角冒号分隔。
由于该方式使用SFTP访问目标端,但SFTP目标端不支持同步文件元数据信息,故不支持断点续传。
若您有少量本地文件需要一次性上传至KPFS文件系统和将KPFS文件系统内的数据下载到本地,可以使用SFTP。
为本地操作系统安装SFTP客户端。
SFTP的客户端工具有多种版本,以下示例中使用的是FileZilla,可以选择合适的版本进行安装。
建立SFTP客户端与数据传输节点之间的连接。
上传数据。
将左侧区域中的文件或目录拖拽到右侧目录,即完成数据上传。
您的数据在其它云对象存储,需要上传至KPFS,可以使用juicefs sync工具。
登录数据传输节点,执行sync命令将其它云对象存储数据迁移至KPFS文件系统
AccessKey:能访问对应对象存储桶的AccessKey。
SecretKey:能访问对应对象存储桶的SecretKey。
bucket:待迁移的对象存储桶名称。
endpoint:待迁移的对象存储桶外网域名。
vol_name:KPFS文件系统名称。
产品 | 迁移命令 |
|---|---|
| |
| |
| |
|
纯净模式
