关于在VM上安装RAC ASM UDEV 无法返回UUID 问题

本文详细介绍了如何使用UDEV服务解决Oracle RAC ASM存储设备名问题,并提供了确认UDEV包安装、通过scsi_id获取设备标识、利用udevinfo设置SYSFS等步骤。同时,对于设备无法格式化的情况,文章提供了解决方案,如对于VM虚拟机的vmx文件中加入disk.EnableUUID设置,以及更换硬盘总线为SATA或使用ASMLIB进行格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从 http://www.oracledatabase12g.com/archives/utilize-udev-resolve-11gr2-rac-asm-device-name.html

利用UDEV服务解决RAC ASM存储设备名

1.确认在所有RAC节点上已经安装了必要的UDEV包

[root@rh2 ~]# rpm -qa|grep udev
udev-095-14.21.el5

2.通过scsi_id获取设备的块设备的唯一标识名,假设系统上已有LUN sdc-sdp

for i in c d e f g h i j k l m n o p ;
do
echo "sd$i" "`scsi_id -g -u -s /block/sd$i` ";
done
for i in b c d e f g h i j k ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u -s %p\", RESULT==\"`scsi_id -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done


中的 2脚本

for i in c d e f g h i j k l m n o p ;
do
echo "sd$i" "`scsi_id -g -u -s /block/sd$i` ";
done

没有任何返回值  用UDEVTEST 检查 确实无法返回ID

[root@localhost block]# udevtest /block/sdb
main: looking at device '/block/sdb' from subsystem 'block'
run_program: '/lib/udev/usb_id -x'
run_program: '/lib/udev/usb_id' returned with status 1
run_program: '/lib/udev/scsi_id -g -x -s /block/sdb -d /dev/.tmp-8-16'
run_program: '/lib/udev/scsi_id' returned with status 1
run_program: '/lib/udev/scsi_id -g -x -a -s /block/sdb -d /dev/.tmp-8-16'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_VENDOR=VMware'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_MODEL=Virtual_disk'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_REVISION=1.0'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_SERIAL='
run_program: '/lib/udev/scsi_id' (stdout) 'ID_TYPE=disk'
run_program: '/lib/udev/scsi_id' (stdout) 'ID_BUS=scsi'
run_program: '/lib/udev/scsi_id' returned with status 0
run_program: '/lib/udev/path_id /block/sdb'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=pci-0000:00:10.0-scsi-0:0:1:0'
run_program: '/lib/udev/path_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0'
run_program: '/lib/udev/vol_id --export /dev/.tmp-8-16'
run_program: '/lib/udev/vol_id' returned with status 4
run_program: '/lib/udev/edd_id --export /dev/.tmp-8-16'
run_program: '/lib/udev/edd_id' (stderr) 'no kernel EDD support'
run_program: '/lib/udev/edd_id' returned with status 2
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
run_program: '/sbin/scsi_id -g -u -s /block/sdb'
run_program: '/sbin/scsi_id' returned with status 1
udev_rules_get_name: no node name set, will use kernel name 'sdb'
udev_device_event: device '/block/sdb' already in database, validate currently present symlinks
udev_node_add: creating device node '/dev/sdb', major = '8', minor = '16', mode = '0640', uid = '0', gid = '6'
udev_node_add: creating symlink '/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0' to '../../sdb'
main: run: 'socket:/org/kernel/udev/monitor'
main: run: '/lib/udev/udev_run_devd'
main: run: 'socket:/org/freedesktop/hal/udev_event'
main: run: '/sbin/pam_console_apply /dev/sdb /dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:1:0'


解决方案

第一设备不能格式化 

如果是VM  

虚拟机的vmx文件里面加入disk.EnableUUID ="TRUE"
如果再进行任何虚拟机的设置,比如添加磁盘,修改网卡类型或者其它的操作,
disk.EnableUUID参数又会重置为FALSE,所以每次进行虚拟机设置以后,都需要手工再次修改该参数。

想避免添加人工修改的话
只能采用udevinfo来获得SYSFS[start]和SYSFS[size]的方式来设置了

udevinfo -a -p /sys/block/sdb/sdb1

KERNEL=="sdb1", SUBSYSTEM=="block", SYSFS{size}=="16771797", SYSFS{start}=="63", NAME="asmdisk1-crs",OWNER="grid", GROUP="asmadmin", MODE="0660"



如果是VBOX的话 建议换硬盘总线为SATA  

如果格式化的 LINUX 5 那么请用ASMLIB  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值