如何设置冗余服务器?

如何设置冗余服务器?

对于系统管理员,我想了解一下如何为小型项目维护冗余服务器。我认为服务器数量适中,只有两台,我想到三种主要基本服务:HTTP、邮件和 DNS。如何自动执行这种重复操作?rsync 是首选工具吗(同样,对于小型项目)?

除了这些任务的常用工具外,如果能提供书籍和文章的参考,那就更好了。方法越实用越好。

答案1

听起来你真正的问题实际上是如何使服务高可用性(如果这不是真正的问题,请忽略)。由于你正在谈论服务器、服务和数据(区域文件、apache docroot 等)——如果我的猜测正确,你可能需要调整问题的标题和标签 :)

冗余(如数据的多个副本)

可以通过以下方式实现:

  • drbd(同步 - 为您提供一定的保证,即两台服务器上始终有相同的数据)
  • rsync(异步——不保证两台主机之间的数据一致性)
    • scp 或任何其他可以在主机之间复制数据的工具(即使cp您挂载 NFS)

我相信这不是你真正想要的......

高可用性

rsync 是不是选择的工具为了高可用性 (HA)
是首选工具如果你想同步 2 个目录

你应该走过从头开始构建集群指南从 Clusterlabs 获得想法。这涵盖以下主题:

  • 服务高可用性
  • 主机之间的服务迁移(这样任何一个主机发生故障,您仍然可以提供服务)
  • 示例服务
    • Apache(没有任何数据同步)
    • drbd(同步块设备同步)
    • GFS(允许不同主机挂载同一块设备的集群文件系统)
  • 主动/被动和主动/主动集群

它或多或少是一个循序渐进的指南,可以为您提供正确的指导。但请注意,如果您刚开始使用 HA,那么一个下午就无法正确掌握它。此外,由于您已将其标记为sysadmin-basics:预计会遇到困难(但将会得到回报理解概念之后)

答案2

冗余通常不是您用 rsync 强加到现有系统上的东西。对于 HTTP,通常使用支持故障转移的负载平衡器(如 HAProxy 或 MS 的 NLB),或者可能是 IP 共享解决方案(如 CARP);后端服务器将通过公共共享存储提供服务,或者通过 rsync 之类的东西同步两个文件系统,或者数据库系统(同样,可能或多或少复杂)。对于电子邮件,它有自己的系统与 DNS 结合,为 SMTP 提供循环和优先顺序;多个 POP 或 IMAP 服务器为冗余 DBMS 提供前端;或者 Exchange 有 DAG。DNS 也有自己的机制,主要是主/从配置中的多个名称服务器(在某些情况下是多主)。

如何利用特定软件在特定情况下实现冗余,很大程度上取决于您的要求;当然,我无法给出一个可以快速为您提供操作方法的文档。

答案3

这是一个相当广泛的问题;既然您提到了 rsync,我假设您正在谈论 *nix 系统。

这实际上取决于您的设置类型。如果您的 HTTP 服务是完全静态的(没有数据库或其他),那么两个孪生 apache 服务器具有 rsync 的根目录。

邮件更加棘手,因为如果您托管邮箱,它们可能位于数据库中,并且在文件系统级别同步数据库将导致损坏。

根据您的 DNS 的工作方式(如果它使用平面文件进行存储),您还可以配置 DNS 软件在两台机器上运行相同的软件并 rsync 平面文件,如果它使用数据库或自定义二进制文件,rsync 将无济于事。

确实有可用于此的企业级系统,但是由于您特别询问小型项目,因此我推测它们超出了您的范围。

相关内容