利用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` "; done3
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', g