Linux下的裸设备研究(原创)

insularisland 2011-04-15

Linux平台下,缺省没有提供对磁盘设备的字符访问方式,必须通过配置rawdevices服务,把块设备绑定到裸设备上才行,具体方法有3种。这3种方法创建裸设备的方式完全一样,区别在于对Oracle用户权限处理方法的不同。RHEL5推荐使用第3种方法

第一种方法:

#vim/etc/sysconfig/rawdevices

/dev/raw/raw1/dev/sdb1

/dev/raw/raw2/dev/sdb2

#/etc/init.d/rawsdevicesstart

#chkconfig--level235rawdeviceson

成功开启裸设备的标志为

#/etc/init.d/rawdevicesstatus

/dev/raw/raw1:boundtomajor8,minor17

/dev/raw/raw2:boundtomajor8,minor18

为裸设备赋予权限

#chownoracle:oinstall/dev/raw/raw1/dev/raw/raw2

#ll/dev/raw/raw*

crw-rw----1oracleoinstall162,1Jan2214:09/dev/raw/raw1

crw-rw----1oracleoinstall162,2Jan2214:12/dev/raw/raw2

配置成功。

这种方法的问题在于,虽然创建了裸设备,但是这些裸设备是在rawdevices服务启动时创建的,而rawdevices是以root用户身份运行的。因此这些裸设备缺省的owner是root:root。所以每次服务重启后都要重新修改这些设备的owner为oracle:oinstall.

第二种方法:

为了解决上述的问题,可以采用第二种方法。即用mknod提前创建出一个字符方式访问的文件,然后在文件绑定到块设备上,并把该文件的owner设置为oracle,因为这个文件是手工创建的,所以这个文件的owner不会被修改

#mknod/oradatac1621

#chownoracle:oinstall/oradata

#vim/etc/sysconfig/rawdevices

/oradata/dev/sdd2

#/etc/init.d/rawsdevicesstart

#chkconfig--level235rawdeviceson

第三种方法:

使用udev管理设备的权限

#vim/etc/udev/rules.d/50-udev.rules

KERNEL=="raw[0-9]*",MODE="0660",GROUP="oinstall",OWNER="oracle",name="raw/%k"

#vim/etc/sysconfig/rawdevices

/dev/raw/raw1/dev/sdb1

/dev/raw/raw2/dev/sdb2

#/etc/init.d/rawsdevicesstart

#chkconfig--level235rawdeviceson

参考至:《大话OracleRAC》张晓明著

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:[email protected]

相关推荐