至少可以说,冗余的行业标准相当高。为了说明我的观点,这是我当前的设置(我正在运行金融服务)。
每台服务器都有一个 RAID 阵列,以防一个硬盘出现问题
.... 万一服务器出现问题,它会被另一台相同的备用服务器镜像
...两台服务器不能同时停机,因为我有冗余电源和冗余网络连接等
...我的托管中心本身有两个不同的能源供应商的双电源连接,冗余网络连接和冗余厕所,以防两个保安(对不起,四个)需要同时使用它
... 万一出现问题(核武器?想不出别的了),我在另一个国家有另一个相同的托管设施,具有完全相同的设置。
换句话说,我觉得我可以在我母亲的公寓里放一台便宜的笔记本电脑,而人为/软件问题仍然是我的更高风险。
当然,还有其他一些事情需要考虑,例如:
但是,在两个不同的数据中心托管两台服务器(没有额外的备用服务器,也没有除了我的托管设施提供的网络设备之外的两倍网络设备)将为我提供我需要的可扩展性和物理安全性。
我觉得我们已经达到了冗余只是一种交流工具的地步。老实说,99.999% 的正常运行时间和 99.9999% 的正常运行时间之间有什么区别,当你知道你会因为软件错误而停机 1% 的时候?
你把你的冗余疯狂推到什么程度?
我们有一个相当罕见的情况:我们在计算机中心有一台服务器。它没有足够的空闲空间来放置冗余 PSU。尽管如此,我们还是希望将单个 PSU 连接到两个现有电源,因为其中一个电源进行维护的情况经常发生(就正常运行时间而言)。
是否有某种神奇的黑匣子(几乎像 UPS),可以处理两个电源以输出一根电源线?是否有带 2 个电源输入的 PSU?还有其他想法吗?我错过了什么?
请注意:解决方案必须适合机架!
已经谢谢大家了!
将服务器上的两个 NIC 设置为两个不同的交换机,其中每个 NIC 具有不同的 IP(但都在同一网络上),然后将交换机连接到路由器。我如何将路由器上的两个端口配置为冗余,以便一个端口连接到一台交换机,另一个端口连接到另一台交换机。路由器是Cisco 3825,交换机是Dell Power connect 5324s。
这个想法是,只要服务器上的应用程序配置为使用这两个 IP,任何 1 个 NIC 或 1 个交换机都可能出现故障,而服务仍将正常运行。我知道路由器仍然是单点故障。
更新:
几乎没有背景,我移动了我的整个数据中心并且没有那么多时间来计划,所以这种冗余可能超出了我可以用我的时间学习和做的范围。
但是,我将重新布线所有东西,也许还会购买东西。我几乎有足够的交换机将所有服务器连接到两个不同的交换机,并且有一个 3800 和一个备用的 2800 路由器。如果我保持现在的配置,但是将第二个 NIC 放入每个服务器的冗余交换机,然后将第二个交换机放入第二个路由器,就物理配置而言,我是否准备好设置这种冗余? 这种配置可能会限制我的冗余选项,或者我走哪条路线这基本上是物理布局?
我想要一个高度可用的 MySQL 系统,具有自动故障转移功能,在 Amazon EC2 实例上运行。
解决这个问题的标准方法是 Heartbeat + DRBD 问题,但我发现很多帖子都表明 DRBD 在 EC2 上不起作用,尽管没有人确切说明原因。显然,串行心跳或不同的网络在虚拟化环境中是不可能的。让不同的服务器位于不同的可用区也很好,但我们在那里遇到了一个更难的问题。
人们对在“云”中拥有高正常运行时间的解决方案有何看法?
注意:这个问题是在宣布具有多可用区的 RDS 之前提出的,对于当今的现代 IT 专业人员来说,这是一个很好的自动答案。:)
我在 Ubuntu 14.04 上创建了一个 ZFS 池,没有指定 RAID 或冗余选项,向其中写入了一些数据,重新启动了机器并且池不再可用(UNAVAIL)。我手头没有确切的错误,但它提到没有足够的复制可用。我在由 2 个 3TB 磁盘组成的池中创建了两个数据存储。ZFS 因其重复数据删除能力而被推荐给我,我目前并不关心冗余。
我实际上只想要 RAID0,所以短期内没有镜像或冗余。有没有办法用 ZFS 做到这一点,或者我会更好地使用 LVM?
zpool status -v:
sudo zpool status -v
pool: cryptoporticus
state: UNAVAIL
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
cryptoporticus UNAVAIL 0 0 …
Run Code Online (Sandbox Code Playgroud) 我运行的服务器刚刚遇到了我以前从未遇到过的错误。它发出几声哔哔声,重新启动,并卡在启动屏幕(BIOS 显示其徽标并开始列出信息的部分)并出现错误:
节点 0:DRAM 不可纠正的 ECC 错误
节点 1:HT 链接同步错误
硬重置后,系统启动正常,但尚未在 edac-util 上报告任何内容。
我的研究告诉我,即使 ECC 内存和系统处于理想状态,仍然可能出现无法纠正的错误,并且可能会在系统的生命周期中的某个时刻发生;一些报告建议至少一年或更早一次。
该服务器运行带有多个 ECC 模块的 CentOS 6.5。我已经在尝试诊断哪个模块引发了错误,以评估这是错误还是不可避免的结果,例如宇宙射线。
我的研究还表明,当系统像这样停止时,日志无处可写,唯一可靠的方法是将系统连接到另一个系统,并通过串行端口写出日志。
除了通常的 edac-util、memtest、压力测试和预防性更换之外,在解决这个错误时还有什么我应该考虑的吗?
我无法在我搜索的任何 CentOS 日志中找到此崩溃的任何记录,这与我的信念一致,即无法将此错误记录到本地磁盘。该错误仅在自动重启后由 bios 报告给我。是否建议始终将系统日志写入串行以记录这些类型的错误?
使用单个系统可以避免这种故障,还是只能使用昂贵的企业解决方案才能避免?
在这些故障情况下,我可以做些什么来为单个生产服务器提供回退措施;例如,生产服务器本身不会跨越多台机器,但可以存在后备服务器。
在我公司的基础设施中,有 5 个数据中心位于偏远地区。
在每个远程位置,有一对服务器保存 DNS 和 NTP 服务,并在该位置的每台服务器上进行配置,以从这两个服务器获取 DNS 和 NTP 调用。
所有服务器都是 CentOS 6.x 机器。
有动机在这两个服务器之间创建 DNS 和 NTP 冗余。
涵盖了 DNS 部分,我只有 NTP 有问题。
确保当一个 NTP 服务器出现故障时,第二个/其余服务器将继续为客户端提供服务的正确方法是什么?
我已经谷歌搜索并找到了一个RedHat 解决方案来将其中一台服务器设置为主服务器(通过在客户端中将其配置为“true”),但万一“true”(主)服务器出现故障......然后它失败了,客户端不会从中获取 NTP 更新,因此它不是纯粹的冗余解决方案。
我想知道是否有人有任何配置此类解决方案的经验?
编辑#1:
为了测试 MadHatter 的答案,我做了以下工作:
- 我已经停止了服务器上的 NTPd,该服务器在每个 NTP 客户端上都配置为“首选”。
- 我正在等待 NTP 客户端停止针对此服务器工作并开始针对其合作伙伴 NTPd 服务器工作。
- 我正在
ntpq -p
客户端上运行以查看更改。这是输出ntpq -p
:
[root@ams2proxy10 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.X.X.38 .INIT. 16 u - 128 0 0.000 0.000 …
Run Code Online (Sandbox Code Playgroud) 我目前有一个在domain 运行的ejabberd 服务器A
。它有一群拥有诸如xyz@A
. 我想设置替代服务器,以便在A
出现故障时,客户端可以透明地使用替代服务器B
(C
因此,同时仍然使用他们的xyz@A
帐户)。
我认为 DNS 部分非常简单,我需要编辑A
区域文件来添加SRV
备用服务器的记录,如本例所示(http://wiki.xmpp.org/web/SRV_Records#Example_3):
_xmpp-client._tcp.example.net. 86400 IN SRV 5 50 5222 server1.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 30 5222 server2.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server3.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server4.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 15 0 5222 backup.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 5 50 5269 server1.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 10 30 5269 …
Run Code Online (Sandbox Code Playgroud) 在不使用硬件 RAID 的情况下使 EFI 系统分区冗余的 BCP 是什么?
如果我在不同设备上创建 3x EFI 系统分区,然后将对主设备(安装在/boot/efi
)所做的任何更改备份到备份设备(安装在/boot/efi-[bc]
):
是否有更好的方法,使系统在主设备出现故障时仍能启动?