如何防止预算造成服务器丢失


22

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

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

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

目前,我不得不

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

尽管我将TTL设置得很低(约一个小时),但要实现DNS传播仍然是一个未知数,可能要花一天左右的时间。

一些主机提供了快照,可用于将设置复制到新的VPS,但是仍然有IP,如果主机公司完全取消/暂停帐户,这无济于事(我一直在阅读有关此内容的信息某些托管服务提供商的行为,这让我感到害怕!我没有做任何垃圾邮件/躲闪的事情,并密切关注安全性,但是我意识到他们确实有能力这样做,因此我非常愿意冒险。

结合选择信誉良好的主机,这是否是我最好的选择,而无需昂贵的解决方案?


1
非常怀疑2个驱动器同时发生故障的说法,尤其是在vps上
symcbean 2015年

显然,当新的重建时,一个失败了,然后又失败了。
artfulrobot

看看drbd.linbit.com,这可能会满足您的需求..
Unix的看门人

2
@symcbean:问题在于RAID-5重建需要读取所有剩余磁盘的所有数据。这是一个相当长的操作(数小时甚至数天)。便宜的RAID-5系统可能使用台式机驱动器进行9 + 1设置。RAID重建中所有这9个磁盘的压力将超出设计限制。实际上,失败是可以预料的。
MSalters 2015年

1
实际上,它们将存储池和处理器+内存池作为单独的实体,但是问题不在于在一个特定提供程序上发生了什么或没有发生什么。它比特定的实现更笼统。
artfulrobot

Answers:


28

对我而言,选择信誉良好的主机并进行定期备份(您似乎已经在做这两项工作)就可以并且无需考虑业务连续性计划,高可用性设置,SLA等就可以做到。

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

如果人们不准备支付这种钱,在我看来,误导他们以为他们可以获得任何意义上的额外保护是错误的。


3
这是一个很好的答案。我的客户设置和类型与@artfulrobot(我们甚至使用同一家托管公司)非常相似,他的问题和您的回答使我意识到,与客户沟通限制和风险是我的责任,用非常朴素的英语,以确保他们有现实的期望。他们中的大多数人都是非技术性的,因此他们很有可能认为一切都会以某种方式神奇地起作用,不间断且无限制。在发生重大故障期间/之后,我不想管理他们的期望,我需要在做到之前!
西蒙·布莱克本

我并不是说故障是完全不相关的,但是从理论上讲1 + 1冗余应该给您两个额外的9,而成本却是原来的两倍。您建议增加两个9的成本在9倍至100倍之间。2倍与〜30倍是巨大的差异。
MSalters 2015年

2
@MSalters是正确的,可以防止某些类型的故障(服务器故障)。面对站点故障,除非两台服务器位于不同的站点,否则它什么也不做,在网络管理方面变得异常复杂。您还只考虑了资本成本,而忽略了增加的运行成本-保持两台服务器完全同步并不是一件容易的事,这取决于它们正在做的事情以及负载平衡器的管理成本。我的感觉是,单个站点上的冗余服务器(共享LB负载)会给您另外九个服务器,而费用却是3-4倍。
MadHatter支持Monica 2015年

介绍它的好又容易的方法。(但是...我只是在某个地方加上一些价格,因为3到10倍的“免费”仍然是免费的;)。或者,当然,您指的是服务本身的总成本?)
Olivier Dulac

@OlivierDulac就是这样!
MadHatter支持Monica

8

预算少的小型企业,尤其是非营利组织,通常将无法承受高可用性。问题是,如果您实际上没有预算(像在这种情况下通常的情况),那么您的还原策略是什么?

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

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

我有一本简单的ansible剧本,我花了大约一个小时(以前没有与ansible一起工作)整理过,该书安装了nginx,php-fpm和MariaDB,并准备好托管一个或多个网站。运行此剧本可以使一台或多台服务器准备好承载典型的Web应用程序,而我可以简单地将nginx虚拟主机,应用程序文件和数据库还原到该服务器上。

这样的结果是,我可以在短短几分钟内从备份中建立这样的网站,而手动方法可能要花一个小时或更长时间。


