Linux系统
Linux物理层
LSI Raid 阵列日常操作
MegaCLI基本使用指南
重要参数含义说明
Raid的增删改
Linux系统层
Linux 系统启动过程流程
timedatectl命令时间时区操作
sar命令用法
Linux 性能调优工具9张图
Linux 特殊权限说明
Linux系统三级等保整改脚本
CentOS 7 停止维护(EOL)后的仓库变动
Linux查看主板内存槽与内存信息
安装麒麟Kylin-v10 Arm64版本到阿里云
CentOS7 多网卡单网关利用策略路由实现源进源出
初始化Linux数据盘(parted)
解决CentOS7下yum命令的异常
EXSI虚机mount出现‘unknown filesystem type 'LVM2_member'’
Linux虚机网卡单队列导致压测CPU无法满载的问题
Linux网络性能优化建议
Linux 修改系统语言环境
LInux文件系统中的默认保留空间 Ext4 vs. XFS
Linux CPU占用率原理与精确度分析
中标麒麟安装Nvidia显卡驱动
Linux主机双网卡同网段同网关配置
Linux 服务层
编译Expat 2.6.2的rpm包并升级
Linux主机挂载共享samba出现普通用户没有写权限的问题
编译OpenSSH 9.3p1的rpm包并升级
CentOS 7.x通过rpm升级OpenSSH到 8.5p1版本
Linux日志切割Logrotate原理和配置详解
systemd下配置sshd监听端口
编译NTP 4.2.8p17的rpm包并升级
编译OpenSSL 1.1.1w的rpm包并升级
linux命令集
磁盘工具集
Linux du 命令
fpsync数据迁移工具
字符处理集
Linux sed 命令
Linux命令输出重定向到变量
使用 paste 合并文件内容
常用调试指令集
编译cmake 3.5.2版本
网络工具集
MTR探测主机间丢包
Linux性能测试
甲骨文主机测试
本文档使用 MrDoc 发布
-
+
home page
fpsync数据迁移工具
## 前言 fpsync是基于fpart和rsync包装的一个迁移工具,由shell脚本编写。 fpsync底层利用原生的rsync来做数据的备份工作,利用fpart来做待备份目录的解析。 fpsync提供了自己的内嵌调度器。它可以在本地执行多个同步进程,也可以通过 SSH 在多个节点(工作节点)启动它们。 fpsync是一个功能强大但简单易用的迁移工具,并已成功用于加速多个 PB 数据的迁移(已经被 UCI、Intel 和 Amazon 等多个组织测试过)。 除了非常快速(由于传输在 FS 遍历期间开始,并行化进行),fpsync 还能够恢复或重放同步“运行”(参见选项 -r 和 -R),并呈现整体进度状态。与 rsync 本身相比,在迁移具有大量文件的文件系统时,它的内存占用也很小。 **官网地址:** https://www.fpart.org/fpsync >注意⚠️: >fpsync 仅同步目录内容,而不会同步源目录本身。 与 rsync 不同的是,fpsync 在源目录上强制实施最终的“/”,这意味着同步后不会在目标目录中获得具有源目录名称的子目录。 ## 工具对比 **1. 功能对比** 迁移工具fpsync和rsync支持的功能对比  **2. 性能对比** 与单线程复制工具rsync相比,在迁移到 NFS 文件共享时使用多线程应用程序 fpsync可以提高吞吐量和 IOPS。 测试数据显示: 1. 跨目录分布数据有助于实现迁移过程并行化,从而获得更好的性能。 2. 从更大的文件大小复制数据比从较小的文件大小复制数据的性能更好。  ## 业务逻辑 fpsync后台拥有了2个进程 - 一个是fpart负责将待备份的目录进行解析,并将备份作业放入到作业队列中; - 一个是job_queue_loop,取出作业队列中备份作业来执行真正的备份。  ## 安装方法 编译安装,当前最新版本为1.6.0,安装方式如下 安装预环境依赖包 ```bash sudo yum install -y automake libtool sudo yum install -y parallel sudo yum install -y rsync ``` 编译安装fpart程序 ```bash # 下载程序 wget -N https://github.com/martymac/fpart/archive/refs/tags/fpart-1.6.0.tar.gz -P /tmp tar -C /tmp/ -xvf /tmp/fpart-fpart-1.6.0.tar.gz cd /tmp/fpart-fpart-1.6.0 # 安装编译 autoreconf -i ./configure make -j $((`nproc`*2)) sudo make install printf "will cite" | parallel --bibtex ``` ## 迁移方法 **示例命令1** ```bash nohup fpsync -t /home/temp -n 32 -f 1024 -s $((1024 * 1024 * 1024)) -m \ rsync -o "--chown=1011:1011 --acls --xattrs --ignore-existing \ --log-file=/home/temp/rsync/rsync_`date +%Y%m%d_h%Hm%M`.log \ --log-file-format=[PID:%p]-[%o]-Transfered:%b-File:%f" \ /Dayoo_54nas09 /mnt/storage & ``` **示例命令2** ```bash nohup fpsync -t /home/temp -E -n $((`nproc`*4)) -f 1500 -s $((1024 * 1024 * 1024)) -m \ rsync -o "--chown=1011:1011 --acls --xattrs" /src/app /des/app & ``` 部分参数的含义如下: - `fpsync`: 这是要执行的命令,即 fpsync 工具。 - `-t /home/temp`: 指定迁移存储时的临时目录,包含工作线程及日志等信息。 - `-E`: 按目录进行工作(仅适用于'rsync')(⚠️警告:会强制启用 rsync的--delete选项!) - `-n $(($(nproc)*4))`: 指定了并行处理的任务数量为 cpu逻辑核数的4倍数。 - `-f 1500`: 这个选项指定了 fpart 的文件数限制,即每个子目录中包含的最大文件数。 - `-s $((1024 * 1024 * 1024))`: 这个选项指定了每个同步任务的最大文件大小。这里被设置为 1GB。 - `-m rsync`: 指定了用于同步的方法,这里是 rsync。 - `-o "--chown=1011:1011 --acls --xattrs"`: 这个选项指定了 rsync 的扩展选项。 - `/src/app`: 这是被同步数据的源目录。 - `/des/app`: 这是被同步数据的目标目录。 综上所述,该命令的作用是将源目录 `/src/app` 中的文件同步到目标目录 `/des/app`,并使用 rsync 方法进行同步,设置了一些参数,如并行任务数量、文件数限制、最大文件大小等。同时,使用 nohup 让这个命令在后台持续执行,即使用户退出登录或关闭终端。
Nathan
March 11, 2024, 3:56 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password