Linux裸设备管理

At 2010-12-27

转载请注明文章转载自:Dbabc.Net [http://dbabc.net]
本文链接:http://dbabc.net/archives/2010/12/27/linuxraw.shtml
一、存储中的块设备和裸设备

块设备即我们平时使用的文件系统的方式,是通过操作系统来操作的存储。数据读取时会先经过一个操作系统的缓冲区,再往存储硬件上写。
裸设备不由操作系统的文件系统来管理,而是一般由DB系统来直接访问硬件上的存储,少了操作系统维护的开销,也少了缓冲区这一步,所以I/O性能会提高。但不能像块设备那样通过操作系统来对存储做管理。分配出去的裸设备就整个不能再做它用了。

二、裸设备绑定

在UNIX系统上,裸设备和块设备都是直接可见的,比方HP-UX,在/dev/rdsk下的是裸设备,/dev/dsk下就是块设备了。但是在Linux系统,裸设备需要绑定才可以使用。
用ll查看/dev,显示出来的结果中,开头为c的是裸设备,开头为b的是块设备。这里硬盘及其分区都是作为块设备来使用。

[root@dbabc.net raw]# ll /dev
crw-rw---- 1 root audio 14, 12 Dec 25 01:04 adsp
crw------- 1 root root 10, 175 Dec 25 01:04 agpgart
crw-rw---- 1 root audio 14, 4 Dec 25 01:04 audio
crw------- 1 root root 10, 62 Dec 25 01:05 autofs
lrwxrwxrwx 1 root root 3 Dec 25 01:04 cdrom -> hda
lrwxrwxrwx 1 root root 3 Dec 25 01:04 cdrom-hda -> hda
crw------- 1 root root 5, 1 Dec 25 01:04 console
……
brw-r----- 1 root disk 8, 0 Dec 25 01:04 sda
brw-r----- 1 root disk 8, 1 Dec 25 01:04 sda1
brw-r----- 1 root disk 8, 16 Dec 25 01:04 sdb
brw-r----- 1 root disk 8, 17 Dec 25 01:04 sdb1
brw-r----- 1 root disk 8, 32 Dec 25 01:04 sdc
brw-r----- 1 root disk 8, 33 Dec 25 01:04 sdc1
brw-r----- 1 root disk 8, 48 Dec 25 01:04 sdd
brw-r----- 1 root disk 8, 64 Dec 25 01:04 sde
brw-r----- 1 root disk 8, 80 Dec 25 01:04 sdf
brw-r----- 1 root disk 8, 96 Dec 25 01:04 sdg
brw-r----- 1 root disk 8, 112 Dec 25 01:04 sdh
brw-r----- 1 root disk 8, 128 Dec 25 01:04 sdi

绑定裸设备步骤,修改/etc/sysconfig/rawdevices即可,格式类似/etc/fstab,挂载目录必须是/dev/raw/raw[n]

[root@dbabc.net raw]# more /etc/sysconfig/rawdevices
# raw device bindings
# format:
#
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5

/dev/raw/raw1 /dev/sda
/dev/raw/raw2 /dev/sdb
/dev/raw/raw3 /dev/sdc
/dev/raw/raw4 /dev/sdd
/dev/raw/raw5 /dev/sde
/dev/raw/raw6 /dev/sdf
/dev/raw/raw7 /dev/sdg
/dev/raw/raw8 /dev/sdh
/dev/raw/raw9 /dev/sdi

修改完成后运行service rawdevices restart

[root@dbabc.net raw]# /sbin/service rawdevices restart
Assigning devices:
/dev/raw/raw1 --> /dev/sda
/dev/raw/raw1: bound to major 8, minor 0
/dev/raw/raw2 --> /dev/sdb
/dev/raw/raw2: bound to major 8, minor 16
/dev/raw/raw3 --> /dev/sdc
/dev/raw/raw3: bound to major 8, minor 32
/dev/raw/raw4 --> /dev/sdd
/dev/raw/raw4: bound to major 8, minor 48
/dev/raw/raw5 --> /dev/sde
/dev/raw/raw5: bound to major 8, minor 64
/dev/raw/raw6 --> /dev/sdf
/dev/raw/raw6: bound to major 8, minor 80
/dev/raw/raw7 --> /dev/sdg
/dev/raw/raw7: bound to major 8, minor 96
/dev/raw/raw8 --> /dev/sdh
/dev/raw/raw8: bound to major 8, minor 112
/dev/raw/raw9 --> /dev/sdi
/dev/raw/raw9: bound to major 8, minor 128

然后查看/etc/raw即可发现裸设备已出现,默认只有写权限

[root@dbabc.net ~]# ll /dev/raw
total 0
crw------- 1 root root 162, 1 Dec 25 01:53 raw1
crw------- 1 root root 162, 2 Dec 25 01:53 raw2
crw------- 1 root root 162, 3 Dec 25 01:53 raw3
crw------- 1 root root 162, 4 Dec 25 01:53 raw4
crw------- 1 root root 162, 5 Dec 25 01:53 raw5
crw------- 1 root root 162, 6 Dec 25 01:53 raw6
crw------- 1 root root 162, 7 Dec 25 01:53 raw7
crw------- 1 root root 162, 8 Dec 25 01:53 raw8
crw------- 1 root root 162, 9 Dec 25 01:53 raw9

三、LV做为裸设备绑定

查看vg01的情况:

[root@dbabc.net ~]# vgdisplay -v vg01
Using volume group(s) on command line
Finding volume group "vg01"
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 5.99 GB
PE Size 4.00 MB
Total PE 1533
Alloc PE / Size 258 / 1.01 GB
Free PE / Size 1275 / 4.98 GB
VG UUID GbsJmD-TMqy-Ihk4-ctVq-ScJO-LISo-49ZCuT

--- Logical volume ---
LV Name /dev/vg01/stripe_lv
VG Name vg01
LV UUID 9W3LYb-YOj1-NQRO-grGi-RbIV-AydK-uHALoU
LV Write Access read/write
LV Status available
# open 0
LV Size 1.01 GB
Current LE 258
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 768
Block device 253:4

有一个名为stripe_lv的lv,修改/etc/sysconfig/rawdevices后

[root@dbabc.net ~]# vi /etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sda
/dev/raw/raw2 /dev/sdb
/dev/raw/raw3 /dev/sdc
/dev/raw/raw4 /dev/sdd
/dev/raw/raw5 /dev/sde
/dev/raw/raw6 /dev/sdf
/dev/raw/raw7 /dev/sdg
/dev/raw/raw8 /dev/sdh
/dev/raw/raw9 /dev/sdi
/dev/raw/raw10 /dev/vg01/stripe_lv

重启服务并查看

[root@dbabc.net raw]# /sbin/service rawdevices restart
[root@dbabc.net ~]# ll /dev/raw
total 0
crw------- 1 root root 162, 1 Dec 25 02:01 raw1
crw------- 1 root root 162, 10 Dec 25 02:01 raw10
crw------- 1 root root 162, 2 Dec 25 02:01 raw2
crw------- 1 root root 162, 3 Dec 25 02:01 raw3
crw------- 1 root root 162, 4 Dec 25 02:01 raw4
crw------- 1 root root 162, 5 Dec 25 02:01 raw5
crw------- 1 root root 162, 6 Dec 25 02:01 raw6
crw------- 1 root root 162, 7 Dec 25 02:01 raw7
crw------- 1 root root 162, 8 Dec 25 02:01 raw8
crw------- 1 root root 162, 9 Dec 25 02:01 raw9

多了raw10这一项,即刚才绑定的lv。

无觅相关文章插件,快速提升流量

Copyright © Dbabc.Net All Rights Reserved. 本站内容仅代表个人观点, 与其他任何组织或公司无关

-The End-

发表评论


*

为你保密









Copyright © Dbabc.Net All Rights Reserved. 本站内容仅代表个人观点, 与其他任何组织或公司无关

Powered by Wordpress and Theme by WPYOU