rhel 6.x 使用 udev scsi rules 配置裸设备详解程序员

rhel 6 从内核层级剔除了 asmlib 相关的代码,使用udev来绑定硬件

如果是 oel 6 ,就使用 asmlib吧

11gr2可以将ocr,votedisk 放在asm里,不需要额外配置裸设备

1. 在 /etc/udev/rules.d/99-oracle-asmdevices.rules 配置设备了

cd /etc/udev/rules.d/

touch 99-oracle-asmdevices.rules

#添加记录到/etc/scsi_id.config,如果没有该文件,则手动创建

echo “options=–whitelisted –replace-whitespace”  >> /etc/scsi_id.config

2. 将结果复制到 /etc/udev/rules.d/99-oracle-asmdevices.rules 

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

for i in b ;

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/””      

done

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

for i in b1 b2 b3

do

echo “KERNEL==/”sd$i/”, BUS==/”scsi/”, PROGRAM==/”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev//$parent/”, RESULT==/”`/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sd${i:0:1}`/”, NAME=/”asm-disk$i/”, OWNER=/”grid/”, GROUP=/”asmadmin/”, MODE=/”0660/””      

done;

注意未分区用 $name

分区用 $parent

3. vi /etc/udev/rules.d/99-oracle-asmdevices.rules 

没有对sdb进行分区

KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$name”, RESULT==”36000c2948ef9d9e4a7937bfc65888bc8″, NAME=”asm-diskb”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

如果对裸盘分区的话应该是这个样子

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

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

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

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

这是分区盘的 99-oracle-asmdevices.rules内容

KERNEL==”sd?1″, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$parent”, RESULT==”36000c2948ef9d9e4a7937bfc65888bc8″, NAME=”asm-diskb1″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

KERNEL==”sd?2″, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$parent”, RESULT==”36000c2948ef9d9e4a7937bfc65888bc8″, NAME=”asm-diskb2″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

KERNEL==”sd?3″, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$parent”, RESULT==”36000c2948ef9d9e4a7937bfc65888bc8″, NAME=”asm-diskb3″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

Load updated block device partition tables.

# /sbin/partprobe /dev/sdb1

# /sbin/partprobe /dev/sdb2

# /sbin/partprobe /dev/sdb3

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

udevadm info –query=all –name=asm-diskb1

udevadm info –query=all –name=asm-diskb2

udevadm info –query=all –name=asm-diskb3 

在显示中,有类似如下输出,表示测试正确,/dev/sdb设备在udev启动以后将会绑定为/dev/asm-diskb:

udevadm_test: UDEV_LOG=6

udevadm_test: DEVPATH=/devices/pci0000:00/0000:00:16.0/0000:0b:00.0/host1/target1:0:0/1:0:0:0/block/sdb

udevadm_test: MAJOR=8

udevadm_test: MINOR=16

udevadm_test: DEVNAME=/dev/sdb

udevadm_test: DEVTYPE=disk

udevadm_test: ACTION=add

udevadm_test: SUBSYSTEM=block

 

5. 启动udev

#/sbin/udevadm control –reload-rules

#/sbin/start_udev

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

# ls -l /dev/asm*

brw-rw—- 1 grid dba 8, 32 Oct 26 21:24 /dev/asm-diskb1

brw-rw—- 1 grid dba 8, 48 Oct 26 21:17 /dev/asm-diskb2

brw-rw—- 1 grid dba 8, 48 Oct 26 21:17 /dev/asm-diskb3

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/1775.html

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论