The problem that the UUID cannot be returned when RACASMUDEV is installed on the VM
Use UDEV service to solve the rac asm storage device name
1. confirm that the required UDEV package has been installed on all RAC nodes [root @ rh2 ~] # Rpm-qa | grep udevudev-095-14.21.el52. obtain the unique identification name of the block device through scsi_id. Assume that the system already has LUN sdc-sdpfor I in c d e f g h I j k l m n o p; doecho "sd $ I" "'scsi _ id-g-u-s/block/sd $ I '"; done
3
for i in b c d e f g h i j k ;doecho "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 script in
for i in c d e f g h i j k l m n o p ;doecho "sd$i" "`scsi_id -g -u -s /block/sd$i` ";done
No return value. UDEVTEST is used to check whether the ID cannot be returned.
[root@localhost block]# udevtest /block/sdbmain: looking at device '/block/sdb' from subsystem 'block'run_program: '/lib/udev/usb_id -x'run_program: '/lib/udev/usb_id' returned with status 1run_program: '/lib/udev/scsi_id -g -x -s /block/sdb -d /dev/.tmp-8-16'run_program: '/lib/udev/scsi_id' returned with status 1run_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 0run_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 0udev_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 4run_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 2run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1run_program: '/sbin/scsi_id -g -u -s /block/sdb'run_program: '/sbin/scsi_id' returned with status 1udev_rules_get_name: no node name set, will use kernel name 'sdb'udev_device_event: device '/block/sdb' already in database, validate currently present symlinksudev_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'
Solution
The first device cannot be formatted
For VM
Add disk. EnableUUID = "TRUE" to the vmx file of the VM"
If you configure any other virtual machine, such as adding a disk, modifying the NIC type, or performing other operations,
The disk. EnableUUID parameter is reset to FALSE again. Therefore, you must manually modify this parameter after each virtual machine setting.
To avoid manual modification
You can only use udevinfo to obtain SYSFS [start] And 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"
If it is VBOX, we recommend that you change the hard disk bus to SATA
For LINUX 5 formatted, use ASMLIB