Linux平台块设备到字符设备(裸设备)的三种映射方式(转载)

在Linux平台oracle rac的组建过程中,如果使用ASM+RAW的存储方式的话,由于asm不支持块设备,支持持字符访问设备,所以需要配置将Block Device Drive转变成Character Device Drive的访问方式。
但是在Linux平台中,不像aix和HP-UX中,默认提供了块设备对应的字符设备文件,需要我们手工的将块设备映射为字符设备。
在此,我们提供三种方式来讲块设备绑定到裸设备上,这三种方式创建裸设备的方式完全一样,区别在于对oracle用户的权限的处理方式不同,在此推荐使用第三种方式来进行块设备到字符设备的绑定

第一种方式:
使用rawdevices服务,进行块设备到字符设备的绑定
# vim /etc/sysconfig/rawdevices
/dev/raw/raw1  /dev/sdb1
/dev/raw/raw2  /dev/sdb2
/dev/raw/raw3  /dev/sdb3
/dev/raw/raw4  /dev/sdb4
# /etc/init.d/rawdevices start
或者 service rawdevices restart
# chkconfig --level 235 rawdevices on
成功开启的标志是:
# /etc/init.d/rawdevices status
/dev/raw/raw1:  bound to major 8, minor 17
/dev/raw/raw2:  bound to major 8, minor 18
/dev/raw/raw3:  bound to major 8, minor 19
/dev/raw/raw4:  bound to major 8, minor 20
为裸设备赋予oracle用户的可用权限:
# chown oracle:oinstall /dev/raw/raw1 /dev/raw/raw2 /dev/raw/raw3 /dev/raw/raw4
# ls -l /dev/raw
crw------- 1 oracle oinstall 162, 1 Nov  4 00:34 /dev/raw/raw1
crw------- 1 oracle oinstall 162, 2 Nov  4 00:33 /dev/raw/raw2
crw------- 1 oracle oinstall 162, 3 Nov  4 00:33 /dev/raw/raw3
crw------- 1 oracle oinstall 162, 4 Nov  4 00:34 /dev/raw/raw4
至此,裸设备映射成功,但是,这种方式的配置有一个问题:这些裸设备是在rawdevices服务启动的时候创建的,而rawdevices是以root用户的身份运行的,因此这些裸设备的缺省用户是root:root,所以,每一次服务进行重启的时候,都需要重新修改这些字符设备的权限为oracle:oinsall。
可以在/etc/rc.local中加入对raw设备的权限修改语句,以应对重启系统之后的裸设备文件权限的改变。当重启服务之后,则需要手工执行chown的命令了

第二种方式:
为了解决上面的情况,在此使用mknod提前创建出一个字符方式访问的文件,然后在将文件绑定到块设备上,并把该文件的owner设置为oracle,由于这些映射的字符设备文件是手工创建的,所以这个文件的owner不会因为服务的重启而发生改变:
# mknod /dev/raw/raw1 c 162 1
# mknod /dev/raw/raw2 c 162 2
# mknod /dev/raw/raw3 c 162 3
# mknod /dev/raw/raw4 c 162 4
注意此处的162不能改变,这个是raw设备的主设备编号,后面的数字是raw设备的次设备编号,这个次设备编号可以依次改变
# ll /dev/raw/*
crw-r--r-- 1 root root 162, 1 Nov  4 01:02 raw1
crw-r--r-- 1 root root 162, 2 Nov  4 01:02 raw2
crw-r--r-- 1 root root 162, 3 Nov  4 01:03 raw3
crw-r--r-- 1 root root 162, 4 Nov  4 01:03 raw4
# chown oracle:oinstall /dev/raw/*
# ll /dev/raw/*
crw-r--r-- 1 oracle oinstall 162, 1 Nov  4 01:02 raw1
crw-r--r-- 1 oracle oinstall 162, 2 Nov  4 01:02 raw2
crw-r--r-- 1 oracle oinstall 162, 3 Nov  4 01:03 raw3
crw-r--r-- 1 oracle oinstall 162, 4 Nov  4 01:03 raw4
# vim /etc/sysconfig/rawdevices
/dev/raw/raw1   /dev/sdb1
/dev/raw/raw2   /dev/sdb2
/dev/raw/raw3   /dev/sdb3
/dev/raw/raw4   /dev/sdb4
# service rawdevices restart
# chkconfig --level 235 rawdevices on

