我是一家小公司,预算不多,为慈善和非营利客户提供网站和数据库。
我有几个 Debian Linux VPS 服务器,并确保每天都将数据备份到与托管服务的 VPS 不同的 VPS 上。
最近,我的一家托管公司告诉我,两个驱动器同时出现故障,因此数据永远丢失了。事情发生了,他们说很抱歉,他们还能做什么?但这让我想知道在发生硬件或其他与主机相关的故障时,有哪些经济有效的方式可以让 VPS 重新启动。
目前我必须
- 启动新的 VPS
- 将最后一天的备份(包括数据库,网站根目录和网站特定配置)放到 VPS 上,并像上一次一样对其进行配置等。
- 更新 DNS 并等待其传播。
尽管我将 TTL 设置得相当低(大约一小时),但可能需要一天左右的时间才能完成此操作,因为 DNS 传播是一个很大的未知数。
一些主机提供快照,可用于将设置复制到新的 VPS,但仍然有 IP,如果主机公司直接取消/暂停帐户,这无济于事(我已经从某些托管服务提供商那里读到过这种行为,这让我很害怕!我没有做任何垃圾邮件/可疑的事情,并密切关注安全,但我意识到他们确实有权这样做,而且我非常厌恶风险)。
这是否与选择信誉良好的主机相结合,是我在不采用极其昂贵的解决方案的情况下能做的最好的事情?
答案1
对我来说,选择信誉良好的主机并进行定期备份(这两项您似乎已经在做了)是您能做的最好的事情,而无需开始考虑业务连续性规划、高可用性设置、SLA 等。
我告诉人们,你可以免费获得 99% 的正常运行时间(即无需花费任何费用额外的每年大约有三天半的停机时间。每增加一个9正常运行时间会导致成本增加三到十倍。
如果人们不愿意支付那么多钱,我认为误导他们认为他们可以获得任何有意义的额外保护是一个错误。
答案2
预算较少的小型企业,尤其是非营利组织,通常无法承担高可用性。问题是,如果您几乎没有预算(这种情况很常见),您的恢复策略是什么?
我确实有一些这样的客户,这就是我所做的:
首先,对于其中一些,我每六个小时进行一次增量备份和完整数据库转储。一个客户已经在使用 CrashPlan Pro,所以我就用了它。无论你做什么,你都需要确保你有一个可恢复的备份。
我有一个简单的 ansible playbook,花了大约一个小时的时间编写而成(之前没有使用过 ansible),它安装了 nginx、php-fpm 和 MariaDB,并准备托管一个或多个网站。运行此 playbook 后,将生成一台(或多台)服务器,这些服务器已准备好托管典型的 Web 应用程序,我只需将 nginx 虚拟主机、应用程序文件和数据库还原到该服务器即可。
这样做的结果是,我只需几分钟就可以从备份中启动这样的网站,而手动方式则可能需要一个小时甚至更长时间。
答案3
实施的复杂性取决于应用程序堆栈,但理想情况下,您需要设置“热备用”(在不同的提供商处),并尽可能实时(或尽可能接近实时)复制数据。
制定拥有 2 台“实时”服务器的商业案例很简单,只需将“从图像中恢复”期间的潜在收入损失与另一台服务器的费用进行比较即可。
答案4
答案完全取决于您的架构和要求。不久前,我的一台服务器上有 3 个磁盘发生故障,当 Raid 6 发生故障时,导致 20 多个虚拟机瘫痪。
我写过
https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs
但是:因为这很关键,所以我们有备份——不重要的内容每天备份,数据库和电子邮件每 15 分钟备份一次。哎呀,现在我添加了一个服务器,每 30 秒复制到另一台机器。
您没有提到堆栈,也没有提到任何预算 - 因此这里最好的也是唯一的建议是去一些云提供商并开始使用他们的备份机制。但要开始定义您真正需要什么。
此外,备份的预算应该包含在您的定价中。它需要付费。无论您需要什么基础设施……您都需要它。那么它就不是“贵得离谱”了。