zfs - zfs存储池的 block 级备份

标签 zfs volumes

是否可以备份 zfs 存储池? 如果FS位于原始磁盘上,我们可以打开并读取字符设备接口(interface),以将磁盘复制到文件。我们可以使用循环设备接口(interface)挂载文件。是否可以使用 open、read 系统调用以编程方式在 zpool 中执行此操作?

最佳答案

我建议您研究一下 ZFS 复制功能,它使用 sendreceive 子命令。使用这些工具,您可以生成特定数据集的 block 级数据流并将该流保存到文件中。如果您为根数据集生成流并包含所有子数据集,则这将捕获池中的所有数据。请注意,zfs send 对快照进行操作,因此您需要事先拍摄递归快照:

zfs snapshot -r tank@current
zfs send -R tank@current > ./stream.zfs

然后当您想要恢复数据时:

cat ./stream.zfs | zfs receive tank

关于zfs - zfs存储池的 block 级备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648325/

相关文章:

cron - zfs-auto-snapshot 的 cron 作业中双斜杠的用途是什么?

migration - 如何将现有的 20.04 ext4 安装迁移到不同磁盘上的 zfs root?

mirror - Zpool Attach 创建镜像

wordpress - 无法在 docker-compose 中添加对 docker volume 的写入权限

linux - 备份 ZFS 池元数据

docker - Docker:使用--volumes-from备份数据文件

docker - 使用多个容器填充卷

Docker Compose : Which syntax produces a bind mount, 生成卷

kubernetes - 在部署更新时重新附加卷声明

filesystems - 如何卡住/解冻 ZFS 文件系统以获取硬件快照