PFS数据备份到BOS
更新时间:2024-09-05
适用场景
适用于将并行文件存储PFS(标准型、增强型、极速型、极速型L2)中的重要数据定期备份到对象存储BOS中。
前提条件
- 已创建对象存储BOS Bucket,请参见 创建Bucket。
- 已在BCC上下载并安装BOS CMD,并完成基础配置,请参见:安装BOSCMD 和 配置BOSCMD
-
已在BCC挂载PFS
- PFS 极速型L2的挂载方式请见:BCC挂载与卸载(极速型L2)
- PFS 标准型、增强型和极速型的挂载方式请见:BCC挂载与卸载(标准型、增强型和极速型)
操作步骤
步骤一、准备脚本
- 登录云服务器BCC;
- 执行以下命令,创建用于配置脚本的路径,如/opt/bakcup;
mkdir -p /opt/backup
cd /opt/backup
vim pfs_backup_to_bos.sh
- 使用vim,写入如下脚本内容。
#!/bin/bash
# 替换为你需要备份的本地路径
source_path="/pfs/mt-xxxyyyz"
# 替换为你的bucket名字和prefix
bucket_name="bos-bucket-name"
bucket_prefix="/prefix"
log_file="/opt/backup/backup.log"
# 并发数
concurrency=10
start_time=$(date +%Y-%m-%d_%H:%M:%S)
echo "start of pfs backup task, start time: $start_time" >> $log_file
bcecmd bos sync ${source_path} bos:/${bucket_name}/${bucket_prefix} --concurrency ${concurrency} >> $log_file 2>&1
end_time=$(date +%Y-%m-%d_%H:%M:%S)
echo "end of pfs backup task, end time: $end_time" >> $log_file
- 参数说明:将脚本中必须修改的参数调整为实际业务中的内容。
参数 | 是否必须修改 | 说明 |
---|---|---|
source_path | 是 | 需要进行数据备份的PFS路径 |
bucket_name | 是 | 保存备份数据的bucket名称,如"bucket-sz" |
bucket_prefix | 是 | 保存备份数据的bucket的prefix,如"/test/test2" |
log_file | 是 | 备份过程中产生的日志文件 |
concurrency | 否 | 备份任务的并发数 |
- 添加可运行权限
chmod +x ./pfs_backup_to_bos.sh
步骤二、配置定时任务
- 执行以下命令,创建一个定时任务
crontab -e
- 在 cron 表中添加备份内容,下面的配置以每周一凌晨1点执行一次命令为例,具体配置方式见crontab定时策略说明。
0 1 * * 1 /bin/bash /opt/backup/pfs_backup_to_bos.sh
- 日志例子
- crontab定时策略说明
f1 f2 f3 f4 f5 [cmd]
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (0和7为周日)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
a) f1 表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。 [cmd] 需要定时执行的命令。
b)当 f1 为 * 时表示每分钟都要执行,f2 为 * 时表示每小时都要执行,以此类推
c)当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,以此类推
d)当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,以此类推
e)当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,以此类推
f)下面是关于crontab配置的例子,更多配置可在 Crontab 编辑器 中配置定时策略,并查看策略含义。
定时策略 | 策略含义 |
---|---|
0 2 * * * [cmd] | 每天凌晨2点的时候执行命令 |
0 6 * * 1 [cmd] | 每周一早上6点的时候执行命令 |
0 12 15 * * [cmd] | 每个月15号中午12点的时候执行命令 |
0 23 * * 6,7 [cmd] | 每周的周六和周日,晚上23点时候执行命令 |
常见问题
数据备份效率实际情况?与什么有关?
答:在将数据从PFS中定期同步备份到对象存储BOS时,实际备份速率与“PFS实例性能、BOS带宽、BCC内网带宽、并发数、文件大小等"有关。
- PFS实例性能随购买容量线性扩展。详见:产品规格。
- BOS带宽:BOS 对单 Bucket 设置的内网带宽阈值为 50 Gbit/s (约6GBps)。详见:BOS使用限制。
- BCC不同规格的内网带宽请见:BCC实例规格。
- 并发数:通过BOS CMD工具数据传输时,可以设置并发数,不同并发数据传输速度不一样。详见:Object上传。
- 文件大小:大文件通常是指文件大小在几百MB到几GB,甚至更大,大文件传输速率主要与带宽有关;小文件通常是指文件大小在几KB到几MB之间的文件,小文件传输速率较慢。
下面是一实际数据备份案例,仅供参考,实际性能可能有所出入:
-
测试环境:
- ① BCC 1台,规格为bcc.g5.c56m238,网卡带宽为22GBps
- ② PFS 极速型L2 容量200TB
- ③传输工具:BOS CMD,并发参数(concurrency=16)设置为16
- ④测试数据:总量1T的大文件(100MB)和总量10w个小文件(4KB)
-
备份速率:
- 总量1T的大文件:备份速率约2.2GB/s,耗时约465s
- 总量10w个小文件:备份速率约700个/s,耗时约142s