标签: failover

用于 Linux 的良好故障转移/高可用性解决方案?

我有几种情况,我需要在发生故障(服务器挂起或崩溃)时将应用程序从一台服务器迁移到另一台服务器。

在solaris 上,我们使用VCS (Veritas Cluster Server) 执行此操作。Linux 有哪些可用的选项?

请说明设置/维护的努力程度或每个人的成本(如果有的话)。

-- 添加了更多详细信息 --

给出复杂程度的概念:

  • 失败的服务器可能会在没有通知的情况下挂起或崩溃,可能仍然是“可以 ping 通的”
  • 恢复服务器需要在故障转移时启动它的应用程序
  • 一旦失败的服务器启动/电源循环,它就会变得被动,不会干扰恢复服务器。

这是一个数据收集或计算节点,而不是一个数据库,所以更简单的解决方案可以工作。

——更多细节(抱歉)——

共享存储不是一种选择,但不需要太多状态(如果有)从一台服务器迁移到另一台服务器。我们通过 rsync 保持两台服务器同步。

非常感谢您到目前为止的所有帖子。

linux failover high-availability vcs

9
推荐指数
1
解决办法
2万
查看次数

如何执行 cron 作业故障转移?

使用两台 Debian 服务器,我需要为一次只能在一台服务器上调用的 cron 作业设置一个强大的故障转移环境。

在 /etc/cron.d 中移动文件应该可以解决问题,但是是否有一个简单的 HA 解决方案来操作这样的操作?如果可能的话,不要用心跳;)

linux debian failover high-availability cron

8
推荐指数
1
解决办法
9556
查看次数

访问位于 NFS 挂载点底层文件系统上的文件

也许这是一个奇怪的要求,但它与以下详细说明的问题相反:

是否可以在不卸载 NFS 内容的情况下查看底层 NFS 挂载的内容?

我有一个安排,其中多个远程站点的 Linux 服务器从中央服务器(所有 CentOS 5.x)安装 NFS 共享。想想:/opt/software或类似的东西。

如果一切顺利,客户端系统将从主服务器挂载 NFS 导出并正常运行。共享中包含的数据不会频繁更改(可能每周更改一次)。

我担心与主 NFS 服务器的连接丢失的情况(NFS 服务器中断、光纤切断等)。由于共享数据不会经常更改,我希望这些系统在丢失 NFS 挂载时能够独立运行。

假设挂载消失了,我想使用/opt/software位于同一位置的 NFS 挂载下方的本地文件。此外,我会保持这些文件的每日同步。

NFS 装载是读/写的,因为需要可以从任何客户端站点更改装载的卷。

这可能吗?如何访问(或覆盖)底层目录中的文件?会不会有超时问题?是否有任何安装选项/提示可以帮助解决这个问题?

linux failover nfs mount

8
推荐指数
2
解决办法
1万
查看次数

热备主机与冷备主机?

我们有几个主机,其中有一个相同的热备用主机,该主机已打补丁和更新,因此非常接近具有相同的软件和配置。万一出现故障,网络电缆会被切换,DHCP 服务器会更新为新的 MAC 地址。这是最好的情况,因为通常还有更多需要修改的地方。

我觉得有一个热备主机很浪费电,浪费时间去维护它,而且因为在故障转移的情况下需要修改配置,所以我想问以下问题:

热备用主机是否过时,现在有更好的方法吗?

与其使用热备用主机,不如将其设为冷备用,将硬盘驱动器放入主主机并将 RAID 从 1 更改为 1+1 是否有意义。如果出现故障,我所要做的就是更换网线、更新 DHCP 服务器、取出硬盘驱动器并将它们插入冷备用并打开电源。在我看来,好处是 2x2 磁盘始终同步,因此在故障转移时只需要维护一台主机并且不需要更改配置。

这是一个好主意吗?

hardware linux failover redundancy

8
推荐指数
4
解决办法
2549
查看次数

Redis 高可用和负载均衡

我使用 Redis 有一段时间了,现在我们想迁移到一个容错、高可用和负载均衡的冗余集群。

我主要将 Redis 用于一些存储一些进程状态信息的 PHP Web 应用程序(我为此使用 PHPRedis),我也想将它用于负载平衡集群中的 PHP 会话存储。

我已经有一个用于 Nginx 和 MySQL 的负载平衡(基于 pfSense)。

我看到 Redis 集群存在于 Redis 3,但我也阅读了一些关于它尚未准备好用于生产这一事实的评论,其他评论则表明 Redis 无法进行完整的主/主集群配置。

你的建议是什么?

  • 尝试Redis集群
  • 转移到另一个键=值引擎(CouchDB?Memcached?其他?)
  • 不要介意负载平衡,每次只使用集群的一个节点,并进行手动故障转移,因为我不使用持久性
  • 其他想法?

非常感谢您的帮助!

cluster failover load-balancing redis

8
推荐指数
1
解决办法
3万
查看次数

来自 Hetzner 的故障转移 IP 的 DNS 问题

假设我们有两个服务器 A 和 B,具有“真实”和外部 IP,我们可以切换所谓的“故障转移 ip”(WXYZ)以指向 A 或 B 的特定外部 IP。这从“外部”工作并且是轻松完成。作为背景:故障转移 ip 配置为 /etc/network/interfaces 中的新条目:

