有关小规模运营单点故障的问题


9
  1. 如果发生故障时您负担不起或不需要集群或备用服务器上线,则似乎可以将一台功能强大的服务器提供的服务拆分为两台功能较弱的服务器。因此,如果服务器A发生故障,则客户端可能无法访问例如电子邮件,如果服务器B发生故障,则可能会失去对ERP系统的访问

    虽然乍一看似乎会更可靠,但这是否只会增加硬件故障的机会?因此,任何一个故障都不会对生产率产生太大的影响,但是现在您要为自己设置两倍的故障。

    当我说“不太强壮”时,我真正的意思是降低组件规格,而不是降低质量。因此,一台机器规格用于可视化,而两台服务器规格则用于减少负载。

  2. 通常,建议使用SAN,以便您可以使用群集或迁移来保持服务正常运行。但是SAN本身呢?如果我要把钱花在发生故障的地方,那将不会出现在基本的服务器硬件上,它将与存储有关。如果您没有某种冗余SAN,那么这些冗余服务器将不会给我带来很大的信心。就个人而言,对于小型操作而言,对具有冗余组件和本地驱动器的服务器进行投资对我来说更有意义。我可以看到在SAN的价格和灵活性都具有成本效益的大型运营中的好处。但是对于较小的商店,我没有看到争论,至少对于容错性没有。

Answers:


7

这一切都归结为风险管理。对您的IT系统进行适当的成本/风险分析将帮助您确定花钱的地方以及可能或必须承受的风险。与所有事物相关的成本...包括HA和停机时间。

我在一个狭小的地方工作,所以我理解了这种挣扎,而我的IT极客也不希望在任何地方出现单点故障,但是在每个级别上这样做的代价都不是现实的选择。但是,在没有大量预算的情况下,我可以做一些事情。但是,这并不总是意味着消除单点故障。

网络边缘:我们有2个Internet连接,分别是T1和Comcast业务。计划使用CARP for HA将防火墙移至运行pfSense的两台旧计算机上。

网络:为网络核心安装几个受管理的交换机,并使用绑定在两个交换机之间拆分关键服务器,以防止交换机故障导致整个数据柜失效。

服务器:所有服务器均具有RAID和冗余电源。

备份服务器:我有一个较旧的系统,其功能不如主文件服务器强,但raid5中有一些大型sata驱动器,它每小时都要对主文件服务器进行快照。我为此设置了脚本,以便在出现故障时将角色切换为主要文件服务器。

非现场备份服务器:类似于现场备份,我们每晚通过vpn隧道将备份备份到一台服务器,该VPN通道通往所有者的其中一个房屋。

虚拟机:我有一对物理服务器,它们使用Xen在虚拟机内部运行许多服务。这些正在主文件服务器上的NFS共享上运行,如果需要,我可以在物理服务器之间进行实时迁移。


谢谢!但是我真的在问关于在一台服务器上使用两台服务器而不进行集群或复制的问题……实际上只是在两台服务器之间分配服务。而且,如果将NAS或SAN用于存储,那岂不是会重新创建单点故障吗?从组件的角度来看,我肯定会一直有冗余(驱动器等)。但这在RAID控制器损坏并破坏阵列时无济于事。
博登

是的,我曾经因为热插拔机箱中发生故障的电路而丢失了RAID5阵列,从而弄乱了整个链。对于现代的串行等效设备,这应该不像对旧的并行总线那样重要。在您所讨论的规模上,消除单点故障将不会具有成本效益。除非失败的代价非常高,否则这不太可能。我确实有一个建议...但是我会在另一条评论中提出。
3dinfluence 2010年

如果您只有2台服务器,则可以执行此操作。假设两台服务器都具有足够的存储容量/内存并支持虚拟化。您可以在两个服务器上都设置Xen。在每个虚拟机上设置cron作业以保存虚拟机的状态,并每晚将结果文件复制到另一台物理机上。这样,如果确实发生系统故障,则可以将其备份并在其余硬件上快速运行。至少要减去当天发生的变化。
3dinfluence 2010年

这是一个有趣的建议。但是,这可能会大大增加服务器的成本。每个服务器都必须能够运行另一个服务器的负载(尽管可能会降低性能)。如果您要花这种钱,那为什么不仅仅拥有两台相同的服务器,其中一台作为热备用服务器呢?
博登

所有这些都可以追溯到成本/风险管理。您最有能力回答以下问题:以降低的性能运行服务是否比关闭服务更好?您是否愿意放弃自上次快照以来的所有更改?您也许可以通过一些备份策略解决该问题。如果没有规模经济对您有利的话,要想达到单点故障是很难的。可以选择使用Amazon Cloud。但是虚拟化正在改变这种状况,但并没有完全改变,也许没有两台服务器。像牧羊犬这样的项目看起来很有趣。
3dinfluence,2010年

5

我认为这是一个有很多答案的问题,但是我会在许多较小的商店中同意几种服务器解决方案的工作原理,并且正如您所说,如果出现故障,至少有些事情会持续下去。但这取决于失败的原因。

