如何在预算内防止服务器丢失

art*_*bot 23 vps redundancy

我是一家预算不多的小公司,为慈善机构和非营利客户提供网站和数据库。

我有几台 Debian Linux VPS 服务器,并确保我每天备份到不同的 VPS,而不是托管服务的 VPS。

最近,我的一家托管公司告诉我,两个驱动器同时发生故障,因此数据永远丢失了。事情发生了,他们说对不起,他们还能做什么?但这让我想知道在硬件或其他与主机相关的故障的情况下,基本上可以重新启动 VPS 的具有成本效益的方法。

目前我必须

  1. 启动一个新的 VPS
  2. 将最后一天的备份(包括数据库、Web 根目录和特定于网站的配置)放到 VPS 上,并像上次一样对其进行配置等。
  3. 更新 DNS 并等待它传播。

实现这一点可能需要一天左右的时间,DNS 传播是一个很大的未知数,尽管我将 TTL 设置得非常低(一小时左右)。

一些主机提供快照,可用于将设置复制到新的 VPS,但 IP 仍然存在,这在主机公司完全取消/暂停帐户的情况下无济于事(我一直在阅读有关此某些托管服务提供商的行为,这让我很害怕!我没有做任何垃圾邮件/狡猾的事情,并密切关注安全性,但我意识到他们确实有能力做到这一点,而且我非常规避风险)。

结合选择信誉良好的主机,这是我可以做的最好的事情,而无需寻求非常昂贵的解决方案吗?

Mad*_*ter 28

对我来说,选择信誉良好的主机并进行定期备份(您似乎已经在做这两件事)与您无需开始考虑业务连续性规划、高可用性设置、SLA 等就可以做的差不多。

我告诉人们,您可以免费获得 99% 的正常运行时间(即,无需在高可用性上花费任何额外费用)。一年大约有三天半的停机时间。正常运行时间每增加9 次,成本就会增加 3 到 10 倍。

如果人们还没有准备好支付那种钱,在我看来,误导他们认为他们可以获得任何意义重大的额外保护是错误的。

  • 这是一个很好的答案。我有一个与@artfulrobot 非常相似的设置和客户类型(我们甚至使用同一家托管公司),他的问题和你的回答让我意识到我有责任向我的客户传达限制和风险,用非常简单的英语,以确保他们有切合实际的期望。他们中的大多数人都非常非技术,所以他们很有可能认为一切都会以某种方式神奇地工作,不间断和无限。我不想在重大失败期间/之后管理他们的期望,我需要在此之前做到! (3认同)
  • @MSalters 确实如此,针对某些类型的故障(服务器故障)。对于例如站点故障,它什么也不做,除非两台服务器位于不同的站点,并且*那* 在网络管理方面变得极其复杂。您还只考虑资本成本,而忽略了增加的运行成本 - 保持两台服务器完全同步并非易事,这取决于它们正在做什么类型的事情,并且存在负载平衡器的管理成本。我的感觉是,单个站点上的冗余服务器,分担 LB 负载,以 3-4 倍的成本换取额外的 9 个服务器。 (2认同)

Mic*_*ton 8

预算很少的小型企业,尤其是非营利组织,通常无法负担高可用性。问题是,如果您几乎没有预算(在这种情况下很常见),您的恢复策略是什么?

我确实有一些这样的客户,这就是我所做的:

首先,对于其中一些,我每六个小时进行一次增量备份和完整数据库转储。一位客户已经在使用 CrashPlan Pro,所以我就使用了它。无论你做什么,你都需要确保你有一个可恢复的备份。

我有一个简单的 ansible playbook,我在大约一个小时内(以前没有使用 ansible 工作过)安装了 nginx、php-fpm 和 MariaDB 并准备它们托管一个或多个网站。运行这个 playbook 会生成一个(或多个)服务器,这些服务器已准备好托管典型的 Web 应用程序,我可以简单地将 nginx 虚拟主机、应用程序文件和数据库恢复到它。

这样做的结果是,我可以在几分钟内从备份中调出这样一个网站,而手动方式可能需要一个小时或更长时间。