将所有设置和数据从一台 Linux 机器不断镜像到另一台机器的最合适方法是什么?我有一台关键服务器,我想为它准备一个“热备用”,以防任何组件故障导致其脱机。我有 RAID 和冗余电源,但内存/CPU/主板故障仍可能导致其脱机。每小时/每天使用 rsync 将文件系统复制到相同的机器是否足够?
答案1
没有“唯一”的方法可以做到这一点,但是有很多方法取决于您的需要。 rsync 可以进行足够的复制以实现恢复,但不一定是您需要的答案。
每小时/每天使用 rsync 将文件系统复制到相同的机器是否足够?
这是个好问题,不是吗?这将带来两个问题:
- 您可能会丢失长达一小时或一天的系统和数据更改。这对您的业务来说可以接受吗?
- rsync 需要时间运行,因此如果整个过程需要五分钟,您将获得一些来自 12PM 的文件,以及一些来自 12:05PM 的文件。您能接受吗?
- 如果在 rsync 过程中丢失了源计算机,则克隆可能会损坏。这可以接受吗?
您还应该注意,例如,除非您格外小心,否则数据库服务器实际上不能很好地应对 rsync 克隆备份 - 它们对大量不同文件的匹配非常敏感,如果它们在您 rsync 时运行,您可能会遇到问题。
您可以使用 LVM 快照来改进第 2 点,它将提供您捕获机器的一致瞬间 - 这使得您的克隆相当于在启动时进行硬重启,而恢复起来并不太糟糕。
您可以尝试配置 rsync 以尽量降低 3 bites 的风险,但无法完全消除它。
无论如何,其他可以查看的地方是共享文件系统,例如集群文件系统或共享磁盘工具,例如DRBD,这会在恢复和可靠性方面给您带来不同的权衡。
但归根结底,这完全取决于您的业务需求和权衡。良好的灾难恢复备份有助于缓解问题。
答案2
答案3
对于备份,没有单一的解决方案。
对于非 DB 数据,我同意 Travis 的观点。Pacemaker/heartbeat 和 DRBD 才是最佳选择。
对于设置,取决于你想要获得多么花哨的效果:
- 同步
- 版本控制
- 配置管理工具(puppet、cfengine 等)
- SSH + ....
你自己选吧。
数据库是另一个难题。复制它们的文件可能有效,但我不推荐这样做。如今大多数数据库引擎都内置了某种形式的复制。看看你的数据库引擎是否内置了复制功能,看看它是否能满足你的需求。