很难覆盖所有基础,但是冗余电源,优质电源和良好的备用电源可以提供帮助。

我们已将Backup Exec System Recovery用于某些关键系统。日常备份并不多,但可以用作恢复工具。我们可以还原到不同的硬件(如果有),并且我们还可以使用该软件将备份映像转换为虚拟机。如果服务器出现故障,并且我们需要等待硬件维修,则可以在其他服务器或工作站上启动VM,然后li行。虽然不完美,但可以快速启动并运行。


3

关于SAN:几乎所有您使用的东西都是多余的。即使是单个机箱,内部也将具有双电源,双连接器和双“磁头”,每个磁头均具有与所有磁盘的链接。甚至像Dell出售的MD3000一样简单的东西都具有所有这些功能。SAN被设计为您的设备的核心,因此它们的构建可以抵抗几乎任何随机硬件故障。

话虽如此,您的观点是,冗余并非总是最佳选择。特别是如果它增加了复杂性。(并且它将)更好的问题是……“公司将接受多少停机时间”。如果丢失一两天的邮件服务器没什么大不了的,那么您可能就不应该理会其中的两个。但是,如果网络服务器故障开始使您每分钟都蒙受损失,那么也许您应该花时间为它建立适当的集群。


2

服务器越多,发生问题的机会就越大,这就是查看它的一种方式。另一个是,如果一个人中断,您的吱吱声会增加100%,就像您说的那样。

就像您在上面说的那样,最常见的硬件故障是HD。无论您想在其中拆分多少操作,都需要对存储进行RAID。

我会投票给几台服务器(当然是RAID),而不是一台大型服务器,以确保操作的稳定性和性能。更少的软件进入每个请求资源,减少混乱,更多的磁盘要读/写,等等。


2

我个人会选择多台服务器。在这种情况下,我认为设备故障不太可能发生。是的,您有更多可能发生故障的设备,但是任何给定单元发生故障的几率应该是恒定的。

在非冗余/非HA配置中具有多台服务器的功能是,在发生故障时能够将一些工作卸载到另一台服务器上。因此,假设我的打印服务器出现故障。如果在修复打印服务器时可以将几台打印机映射到文件服务器,则可以减少对操作的影响。那才是真正重要的地方。我们经常会谈论硬件冗余,但是硬件只是保持操作连续性的工具。


好吧,即使您买了两张票,您赢得彩票的几率也更大,即使这并没有多大区别。一台需要6个小时进行维修的服务器可能比2台便宜,即使考虑到6个小时的完全停机时间也会造成损失。虽然我同意可以将某些服务快速移动到第二台服务器,但是移动较大的服务所需的时间可能比修复故障服务器的时间更长。“力量”是关键词。这是一个有趣的问题。感谢您的回应!
博登

1

我在一家小商店(一个人的IT部门)工作,在任何情况下都不会将多台服务器换成一台。如果其中任何一台服务器出现故障,我都可以选择将现在丢失的服务添加到另一台计算机上,甚至可以在备用PC上进行设置。在大多数情况下,我们可以承受一两个小时的停机时间,但是对于所有系统而言,我们不能完全停机。虽然我可以用PC取代任何服务器,至少是暂时的,但我没有或可以轻易拥有任何功能强大的地方,无法立即更换所有服务器。


1

您最初的帖子假设您买不起群集,但是您考虑使用两台服务器(不包括备份)的解决方案。这意味着您很可能拥有三台服务器,足以启动集群。

有一些中间解决方案可以避免SPoF,但仍然适用于中小型企业:不使用SAN存储的节点到节点复制。

例如,Proxmox支持此功能(但我认为XCP-ng / XenServer以及ESXi也可能支持)。

让我们考虑3个节点的设置。全部带有RAID,冗余PSU,冗余网络。

  • 节点A和B具有强大的CPU和大量RAM。
  • 节点C在CPU / RAM中较为适中,但具有大量存储,用于为高可用性监视程序和主机备份提供仲裁。

然后有两个选择:

  1. 所有虚拟机通常都在节点A上运行,并在节点B上复制(需要像样的CPU间隔)
  2. 虚拟机在节点A和B之间拆分,并从节点A到节点B以及从节点B到节点A相互复制。

这种设置可以容忍网络故障,总节点故障和主要节点故障(这三种故障中的任何一种),停机时间约为1分钟(大约是VM启动所需的时间)。不利的一面是自上次复制以来的数据丢失(取决于您的设置和硬件性能,该数据可能低至1分钟,高至几个小时)。

使用第二个选项(VM通常在节点A和B之间分配虚拟机),您必须确定允许哪些VM重新联机的优先级。因为,由于您的VM负载通常在两台服务器之间分配,因此让它们全部在单个节点上运行可能会耗尽该节点的RAM或导致CPU拥塞。


0

