本文针对Linux 操作系统弹性云主机由于内核参数kernel.unknownnmipanic配置错误导致的异常重启问题给出修复方案,供您参考。 问题描述 使用Linux操作系统的弹性云主机发生异常重启事件,错误提示如下: Kernel panic – not syncing: NMI: Not continuing 同时,内核日志输出如下信息: […] Uhhuh. NMI received for unknown reason 20 on CPU 1. […] Do you have a strange power saving mode enabled? […] Kernel panic not syncing: NMI: Not continuing 可能原因 如果Linux操作系统弹性云主机的内核参数kernel.unknownnmipanic配置为1,则云主机实例会在系统收到NMI中断时主动panic导致系统重启。NMI中断(NonMaskable Interrupt,非可屏蔽中断)是操作系统中的一种特殊类型的中断,它具有比其他中断更高的优先级,并且通常无法被屏蔽或忽略。因此NMI中断通常用于处理一些关键的系统事件,例如硬件故障、系统崩溃、内存校验错误等,这些事件需要立即引起处理,而不能等待其他正在进行的任务完成。内核参数kernel.unknownnmipanic配置为1的目的是为了通过触发NMI中断主动通过panic系统进行问题定位。不过由于个别型号的CPU会在正常业务流程中同样产生NMI中断,如果在这种情况下仍将内核参数kernel.unknownnmipanic配置为1,将会触发云主机产生非预期的异常重启事件。 解决方案 1. 远程登录弹性云主机。 2. 执行以下命令,查看该云主机关于内核参数kernel.unknownnmipanic的配置值 sysctl n kernel.unknownnmipanic 如果该参数的取值为1,说明是由于内核参数配置错误引起的云主机异常重启。 [root@centos ~]
背景知识 当云服务器绑定多张网卡时,由于默认路由会优先从主网卡出,导致主网卡默认可以和外部正常通信,扩展网卡只能与本子网网段互通,无法与其他网段正常通信;在这种情况下需要在云服务器操作系统内部为这些网卡配置策略路由,以便多张网卡均可与外部正常通信。 应用场景 客户弹性云主机1有两张网卡,主网卡需要访问弹性云主机2,且弹性云主机2的响应正常回到主网卡;同样辅助网也也需访问弹性云主机2,且要求其响应报文正常回到辅助网卡。 操作指导 注意 以下操作步骤,以linux操作系统为例; 以下配置不会在云服务器上永久保存,重启网络服务后会被恢复,如需配置永久路由,请根据各自操作系统选用合适的方式,如 linux操作系统,可使用systemdnetworkd。 操作步骤(Linux IPv4) 1. 收集配置策略路由需要的云服务器网卡地址等信息(主网卡IP、辅助网卡IP) 2. 确保云服务器已正常获取到IPv4地址。 执行以下命令,查看云服务器网卡名称。 回显类似如下信息,通过网卡地址查找对应的网卡名称,本示例中 192.168.0.7为主网卡地址,对应的名称为eth0。 192.168.1.4为扩展网卡地址,对应的名称为eth1。 3. 操作前检查和网关通信情况(其中一个网卡可以和网关通信另外一个网卡默认不通) ping I 192.168.0.7 192.168.2.3 ping I 192.168.1.4 192.168.2.3 4. 查看路由默认状态主网卡的默认路由优先级更高,策略路由为默认 ip route ip rule 5. 执行命令添加主备网卡的路由 主网卡 ip route add default via 子网网关 dev 网卡名称 table 路由表名称 ip route add 子网网段 dev 网卡名称 table 路由表名称 ip rule add from 网卡地址 table 路由表名称 扩展网卡 ip route add default via 子网网关 dev 网卡名称 table 路由表名称 ip route add 子网网段 dev 网卡名称 table 路由表名称 ip rule add from 网卡地址 table 路由表名称 参数说明如下:网卡名称:填写ifconfig中所查名称。 路由表名称:自定义路由表名称,此处请使用数字命名路由表。 命令示例 主网卡 ip route add default via 192.168.0.1 dev eth0 table 10 ip route add 192.168.0.0/24 dev eth0 table 10 ip rule add from 192.168.0.7 table 10 扩展网卡 ip route add default via 192.168.1.1 dev eth1 table 20 ip route add 192.168.1.0/24 dev eth1 table 20 ip rule add from 192.168.1.4 table 20 查询策略路由是否添加成功 ip rule ip route show table 10 ip route show table 20 6. ping验证,eth0 eth1与目的地址都可以互通 ping I 192.168.0.7 192.168.2.3 ping I 192.168.1.4 192.168.2.3