Oracle Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0xxxxxx, proc name

一套Oracle 12.2.0.1环境的RAC,在1月4日的时候发生了集群重启

【重启原因和下面没关系,我们只是说下emcp_pseudo_ctl_ioctl错误哦!!~】

在/var/log/message显示如下报错ecmp_pseudo_ctl_ioctl错误,那么这个错误是什么?是否对我的数据库有影响?或者说是潜在的io错误吗?我们带着这样的疑问来看下。

Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: ora_rbal_topprd
Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: ora_rbal_topprd
Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: ora_rbal_topprd
Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd
Jan 4 10:12:11 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd
Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: mdb_rbal_-mgmtd
Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: mdb_rbal_-mgmtd
Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: mdb_rbal_-mgmtd
Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: mdb_rbal_-mgmtd
Jan 4 10:12:20 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: mdb_rbal_-mgmtd
Jan 4 10:12:20 racdb2 kernel: sd 16:0:0:4: [sdf] Very big device. Trying to use READ CAPACITY(16).
Jan 4 10:12:20 racdb2 kernel: sd 16:0:1:4: [sdn] Very big device. Trying to use READ CAPACITY(16).
Jan 4 10:12:20 racdb2 kernel: sd 16:0:0:3: [sde] Very big device. Trying to use READ CAPACITY(16).
Jan 4 10:12:20 racdb2 kernel: sd 16:0:1:3: [sdm] Very big device. Trying to use READ CAPACITY(16).
Jan 4 10:12:22 racdb2 systemd-logind: New session 33129 of user grid.
Jan 4 10:12:22 racdb2 systemd: Started Session 33129 of user grid.
Jan 4 10:12:22 racdb2 systemd-logind: Removed session 33129.
Jan 4 10:12:29 racdb2 su: (to grid) root on none
Jan 4 10:12:29 racdb2 systemd: Started Session c11794 of user grid.
Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: ora_rbal_topprd
Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x2285, proc name: ora_rbal_topprd
Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: ora_rbal_topprd
Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd
Jan 4 10:12:30 racdb2 kernel: Error:emcp:EKBL043: emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: ora_rbal_topprd

这个错误在MOS上找到了原因:

Error:emcp:emcp_pseudo_ctl_ioctl" output in messages on ASM env. ( Doc ID 2648758.1 )

APPLIES TO:

Oracle Database - Enterprise Edition - Version 12.2.0.1 and later
Oracle Database - Standard Edition - Version 12.2.0.1 and later
Information in this document applies to any platform.

SYMPTOMS

 When using ASM and EMC powerpath, "Error:emcp:emcp_pseudo_ctl_ioctl" output in messages.

Messages indicates (messages inside /var/log location):

Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: kfod.bin
Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: kfod.bin
Mar 12 20:26:10 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: kfod.bin
:
Mar 12 20:31:06 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_iocltl: Invalid cmd 0x1268, proc name: kfod.bin
Mar 12 20:31:06 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: kfod.bin
:
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x80081272, proc name: asm_rbal_+asm
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x127b, proc name: asm_rbal_+asm
Mar 12 20:31:58 <HOSTNAME> kernel: Error:emcp:emcp_pseudo_ctl_ioctl: Invalid cmd 0x1268, proc name: asm_rbal_+asm

CAUSE

These messages which shows kfod.bin and ASM rbal process open '/dev/emcpower' and call ioctl to it and failed.
The '/dev/emcpower' is used in PowerPath internal.

We can confirm the following parameter value.

In this case, name of some disks used for ASM are '/dev/emcpower<string>'.
Therefore CRS/ASM can start successfully and mount diskgroup start successfully too.

 

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/emcpower*

SOLUTION

We can ignore this message.

To control invalid ioctl for '/dev/emcpower', and to control this output("Error:emcp:emcp_pseudo_ctl_ioctl"),
edit asm_diskstring so that '/dev/emcpower' isn't made the detection target.


只用于12.2.0.1之后的版本

我们可以忽略此消息。

控制 '/dev/emcpower' 的无效 ioctl,并控制此输出(“Error:emcp:emcp_pseudo_ctl_ioctl”), 编辑 asm_diskstring,使“/dev/emcpower”不会成为检测目标。

