Sockets CRIU-检查TCP套接字而不停止它(COW?)

Sockets CRIU-检查TCP套接字而不停止它(COW?),sockets,tcp,failover,copy-on-write,Sockets,Tcp,Failover,Copy On Write,我正在研究TCP连接的故障转移机制。如果主机出现故障(硬件故障),我希望能够在另一台机器上建立连接。我希望定期将“活动”套接字的状态传输到“备份”主机,并在“活动”主机中断时让它接管(tcp_修复和所有) 我有一个使用libsoccr的原型,它可以正常工作,只是我必须暂停套接字一段时间,根据缓冲区大小,它可能需要一些时间(数百微秒,有时1-2毫秒),这对我的应用程序来说有点问题,因为我经常转储它的状态(~每10毫秒) 我希望能够在不暂停套接字的情况下检查TCP套接字(如果可以的话,通过libso

我正在研究TCP连接的故障转移机制。如果主机出现故障(硬件故障),我希望能够在另一台机器上建立连接。我希望定期将“活动”套接字的状态传输到“备份”主机,并在“活动”主机中断时让它接管(tcp_修复和所有)

我有一个使用libsoccr的原型,它可以正常工作,只是我必须暂停套接字一段时间,根据缓冲区大小,它可能需要一些时间(数百微秒,有时1-2毫秒),这对我的应用程序来说有点问题,因为我经常转储它的状态(~每10毫秒)

我希望能够在不暂停套接字的情况下检查TCP套接字(如果可以的话,通过libsoccr,如果需要,我也可以使用原始系统调用)。有没有可能只是“fork”或复制一个TCP套接字及其完整状态,使用某种类型的CoW,这样活动套接字就不会暂停

叉子能帮忙吗?
知道吗?

通过备份主机路由数据包。并让备份主机跟踪当前状态。您好,谢谢您的评论。我不太明白。您是否建议备份主机建立TCP连接,并(通过netfilter/other)将所有入口/出口流量复制到“在线”主机,并保持连接状态的选项卡?或者将所有i/o通信量从“在线”复制到“备份”上。无论如何,这里有两件事似乎有问题,不管我怎么看:1)如果备份主机出现故障,我将失去完整的连接状态,当它返回时,它将无法恢复。会有一些信息丢失。例如,下一个序列号?2)有很多方法让事情变得一团糟我想你的建议是在一些高可用性防火墙中实现的。但我仍然不知道如何在所有情况下,在TCP套接字的所有状态下处理“切换”。conntrack还提供了一些额外的信息,这会有帮助吗?conntrack更改/更新是否可以流式传输/转储?也许是通过网络链接?有COTS/OSS解决方案吗?