主机Linux操作系统升级内核后无法正常启动

发布时间:  2015-09-10 浏览次数:  288 下载次数:  0
问题描述

HUAWEI RH2288 V2服务器上安装Redhat 6U7 64 位操作系统,使用Emluex 12002 HBA卡与OceanStor 5500 V3存储直连,安装配套的华为多路径软件UltraPath。

组网图如下所示:

华为5500 V3存储系统映射到主机后,主机可正常接管LUN,并读写。此时升级操作系统内核版本到2.6.32-504.8.1.e16.x86_64,升级成功后重启主机。发现主机无法正常启动,如下图所示:



告警信息

处理过程

OS加载大致分十个步骤,包括:

启动第一步--加载BIOS

启动第二步--读取MBR

启动第三步--Boot Loader / Grup

启动第四步--加载内核

启动第五步--用户层init依据inittab文件来设定运行等级

启动第六步--init进程执行rc.sysinit

Linux系统执行的第一个用户层脚本程序,多路径把盘符识别放到该脚本文件执行。

启动第七步--启动内核模块

启动第八步--执行不同运行级别的脚本程序(/etc/rc.d/rc $RUNLEVEL    # $RUNLEVEL为缺省的运行模式 

多路径在该步骤加载nxup服务。

启动第九步--执行/etc/rc.d/rc.local

启动第十步--执行/bin/login程序,进入登录状态

 其中多路径程序加载分为两个阶段,阶段一在启动第六步执行,阶段二在启动第八步执行。在安装多路径软件时,多路径会将相关加载信息放到rc.sysinit文件中,这样在系统启动到第六步时多路径能启动并接管盘符,但是局点升级了OS后,将rc.sysinit改写回来了初始状态,因此在该步骤多路径无法正常接管sdx盘符。

 在执行到第八步时,多路径进入阶段二加载nxup服务时,发现存在多路径可以接管的操作系统sdx盘符,但需要删除后多路径才能接管(正常应该是在启动第六步接管)。由于此时系统服务可能已经在使用该sdx盘符,如果多路径自动删除后可能导致系统服务异常,因此弹出对话框提示是否删除并由多路径接管,如果确认对业务无影响可以选择y继续执行。

根因

 对于linux操作系统,升级内核会将rc.sysinit改写回来了初始状态,也就是清除了自研多路径UltraPath安装时加入的部分,导致UltraPath无法正常接管OceanStor 5500 V3。在升级内核前,需要先卸载UltraPath,在完成升级并重启后,再重启安装UltraPath。

解决方案

  针对使用了华为UltraPath的主机环境,升级OS的正常操作步骤如下:
1、卸载多路径,重启主机
2、升级内核,重启主机
3、安装多路径,重启主机

END