虚机运行时重启主机容易panic

一:问题描述

最近有遇到重启主机时产生panic的情况,异常的堆栈如下:

[2847164.482478] kvm: exiting hardware virtualization
[2847164.482504] kvm: exiting hardware virtualization
[2847164.482528] ------------[ cut here ]------------
[2847164.482530] kernel BUG at /root/kvm/source/x86/x86.c:388!
[2847164.482554] invalid opcode: 0000 [#1] SMP NOPTI
[2847164.482569] CPU: 37 PID: 2538414 Comm: CPU 22/KVM Kdump: loaded Tainted: G           OE     4.19.117.bsk.5-amd64 #4.19.117.bsk.5
[2847164.482598] Hardware name: FOXCONN R-5111/GROOT, BIOS IC1B123F 07/16/2020
[2847164.482635] RIP: 0010:kvm_spurious_fault+0x5/0x10 [kvm_intel_0]
[2847164.482652] Code: 41 5c 41 5d 41 5e c3 5b b8 01 00 00 00 5d 41 5c 41 5d 41 5e c3 b8 00 04 00 00 e9 7c ff ff ff 66 0f 1f 44 00 00 0f 1f 44 00 00 <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 45 31 c0 31 c9 31
[2847164.482695] RSP: 0018:ffffbcf877c77cf0 EFLAGS: 00010046
[2847164.482710] RAX: 0000000000000000 RBX: ffff9546d35d0000 RCX: ffff9546cb23b000
[284716
### 虚拟机网卡自动重启的原因及解决方案 #### 原因分析 虚拟机网卡无法正常启动或自动重启通常涉及以下几个方面: - **网络配置工具冲突**:CentOS 和其他 Linux 发行版中可能存在多个网络管理工具(如 `network` 和 `NetworkManager`),这些工具之间的冲突可能导致网卡配置异常[^4]。 - **Netplan 配置不完整**:如果 Netplan 并未完全接管网络管理,可能会导致部分配置失效。通过让 Netplan 完全接管网络管理可以解决问题[^2]。 - **配置文件语法错误**:即使表面上看起来无误,但 `/etc/sysconfig/network-scripts/ifcfg-ens33` 中潜在的隐性错误也可能引发问题[^1]。 --- #### 解决方案 ##### 方法一:调整网络管理工具优先级 当 `network` 和 `NetworkManager` 存在冲突,可以通过以下方式解决: 1. 查看当前 `NetworkManager` 的状态: ```bash systemctl status NetworkManager ``` 2. 如果确认存在冲突,则停止并禁用 `NetworkManager`: ```bash systemctl stop NetworkManager systemctl disable NetworkManager ``` 3. 重新加载网络服务以应用更改: ```bash service network restart ``` 此方法适用于由于网络管理工具冲突引起的网卡重启失败问题[^4]。 --- ##### 方法二:使 Netplan 完全接管网络管理 对于某些发行版,尤其是基于 Ubuntu 的环境,建议让 Netplan 完全接管网络管理: 1. 编辑云初始化配置文件,创建一个新的配置文件来禁用默认的网络管理功能: ```bash vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ``` 2. 在该文件中添加如下内容: ```yaml network: {config: disabled} ``` 3. 保存退出后,重启虚拟机以生效: ```bash reboot ``` 这种方法能够有效防止 Cloud-init 对网络配置的影响,从而减少意外情况的发生[^2]。 --- ##### 方法三:手动修复网络脚本 针对 CentOS 系统中的具体网卡配置文件 `/etc/sysconfig/network-scripts/ifcfg-ens33`,需确保其基本参数正确无误。以下是标准配置模板: ```plaintext TYPE=Ethernet BOOTPROTO=dhcp NAME=ens33 DEVICE=ens33 ONBOOT=yes ``` 完成修改后,执行以下命令验证配置有效性: ```bash service network restart ``` 若仍存在问题,可进一步排查日志信息: ```bash systemctl status network.service journalctl -xe ``` 此外,在某些情况下,直接调用底层脚本来重启网络服务可能更可靠: ```bash cd /etc/init.d || cd /etc/rc.d/init.d ./network restart ``` 这种方式绕过了 systemd 的复杂依赖关系,适合处理特定场景下的问题[^3]。 --- ##### 方法四:检查硬件资源分配 有虚拟机迁移过程中可能出现硬件资源绑定丢失的情况,这也会间接影响网卡行为。可通过以下步骤排除此类可能性: 1. 登录到宿主机,检查目标虚拟机对应的网桥设备是否存在; 2. 使用拟化平台自带工具重新扫描硬件资源; 3. 更新虚拟机驱动程序至最新版本。 --- ### 结论 综合以上分析可知,虚拟机网卡自动重启的主要原因是网络管理工具冲突、配置文件错误以及外部因素干扰所致。推荐按照以下顺序逐步排查: 1. 检查并修正 `/etc/sysconfig/network-scripts/ifcfg-*` 文件的内容; 2. 判断是否需要停用 `NetworkManager` 或启用 Netplan 来统一管理网络; 3. 若仍未恢复,考虑重置硬件资源配置或更新驱动支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值