AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 17621
Accepted
afa
afa
Asked: 2009-06-03 02:32:26 +0800 CST2009-06-03 02:32:26 +0800 CST 2009-06-03 02:32:26 +0800 CST

在我们的案例中,添加额外服务器以提高可靠性的更好方法是什么?

  • 772

我们有以下服务器:

A. 1 个运行 MySQL 的 Web 服务器(一个论坛)。
B. 1 个运行 RT 和 Postgres 的 Web 服务器。
C. 1 个 Web 服务器,运行以 MonetDB 作为后端的本地应用程序

当然,现在我们想通过为每个 Web 服务器添加一个额外的服务器来增加一点可靠性,以防 1 个服务器死机等。但是最好且相对便宜的方法是什么?

  1. 每个都获得一个额外的服务器,并在每种情况下使用适当的技术复制数据库?MySQL 复制 A、Slony 等用于 B,我真的不知道如何复制 MonetDB,但我想这是可能的。

为什么我不喜欢这个:由于同步问题可能导致数据损坏,即临时电源故障可能导致数据写入从属服务器,然后主服务器返回,然后复制被破坏。在 Slony 的情况下,你甚至不能这样做,你必须先将奴隶提升为主人,等等,AFAIK。

我不喜欢的另一件事是必须手动艰难地完成所有这些并弄清楚谁现在在做什么以及同步事情等等。

2. 获得 2 台具有相当数量存储的服务器并在它们之间设置 DRBD。

由于它们将拥有一个共享 IP,因此将所有数据库(例如 MySQL、Postgres 和 Monet)放在 DRBD 存储上。DRBD 的好处是我们不会出现单点故障,因为即使我们丢失了集群的一部分,其他服务器也可以接管,因此它更具弹性。我的理解是,高于此级别的 Web 服务器可以简单地进行故障转移和恢复,而无需担心复制和同步等问题。

3.虚拟机?
使用虚拟机设置这样的东西时,最佳实践是什么?

linux replication drbd failover
  • 4 4 个回答
  • 376 Views

4 个回答

  • Voted
  1. Best Answer
    niXar
    2009-06-03T03:35:12+08:002009-06-03T03:35:12+08:00

    就高可用性而言,VM 对您的帮助不大,尽管它们在简化整合方面很有用。

    如果没有两个重要的数据点,您的问题就无法回答:您的预算和负载。如果您的预算有限但您的负载足够低,您可以轻松地将所有这些移动到主动/被动设置中的两台服务器上。

    如果您的预算允许,您可能需要考虑购买一个 SAN(或者最好是两个用于 HA)。在这种情况下,您仍然可以将 DB(可能是虚拟化的)与应用程序放在同一台服务器上,但将数据写入 SAN。数据库大多是 IO 绑定的。

    另一条路线确实是为数据库创建一个两节点故障转移集群,并通过 DRBD 复制数据库分区,它工作得很好。但是,您要确保每个人都有自己的磁盘;为此,我建议使用带有 6 个磁盘的 2U 机器和电池支持的硬件 RAID。

    如果您的流量更大,但仍想保持较低的预算,您可以尝试以下方法:

    • 使用 DRBD 复制的主动/被动设置中的 2x 数据库服务器
    • 运行应用程序的 2 台前端服务器,均处于活动状态
    • 在前端的 VIP 上运行软件负载均衡器,其中只有一个会接收传入连接,但它将在本地或将它们重新调度到另一个节点。我推荐Haproxy

    不过要注意负载;如果一个节点在您使用高峰时出现故障,您会遇到很多麻烦,但这可能是处理偶尔出现的斜线的好方法。

    • 3
  2. Shaggy63
    2011-01-28T19:58:15+08:002011-01-28T19:58:15+08:00

    不要将 drbd 用于 mysql 故障转移。使用master-master复制并将haproxy放在它们前面以负载平衡mysql连接并提供故障转移。然后将心跳放在haproxy服务器上。使用负载平衡完成故障转移。

    drbd 适用于诸如在其上运行 nfs 的 web 文件之类的东西。

    • 2
  3. Jeff Hengesbach
    2009-06-03T03:38:14+08:002009-06-03T03:38:14+08:00

    对于“以防万一”您的主节点失败而不是用于平衡/频繁故障转移的解决方案,#2 和#3 的组合会很好地工作。获得一个具有合理资源的盒子来存储和运行每个主系统的虚拟机。使用 DRBD 来简化数据的复制。对于额外的花里胡哨,您可以为自动故障转移添加心跳或不添加。当然还有复制!=备份。

    • 1
  4. Chopper3
    2009-06-03T03:59:01+08:002009-06-03T03:59:01+08:00

    为什么不使用 VMWare/虚拟化来创建一个双服务器 + 数据库集群,每个都运行您的所有各种数据库和第二个双服务器 + Web 服务器集群,每个服务器都服务于您所有的各种 Web 应用程序。

    这样您就需要尽可能少的服务器,拥有一个内置的扩展解决方案,让您可以在热点发生时扩展/移动热点,并充分利用您的资产。

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve