您的位置:首页 > 数据库 > Oracle

使用UDEV SCSI规则在Oracle Linux上配置ASM

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

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

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

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

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

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

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

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

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

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

测试规则:

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

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

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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: