为了Oracle ASM使用磁盘,ASM应该能够识别设备并具有正确的所有权和权限。
在Linux下可以使用ASMLib来管理这些任务,但它被看作是增加复杂性的额外层,所以没有得到广泛应用。
相反很多人使用Linux设备管理器UDEV来执行这些任务。
UDEV作的事情就是应用在/etc/udev/rules.d目录中为/dev目录中的设备结点定义的文件。
规则可以以多种方式来定义,我们需要的就是能够识别这些设备。
在这种情形下,我们所有的磁盘被命名为/dev/sd?1,这里?为字符a-d,所以我们可以使用下面的规则参数
|
KERNEL=="sd?1", BUS=="scsi" |
我们希望给每个特定的设备指定一个别名,所以它们都是以相同的方式被识别的,除了Linux指定给它们的设备名。
所以我需要能够测试匹配前面的模式的设备,来查看它是否是我们感兴趣的设备。
|
--每个设备有一个唯一的SCSI_ID,所以可以在规则中加入测试,告诉它如何执行测试,则它返回的结果就是合格的匹配。 PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_" --一旦我们识别了感兴趣的特定设备,我们就需要告诉需要在它上面执行的操作. PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_" --所以每个磁盘的完整规则如下: KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_", NAME="asm-disk1", OWNER="oracle", GROUP="dba", MODE="0660" |
这意味着具有SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_这个SCSI_ID的设备将会被叫做/dev/asm-disk1,
而不管Linux指定的字母?是什么。并且这个设备具有正确的针对ASM的所有权和权限。
如果你不想书写设备特定的规则,有多个通配符和匹配模式可以被使用。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1078948/ ,如需转载,请注明出处,否则将追究法律责任。