第三种方式:
使用udev管理设备的权限
# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add",KERN

时间: 2024-11-02 02:11:21

Linux平台块设备到字符设备(裸设备)的三种映射方式(转载)的相关文章

干货分享-Linux(RedHat/CentOS)下root密码找回的三种方式

一.第一种方式 1.开机. 2.插入光盘. 3.进入BIOS模式,调整光盘为第一启动项,保存并重启. 4.选择第三项"Rescue installed system",点击回车. 5.选择语言和键盘. 6.是否启动网络,选择不启动. 7.点击继续. 8.点击OK. 9.点击OK(大致意思:你的系统已经挂载到/mnt/sysimage目录) 10.选择第一行,进入SHELL,并点击OK. 11.检查root是否存在. 12.编辑配置文件,删掉第一行的x(光标移动到x底下,点击键盘上的de

Java 字符终端上获取输入三种方式

http://blog.csdn.net/hongweigg/article/details/14448731 在Java 字符终端上获取输入有三种方式: 1.java.lang.System.in (目前JDK版本均支持) 2.java.util.Scanner (JDK版本>=1.5) 3.java.io.Console(JDK版本>=1.6),特色:能不回显密码字符 package com.srie.chapter01; import java.io.BufferedReader; im

linux添加裸设备

1.什么裸设备?字符设备?块设备? 裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备.裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作.不经过文件系统的缓冲.裸设备可以绑定一个分区,也可以绑定一个磁盘. 字符设备:对字符设备的读写不需要通过OS的buffer.它不可被文件系统mount. 块设备:对块设备的读写需要通过OS的buffer,它可以被mou

SUSE Linux 10配置裸设备(raw devices)

裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作.不经过文件系统的缓冲,是不被操作系统直接管理的设备.由于跨过操作系统管理,使得I/O效率更高. 在基于SUSE Linux 10上安装Oracle 10g RAC的话,由于Oracle 10g 不支持将ocr与votingdisk 存放在ASM 磁盘中,因此,依然需要为其使用裸设备方式.SUSE Linux裸设备的配置与其他的Linux稍有差异,下面将具体

为集群共享存储创建裸设备

红帽企业版Linux使用一个字符较大的数字(现在是162)去标明/dev/raw目录下一系列的裸设备.任何块设备都可以有一个裸设备做前端,即使这个块设备是在运行时加载的. 为了创建裸设备,需要编辑/etc/sysconfig/rawdevices文件,将裸字符设备绑定到适当的块设备,使得裸设备可以被打开.读和写. 编辑裸设备文件 /etc/sysconfig/rawdevices文件用于在集群成员(cluster member)每次启动时,为共享分区映射裸设备.作为安装集群软件的一个步骤,在每个

Oracle裸设备

裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.本文收集裸设备和Oracle问答20例. 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作.不经过文件系统的缓冲. 2.如何辨别裸设备? 在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件. 字符设备特殊文件进行I/O操作不经过操作系统的缓冲区,而块设备特殊文件

DB2中使用裸设备作为表空间容器

DB2中使用裸设备作为容器需要三个步骤:1. 创建LV.2. 绑定LV和裸设备 3.创建表空间 1. 创建lv [email protected]:~# vgdisplay <-查看可用的Volume Group [email protected]:~# vgdisplay --- Volume group --- VG Name               mainVG System ID Format                lvm2 Metadata Areas        1 M

裸设备

新建LVM卷: #lvcreate -L 2048M-n lv_system oracledg #lvcreate -L 1024M-n lv_redo01 oracledg #lvcreate -L 1024M-n lv_redo02 oracledg # lvcreate -L 1024M -n lv_redo03 oracledg #lvcreate -L 2048M-n lv_tools01 oracledg #lvcreate -L 2048M-n lv_rbs oracledg #l

linux 下处理器的三种状态

在Linux中,任何时候,处理器都处于以下三种状态之一: 1)在用户空间,在某个进程中执行用户代码 2)在内核空间,处于进程上下文中,执行某个特定的进程 3)在内核空间,处于中断上下文中(与进程无关),进行中断处理 应用程序.内核与硬件的关系图如下: