镜像整个机器

镜像整个机器

将所有设置和数据从一台 Linux 机器不断镜像到另一台机器的最合适方法是什么?我有一台关键服务器,我想为它准备一个“热备用”,以防任何组件故障导致其脱机。我有 RAID 和冗余电源,但内存/CPU/主板故障仍可能导致其脱机。每小时/每天使用 rsync 将文件系统复制到相同的机器是否足够?

答案1

没有“唯一”的方法可以做到这一点,但是有很多方法取决于您的需要。 rsync 可以进行足够的复制以实现恢复,但不一定是您需要的答案。

每小时/每天使用 rsync 将文件系统复制到相同的机器是否足够?

这是个好问题,不是吗?这将带来两个问题:

  1. 您可能会丢失长达一小时或一天的系统和数据更改。这对您的业务来说可以接受吗?
  2. rsync 需要时间运行,因此如果整个过程需要五分钟,您将获得一些来自 12PM 的文件,以及一些来自 12:05PM 的文件。您能接受吗?
  3. 如果在 rsync 过程中丢失了源计算机,则克隆可能会损坏。这可以接受吗?

您还应该注意,例如,除非您格外小心,否则数据库服务器实际上不能很好地应对 rsync 克隆备份 - 它们对大量不同文件的匹配非常敏感,如果它们在您 rsync 时运行,您可能会遇到问题。

您可以使用 LVM 快照来改进第 2 点,它将提供您捕获机器的一致瞬间 - 这使得您的克隆相当于在启动时进行硬重启,而恢复起来并不太糟糕。

您可以尝试配置 rsync 以尽量降低 3 bites 的风险,但无法完全消除它。

无论如何,其他可以查看的地方是共享文件系统,例如集群文件系统或共享磁盘工具,例如DRBD,这会在恢复和可靠性方面给您带来不同的权衡。

但归根结底,这完全取决于您的业务需求和权衡。良好的灾难恢复备份有助于缓解问题。

答案2

我会用类似的东西起搏器/心跳+驱动处理可用性和数据同步问题。

Pacemaker 将管理机器级资源,例如网络故障转移(在系统之间移动 IP)、启动和停止应用程序(apache、mysql、postgres 等)。

DRBD 将用于执行磁盘块级复制,以帮助确保您的数据在主机和热备用之间尽可能保持最新。

答案3

对于备份,没有单一的解决方案。

对于非 DB 数据,我同意 Travis 的观点。Pacemaker/heartbeat 和 DRBD 才是最佳选择。

对于设置,取决于你想要获得多么花哨的效果:

  • 同步
  • 版本控制
  • 配置管理工具(puppet、cfengine 等)
  • SSH + ....

你自己选吧。

数据库是另一个难题。复制它们的文件可能有效,但我不推荐这样做。如今大多数数据库引擎都内置了某种形式的复制。看看你的数据库引擎是否内置了复制功能,看看它是否能满足你的需求。

相关内容