背景:协助客户做验证,客户使用的是RHEL7.6环境,我这边是OEL7.6环境,开始以为区别不大,结果acfs兼容还是遇到问题,特此记录下。

现象:asmca图形没有acfs相关内容,无法使用acfs。

起初以为是个简单的问题,之前也遇到因为bug导致类似现象,结果这次应用最新的RU补丁依然不行。

[grid@db193 ~]$ lsmod|grep oracle

这里依然没有结果显示,再次尝试安装还是报错当前OS版本不被支持:

[root@db193 bin]# pwd
/u01/app/19.3.0/grid/bin
[root@db193 bin]# ./acfsroot install
ACFS-9459: ADVM/ACFS is not supported on this OS version: 'EL7'

此时是非常奇怪的,客户环境RHEL7.6虽然遇到一些异常,但最起码是可以安装使用的,难道有什么区别吗?

通过MOS搜索ACFS支持的OS平台:

  • ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)

起初从列表中可以确认有一些bug 27494830 等,但是目前环境已经应用最新的RU,而且也查了这些bug,都已经应用过补丁:

[grid@db193 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory |grep 27494830
22162072, 27494830, 27917085, 28064731, 28293236, 28321248, 28375150

再次仔细看MOS文章时,发现支持的OS版本实际和我目前环境是有区别的:

All Updates, 4.14.35-1902 and later UEK 4.14.35 kernels

查了下,这个实际对应的是 OEL 7.7,而我这个是OEL 7.6,所以确实不支持。。

[grid@db193 ~]$ acfsdriverstate -orahome $ORACLE_HOME supported
ACFS-9459: ADVM/ACFS is not supported on this OS version: 'EL7'
ACFS-9201: Not Supported

那客户RHEL 7.6 为何就支持呢?两者差异在哪里?

实际上我们知道OEL有两个内核可选择,一个是UEK内核,另一个就是兼容红帽的RHCK内核,而我的环境默认是UEK内核,很遗憾这个内核对应的7.6版本就是不支持ACFS的。

可是测试任务重,不可能升级/重新安装系统,于是想到是否可以切换到RHCK内核呢?因为根据列表看到RHEL 7.6就是支持的版本:

Update 6 3.10.0-957 and later 3.10.0 Red Hat Compatible kernels

所以尝试更改内核,根据MOS文档:

  • Change Booting Kernel From UEK to RHCK on OL 7.X IaaS Compute Instances (Doc ID 2248303.1)

有些步骤在我的环境是不需要的,我这边实际测试只需如下步骤:

--Oracle Linux切换uek内核到rhck内核
[root@db195 ~]# uname -a
Linux db195 4.14.35-1818.3.3.el7uek.x86_64 #2 SMP Mon Sep 24 14:45:01 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@db195 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : Oracle Linux Server (4.14.35-1818.3.3.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.6
1 : Oracle Linux Server (3.10.0-957.el7.x86_64 with Linux) 7.6
2 : Oracle Linux Server (0-rescue-06634a96d9af4acdaa83c9227d61a7f3 with Linux) 7.6
[root@db195 ~]# grub2-set-default 1
[root@db195 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64
Found initrd image: /boot/initramfs-4.14.35-1818.3.3.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-06634a96d9af4acdaa83c9227d61a7f3
Found initrd image: /boot/initramfs-0-rescue-06634a96d9af4acdaa83c9227d61a7f3.img
done
[root@db195 ~]# reboot
[root@db195 ~]# uname -a
Linux db195 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 1 00:13:43 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

更换RHCK内核后,再次查询acfs是否支持:

[root@db195 ~]# su - grid
上一次登录:二 9月 14 00:57:30 CST 2021
[grid@db195 ~]$ cd $ORACLE_HOME/bin
[grid@db195 bin]$ ./acfsdriverstate -orahome $ORACLE_HOME supported
ACFS-9200: Supported

终于支持了,此时再次检查ACFS的Modules并尝试安装成功:

[root@db193 bin]# lsmod|grep oracle
[root@db193 bin]# cd /u01/app/19.3.0/grid/bin
[root@db193 bin]# ./acfsroot install
ACFS-9300: ADVM/ACFS distribution files found.
ACFS-9314: Removing previous ADVM/ACFS installation.
ACFS-9315: Previous ADVM/ACFS components successfully removed.
ACFS-9294: updating file /etc/sysconfig/oracledrivers.conf
ACFS-9307: Installing requested ADVM/ACFS software.
ACFS-9294: updating file /etc/sysconfig/oracledrivers.conf
ACFS-9308: Loading installed ADVM/ACFS drivers.
ACFS-9321: Creating udev for ADVM/ACFS.
ACFS-9323: Creating module dependencies - this may take some time.
ACFS-9154: Loading 'oracleoks.ko' driver.
ACFS-9154: Loading 'oracleadvm.ko' driver.
ACFS-9154: Loading 'oracleacfs.ko' driver.
ACFS-9327: Verifying ADVM/ACFS devices.
ACFS-9156: Detecting control device '/dev/asm/.asm_ctl_spec'.
ACFS-9156: Detecting control device '/dev/ofsctl'.
ACFS-9309: ADVM/ACFS installation correctness verified.
[root@db193 bin]# lsmod|grep oracle
oracleacfs 5184608 0
oracleadvm 1163390 0
oracleoks 757134 2 oracleacfs,oracleadvm
[root@db193 bin]#

在所有节点都安装后,然后查看状态:

[grid@db193 ~]$ crsctl stat res -t -init
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE db193 Started,STABLE
ora.cluster_interconnect.haip
1 ONLINE ONLINE db193 STABLE
ora.crf
1 ONLINE ONLINE db193 STABLE
ora.crsd
1 ONLINE ONLINE db193 STABLE
ora.cssd
1 ONLINE ONLINE db193 STABLE
ora.cssdmonitor
1 ONLINE ONLINE db193 STABLE
ora.ctssd
1 ONLINE ONLINE db193 ACTIVE:0,STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE db193 STABLE
ora.gipcd
1 ONLINE ONLINE db193 STABLE
ora.gpnpd
1 ONLINE ONLINE db193 STABLE
ora.mdnsd
1 ONLINE ONLINE db193 STABLE
ora.storage
1 ONLINE ONLINE db193 STABLE
--------------------------------------------------------------------------------

此时发现依然没有acfs的资源,尝试asmca创建试试看:最后执行脚本有问题,尝试手工启动依然有问题:

[root@db193 bin]# /u01/app/19.3.0/grid/bin/srvctl start filesystem -d /dev/asm/oggsou-85
PRCA-1138 : 无法启动一个或多个文件系统资源:
Not all ADVM/ACFS drivers have been loaded.
CRS-2674: Start of 'ora.data.oggsou.acfs' on 'db195' failed
Not all ADVM/ACFS drivers have been loaded.
CRS-2674: Start of 'ora.data.oggsou.acfs' on 'db193' failed

尝试添加acfs资源,acfsroot enable:

[root@db193 bin]# cd /u01/app/19.3.0/grid/bin/
[root@db193 bin]# ./acfsroot enable
ACFS-9376: Adding ADVM/ACFS drivers resource succeeded.
CRS-2672: Attempting to start 'ora.drivers.acfs' on 'db193'
CRS-2676: Start of 'ora.drivers.acfs' on 'db193' succeeded
ACFS-9380: Starting ADVM/ACFS drivers resource succeeded.

此时再次查询发现ora.drivers.acfs已经有了。

再次尝试启动filesystem成功:

[root@db193 bin]# /u01/app/19.3.0/grid/bin/srvctl start filesystem -d /dev/asm/oggsou-85

再次查询acfs资源,已经正常mount成功:

[grid@db193 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.OGGSOU.advm
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.data.oggsou.acfs
ONLINE ONLINE db193 mounted on /oggsou,S
TABLE
ONLINE ONLINE db195 mounted on /oggsou,S
TABLE

最后reboot两个机器,验证是否acfs可以开机自动启动,验证结果是OK的,因为之前协助解决问题时,是参考之前经验加了服务启动项,实际发现这种正常操作下来后并不需要配置启动项,去查询也是没有的:

[root@db193 system]# pwd
/etc/systemd/system
[root@db193 system]# ls -lrth
总用量 16K
drwxr-xr-x. 2 root root 44 7月 16 2019 system-update.target.wants
drwxr-xr-x. 2 root root 32 7月 16 2019 getty.target.wants
drwxr-xr-x. 2 root root 87 7月 16 2019 default.target.wants
drwxr-xr-x. 2 root root 35 7月 16 2019 local-fs.target.wants
drwxr-xr-x. 2 root root 38 7月 16 2019 dev-virtio\x2dports-org.qemu.guest_agent.0.device.wants
drwxr-xr-x. 2 root root 57 7月 16 2019 basic.target.wants
lrwxrwxrwx. 1 root root 37 7月 16 2019 default.target -> /lib/systemd/system/multi-user.target
drwxr-xr-x. 2 root root 51 7月 30 2019 sockets.target.wants
drwxr-xr-x. 2 root root 31 7月 30 2019 remote-fs.target.wants
drwxr-xr-x. 2 root root 4.0K 9月 9 2019 sysinit.target.wants
drwxr-xr-x 2 root root 34 9月 13 17:17 oracle-ohasd.service.d
-rw-r--r-- 1 root root 699 9月 13 17:17 oracle-ohasd.service
-rw-r--r-- 1 root root 452 9月 13 17:22 oracle-tfa.service
drwxr-xr-x. 2 root root 4.0K 9月 13 17:22 multi-user.target.wants
drwxr-xr-x 2 root root 60 9月 13 17:22 graphical.target.wants
[root@db193 system]#

实际操作下来遇到的知识点还是蛮多,看来有些新版本的东西还是要实际动手验证下,不能只凭历史经验,也是应了那句老话:纸上得来终觉浅,绝知此事要躬行。

Oracle Linux切换uek内核到rhck内核解决ACFS兼容问题的更多相关文章

  1. linux切换普通用户遇bash-4.1解决

    1,修改vim  /etc/passwd 把对应用户的登陆环境改成,/bin/bash 2,复制配置 cp -a /etc/skel/. /home/www/ 3再次尝试su www有效

  2. Linux探秘之用户态与内核态

    一. Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核).内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程 ...

  3. Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)

    本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...

  4. 【Linux 系统】Linux探秘之用户态与内核态

    一. Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核).内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程 ...

  5. Linux 内核和 Windows 内核有什么区别?

    Windows 和 Linux 可以说是我们比较常见的两款操作系统的. Windows 基本占领了电脑时代的市场,商业上取得了很大成就,但是它并不开源,所以要想接触源码得加入 Windows 的开发团 ...

  6. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  7. Linux设备驱动工程师之路——内核链表的使用【转】

    本文转载自:http://blog.csdn.net/forever_key/article/details/6798685 Linux设备驱动工程师之路——内核链表的使用 K-Style 转载请注明 ...

  8. 转 -Linux 自检和 SystemTap (强大的内核调试工具)---包含下载地址

    下载: http://www.oschina.net/p/systemtap/ https://sourceware.org/systemtap/ftp/releases/   Linux 自检和 S ...

  9. Linux环境下用户空间与内核空间数据的交换方式

    在linux环境开发过程中,经常会需要在用户空间和内核空间之间进行数据交换. 介绍了 Linux 系统下用户空间与内核空间数据交换的几种方式 第一节:使用procfs实现内核交互简明教程(1) 第二节 ...

  10. 24小时学通Linux内核之向内核添加代码

    睡了个好觉,很晚才起,好久没有这么舒服过了,今天的任务不重,所以压力不大,呵呵,现在的天气真的好冷,不过实验室有空调,我还是喜欢待在这里,有一种不一样的感觉,在写了这么多天之后,自己有些不懂的页渐渐的 ...

