使用 ZFS 快照备份

使用 ZFS 快照备份

我在 SmartOS 上有一个带有 2 路镜像磁盘的 ZFS 池。我的愿望是进行一些实验,并将快照作为备份存储到另一台机器(笔记本电脑的 HDD,其中 FreeBSD 安装有 ZFS,它有自己的不同池)。

如果这是正确的做事方式,只需要输入。

我会通过 SSH 发送快照。那么我可以将快照作为文件存储在笔记本电脑上吗?我不想挂载 FS,或复制/迁移池,只需将其存储为存档,以防 SmartOS 服务器上发生问题,我可以将池从备份位置恢复。我想应该没有收到FreeBSD 端的命令,对吗?

基本上,当我仍在探索 ZFS 时,我正在寻找有关其工作原理的更直接的解释。简而言之,我不想在目标上复制/“恢复”源池,而是将快照存储在那里,以便我可以在不同的位置访问它。显然目标和源不同,一台是具有 RAID-Z 的工作服务器,另一台是单磁盘笔记本电脑。这是否意味着将快照作为文件发送?

答案1

您可以存储zfs send为文件,但不建议这样做,因为当时没有错误检查zfs send- 唯一的验证是在zfs receive时间上。如果流损坏,整个“zfs receive”操作将失败。因此,理想情况下,您应该始终通过管道连接zfs sendzfs receive管道的远端。

不需要将目标命名为与源相同的名称,例如您可以zfs send sourcepool/sourcefs@snapshot | ... [pv | mbuffer ] ... | zfs receive targetpool/targetfs

你应该永远备份而不是推送它们,即您的备份服务器需要源上的 ssh root 访问权限,但您的源不应具有对备份服务器的 ssh root 访问权限 - 否则,如果有人破坏服务器,他们也可以删除备份。

我建议你看看sanoid - 它是自动快照、快照修剪和备份的出色解决方案(由它包含的称为syncoid的对应项完成)。对于您正在做的事情来说,它主要是一个“一劳永逸”的解决方案,只有在出现硬件故障/升级或磁盘空间不足时才需要接触。

相关内容