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