auto eth0:0  
iface eth0:0 inet static
  address W.X.Y.Z
  netmask 255.255.255.224 
Run Code Online (Sandbox Code Playgroud)

现在让我们假设 WXYZ 被动态配置为使用硬件 A。现在我从 B 调用'curl domain.com',它使用正确的故障转移 ip WXYZ 但然后以某种方式解析到错误的外部 IP B(或本地主机?)而不是使用配置的一个A:

Trying W.X.Y.Z ...
* connect to W.X.Y.Z port 443 failed: Connection refused
* Failed to connect to domain.com port 443: Connection refused
* Closing connection 0
curl: (7) Failed to connect to domain.com port 443: Connection refused
Run Code Online (Sandbox Code Playgroud)

当我启动本地 nginx 时,它可以成功 curl …

domain-name-system ubuntu failover high-availability hetzner

8
推荐指数
1
解决办法
3206
查看次数

Azure Site Recovery 计划外故障转移

我已经成功地为 Azure 创建了几个虚拟机的 DR。我正在使用 Azure 站点恢复和 Azure 资源管理器,我按照本手册了解如何执行此操作https://www.starwindsoftware.com/blog/azure-azure-site-recovery-with-arm-replication-and-failover - 故障回复

当我对虚拟机进行计划外故障转移时,它说计划外故障转移失败。错误 ID 为 70136:

可能原因 操作被取消或恢复点不可用于故障转移。建议 稍等片刻,然后重试该操作。

我尝试搜索解决方案,但没有成功。有什么解决办法吗?PS抱歉我的英语不好。

failover azure

8
推荐指数
1
解决办法
171
查看次数

如果不建议使用 DNS 故障转移,那是什么?

作为他非常受欢迎的问题的后续问题:为什么不建议使用 DNS 故障转移?,我认为由于缓存,DNS 故障转移不是 100% 可靠的。

然而,投票最高的答案并没有真正讨论在两个不同数据中心之间实现故障转移的更好解决方案是什么。提出的唯一解决方案是本地负载平衡(单个数据中心)。

所以我的问题很简单,跨数据中心故障转移的真正解决方案是什么?

domain-name-system disaster-recovery failover high-availability datacenter

7
推荐指数
2
解决办法
6624
查看次数

预算有限的 Magento 托管

我必须为 Magento 进行设置。我的限制主要是易于设置和容错/故障转移。此外,成本也是一个问题。我有三个相同的物理服务器来完成工作。每个服务器节点在软件 RAID 1 配置中都有一个 i7 四核、16GB RAM 和 2x3TB HD。每个节点都运行 Ubuntu 12.04。马上。我有一个额外的 IP 地址,可以路由到这些节点中的任何一个。

Magento 商店有最大。1000个产品,其中50%是捆绑产品。我估计最大。10 个用户同时处于活动状态。这使我得出结论,性能不是这里的重中之重。

我的第一个设置想法

一个节点 (lb) 将 nginx 作为负载均衡器运行。附加 IP 与域名一起使用并默认路由到此节点。Nginx 将负载平均分配给其他两个节点(shop1、shop2)。Shop1 和 shop2 配置相同:每个服务器运行 Apache2 和 MySQL。Mysqls 配置了主/从复制。

我的故障转移策略:

  • Lb 失败 => 将 IP 路由到 shop1(MySQL 主站),继续。
  • Shop1 失败 => Lb 将自动处理,将 shop2 上的 MySQL 从站提升为 master,重新配置 Magento 以使用 shop2 进行写入,继续。
  • Shop2 失败 => Lb 会自动处理,继续。

这是一个明智的策略吗?有没有人用 Magento 做过类似的设置?

我的第二个设置想法

另一种方法是使用 drbd 将 MySQL 数据文件存储在 shop1 和 shop2 上。我知道在这种情况下,只有一个节点/MySQL 实例可以处于活动状态,另一个用作热备用。因此,如果 shop1 失败,我会在 shop2 …

failover drbd magento master-slave master-master

7
推荐指数
1
解决办法
4103
查看次数

A 记录故障转移?

我有一台 Fortigate 100D,带有 2 个 BT Business Infinity 光纤连接,用作 WAN1 和 WAN2。

BT 线路各有 5 个静态公共 IP,我的 DNS 通过 CloudFlare 托管,指向 WAN 连接之一上的静态 IP。

(假设您在 mylesgray.com 上执行 nslookup,您将看到 217.45.201.1 作为公共 IP)。

我们希望为我们的 A 记录(用于托管网站、VPN、ssh 等)提供冗余,但显然 2 条 BT 线路有 2 组不同的公共 IP,因此如果 WAN1 出现故障,我们将陷入困境 - 没有故障转移,因为地址是静止的。

我已经查找了外部 DNS 故障转移,但这对我来说似乎很混乱而且非常错误(循环法让我很恼火)。然后任播作为一个选项出现,然而,任播似乎需要整个 /24 块或在某些 ISP 的强制转换中甚至是 /22。我们正在运行企业级路由器,因此使用 BGP 等不是问题。

任何人都可以了解如何在不购买 /22 块 IP 或使用循环 DNS 的情况下实现 DNS A 记录的故障转移吗?

domain-name-system failover a-record redundancy

7
推荐指数
2
解决办法
1万
查看次数