rhel 7.x 使用 udev scsi rules 配置裸设备

1. 生成规则文件

 

 # touch /etc/udev/rules.d/99-oracle-asmdevices.rules
 或者
 # touch /usr/lib/udev/rules.d/99-oracle-asmdevices.rules



2. 生成规则
没有对sdb进行分区,执行如下shell脚本,

for i in b ;
do
 echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""      
done



对sdb 进行了分区,执行如下shell脚本,
 

for i in b1 b2
do
 echo "KERNEL==\"sd$i\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$parent\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd${i:0:1}`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""      
done;



注意未分区用 $name
分区用       $parent



3. 将结果复制到 99-oracle-asmdevices.rules 

将第二步的输出粘贴入 99-oracle-asmdevices.rules 这个文件
 

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"


手动加载分区

# /sbin/partprobe /dev/sdb



备注:
获取RESULT
在 Linux 7下,可以使用如下命令:

# /usr/lib/udev/scsi_id -g -u /dev/sdb



在 Linux 6下,可以使用如下命令:

# /sbin/scsi_id -g -u /dev/sdb



在 Linux 5下,可以使用如下命令:

# /sbin/scsi_id -g -u -s /block/sdb/sdb




4. 用udevadm进行测试,注意udevadm命令不接受/dev/sdc这样的挂载设备名,必须是使用/sys/block/sdb这样的原始设备名。
 

# udevadm test /sys/block/sdb
# udevadm info --query=all --path=/sys/block/sdb
# udevadm info --query=all --name=asm-diskb




5. 启动udev

 # /usr/sbin/udevadm control --reload-rules
 # systemctl status systemd-udevd.service
 # systemctl enable systemd-udevd.service



6. 检查设备是否正确绑定
 

# ls -l /dev/asm* /dev/sdb
lrwxrwxrwx 1 root root         3 Nov 29 18:17 /dev/asm-diskb -> sdb
brw-rw---- 1 grid asmadmin 8, 16 Nov 29 18:17 /dev/sdb

 

你可能感兴趣的:(#,linux,rhel,centos)