Linux平台下:块设备、裸设备、ASMlib、Udev相关关系

对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备);2.块方式访问

Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符、块方式访问。每个磁盘有两个设备文件名:

  1. 一个在/dev/dsk目录下,比如/dev/dsk/c1t1d1s1,当以这个设备名操作时,就是以块的方式操作磁盘;
  2. 一个在/dev/rdsk目录下,比如/dev/rdsk/c1t1d1s1,当以这个设备名操作时,就是以字符方式(裸设备方式r)操作磁盘

Linux平台 : 在linux平台下,缺省只提供了对磁盘设备的块设备访问方式(比如/dev/sda1),没有提供字符访问方式(裸设备方式r).如需使用字符访问方式需要手动配置

配置字符设备(裸设备)访问方式

适用操作系统版本

Udev的作用

/etc/sysconfig/rawdevices + /etc/rc.local

Red Hat AS4

 

/etc/sysconfig/rawdevices + /etc/udev/permissions.d/50-udev.permissions

Red Hat AS4

控制访问权限

60-raw.rules99-oracle-asmdevices.rules

RHEL5 / OEL5

将块设备绑定裸设备上;固定设备文件名称;控制访问权限;

Linux平台下:Oracle在不同版本时创建ASM的不同方式:

  • 11.2版本之前 : ASM可以通过两种方式使用磁盘。一种是裸设备方式;另一种是AMSlib方式,允许在块设备上创建ASM。

         注:(oracle 11.1官当)You can run ASM using ASMLIB, or run ASM using raw devices.

  • 11.2 版本之后 : ASM本身直接支持块设备。

         注:11.2官当上未找到明确说明

  • 11.2版本之前使用udev是将块设备绑定裸设备上,并控制访问权限,本质是在裸设备上创建ASM;11.2 版本及之后使用udev是固定盘符,并控制访问权限,本质是在块设备上创建ASM。对比示例: 

 

使用udev时读取的文件

udev文件内容

11.2版本之前

/etc/udev/rules.d/60-raw.rules

ACTION=="add", KERNEL=="/dev/sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"  
ACTION=="add", KERNEL=="raw1", OWNER="grid", GROUP="asmadmin", MODE="0660"

11.2版本及之后:缺省只提供了对磁盘设备的块设备访问方式(比如/dev/sda1)

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

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"

原文地址:https://www.cnblogs.com/polestar/p/5745943.html