随机推荐

  1. 玩转Mybatis高级特性:让你的数据操作更上一层楼

    目录 动态SQL 缓存机制 插件机制 自定义类型转换 总结 Mybatis高级特性能够帮助我们更加灵活地操作数据库,包括动态SQL.缓存机制.插件机制.自定义类型转换等.学习这些特性可以让我们更好地利 ...

  2. 升级pip报错ERROR: Could not install packages due to an OSError: [WinError 5]

    今天在安装python第三方库时,提示pip需要升级,没有多想直接升级,结果报错: 1 ERROR: Could not install packages due to an OSError: [Wi ...

  3. Python最详细的Excel操作方式,

    为 什么要学会使用Excel在机器学习模型的建立中,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理得到的数据存入excel表格当中以及获取表格的数据进行分析,简 ...

  4. 11.spring security 认证和授权简单流程了解

    1.总结:昨天主要是对WebSecurityConfigurerAdaptor的三个函数的区分以及了解了spring security的认证和授权流程:再就是动手使用了下thymeleaf和freeM ...

  5. 全网最详细中英文ChatGPT-GPT-4示例文档-智能聊天机器人从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  6. 2023高效的mysql 随机语句 200万数据为例 用了 0.0030秒

    是的,如果数据表中有200万条记录,使用 ORDER BY RAND() 这种方式来随机选择记录会非常慢,因为 MySQL 需要对整个表进行排序,然后再返回指定数量的记录.这个过程需要消耗大量的时间和 ...

  7. facebook分享不能显示图片链接问题

    <meta property="og:url" content="http://www.nytimes.com/2015/02/19/arts/internatio ...

  8. 【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配置 Git 提交规范

    前言 本文介绍 vue3-element-admin 如何通过 Husky + Lint-staged + Commitlint + Commitizen + cz-git 来配置 Git 提交代码规 ...

  9. 批量上传iOS应用程序截图的实用技巧

      提交iOS应用程序截图到iTunes Connect是一项非常繁琐的任务,因为你必须上传多达数十张屏幕截图,这是一个重复而枯燥的过程.但是,我们有一个好消息要告诉开发者们,现在有一个工具可以帮助你 ...

  10. jdk1.8 LocalTime、LocalDate、LocalDateTime 使用大全

    目录 LocalTime.LocalDate.LocalDateTime 区别 LocalTime.LocalDate.LocalDateTime 使用 now 获取当前 时刻.日期.时间 of 获取 ...