Evan取得了一些不错的成绩,但是在遇到故障时,这里可能是一些节省成本的特定方法,可以使故障恢复时间少于1小时。
小型企业可能意味着小型硬件,因此,面对一些问题,做一些简单的事情实际上可以增加很大的弹性,可能并不会增加很多成本。主要思想是准备好其他硬件。
首先,对虚拟IP的想法感到满意。这是用户将与之交谈的IP地址,但是可以驻留在您与之交谈的任何服务器上。这是您的IP地址,应用程序将要与之对话。这将是您最终寻求任何解决方案的最有帮助的方法。拥有VIP意味着您无需在故障转移时重新配置任何应用程序。此外,请记住,拥有冗余硬件也会增加管理开销,而不是执行两次配置更新,这会带来影响。
如果我们从路由/ Web代理服务器开始,那可能是最简单的,因为它们不会是需要存储在盒子本身的任何真实状态。因此,只需复制同一框,然后将其配置为相同即可。我将两者都插入LAN网段,并假设您在另一个接口上连接互联网,如果电缆出现故障,请交换电缆。从路由角度来看,您将所有局域网客户端设置为其默认路由的目标.1地址(VIP),并且代理服务器为服务器A提供.2地址,为服务器B提供.3地址。这样,它们都可以被管理以进行配置更新(两者都适用)。故障转移所需要做的就是从.2中删除.1 IP分配并将其移至.3,然后将Internet连接移至另一个接口。它不是很复杂,易于操作和理解,并花费第二个盒子的额外硬件。如果您可以在Internet端获得冗余,则可以增加一些复杂性,并使用VRRP之类的功能进行自动故障转移。
没有细节,很难说,但是您的Web服务器可能就这么简单。添加具有相同配置的第二台服务器,在两者之间创建一个vIP,并在出现故障时将VIP移至备份。我通常不介意在故障转移时会话状态是否丢失(这是导致故障转移的关键问题)。因此,如果用户必须再次登录,没什么大不了的。同样,vrrp可能可以用于自动故障转移。
进入数据库,这要复杂得多。大多数数据库具有某种主数据库/辅助数据库模型,您可以在其中将原始数据库备份到辅助数据库,然后将所有事务日志或数据库更改复制到辅助数据库。同样,您可以将其与VIP结合使用,以实际访问数据库的应用程序/用户。但是,故障转移更加复杂。根据主数据库的故障,您可能实际上需要启动并运行驱动器以复制和保留事务日志。然后将辅助设备激活。如果您可以容忍一些丢失的数据,则可以立即启用辅助数据。故障转移之后,服务器B现在是您的主要服务器,而您的工作就是还原服务器A,然后将其转换为新的备份,以便在服务器b最终出现问题时可以随时进行故障处理。
文件服务器始终是最难的部分,因为与数据库服务器不同,要获得文件系统的内置功能要困难得多。但是,可以通过拥有第二台服务器来实现某种程度的弹性,并只需编写一个脚本来扫描文件系统中的更改,然后将任何新文件复制到您的辅助服务器上。您可以基本上在我相信的cron上运行rsync。同样,您使用提供给用户的VIP,如果进行故障转移,则可以转移给VIP。在您的脚本中,我强烈建议您在传输文件之前检查以确保系统是VIP的所有者。您确实真的不希望rsync在错误的方向执行并覆盖您用户所做的任何更改。如果文件失败,可能会丢失一些文件,
我不知道您该如何处理电话系统……这实际上取决于供应商及其设置方式。卖方可能有一些现成的解决方案以提高弹性。
最后几句话警告。确保彻底测试将要使用的任何设置。确保知道如何进行故障转移而又不会丢失关键信息。测试测试以确保它在您需要时可以正常工作。确保您具有适当的流程,可以将配置更改,软件更新等正确地应用于主数据库和备份数据库。好消息是,当您想关闭服务器进行升级时,您可以进行受控的故障转移。这不是一个主动-主动设置,因此您不知道辅助服务器在需要时是否可以工作。
我在电信部门工作,我们的设备非常冗余,包括大多数情况下的地理冗余。我们的第一个故障点是,更改后未测试冗余,并且用户进行更改时不知道冗余模型如何工作。但是,还有一个问题,就是我们所有的设备都需要在不超过几秒钟的时间内支持自动故障转移。如果您只需要在30-60分钟内启动并运行,则可以容忍对故障转移进行手动干预。您只需要做好准备。祝好运。