问题
远程更改网络配置时,是否有办法在发生故障时尝试使用不同的配置文件?
背景- 总结;
我一直在搜索,但并没有看到任何关于将文件传递给 ifup 的参考资料,尽管这么说让我想到了查看 ifup 的手册页,但不管怎样。我现在无法测试它。
我们的服务器已移至数据中心,而我在这里的另一个城市工作。网络不是我的强项,安装后我想将两个网卡绑定在一起以提高吞吐量。但这样做时,由于网络接口初始化失败,我失去了连接。
我曾尝试在 /etc/sysconfig/network-scripts 中设置绑定
bond0:占用 eth0 和 eth1 eth0:设置为绑定 eth1:设置为绑定然后是 eth1:1 我想我可以将一个 ip 绑定到它以防我再次被阻止...
不幸的是,这没有奏效,唯一有资格去数据中心提供支持的人是我的领导。情况不太好。(而且我在虚拟服务器上测试了两次,只是为了确保不会失去连接)
现在,我们已经将它粘合在一起了,但据我所知,没有办法进行“以防万一”的配置……
因此,今天我需要为服务器内部的虚拟机建立连接....没想到,我又失去了连接,这是我老板本月第二次去数据中心。:facepalm:
一定有一种方法,如果检测到接口未启动,则网络将使用一组完全不同的配置文件,如果您愿意的话,可以称之为故障保护,以便在网络尝试失败后,如果网络中断,每五分钟运行一次的 cron 作业将重新建立与故障保护的网络连接。
我希望我现在可以访问 Linux 机器,但我通常通过执行 service network restart 命令来检查网络。有没有办法给它一个故障安全命令,如果未检测到网络,它将依次尝试不同的故障安全配置,直到网络启动。
答案1
tl;dr:使用 OOB,查看配置管理,或者您需要构建自己的解决方案。
我对 Linux 中预置的用于执行此类操作的东西并不熟悉 - 通常采用 IPMI/ILOM/OOB。您不仅可以远程访问主机的控制台,还可以(通常)检查硬件的状态、在硬件被硬锁定时发出远程重启等。
如果 OOB 不是一种选项,您可以考虑设置一个 cron 作业来检查各种情况并确定您的主机是否处于无法访问的状态,并执行任务来尝试恢复自身。
当然,这样做有很大风险。您必须考虑许多不同的情况 - 假设您想检查以确保可以访问网关 IP 地址,但网关短暂关闭 - 如果问题不是出在您的机器上,而是上游的问题,您不希望主机重新配置其接口。
还有配置管理控制选项,您可以配置它将本地计算机恢复到预期状态/每小时验证其是否处于预期状态等 - 您必须配置这些应用程序以使用配置文件的本地副本,而不是尝试与远程服务器通信,但这是可能的。这可能有点过分,具体取决于您管理的系统数量(如果超过 5 个,我强烈建议您查看配置管理,这将为您节省大量时间)。
如果您确实想使用一些脚本来监控机器的变化,我强烈建议您将其设置为试运行模式一段时间。这样,您就可以让它记录下它认为需要重新配置网络接口的时间,这样您就可以在投入使用之前调试/测试/检查功能。
更好的是,你可以在主机上连接第二个或第三个接口(因为你想要绑定),并且永远不触碰该接口配置,或者让你的脚本只尝试使用该接口恢复自身服务 - 这样,如果它出现故障,它不会潜在地弄乱它认为不好的接口,而只是你为此目的使用的第 3 个接口。