我的设置中有一个主服务器(专用 CentOS 7、XFS 文件系统、2X1TB SSD、软件 RAID1),该服务器通过 LAN 连接到我的备份服务器(专用 CentOS 7、XFS 文件系统、2X2TB HDD、软件 RAID1)。
我将非常感激大家对我的备份策略的批评。
要点 -
- 备份频率 - 每天凌晨 1 点(假设 24 小时内的流量最低点),通过 cron 作业。
- 主服务器使用 elasticsearch 和 mongodb - 启动备份过程,我首先在刷新当前写操作(elasticsearch - _flush(相当于 lucene commit)然后关闭所有索引,mongodb - fsync: 1,lock: true)后在两个数据库上调用 fsync lock。
- 在 mongodb 锁定并且所有弹性索引都已关闭后,将调用 xfs_freeze -f(这会冻结 XFS 文件系统以防止写入)。
- 接下来我拍摄 LVM(逻辑卷管理器)快照 - 使用 lvcreate 命令创建一个新的 LVM 设备,并拍摄 XFS 文件系统的快照。
- 挂载新的快照(没有 uuid 选项)。
- 取消冻结 XFS - xfs_freeze -u
- 解锁 mongodb 并重新打开所有 elasticsearch 索引。主服务器再次恢复运行。
- 使用以下方式将挂载的快照发送到备份服务器快照(大致同步+版本)。
删除备份服务器上的t-7天备份(我保留了7个版本t,t-1天,... t-6天)。 - 卸载并删除主服务器上的快照。
我担心主服务器从锁定数据库到再次运行期间将处于“停滞”状态。我不知道这个时间是否微不足道?
如果不是微不足道,那么大家究竟是如何克服这个“备份停滞”问题的?
鉴于备份服务器不是共享实体,加密备份服务器上的数据有多重要?
如果需要对 1TB 的加密备份数据进行完整恢复,那么解密加密数据时会损失多少时间?