“虽然乍一看似乎会更可靠,但这是否只会增加硬件故障的机会?”

  • 从硬件的角度来看,我看不到它实际上增加了失败的机会。这里有很多变量,我从未研究过概率,但过分简化:可以说,戴尔每制造100,000台服务器就会制造1台不良服务器。您的几率从100,000的1变为100,000的2(或50,000的1)。因此,是的,机会是两倍,但是仍然由于规模的原因,机会实际上并没有什么不同。
  • 我认为在这里透视是关键。“您将自己设置为失败次数的两倍。” 也许从您的角度来看,但是在您提供的两种方案中,电子邮件都在一台服务器上运行,而ERP在一台服务器上运行。 因此,从电子邮件或erp(企业关心的问题)的角度来看,它实际上是相同的。除非他们变得孤独,或喜欢他们的空间;否则-)
  • 我认为您也应该从人们的角度来看它。我认为由于人为失误而导致故障的可能性更高,这样一来,某人一次只能破坏一台服务器。它还使识别负载等问题变得更加容易。如果电子邮件和网站都在服务器上运行,则需要更多时间来找出问题所在。

从未如此简单,强大的大型服务器可能做得更好或更糟。它们可能具有较高质量的零件,但可能产生更多的热量,并且冷却不正确。功能强大的服务器具有更多的RAM,更多的CPU等,因此最终在这两种情况下,您可能拥有同样多的CPU,因此服务器可能不是考虑的正确单元。

由于机会的复杂性,我认为最符合成本效益的方式都是赢家。如果您必须支付许可证费用,根据许可证的结构,一台大型服务器可能会比一些小型服务器便宜。


我认为这确实增加了硬件故障的机会。假设两台服务器相同并且运行相同的小时数和负载
Scott Lundberg 2010年

斯科特:我的意思是说,更新后可以解释更多。另外,我确实认为这与透视有关。
凯尔·布​​兰特

此外,服务器也不一样...
Kyle Brandt 2010年

它确实增加了失败的机会。具有两个驱动器的RAID0比单个驱动器更容易发生故障。当然,在这种情况下,您将丢失所有内容,因此与我描述的情况并不完全相似:将服务拆分到两台服务器上,而不是在一台服务器上全部运行。一次失败的结果还不错,但是我现在有更多可能发生故障的硬件。
博登

感谢更新!很抱歉,我应该使我的问题更好一些,至少在“忠诚”方面。我在这里谈论的是在一个配备双处理器,一吨RAM和8个硬盘的HP DL380和两个配备单处理器,更少的内存和硬盘,更少的控制器内存的DL380之间进行选择(只是一个例子...但是假设“不太强大”服务器的构建质量与单个“ beefy”服务器的构建质量相同)是的,这样两台服务器的成本更高,但是何时才值得呢?
博登

0

我的默认方法是避免使用任何集中式基础架构。例如,这意味着没有SAN没有负载均衡器。您也可以将这种集中式方法称为“整体式”。

作为软件架构师,我正在与客户的基础架构一起工作。这可能意味着使用他们自己的私有数据中心,或使用类似AWS的工具。因此,我通常无法控制他们是否使用SAN。但是我的软件通常跨越多个客户,因此我将其构建为好像将在网络上独立运行的单个计算机上运行。

电子邮件示例

电子邮件很奇怪,因为它是一个旧系统(有效)。如果今天发明了电子邮件,则可能会在Web服务器上使用RESTFul API,并且数据将存储在可以使用常规工具(事务复制,增量备份)进行复制的数据库中。

软件体系结构解决方案是,Web应用程序将(随机)连接到可用节点列表中的一个,如果不可用,它将尝试(随机)连接到另一个节点。如果服务器太忙,客户端可能会被踢出服务器。在这里,无需负载平衡器即可连接到Web场;而且,不需要SAN即可实现高可用性。也可以按部门或地理位置分片数据库。

商品意味着...

因此,您无需使用昂贵的1或2台服务器和具有内部冗余措施的SAN,而可以使用多台商用低功耗低成本计算机。

  • 简单性 -冗余完全来自设备数量。您可以通过计算机数量轻松地验证冗余。而且您可以更正确地估计它们发生故障的可能性更高,并为此做好准备。

  • 冗余百分比 -如果您有2台服务器,则如果其中一台发生故障,则剩下1台(50%)。如果您有10台商用服务器,其中一台出现故障,则剩下9台(90%)

  • 库存 -可以从附近的任何商店以很高的价格购买商品设备。

  • 兼容性 -具有光纤通道以及磁盘卷格式,商品设备和软件体系结构的各种标准,这意味着您不会被锁定在单个设备型号或品牌中。

  • 性能-SAN上有2台设备,它们需要位于同一房间。使用商用机器方法,如果您有5个办公室,则每个办公室可以有2个办公室,并且办公室之间具有VPN WAN冗余。这意味着软件和通讯在局域网上的访问时间少于1ms。

  • 安全性 -基于高级冗余,您可以轻松地将节点重建为常规的常规流程。是否要重建整体式2服务器集群?取出手册。通过经常(自动)重建计算机,可以使软件保持最新状态,并防止任何黑客或病毒在您的网络上立足。

注意:您仍然需要具有多个交换机和网关路由器冗余

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.