互联网技术 / 互联网资讯 · 2024年1月28日

云计算核心技术:Docker Swarm 模式灾难恢复教程

从备份恢复

按照备份 swaRM 中的说明备份 swaRM后,使用以下过程将数据恢复到新的 swaRM。

1.为恢复的 swaRM关闭目标主机上的 DockeR。

2.删除/vaR/lib/dockeR/swaRM新群上目录的内容。

3./vaR/lib/dockeR/swaRM使用备份内容恢复目录。

4.在新节点上启动 DockeR。如有必要,解锁群体。使用以下命令重新初始化 swaRM,以便此节点不会尝试连接到属于旧 swaRM且可能不再存在的节点。

dockeR swaRM inIT –foRce-new-clUSteR

5.验证群的状态是否符合预期。这可能包括特定于应用程序的测试或简单地检查输出 dockeR seRvice ls以确保所有预期的服务都存在。

6.如果您使用自动锁定,请旋转解锁钥匙。

7.添加管理器和工作器节点,使您的新集群达到运行能力。

8.在新群上恢复您之前的备份方案。

从失去法定人数中恢复

SwaRM对故障具有弹性,并且可以从任意数量的临时节点故障(机器重新启动或重新启动时崩溃)或其他暂时性错误中恢复。但是,如果失去法定人数,swaRM将无法自动恢复。现有工作节点上的任务继续运行,但无法执行管理任务,包括扩展或更新服务以及从群中加入或删除节点。恢复的最佳方法是使丢失的管理器节点重新联机。如果这是不可能的,请继续阅读一些用于恢复群的选项。

在一群N管理器中,法定人数(大多数)管理器节点必须始终可用。例如,在有5名管理人员的群体中,必须至少有3人在运作并相互沟通。换句话说,swaRM可以容忍(N-1)/2永久故障,超过这个故障就不能处理涉及swaRM管理的请求。这些类型的故障包括数据损坏或硬件故障。

如果您失去了法定人数的管理者,您将无法管理集群。如果您失去了法定人数并尝试对swaRM执行任何管理操作,则会发生错误:

Error Response fRoM daeMon: RPC Error: code = 4 desc = context deadline exceeded

从失去仲裁中恢复的最佳方法是将故障节点重新联机。如果你不能这样做,从这个状态恢复的唯一方法是使用–foRce-new-clUSteR来自管理器节点的操作。这将删除除运行命令的管理器之外的所有管理器。达到法定人数是因为现在只有一名经理。将节点提升为管理器,直到您拥有所需数量的管理器。

从要恢复的节点运行:

dockeR swaRM inIT –foRce-new-clUSteR –adveRtise-addR node01:2377

当您运行dockeR swaRM inIT带有–foRce-new-clUSteR标志的命令时,运行该命令的DockeR引擎将成为能够管理和运行服务的单节点swaRM的管理器节点。管理器拥有有关服务和任务的所有先前信息,工作节点仍然是swaRM的一部分,服务仍在运行。您需要添加或重新添加管理器节点来实现您之前的任务分配,并确保您有足够的管理器来保持高可用性并防止失去仲裁。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册