【发布时间】:2011-10-02 15:54:25
【问题描述】:
是否可以备份 zfs 存储池? 如果 FS 在原始磁盘上,我们可以打开并读取字符设备接口,将磁盘复制到文件中。我们可以使用循环设备接口挂载文件。是否可以在 zpool 中使用 open、read 系统调用以编程方式执行此操作?
【问题讨论】:
是否可以备份 zfs 存储池? 如果 FS 在原始磁盘上,我们可以打开并读取字符设备接口,将磁盘复制到文件中。我们可以使用循环设备接口挂载文件。是否可以在 zpool 中使用 open、read 系统调用以编程方式执行此操作?
【问题讨论】:
我建议查看 ZFS 复制功能,该功能使用 send 和 receive 子命令。使用这些工具,您可以生成特定数据集的块级数据流并将该流保存到文件中。如果您为根数据集生成流并包含所有子数据集,则将捕获池中的所有数据。请注意,zfs send 对快照进行操作,因此您需要事先获取递归快照:
zfs snapshot -r tank@current
zfs send -R tank@current > ./stream.zfs
那么当你想恢复你的数据时:
cat ./stream.zfs | zfs receive tank
【讨论】: