我将 XenServer 版本 6.2 主机升级到 7.1 主机上的其中一台虚拟机(CentOS 6.9,PV 类型 - 半虚拟化)运行 Asterisk 电话软件,该软件使用名为“DAHDI”的模块,这是一组用于电话目的的硬件驱动程序。
在升级 6.2 主机之前,我将虚拟机迁移到另一台 6.2 主机。升级到 7.1 后迁移回来,一切似乎都很好,只是 DAHDI 功能消失了。
事实证明,DAHDI 有内核模块,因此在安装时它会修改或添加内核模块。
似乎发生的情况是,XenServer 主机升级改变了 Linux 内核,这带来的副作用是先前安装的 DAHDI 内核模块消失了。
该虚拟机的原始内核版本:
2.6.32-431.29.2.el6.i686 #1 SMP 2014 年 9 月 9 日星期二 20:14:52 UTC
主机升级后内核版本:
2.6.32-696.6.3.el6.i686 #1 SMP 2017 年 7 月 12 日星期三 13:38:41 UTC
我的问题:
我的结论是修改后的内核导致了这个问题,正确吗?
这是已知行为,是有意为之,还是至少是“正常”且可以预料的?我在 Xen 或 Citrix XenServer 上找到的任何文档都给我留下了这样的印象:要升级,我只需要将虚拟机从服务器上迁移出来或导出/导入,而没有提到在 PV 虚拟机上您可能会失去功能。
如果不正常,我需要做什么来防止它?它取决于什么?我不一定知道哪些虚拟机可能具有某种特殊模块,这些模块会在升级时崩溃。
我知道大多数或所有较新的 Linux 版本似乎仅在 XenServer 上作为 HVM 实现。那么这是防止此问题的唯一方法吗?
答案1
我发现以下情况:
- XenServer 升级不会更改客户操作系统的内核版本。可能存在不兼容问题,在这种情况下,在升级主机之前需要升级内核(Citrix 文档中经常会提到这一点)。在这个特定情况下,日志文件显示内核版本在 Xen 主机升级之前已被另一位管理员更改。因此,这不是问题的原因。
在 Xen 主机升级之前,VM 上有许多更新和安装(我不知道)。显然,这些更新可能会导致 DAHDI 在重新启动时消失。VM 安装后的第一次重新启动是在 XenServer 升级时 - 所以这可能只是巧合。
总之,尽管崩溃发生的原因尚不完全清楚,但可以肯定地说,PV VM 升级不会随机且不可控地更改 Linux 内核,因此不应成为问题的原因。因此,在 Xen 上升级 PV Linux VM 时,您可以放心!