最常见原因是kmod-oracleasm内核版本与运行时uname -r不匹配,需确保RPM包名中内核版本、架构及变体(如el6xen)完全一致;同时须禁用SELinux并正确配置/etc/sysconfig/oracleasm中的ORACLEASM_MODULE参数。
确认当前内核与kmod-
oracle
asm版本是否匹配
驱动初始化失败最常见原因是
模块编译时所针对的内核版本和运行时
输出不一致。比如系统内核是
,但安装的 rpm 包名却是
,模块就无法加载。
执行以下命令快速比对:
若输出中内核主干版本(如
)不一致,必须更换对应 RPM;注意还要匹配架构(
vs
)、SMP/PAE/XEN 变体(如
vs
)。
手动加载 oracleasm.ko 失败时检查模块路径与依赖
直接加载失败,常见于:
所在目录未被
索引,或模块依赖的符号(如
)未先加载。
先确认模块实际位置:
若不在标准子目录(如
),需手动拷贝并重建依赖:
再尝试加载:
(比
更智能,会自动处理依赖)
SELinux 启用状态下 oracleasm 初始化静默失败
即使
成功,
仍可能卡在
,日志
显示
—— 这往往是 SELinux 阻止了模块加载或设备节点创建。
临时验证:运行
后重试
。若成功,则必须永久禁用:
oracle知识库
oracle知识库下载
下载
编辑
将
改为
重启生效(仅
不足以让
服务自启时通过)
升级 kmod-oracleasm 后仍不生效的遗漏点
换包、禁 SELinux、
都做完,重启后
仍显示未运行,大概率是 init 脚本未触发模块加载。RHEL/CentOS 6+ 的
服务默认不调用
,而是依赖
中的
设置。
检查并修正该配置项:
若为空或值不是
,请设为:
然后执行:
。这步常被忽略,但决定驱动能否随服务一起加载。
kmod-oracleasmuname -r2.6.32-754.35.1.el6.x86_64kmod-oracleasm-2.6.32-696.el6-2.0.8-1.el6.x86_64.rpmuname -r
rpm -qa | grep oracleasm2.6.32-754x86_64i686el6el6xen/sbin/insmodoracleasm.kodepmodkernel/drivers/scsi/scsi_mod.kofind /lib/modules/$(uname -r) -name oracleasm.kokernel/drivers/addon/oracleasm/cp oracleasm.ko /lib/modules/$(uname -r)/kernel/drivers/addon/oracleasm/ && depmod -amodprobe oracleasminsmodmodprobe oracleasm/etc/init.d/oracleasm configureInitializing the Oracle ASMLib driver: [FAILED]/var/log/oracleasmLoading module "oracleasm": failedsetenforce 0oracleasm configure/etc/selinux/configSELINUX=enforcingSELINUX=disabledsetenforce 0oracleasmdepmodoracleasm statusoracleasmmodprobe/etc/sysconfig/oracleasmORACLEASM_MODULEgrep ORACLEASM_MODULE /etc/sysconfig/oracleasmoracleasmORACLEASM_MODULE="oracleasm"service oracleasm restart