嘿,听起来不错。我会调查的。谢谢。
artfulrobot

即使是来自良好提供商的小型客户,也很容易获得高可用性。他们获得规模经济。
JamesRyan

@JamesRyan是的,但是你不懂……经济。告诉我为一个每月看到300次点击的网站运行两个Amazon实例和一个弹性负载均衡器是否有意义?
迈克尔·汉普顿

@MichaelHampton甚至不是我所建议的。一家为数百个客户托管VPS的公司可以将它们分布在冗余硬件之间,而不是简单地将一堆物理服务器放在单个物理服务器上并相互指责。
JamesRyan

4

实现的复杂性取决于应用程序堆栈,但是理想情况下,您希望设置“热备用”(在其他提供程序处),并尽可能实时(或接近实时)复制数据。

拥有2个“活动”服务器的商业案例就像将“从映像恢复”期间潜在的收入损失与另一台服务器的费用进行比较一样简单。


谢谢。我正在使用LAMP堆栈。我想实时将类似于MySQL复制,尽管管理起来很棘手。而且它使我必须管理的服务器增加了一倍。也许有一个低规格的盒子可以同时拥有所有其他服务器的实时副本,这很有意义,所以这仅仅是DNS传播。然后,我可以将其克隆回新的VPS并更改DNS(hmmm。)。
artfulrobot

除了复制初始数据集所花费的时间外,MySQL复制通常非常容易设置和配置。至于DNS,如今大多数解析器都遵循低TTL,通常将记录的TTL设置为60秒即可。
Mark R.

当您需要添加新的额外数据库时,MySQL复制会更加复杂,而且我相信让一台服务器作为多个主机的从属服务器仍然很棘手(在一台备用服务器上复制多个数据库)。当然,当然,您还需要保护服务器之间的访问(例如安全通道),以便维护PKI等。除非您拥有专用局域网,但出于此原因,需要与单独的托管公司合作。
artfulrobot

总是有带有密钥的plicate-do-db和SSH隧道。
Mark R.

用于运行标准的SSH隧道,但不可靠。但是,一旦您启动并运行,Stunnel就会非常出色。
artfulrobot

2

请记住,正常运行时间与数据完整性不同。只要服务器“足够快”地重启,您的正常运行时间就可以达到99.99%,并且一年中两次丢失所有数据。大多数VPS提供程序都保证您的服务器正在运行,而不是保证您的数据安全。您的数据就是您的问题:(。

您正在寻找的东西可以将备份存储在单独的服务器上,甚至(IMHO)都不能存储在同一提供商中。根据您所讨论的数据大小,可将便携式硬盘驱动器用作离线防御的第三行。照常备份您的数据,然后定期将其(如果可能的话,仅将更改)复制到便携式硬盘驱动器甚至本地计算机上。也有诸如Backblaze之类的价格相对便宜的备份解决方案,但是价格将取决于您所讨论的数据量。如果您可以执行增量备份,则它将比完全备份便宜得多,但是增量备份可能非常困难,具体取决于数据的存储位置(平面文件=简单,数据库=不太容易)。


是的,我是这样做的:-)是的,托管公司不在乎数据,我以前也处理过磁盘损坏!
artfulrobot

0

答案完全取决于您的体系结构和要求。不久前,我的服务器上3张光盘发生故障,而Raid 6失败则导致20多个虚拟机崩溃。

我在写过

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

但是:因为这很关键,所以我们进行了备份-每天备份不重要的内容,每天备份15分钟,以备份数据库和电子邮件。哎呀,现在我添加了一个服务器,每30秒将其复制到另一台计算机上。

您什么也没说,也没有任何预算-因此,这里最好的唯一建议就是去找一些云提供商,并开始使用他们的备份机制。但是,开始定义您的实际需求。

另外-此备份的预算应在您的价格中。它需要支付。以及您需要的任何基础架构...。那就不是“荒谬的昂贵”了。


TomTom:aoe + openfiler和几个盒子,您可以构建一个非常高可用性的micro-san
symcbean 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.