对于一个项目,我有一个计划网店和CMS系统的高可用性设置的任务。 不过,这个项目当然是预算紧张的。 所以高端解决scheme可能不在预算之内。
将有两台运行Web服务器(CMS,商店)的机器,一台运行数据库的机器以及一台运行传真服务器的机器,以便将订单交付给合作伙伴。 所有系统都运行Linux。 所有这些组件都需要高度可用,并且应该支持透明故障转移。
为了降低硬件成本,我考虑了虚拟化环境。 那里有很多的信息,但我不知道要开始。 似乎很明显,至less需要服务器作为虚拟机的主机,这样就没有单点故障。
哪种方法可以支持高可用性?
第一个问题是哪种虚拟化解决scheme在这种情况下是最好的。 需要有某种pipe理界面。 需要有一种方法可以将正在运行的虚拟机从一台主机移动到另一台主机,因此可以完成对主机的维护。 需要有某种机制,如果一台主机发生故障,虚拟机仍然可用。 你能在这里提供一个有效的解决scheme吗?
在大多数情况下,共享文件存储似乎是高可用性的先决条件(预计VMware vSphere相当昂贵)。 但是,宁愿投入更多的钱在虚拟机主机上,而不是增加另外两台服务器到设置提供一个冗余的NFS文件存储。 是否有可能只与两台虚拟机主机相处? 一个解决scheme可能是两个使用这两个NFS主机也。 这样做会有很大的性能损失吗?
编辑:我的目标是99.9%的可用性。 然而,由于有正常营业时间,所以不需要24/7可用性,这给了一些回旋空间。 在某种程度上保证的可用时间是在上午10点到午夜之间。
作为总体概述,要实现高可用性,您需要:
号码1听起来很简单 – 购买两台相同的服务器。
数量2可以通过复制SAN(昂贵,非常快速,非常可靠)或每个服务器上的复制文件系统来实现(便宜,速度和可靠性取决于您对所选技术的了解)。
可以通过SAN(一个存储LUN,由两个服务器访问)或一个复制的文件系统(两个独立的存储区域,每个服务器只能看到它自己)来实现数量3。
数字4可以通过心跳应用来实现。
要做到这一点用一个小的预算,假设VMWare vSphere,您可以使用一个SAN 或 VMWare现在提供一个自我复制的存储设备 ,提供两个不同的数据存储在两个服务器上,可用于高可用性。 vSphere还提供了内置的心跳和高可用性configuration。
要做到这一点没有预算,你可以走下去的path,并使用DRBD复制两个节点之间的存储。 然后,设置检测信号以切换活动的DRBD存储节点和Xen实例,以便在第一个主机发生故障时启动第二个主机上的VM。
使用这些基本build议不会得到5 – 9(99.999%)的正常运行时间,但是如果您知道自己在做什么,那么您可以通过使用最便宜的方法轻松获得3 – 9(99.9%)。
在讨论共享存储时,用“购买多less现金购买”的术语来谈论“费用”。 当然,这是一个完全有效的点,钱到处都是 。
但是如果你谈论的是高可用性,那么你也需要问“ 为什么我们要高可用性? 如果答案是“因为在线销售业务每小时转换2000美元,所以如果我们关了一个小时,那么我们已经损失了2000美元”,那么费用和负担能力的问题就会变成“我们可以吗?承担不买一些能够或大大提高我们的高可用性部署?
这是一个非常重要的细节,它对你对预算的评论 – IT“尾巴”不能通过坚持一个过于复杂和昂贵的解决scheme来解决一个小问题来摆脱这个商业“狗”,但同时,它的IT基础设施的某些要求,那么它必须做好准备,以适当的预算或调整其要求。
我认为虚拟化在提高系统可用性方面有很大的潜力,但它不是一个魔术棒。 硬件方面虽然很重要,但是对于软件需求来说却是次要的 – 如果前端应用程序能够通信,那么在SQL服务器崩溃的情况下,如果SQL数据库集群没有问题,到数据库扼stream器,因为它不能处理故障转移。
而在数据中心相邻的两台“高可用性”服务器仍然容易受到电源故障,盗窃等。同样,根据“我们为什么要这样做”的答案,您可能需要考虑这方面的问题小心,因为它可以增加费用和复杂性,你的项目的不less部分。
不知道您使用哪个数据库和应用程序服务器,我会build议:
HA-例子:
如果您在应用程序层上执行HA,则该层知道如何复制会话。 如果一个节点发生故障(有计划或无计划),幸存的节点将接pipe – 包括会话。
你为什么要买自己的主机? 您为什么不find像BlueLock或Terremark这样的企业云/ IaaS提供商来提供您所需要的基础架构。 他们将提供像vSphere HA这样的服务(更像停机时间,而不是服务HA,但这是一种经济高效的解决scheme),防火墙,LTM / SSL Offloader,SAN(带冗余架),Monitoring / Alerting等等。在这里谈论消费者云解决scheme,以便为价值付出准备。
你可以看看一个一体化的虚拟化/存储复制解决scheme。
ZFS文件系统使这成为可能,正如本博文中所述 。
另一个选项是在教程中详细介绍红帽KVM的解决scheme 。