Linux平台下:块设备、裸设备、ASMlib、Udev相关关系
对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备);2.块方式访问
Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符、块方式访问。每个磁盘有两个设备文件名:
- 一个在/dev/dsk目录下,比如/dev/dsk/c1t1d1s1,当以这个设备名操作时,就是以块的方式操作磁盘;
- 一个在/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.rules或99-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" |
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" |