热克隆一个活跃的Linux服务

热克隆一个活跃的Linux服务

我们需要在 Linux 服务处于活动状态时对其进行热克隆,这不仅仅是因为我们无法重新启动或类似的事情;这只是因为我们的特殊场景(是的,我已经读过这个答案,但它与我的有点不同克隆一个正在运行的 Linux 服务器)。

我们有一个计算节点,可以说是一个运行着一些模型的 NLP 计算节点。当我们启动节点(当然是通过服务)时,计算会非常慢,直到我们给它喂食几次。我们称之为热身。

不幸的是,预热工作需要我们等待很长时间(也许我们的计算在节点预热之前就完成了)。

那么问题来了,有没有一种稳定的办法可以热克隆出一台Linux服务器,让节点保持最佳性能,以便我们在更短的时间内克隆并上线?

答案1

也许你不能“热克隆”整个服务器(你可以,但前提是它是虚拟机),但你可以冻结和恢复单个进程,克里乌,用户空间中的检查点/恢复。

这使您可以将程序的内部状态保存到磁盘并停止该程序,然后从保存的文件将程序恢复到该状态。

为了支持您想要的操作,您可以将代表已保存程序的文件复制到另一台服务器,然后在那里恢复。

criu 需要较新的内核,其中已编译各种功能,因此较旧的 Linux 发行版可能无法运行。您可以criu check在特定机器上运行以确定 criu 的先决条件是否存在。

答案2

这可能有点超出您当前环境的范围,但业界标准的做法是虚拟化您的服务器。许多虚拟化主机(VMware、virtualbox 等)允许“快照”保存服务器的状态,然后可以将其克隆到新实例中。这些新实例将具有与原始实例完全相同的状态,甚至运行进程也是如此。当然,您需要确保您正在运行的软件在虚拟环境中仍能正常运行(CUDA/GPU 计算就是一个例子)。

答案3

你提到的问题参考链接,http://www.linuxfocus.org/English/March2005/article370.shtml,其中描述了我所想象的满足您的要求的所有方法。

这些选项的存在对服务器上正在运行的内容没有多大意义。您必须考虑到在克隆过程中可能发生变化的所有文件都可能是目标机器上的不一致文件。在您提供的那篇文章中,他们讨论了数据库,而像那样克隆它并不能保证数据完整性。

你的意思不太清楚“直到我们喂它几次”

但如果我理解了你的问题,你必须考虑到为了克隆一个系统,它需要时间来复制和计算资源。

为了执行“ON/OF”或者更好地称为主动/备份环境,必须在集群中正确配置服务器。

很抱歉,这不是您期望的答案,但是您获得的选项就是这些。

答案4

您尝试执行的操作存在许多潜在问题,当然,如您所知,最好在没有动态存储数据的情况下使服务器脱机并克隆它。

但是,你试图做的事情完全可行,因为我以前也做过。如果你使用,dd你可以将整个服务器以块级别克隆到另一个驱动器或另一台服务器上。但是,这需要在新服务器上进行一些额外的设置,而且你可能无法简单地关闭另一台服务器并打开新服务器。为了让我们理解这一点,我们需要了解一些有关服务器硬件和软件的信息。

首先,为了确定最佳数据策略,了解定期更新的内容会很有帮助。您是否拥有一个动态更新但内容为静态的 SQL 服务器?或者,您是否有一个开发人员团队使用 git 等颠覆系统向您的内容发送持续的数据更新?根据更新的内容,可以确定最佳的完整行动方案。

例如,如果只有 SQL 定期更新,那么您可以按照以下方式在新服务器处于活动状态时迁移到该服务器:

  • dd将所有数据克隆到新服务器。
  • 开始设置新的服务器,这可能需要一些工作,特别是在硬件不同的情况下,但仍然可能比从头开始设置更快。
  • 可能还需要进行一些 DNS 更改,因为如果您需要在第一台服务器仍处于活动状态时在第二台服务器上工作,则不能在另一台服务器上使用相同的 DNS。
  • 在新服务器完成并独立运行后,对原服务器上的sql server进行最后备份,并将其导入到新服务器中。

您可能需要暂时将原始服务器离线,以确保不会丢失任何数据。或者,为了实现零停机时间,您可以让第二个服务器上线,将 DNS 指向新服务器,然后在新服务器上手动更新任何 DNS 条目,这样实际上就实现了零停机时间。虽然这比备份 SQL 并恢复到新服务器的几分钟停机时间更麻烦,但对于停机时间。

当然,这只是一个用例示例,根据您的配置和几个变量,您可能需要根据具体情况创建自己的迁移策略。

另一个问题与服务器硬件配置有关。新服务器的硬件是否与旧服务器 100% 相同?如果是,则设置会更容易。但是,如果另一方面,它是一个完全不同的硬件配置,那么您可能需要实施不同的策略,即提前设置第二台服务器,然后在第一台服务器上备份所有数据和 sql 数据库并手动迁移它们,根据需要更改配置。

服务器迁移绝非易事,为了成功迁移,您需要对服务器有深入的了解,或者有拥有服务器的工作人员。无论如何,强烈建议您立即进行完整备份并将其存储在第三个来源,甚至存储在本地计算机上,这样如果发生最坏的情况(两台服务器都崩溃且无法修复),您仍然有另一份数据副本来重建服务器。

希望这对您有所帮助,并祝您的服务器迁移顺利!

相关内容