cvuqdisk 是 Oracle CVU 校验共享磁盘的强制 RPM 包,未安装会导致 runcluvfy.sh 预检直接报错并阻断 RAC 安装;必须在所有节点用 root 安装匹配版本,且 CVUQDISK_GRP=oinstall 环境变量生效。
cvuqdisk 是什么,不装会怎样
cvuqdisk 是 oracle cluster verification utility(cvu)用来识别和校验共享磁盘(特别是 asm 磁盘)的关键 rpm 包。它不是可选组件,而是 runcluvfy.sh 预检阶段的硬依赖——没装它,./runcluvfy.sh stage -pre crsinst 会直接报错:error: cvuqdisk not installed,后续安装流程卡死在第一步。
它本身不参与集群运行,但缺失会导致 CVU 无法区分本地盘和共享盘,误判 ASM 存储可用性,进而让 OCR/Voting Disk 创建失败或静默出错。
怎么装:路径、权限、节点范围必须一致
这个包必须在所有 RAC 节点(rac01、rac02…)上用 root 用户安装,且版本需与 Grid Infrastructure 安装包严格匹配(比如 19c GI 就得用 19c 的 cvuqdisk)。
- 包位置通常在解压后的
grid/rpm/目录下,文件名类似cvuqdisk-19.21.0.0.0-1.x86_64.rpm - 执行命令:
rpm -ivh cvuqdisk-*.rpm(不能加--force或--nodeps) - 装完后检查:
rpm -qi cvuqdisk确认状态;再查环境变量是否已生效:echo $CVUQDISK_GRP应输出oinstall(否则手动设:export CVUQDISK_GRP=oinstall并写入/etc/profile)
常见报错和对应解法
装了还是报错?大概率是这三类问题:
-
CVUQDISK_GRP is not set or invalid:说明CVUQDISK_GRP环境变量没设对,或设成了不存在的组(如dba),必须是oinstall,且该组在所有节点存在 - “package cvuqdisk is already installed” 但预检仍失败:说明 rpm 安装路径被覆盖(比如之前装过旧版),先
rpm -e cvuqdisk清干净再重装 - 预检提示 “Shared storage not visible”:不是
cvuqdisk没装,而是 UDEV 规则没生效或asm-discover找不到盘,此时cvuqdisk已起作用,别反复重装它
为什么不能跳过或用其他方式绕过
有人试过把 cvuqdisk 相关检查从 CVU 脚本里注释掉,或伪造返回值——结果是 OCR 初始化时直接报 ORA-15018: diskgroup cannot be created。因为 CVU 不只是“检查”,它实际调用 cvuqdisk 的 C 接口去探测 SCSI 设备属性(如 vendor、model、scsi_level),这些信息被写入 OCR 元数据。跳过等于让集群在盲区里建库。
真正容易被忽略的是:这个包必须在 grid 用户能访问的路径下安装(即 root 装完后,grid 用户要能读取 /usr/lib64/cvuqdisk 及其依赖库),否则 runcluvfy.sh 以 grid 身份运行时仍会找不到符号。

