[oracle@rac1 ~]$ cd /dev/
[oracle@rac1 dev]$ ls -l |grep emc
crw-r--r--   1 root root      10,  55 Jan  5 23:18 emcpower
brw-rw----   1 grid oinstall 120,   0 Jan  7 16:31 emcpowera
brw-rw----   1 grid oinstall 120,  16 Jan  7 16:31 emcpowerb
brw-rw----   1 grid oinstall 120,  32 Jan  7 16:31 emcpowerc
brw-rw----   1 grid oinstall 120,  48 Jan  7 16:31 emcpowerd
brw-rw----   1 grid oinstall 120,  64 Jan  7 16:31 emcpowere
brw-rw----   1 grid oinstall 120,  80 Jan  7 16:31 emcpowerf
brw-rw----   1 grid oinstall 120,  96 Jan  7 16:31 emcpowerg
brw-rw----   1 grid oinstall 120, 112 Jan  7 16:31 emcpowerh
[oracle@racdb1 dev]$ exit
logout
[root@racdb1 grid]# multipath -ll
Jan 07 16:32:00 | DM multipath kernel driver not loaded
Jan 07 16:32:00 | /etc/multipath.conf does not exist, blacklisting all devices.
Jan 07 16:32:00 | A default multipath.conf file is located at
Jan 07 16:32:00 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Jan 07 16:32:00 | You can run /sbin/mpathconf --enable to create
Jan 07 16:32:00 | /etc/multipath.conf. See man mpathconf(8) for more details
Jan 07 16:32:00 | DM multipath kernel driver not loaded
[root@racdb1 grid]# cd /etc/udev/rules.d/
[root@racdb1 rules.d]# ls -ltr
total 28
-rw-r--r--. 1 root root 628 Sep 26  2019 70-persistent-ipoib.rules
-rw-r--r--. 1 root root 148 Apr  2  2020 99-vmware-scsi-timeout.rules
-rw-r--r--. 1 root root 512 Aug  3 17:57 99-oracleasm.rules
-rw-r--r--  1 root root 175 Aug  4 22:13 55-usm.rules
-rw-r--r--  1 root root 318 Jan  5 23:18 04-nvme-pp.rules
-rw-r--r--  1 root root 879 Jan  5 23:18 05-udev-pp.rules
-rw-r--r--  1 root root 412 Jan  5 23:18 80-udev-pp2.rules
[root@racdb1 rules.d]# more 99-oracleasm.rules
KERNEL=="emcpowera", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerb", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerc", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerd", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowere", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerf", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerg", OWNER="grid" GROUP="oinstall", MODE="0660"
KERNEL=="emcpowerh", OWNER="grid" GROUP="oinstall", MODE="0660"
[root@racdb1 rules.d]# su - grid
Last login: Fri Jan  7 16:25:28 CST 2022
[grid@racdb1 ~]$ sqlplus / as sysasm
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jan 7 16:33:31 2022
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> show parameter disk
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups                       string      MGMT, DATA, ARCH
asm_diskstring                       string      /dev/emcpower*
ASM Disk Information
======================
---------------------------------------------------------------------------------------------------------------------
| G# | GROUP_NAME |           PATH |      FAILGROUP |      DISK_NAME |  STATE | MODE_S | HEAD_S | MOUNT_S | REPAIR? |
---------------------------------------------------------------------------------------------------------------------
| 1  | ARCH       | /dev/emcpowerf |      ARCH_0000 |      ARCH_0000 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 1  | ARCH       | /dev/emcpowerg |      ARCH_0001 |      ARCH_0001 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 2  | DATA       | /dev/emcpowerd |      DATA_0000 |      DATA_0000 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 2  | DATA       | /dev/emcpowere |      DATA_0001 |      DATA_0001 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 3  | MGMT       | /dev/emcpowerh |      MGMT_0000 |      MGMT_0000 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 4  | OCR_VOTE   | /dev/emcpowera |  OCR_VOTE_0000 |  OCR_VOTE_0000 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 4  | OCR_VOTE   | /dev/emcpowerb |  OCR_VOTE_0001 |  OCR_VOTE_0001 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
| 4  | OCR_VOTE   | /dev/emcpowerc |  OCR_VOTE_0002 |  OCR_VOTE_0002 | NORMAL | ONLINE | MEMBER |  CACHED |       0 |
---------------------------------------------------------------------------------------------------------------------

可以看到都正常的,那么/var/log/message中的报错信息是可以忽略的。

请使用浏览器的分享功能分享到微信等