linux asm磁盘创建,UDEV创建ASM磁盘

对于使用ASM管理的磁盘来说,需要一种能够用于一致性标识磁盘设备及其正确的所属关系和权限的手段。在Linux系统中,可以使用ASMLib来执行这项任务,但是这样做的缺点是在操作系统上增加了额外的一层,从而导致了管理的复杂性,使用ASMLib配置ASM的方式现在已经不再流行。

一种替代的解决方案是:使用Linux设备管理器“udev”来完成这项任务。自2.6内核开始,就可以使用udev协助管理系统中各设备名称,udev能动态地在/dev目录里产生自定义的、标识性强的设备文件或设备链接。本文概述了如何使用UDEV规则来配置ASM磁盘。

从本质上来说,UDEV是一种对已定义好的规则的应用,这个规则以文件的形式保存在“/etc/udev/rules.d”目录下。规则的定义可以采用多种方式,我们需要做的是确定设备以及说明希望UDEV用它做什么。众所周知,所有的磁盘设备才采用“/dev/sd?1”的形式命名,所以我们可以使用以下的规则参数来标识设备:

1

KERNEL=='sd?1',BUS=='scsi'

为每一个磁盘起一个别名,使其总是以一种一致的方式被标识,而不管Linux为它分配何种设备名。所以在此之前需要进行一项测试,以确定该磁盘是否就是配置ASM所需要的磁盘。测试的原理是:由于每个磁盘都有一个唯一的SCSI ID,可将是否匹配这个ID作为测试规则。下列规则参数解释了如何进行这种测试匹配:

#OL5中,测试规则如下:

PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_'

#在OL6中scsi_id命令稍有不同,测试规则如下:

PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_'

#在OL7中,scsi_id命令被置于不同的路径下,测试规则如下:

PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_'

一旦能够明确标识指定的磁盘后,我们就可以指示在磁盘上的执行的动作,下列的udev参数为磁盘指定了一个别名、磁盘的所属关系以及权限:

NAME='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

综上所述,对于一个磁盘来说,完整的udev规则定义如下:

#OL5

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', NAME='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

#OL6

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', NAME='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

#OL7

KERNEL=='sd?1', SUBSYSTEM=='block', PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', SYMLINK ='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

这意味着指向磁盘“sd*1”分区与“SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_”的SCSI ID总是被称为“/dev/asm-disk1”,不管Linux为“?”分配何种字符。此外,该设备将有正确的所属关系和权限。

接下来需要继续在剩下的磁盘上(注意是磁盘不是分区)使用scsi_id命令生成SCSI ID:

##OL5

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

SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_

/sbin/scsi_id -g -u -s /block/sdc

SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_

/sbin/scsi_id -g -u -s /block/sdd

SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_

/sbin/scsi_id -g -u -s /block/sde

SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_

##OL6

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

SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_

/sbin/scsi_id -g -u -d /dev/sdc

SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_

/sbin/scsi_id -g -u -d /dev/sdd

SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_

/sbin/scsi_id -g -u -d /dev/sde

SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_

##OL7:

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

SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_

/usr/lib/udev/scsi_id -g -u -d /dev/sdc

SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_

/usr/lib/udev/scsi_id -g -u -d /dev/sdd

SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_

/usr/lib/udev/scsi_id -g -u -d /dev/sde

SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_

使用vi /etc/udev/rules.d/99-oracle-asmdevices.rules命令,创建udev规则文件:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

##OL5

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', NAME='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_', NAME='asm-disk2', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_', NAME='asm-disk3', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -s /block/$parent', RESULT=='SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_', NAME='asm-disk4', OWNER='oracle', GROUP='dba', MODE='0660'

##OL6

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', NAME='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_', NAME='asm-disk2', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172_', NAME='asm-disk3', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', BUS=='scsi', PROGRAM=='/sbin/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_', NAME='asm-disk4', OWNER='oracle', GROUP='dba', MODE='0660'

##OL7

KERNEL=='sd?1', SUBSYSTEM=='block', PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_', SYMLINK ='asm-disk1', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', SUBSYSTEM=='block', PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VB46dec7e0-192e8000_', SYMLINK ='asm-disk2', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', SUBSYSTEM=='block', PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VBce8c63bb-ac67a172', SYMLINK ='asm-disk3', OWNER='oracle', GROUP='dba', MODE='0660'

KERNEL=='sd?1', SUBSYSTEM=='block', PROGRAM=='/usr/lib/udev/scsi_id -g -u -d /dev/$parent', RESULT=='SATA_VBOX_HARDDISK_VB7437a3b7-95b199cd_', SYMLINK ='asm-disk4', OWNER='oracle', GROUP='dba', MODE='0660'

更新块设备的分区(/sbin/partprobe):

?

1

2

3

4

/sbin/partprobe /dev/sdb1

/sbin/partprobe /dev/sdc1

/sbin/partprobe /dev/sdd1

/sbin/partprobe /dev/sde1

测试规则:

?

1

2

3

4

5

6

7

8

9

10

11

##OL5

udevtest /block/sdb/sdb1

udevtest /block/sdc/sdc1

udevtest /block/sdd/sdd1

udevtest /block/sde/sde1

##OL6 and OL7

udevadm test /block/sdb/sdb1

udevadm test /block/sdc/sdc1

udevadm test /block/sdd/sdd1

udevadm test /block/sde/sde1

重新载入规则文件及启动udev服务:

?

1

2

3

4

5

6

7

8

##OL5

/sbin/udevcontrol reload_rules

##OL6 and OL7

udevadm control --reload-rules

##OL5 and OL6,Not needed for OL7

/sbin/start_udev

检查磁盘的所属关系和权限:

?

1

2

3

4

5

6

cd /dev

ls -al asm-disk*

brw-rw---- 1 oracle dba 8, 17 Apr 8 22:47 asm-disk1

brw-rw---- 1 oracle dba 8, 33 Apr 8 22:47 asm-disk2

brw-rw---- 1 oracle dba 8, 49 Apr 8 22:47 asm-disk3

brw-rw---- 1 oracle dba 8, 65 Apr 8 22:47 asm-disk4

以上内容参考自:https://oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-oracle-linux#scsi_id

附上一个在OL6上快速生成udev规则文件的脚本:

?

1

2

3

4

for i in b c d e f g;

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

评论(0)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值