实验环境:
虚拟机:virtualbox 5.0.24 r108355
操作系统:rhel-server-6.5-x86_64
看了刘相兵大大的:
在Linux 6上使用UDEV解决RAC ASM存储设备名问题
自己操作了一把,先前在linux5 的时候我是用asmlib来绑定ASM的,参考三思笔记,我在创建虚拟硬盘的时候用的SCSI格式的硬盘,在linux 5的时候一点问题都没有,但我在linux 6上面用udev绑定ASM的时候用就出现了问题:
for i in b c d e f ;
do
echo "KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`", NAME="asm-disk$i", OWNER="grid", GROUP="asmadmin", MODE="0660""
>> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
用SATA磁盘的情况下面出现下面的结果:
cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="
1ATA_VBOX_HARDDISK_VB256b1aea-3611084c", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="
1ATA_VBOX_HARDDISK_VBca4570d0-4085ffeb", NAME="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="
1ATA_VBOX_HARDDISK_VBb7fbae44-e17451ae", NAME="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="
1ATA_VBOX_HARDDISK_VB759629c7-14b4c298", NAME="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="
1ATA_VBOX_HARDDISK_VBdd7be2b1-4d4a8b29", NAME="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"
能正确识别ASM Disk的磁盘uuid
[root@node2 dev]# ls -l /dev/asm*
brw-rw----. 1 grid dba 8, 16 Feb 22 20:57 /dev/asm-diskb
brw-rw----. 1 grid dba 8, 32 Feb 22 20:57 /dev/asm-diskc
brw-rw----. 1 grid dba 8, 48 Feb 22 20:57 /dev/asm-diskd
brw-rw----. 1 grid dba 8, 64 Feb 22 20:57 /dev/asm-diske
brw-rw----. 1 grid dba 8, 80 Feb 22 20:57 /dev/asm-diskf
用SCSI磁盘的时候:
cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="", NAME="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="", NAME="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="", NAME="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="", NAME="asm-diskf", OWNER="grid", GROUP="asmadmin", MODE="0660"
不能正确识别ASM Disk的磁盘uuid
[root@node2 dev]# ls -l /dev/asm*
ls: cannot access /dev/asm*: No such file or directory
非常奇怪,原理上应该SCSI也看可以实现的,可是不行,大家在测试的时候如果遇到这个问题要注意了。