我有一个 DRBD 资源,主资源和辅助资源(EXT4 - 无 LVM)
使用压缩数据和增量备份对DRBD资源进行备份有什么更合适的方法吗?
答案1
只要它处于在线状态,您就无法对 DRBD 辅助设备进行可靠的备份,因为您甚至无法以只读方式在其上挂载文件系统。即使它允许您挂载设备(只要它是辅助设备并且处于在线状态,它就不会挂载),您也永远无法获得文件系统的一致视图,因为辅助节点的 ext4 驱动程序无法看到文件系统上发生的更新,并且在繁忙的文件系统上,它对事物的视图可能很快就会过时。
编辑:从理论上讲,以下方法可以奏效:
- fsync 文件系统
- 在 FS 上发生任何变化之前,请将辅助节点脱机。在不使主节点脱机的情况下可靠地执行此操作可能很困难。
- 以您想要的任何方式进行备份。
- 使节点再次上线并重新同步。
但这是一个愚蠢的方法,因为您的镜像在备份期间是没有用的,而且如果在此期间主节点发生了什么事情,您就完蛋了——如果您定期破坏镜像,为什么还要使用 DRBD?
答案2
将节点挂载为只读节点对于进行备份来说并不可靠,并且此方法需要停止镜像然后重新同步。
解决方案是:
对于 MySQL:
innobackupex 与“包装器”gist.github.com/jmfederico/1495347,此备份是增量和压缩的,所有表都在 InnoDB 中,因此在备份过程中不会阻塞。
我使用 Duplicity 备份普通文件(.php、.js、.css、.jpg)、增量和压缩文件。
将备份复制到其他服务器后,使用带有包装器 gist.github.com/rcoup/5358786 的 rsync 进行并行复制。