歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> SUSE Linux 10 配置裸設備(raw devices)

SUSE Linux 10 配置裸設備(raw devices)

日期:2017/2/28 15:32:33   编辑:Linux教程

裸設備,是沒有經過格式化的分區或磁盤,也叫裸分區(原始分區),不被Unix通過文件系統來讀取的特殊字符設備。它由應用程序負責對它進行讀寫操作。不經過文件系統的緩沖,是不被操作系統直接管理的設備。由於跨過操作系統管理,使得I/O效率更高。在基於SUSE Linux 10上安裝Oracle 10g RAC的話,由於Oracle 10g 不支持將ocr與votingdisk 存放在ASM 磁盤中,因此,依然需要為其使用裸設備方式。SUSE Linux裸設備的配置與其他的Linux稍有差異,下面將具體描述。

1、先對磁盤進行分區,sdd如下面的方法炮制
#下面的示例中使用sdc和sdd來用作裸設備,一塊用於ocr,一塊用於votingdisk
bo2dbp:~ # fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Value out of range.
Partition number (1-4):
Value out of range.
Partition number (1-4): 1
First cylinder (1-200, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-200, default 200):
Using default value 200

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

2、分區後的結果
bo2dbp:~ # fdisk -l /dev/sdc

Disk /dev/sdc: 209 MB, 209715200 bytes
64 heads, 32 sectors/track, 200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System
/dev/sdc1 1 200 204784 83 Linux
bo2dbp:~ # fdisk -l /dev/sdd

Disk /dev/sdd: 209 MB, 209715200 bytes
64 heads, 32 sectors/track, 200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id System
/dev/sdd1 1 200 204784 83 Linux

3、配置裸設備
bo2dbp:~ # vi /etc/raw

# /etc/raw
#
# sample configuration to bind raw devices
# to block devices
#
# The format of this file is:
# raw<N>:<blockdev>
#
# example:
# ---------
# raw1:hdb1
#
# this means: bind /dev/raw/raw1 to /dev/hdb1
#
# ...

#Add new raw devices
raw1:sdc1
raw2:sdd1

4、啟動裸設備
bo2dbp:~ # rcraw start
bind /dev/raw/raw1 to /dev/sdc1... done
bind /dev/raw/raw2 to /dev/sdd1... done

5、配置裸設備隨系統啟動
bo2dbp:~ # chkconfig raw
raw on
#修改裸設備的權限與所有者,盡管該操作會修改,但重啟之後將失效。永久修改見第7點
bo2dbp:~ # chown oracle:dba /dev/raw/raw[1-2]
bo2dbp:~ # chmod 660 /dev/raw/raw[1-2]

6、測試裸設備
bo2dbp:~ # dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=200
dd: writing `/dev/raw/raw1': No space left on device
200+0 records in
199+0 records out
209698816 bytes (210 MB) copied, 2.59567 seconds, 80.8 MB/s

7、修改裸設備啟動後權限及所有者
#使用root用戶修改/etc/udev/rules.d/50-udev-default.rules,確保raw設備的權限GROUP="dba", MODE="660", OWNER="oracle"
#將其中包含KENREL=="raw"的記錄修改為如下
KERNEL=="raw[0-9]*", SUBSYSTEM=="raw", NAME="raw/%k", GROUP="dba", MODE="640", OWNER="oracle"

8、確認配置成功
#重啟之後的狀態
bo2dbp:~ # ls -hltr /dev/raw
total 0
crw-rw---- 1 root disk 162, 0 Sep 19 10:22 rawctl
crw-rw---- 1 oracle dba 162, 1 Sep 19 10:22 raw1
crw-rw---- 1 oracle dba 162, 2 Sep 19 10:22 raw2

bo2dbs:~ # /usr/sbin/raw -qa
/dev/raw/raw1: bound to major 8, minor 33
/dev/raw/raw2: bound to major 8, minor 49

Copyright © Linux教程網 All Rights Reserved