背景:我们需要在小型办公环境中安装 HA 服务器,并希望使用 DRBD 来提供它。我们只需要在 HA 服务器上存储大约 100GB 的数据,并且服务器负载将非常低。如果我们存档较旧的办公数据,数据每年可能会增加约 10%-25%,如果不存档,则每年会增加 50%-75%。
关键是我们使用了消费级和二手企业级硬件,如果我们不提前规划,这将会成为一个问题;而且预先构建的高质量服务器确实会出现故障,因此冗余服务器似乎是可行的方法。
计划:我们认为最好找到 (2) 台性价比最高的二手服务器并同步它们。我们只需要具有 SATA/SAS 功能的服务器和空间,以这个价格可以容纳尽可能多的驱动器。如果您能找到便宜货,这些服务器的价格似乎在 100-200 美元之间(加上一些零件和额外的驱动器)。
从理论上讲,这意味着服务器可能会发生故障,如果我们花几天时间才能找到它,只要我们没有再次发生意外故障,一切仍然会顺利进行,直到我们的 IT 部门(我)找到它。我们将使用 Debian 作为操作系统。
一些问题
(A)DRBD 如何处理驱动器或控制器故障?这显示存储驱动程序之前的 DRBD,那么当控制器发生故障并写入脏数据或驱动器发生故障但没有立即崩溃时会发生什么?数据是否镜像到另一台服务器,在这种情况下是否存在跨服务器数据损坏的风险?
(B) DRBD 的故障点是什么;理论上只要一台服务器正常运行,就不会出现任何问题。但我们知道存在问题,那么使用 DRBD 的故障模式是什么,因为理论上大多数故障模式应该是软件?
如果我们为此准备两台服务器,那么在每台服务器上运行 VM,安装 MYSQL 和 Apache 来进行数据库和 Web 服务器复制是否合理?(我假设如此)
DRBD 是否足够可靠?如果不是,不可靠性是否只限于某些任务,还是更具随机性。搜索发现有各种问题的人,但互联网上似乎坏信息多于好消息。
如果数据通过 LAN 同步,DRBD 是否要使用双倍带宽?也就是说,我们是否应该将 NICS 增加一倍并进行一些链路聚合和中继?然后,也许可以将它们放在不同电路上的不同路由器上,以及不同房间的 UPS 上,这样您就真的有了一些冗余!
就服务器管理而言,这对于办公室来说是否太疯狂了?有没有更简单的 REALTIME 替代方案(当然,DRBD 在理论上似乎很简单)。
我们已经有了一台服务器。所以在我看来,只要精打细算,第二台带有专用于 DRBD 驱动器的二手服务器很容易就能以大约 150-250 美元的价格买到。再加一台路由器、更多驱动器、更多 NIC(二手)和 (2) UPS,价格大约为 1,000 美元左右。这相对便宜!我希望这主要能为我们在服务器故障时争取时间。如今,驱动器故障似乎是使用 RAID 更容易处理的问题。其他硬件故障(如控制器、内存或电源)可能需要停机来诊断和修复,这才是问题所在。
对于我们来说,冗余服务器意味着二手硬件变得更加可行,拥有更多的正常运行时间和更大的灵活性,让我可以在时间安排允许的情况下修复问题,而不必停止一切来修复服务器。
希望我没有错过这些问题有易于搜索的答案。我快速搜索了一下,没有找到我想要的内容。
答案1
首先,你需要定义你真的 “HA” 是什么意思。您要防范什么?X 类型和 Y 持续时间的中断的成本是多少?它会如何影响您的组织?您在这个组织中的角色是什么?您的时间值多少钱?能你会为此花费多少钱?之后,你必须决定这些需求是否允许这种解决方案,或者你是否需要其他的东西。
第二:在我的世界里,“我需要 HA”和“我要花 200 美元买蹩脚的二手服务器”这两个句子不可能结合在一起(事实上,对我来说,购买二手垃圾和任何形式的专业用途根本就不合适)。
无论如何,你的问题是:
如果您将全新的数据写入 DRBD 块设备,它将在未损坏的控制器上正确写入。它是实际磁盘前面的完全透明层,就像软件 RAID 或 LVM 一样。但是,如果由于控制器损坏或磁盘读取错误导致主节点上的数据损坏,则这很容易传播到辅助节点,因为写入操作通常是读取-修改-写入循环,在这种情况下,主节点上将读取损坏的数据块,并将该块的写入操作发送到两个节点。这引出了使用 DRBD 时最重要的一点:与 RAID 一样,它绝不能替代良好且可靠的备份。
我不明白你在这里的意思。
当在单节点设置中使用虚拟机很有用时,它也将在双节点设置中发挥作用,并且如果操作正确,您将具有实时迁移的优势。
根据我的经验,是的。不过,您应该在您的环境中彻底测试它,并花大量时间模拟系统可能经历的各种故障状态,并学习和记录如何从中恢复。虽然 DRBD 很可靠,但它不是自我修复的,需要很好地了解情况才能从故障状态中恢复。
你真的希望在节点之间建立专用连接。在双节点设置中,这可以是点对点连接,无需交换机或其他东西。其他一切在技术上都是可行的,但都是废话。根据您的使用模式,使用中继或更快的 NIC(例如 10G 以太网或 Infiniband)进行此专用链接可能会有所帮助,但如果大多数/所有要读取或写入的数据都来自 LAN 接口,这将无济于事,因为无论如何您都会受到 LAN 的限制。
这又回到我的第一段:你对它有什么期望,你认为什么是 HA?对于经验丰富的系统管理员来说,它可以是一种廉价而可靠的方法来防止一系列故障,但它需要对各个部分如何组合在一起有非常多的基本了解。然而,许多没有这样一位经验丰富的全职 SA 的小商店最好拥有高质量的硬件和良好的支持合同。
最后:不要尝试在当前硬件上追溯安装任何 HA 解决方案。正如我所写,你需要试验设置及其故障情况的时间。这需要大量的停机时间,无法在生产硬件上合理地完成。