是否可以基于 LVM 快照创建差异备份(或者可能是类似的技术)?
我想备份我的内联网服务器,该服务器托管多个服务及其数据库(目前使用 Postgres 8、Postgres 9 和 MySQL)。所以我考虑设置基于日志传送的备份(除了备份文件系统),但整个事情变得有点复杂。
作为替代方案,我正在考虑使用 LVM 快照 - 但数据库并不小,而且我需要节省备份空间......
同样重要的是,当数据库不断写入文件时,LVM 快照的使用非常安全。
答案1
LVM 快照在块设备级别上是写时复制的。如果文件系统或应用程序中没有任何特殊活动,它们的行为与崩溃并重新启动相同。如果您可以在拍摄快照之前使应用程序和文件系统静止并刷新所有待处理的写入,则可以大大提高快照中数据的一致性。例如,在数据库中获取全局写入锁定,然后刷新文件系统并使其成为只读文件系统(某些文件系统(如 XFS)具有显式静止选项),制作快照然后解锁所有内容。
就备份空间而言,快照是写时复制的,因此您只需要为快照分配足够的空间来覆盖快照生命周期内实时文件系统上被覆盖的块数。
答案2
答案(对我来说)只是创建一个临时的 LVM 快照,使用任何增量备份技术,然后丢弃快照。
至于 LVM 快照的安全性(我通常必须在数据库运行时进行快照),我非常有信心它们会正常工作。为了覆盖剩余风险,我每周都会关闭数据库一次,然后再进行完整备份。