我正在寻找一种方法来将Apache设置为高可用性。 这个想法是有一个服务于相同网站的2个Apache服务器集群。 我可以使用循环DNS设置每台服务器的IP地址,以便将每个请求随机发送到群集中的一台服务器(我不太在意负载平衡,尽pipe可能会出现这种情况稍后播放)。 我已经build立并使用了多个Apache VM服务器(分布在多个物理服务器上)服务于网站,并且使用循环DNS,并且工作正常。 SQL数据库是在高可用性集群中使用MariaDB设置的,Web数据(HTML,JS,PHP脚本,图像,其他资源)存储在LizardFS中,会话也存储在共享位置。 这一切都运行良好,直到群集中的某个服务器因为任何原因而变得不可访问。 然后,一个百分比的请求(大致上是服务器被closures的次数除以集群中的服务器总数)是没有答案的。 以下是我考虑的选项: 自动DNS更新 有一些过程来监视Web服务器的function,并从DNS中删除任何closures的服务器。 这有两个问题: 首先,尽pipe我们可以将TTL设置为一些非常低的数字(比如5秒),但是我听说less数DNS服务器会强制实现比我们更高的TTL。 而且,有些浏览器(即Chrome)会将DNScaching不less于60秒,而不pipeTTL设置如何。 所以,即使我们做得好,在DNS更新的情况下,一些客户可能无法访问站点一段时间。 其次,监控集群function的程序 并更新DNSlogging成为新的单点故障。 我们 可以通过将多个监视器分布在多个监视器上来解决这个问题 系统,因为如果他们都检测到问题,他们都做出相同的DNS更改,那么不应该导致任何问题。 uCarp /心跳 使被访问的IP地址在循环DNS虚拟中,并且在服务器closures的情况下将它们重新分配给从服务器中断下来的服务器。 例如,server1的VIP是192.168.0.101,server2的VIP是192.168.0.102。 如果server1发生故障,则192.168.1.102将成为server2上的附加IP。 这有两个问题: 首先,就我所知,uCarp / Heartbeat特别监视对等设备,以便无法访问,例如,如果对等设备无法被ping通。 当这种情况发生时,它接pipe被击落的对等体的IP。 这是一个问题,因为Web服务器可能无法为请求提供服务的原因更多,而不仅仅是在networking上不可访问。 Apache可能已经崩溃,可能存在configuration错误或其他原因。 我想要的标准是“服务器不按要求提供页面”,而不是“服务器不能ping通”。 我不认为我可以在uCarp / Heartbeat中定义。 其次,跨数据中心不起作用,因为跨数据中心的每组服务器都有不同的IP地址块。 我不能在数据中心之间有一个虚拟IP浮动。 跨数据中心运行的要求(是的,我的分布式文件系统和数据库集群可以跨数据中心使用)不是必需的,但是这将是一个很好的补充。 题 那么,关于如何处理这个问题的任何想法? 基本上,高可用性的圣杯:没有单点故障(无论是在服务器,负载平衡器还是数据中心),并且在切换时几乎不存在停机时间。
使用计算引擎有可能有这样的东西吗? 在我的情况下,我想有一个外部IP地址作为服务的IP,所以这个IP可以在任何计算引擎VMconfiguration。 可能吗? 谢谢
我使用Git来pipe理我的web应用程序的开发周期,对于git pull已经足够而且不需要更改的变化,我只是自然而然的保持站点的正常运行,并且git pull这些变化git pull 。 但是我想,假设我有100个文件被修改了,并且说磁盘上有一些意想不到的负载,如果有人在 git提交磁盘上的修改的时候请求了某个请求,会发生什么? 这不会使我的应用程序可能容易受到可能的数据损坏或格式错误的响应吗? 我的意思是,对于一个低stream量的网站来说这是非常非常不可能的,但是如果你得到了一些非常高的stream量,并且恰好是服务器的负载,那么存在一些风险。 我其实想到了一个解决scheme,但如果我推出我自己的实现,可能不是最好的,我不确定它是否实用。 我记得读过一篇关于如何在屏幕上看不到文物的文章,基本上是把新的数据写到GPU内存上的一个完全不同的块上,然后把最新的屏幕数据 (不pipe叫什么)新的块,并可能丢弃或重新使用旧的块。 这样,如果一个GPU滞后,将不会显示一半的数据 如果能够实施这样的一个类似的事情,这是否可行?
我想测量SQL Server切换服务器angular色所需的时间。 有没有办法知道多久才能成为主要的镜子,并准备好新的更新? 非常感谢你!
我有一个带有10个刀片的powerge 1855刀片服务器 我正在尝试设置系统来处理: 1 plesk服务器的邮件和DNS + DNS复制到另一台机器 1系统为httpd&mysql 1系统的图像托pipe300GB数据 我正在想 1 plesk服务器146GB 2个听觉负载平衡器73GB 数据库复制146GB的3个Web服务器 3个镜像服务器,rsync复制300GB 有没有更好的方法来设置这个问题,把所有的驱动器和处理器集中起来就像一个系统一样工作,或者我应该把系统分开。
我即将在Windows Server 2003上研究NLB。它现在归档我的两个兴趣:可伸缩性和高可用性。 但是我不了解它在生产环境中的威力。 NLB是一个有效的解决scheme吗? 它是如何在现实世界中实现的? 它受欢迎吗? 它有什么限制? 非常感谢你回答我的问题。 🙂
我们正在寻找一种方法来提高我们的服务器(Apache / MySQL / Virtualmin设置)的可靠性。 到目前为止,在过去的六个月里,我们已经对这台服务器产生了各种各样的麻烦(DNS故障,DDOS,Dom0故障,networking中断,DomU故障,…在一个愉快的一天2)在不到一天的时间里,仍然令人担忧 – 该主机上有大约50个客户网站,每次服务器停机时服务器的可用性仍然超过合同保证的99%,但是…请记住服务器停机5次,而不是360天)。 目前计划: 备份DNS服务器(不应该是一个很大的问题) 服务器本身的高可用性设置。 这里的问题是数据复制到辅助主机。 主机与Hetzner不同,数据中心不同,所以我们的带宽是非常有限的(100M的上行链路,实际用户至less应该有一些带宽),而数据encryption更多less一个固定的要求。 DRBD本身通过广域网扩展性差,也不提供encryption。 DRBD代理声称可以解决带宽问题(但不是encryption问题,据我所知),但是从我读的内容来看,它太贵了,5千美元/年太多了(我敢肯定,我们正在使用该服务器)。 另一方面,从我个人的经验来看,OpenVPN / SSH隧道不够可靠,不能保证我们不会有虚假警报触发不必要的故障转移(不用担心会降低硬盘性能的开销)。 那么…还有什么替代品? 还是我只是俯视一些东西? 编辑:为了澄清,我更喜欢在文件系统/块设备级别的复制。 应用程序级的复制是可能的,但我宁愿有一个复制解决scheme运行,而不是每个应用程序。
我们有一个基于2个Redhat的服务器,它们都是虚拟IP的主机。 192.168.0.3 dataserver(虚拟IP) 192.168.0.1 dataserver_ha1(物理服务器) 192.168.0.2 dataserver_ha2(物理服务器) 使用drdb和heartbeat它设置为运行一个主机作为主要主机,另一个处于备用状态。 如果主要的故障比备用服务器成为主要接pipe…在这方面非常标准。 我们的日志处理服务器(etl_server)连接到dataserver并运行每小时的进程。 我们使用ssh_keys连接(虽然这不是重要的信息)。 当dataserver_ha1故障转移到ha2时,由于关于更改主机密钥的中间人警告,etl_server不能再连接。 AFAIK有几件事我可以做: 1)在SSH客户端上严格检查(不要这样做)2)在客户端的authorized_keys文件中添加两个物理主机密钥的条目3)镜像所有/ etc / sshd / hosts *文件 但我觉得我应该能够告诉主机通知ssh客户机请求,可能使用两个允许的主机密钥之一。 当我有一点时间的时候,我会用VirtualBox或者其他的东西来testing。 在此期间,我在错误的地方寻找信息在这…
昨天,Rackspace DFW数据中心出现了几个小时的停顿,让我想到了在那里改善服务器结构的延迟行动。 到目前为止,我一直在使用一个CentOS实例来处理PHP + MySQL应用程序的基本LAMP设置。 所以昨天我的申请连续下了三个多小时,真是太糟糕了。 我想到: 至less有两个实例处理跨至less两个数据中心(Rackspace或不)的应用程序。 拥有至less两个MySQL主/从configuration实例来托pipe数据,至less分成两个数据中心。 在应用程序实例之前放置一个负载均衡器,以避免处理DNS传播,并能够按照我的意愿无痛添加或删除应用程序实例。 所以我的问题是: 上述三项措施如何发挥? 还有什么可以做的? 什么是没有停机时间的最佳方式? 如何处理代码部署 任何书籍/白皮书/等你可以推荐来帮助我在这里? 奖金:如何做到这一点? :P
如何访问Nagios可用性报告文件以检索“UP时间百分比”等关于主机和服务的其他信息? 我知道它可以通过Nagios CGI访问,但是我想在自定义界面上使用它。 我可以使用这些CGI脚本来实现我想要的吗?