linux 6 或更高版本如何在vmware fusion中使用scsi_id命令 for asm disk

运行环境:
本机操作系统:mac 10.9.5
虚拟机环境: vmware fusion  专业版  7.0.1
虚拟机操作系统:oracle linux 6.4

问题说明:
安装rac之前,本打算使用udev来创建asm使用的磁盘,用以前学到的脚本进行创建后失败,查看脚本输出中发现使用scsi_id命令来获取磁盘uuid时报错(见下方日志1),invalid option --’s’   无效的参数,实际去掉该参数(如下方日志2)后仍然是无法查出uuid。这是由于linux 6版本开始,scsi_id的命令语法发生了变化,scsi_id -g -u -s这样的命令不再有效,udevtest命令已经没有了,整合到了udevadm中。可以参考Redhat的官方文档,但是我没有找到。言归正转,还是来说说解决方法吧。

日志1:
[root@sam1 rules.d]# cat 99-oracle-asmdevices.rules
scsi_id: invalid option -- 's'
KERNEL=="sd*", BUS=="scsi", PROGRAM== "/sbin/scsi_id -g -u -s %p", RESULT=="", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
scsi_id: invalid option -- 's'
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="", NAME="asm-diskc", OWNER="grid”, 
GROUP="asmadmin", MODE="0660"
略…...

日志2:
[root@sam1 etc]# scsi_id -g -u -s /dev/sdb
scsi_id: invalid option -- 's'
[root@sam1 etc]# scsi_id -g -u /dev/sdb
[root@sam1 etc]#  


处理方法:
1. 编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:
    options=--whitelisted --replace-whitespace

2. 测试scsi_id 获取uuid号,仍然未出uuid号
    [root@sam1 etc]#scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

3. 关闭机器,在你安装虚拟机的目录中找到Oracle Enterprise Linux 64 位.vmx,你的机器名字可能跟我的不一样哟,记得是后缀是vmx的文件,用 文本编辑器打开,在最后加上 disk.EnableUUID = “TRUE” 后,再次启动机器后执行获取uuid正常
  [root@sam1 ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
  36000c2978361c60ab77729f74fa6aef2

4.使用脚本生成udev使用的格式的参数文件,b c …i j 根据你的盘符有多少来修改
for i in b c d e f g h i j;
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

5. 启动udev
[root@sam1 ~]# start_udev
Starting udev: [  OK  ]

6. 检查磁盘设备是否绑定成功
[root@sam1 ~]# ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8,  16 Feb 16 23:16 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8,  32 Feb 16 23:16 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8,  48 Feb 16 23:16 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8,  64 Feb 16 23:16 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  80 Feb 16 23:16 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  96 Feb 16 23:16 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Feb 16 23:16 /dev/asm-diskh
brw-rw---- 1 grid asmadmin 8, 128 Feb 16 23:16 /dev/asm-diski
brw-rw---- 1 grid asmadmin 8, 144 Feb 16 23:16 /dev/asm-diskj


总结:
注意处理方法的第3点,修改虚拟机*.vmx文件,加 disk.EnableUUID = “TRUE”参数时先要将虚拟机关闭,再有就是如果修改虚拟机任何设备,比如添加磁盘,修改网卡等,此参数会恢复源值,需要再次修改为TRUE。重新启动不影响此参数。


附: (以下脚本中的盘符请按照实际情况进行修改)
linux 5生成udev脚本

  1. for i in b c d e f g h i j;
    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\""  >> /etc/udev/rules.d/99-oracle-asmdevices.rules
    done

linux 6生成 udev脚本

  1. for i in b c d e f g h i j;
    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




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26148431/viewspace-1437682/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26148431/viewspace-1437682/

你可能感兴趣的:(linux 6 或更高版本如何在vmware fusion中使用scsi_id命令 for asm disk)