Skip to main content

ZFS 快照到 S3 上传器。

项目描述

ZFS 上传器

ZFS Uploader 是一个简单的程序,用于将完整和增量 ZFS 快照备份到 Amazon S3。它支持基于 CRON 的调度,并且可以自动删除旧的快照和备份。有用的 CLI ( zfsup) 可让您运行作业、还原和列出备份。

特征

  • 备份/恢复 ZFS 文件系统
  • 创建增量和完整备份
  • 自动删除旧快照和备份
  • 使用任何 S3 存储类类型
  • 有用的命令行界面

要求

  • Python 3.6 或更高版本
  • ZFS 0.8.1 或更高版本(在早期版本上未经测试)

安装说明

命令应以 root 身份运行。

  1. 创建目录和虚拟环境
mkdir /etc/zfs_uploader
cd /etc/zfs_uploader
virtualenv --python python3 env
  1. 安装 ZFS 上传器
source env/bin/activate
pip install zfs_uploader
ln -sf /etc/zfs_uploader/env/bin/zfsup /usr/local/sbin/zfsup
  1. 写入配置文件

请参阅下面的配置文件部分以获取有用的配置示例。

vi config.cfg
chmod 600 config.cfg
  1. 启动服务
cp zfs_uploader.service /etc/systemd/system/zfs_uploader.service
sudo systemctl enable --now zfs_uploader
  1. 列出备份
zfsup list

配置文件

该程序从配置文件中读取备份作业参数。可以设置默认参数,然后将其应用于所有备份作业。可以在一个文件中设置多个备份作业。

参数

桶名:str

S3 存储桶名称。

access_key : 字符串

S3 访问密钥。

秘密密钥:str

S3 密钥。

文件系统:str

ZFS 文件系统。

地区:str,默认:us-east-1

S3 区域。

端点:str,可选

替代服务的 S3 端点

cron :str,可选

Cron 时间表。例子:* 0 * * *

max_snapshots:整数,可选

最大快照数。

max_backups :int,可选

完整备份和增量备份的最大数量。

max_incremental_backups_per_full :int,可选

每个完整备份的最大增量备份数。

storage_class:str,默认值:标准

S3 存储类。

max_multipart_parts :int,默认值:10000

在多部分 S3 上传中使用的最大部分数。

例子

多个完整备份

[DEFAULT]
bucket_name = BUCKET_NAME
region = us-east-1
access_key = ACCESS_KEY
secret_key = SECRET_KEY
storage_class = STANDARD

[pool/filesystem]
cron = 0 2 * * *
max_snapshots = 7
max_incremental_backups_per_full = 6
max_backups = 7

文件系统在每天 02:00 进行备份。仅保留最近的 7 个快照。一旦备份超过 7 个,将删除最旧的没有依赖项的备份。

Backblaze B2 S3 兼容端点,完整备份

[DEFAULT]
bucket_name = BUCKET_NAME
region = eu-central-003
access_key = ACCESS_KEY
secret_key = SECRET_KEY
storage_class = STANDARD
endpoint = https://s3.eu-central-003.backblazeb2.com

[pool/filesystem]
cron = 0 2 * * *
max_snapshots = 7
max_incremental_backups_per_full = 6
max_backups = 7
结构

完整备份 (f)、增量备份 (i)

  1. F
  2. fii
  3. fiii
  4. fiii
  5. fiiiiii
  6. fiiiiii
  7. fiiiif
  8. 菲尼菲
  9. fiiiii
  10. 菲菲
  11. 菲菲iii
  12. fiiiiii
  13. fiiiiii

单一完整备份

[DEFAULT]
bucket_name = BUCKET_NAME
region = us-east-1
access_key = ACCESS_KEY
secret_key = SECRET_KEY
storage_class = STANDARD

[pool/filesystem]
cron = 0 2 * * *
max_snapshots = 7
max_backups = 7

文件系统在每天 02:00 进行备份。仅保留最近的 7 个快照。一旦备份超过 7 个,就会删除最旧的增量备份。完整备份永远不会被删除。

结构

完整备份 (f)、增量备份 (i)

  1. F
  2. fii
  3. fiii
  4. fiii
  5. fiiiiii
  6. fiiiiii

仅完整备份

[DEFAULT]
bucket_name = BUCKET_NAME
region = us-east-1
access_key = ACCESS_KEY
secret_key = SECRET_KEY
storage_class = STANDARD

[pool/filesystem]
cron = 0 2 * * *
max_snapshots = 7
max_incremental_backups_per_full = 0
max_backups = 7

文件系统在每天 02:00 进行备份。仅保留最近的 7 个快照。一旦备份超过 7 个,就会删除最旧的完整备份。不进行增量备份。

结构

完全备份 (f)

  1. F
  2. ff
  3. fff
  4. ffff
  5. 呸呸呸
  6. ffffff
  7. 呸呸呸

各种各样的

存储类代码

  • 标准
  • REDUCED_REDUNDANCY
  • 标准_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • 冰川
  • DEEP_ARCHIVE
  • 前哨

发布说明

  1. __init__.py文件中的增量版本

  2. 更新CHANGELOG.md新版本

  3. 准备好后在 GitHub 中发布标签。将变更日志项添加到发布说明。GitHub Action 工作流将自动构建并将发布推送到 PyPi。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

zfs_uploader-0.8.0.tar.gz (14.2 kB 查看哈希

已上传 source

内置分布

zfs_uploader-0.8.0-py3-none-any.whl (15.1 kB 查看哈希

已上传 py3