本文不涉及基础概念,只是简单列一下Redhat上创建lvm裸设备的步骤,以供查阅。各个命令的参数可以通过man获得。
1.创建pv
pvcreate -M2 --metadatasize 100M /dev/sda
pvcreate -M2 --metadatasize 100M /dev/sdb1
pvcreate -M2 --metadatasize 100M /dev/sdb2
pvcreate -M2 --metadatasize 100M /dev/sdc
pvcreate -M2 --metadatasize 100M /dev/sdb1
pvcreate -M2 --metadatasize 100M /dev/sdb2
pvcreate -M2 --metadatasize 100M /dev/sdc
物理卷可以是整个硬盘(lun),也可以是硬盘上的一个分区
2.创建vg
vgcreate vg_db /dev/sda /dev/sdb1 /dev/sdb2 /dev/sdc -s128m
3.创建lv
lvcreate -L2048m -i4 -I64k vg_db -n lv_2g_001
lvcreate -L2048m -i4 -I64k vg_db -n lv_2g_002
lvcreate -L2048m -i4 -I64k vg_db -n lv_2g_002
4.绑定
raw /dev/raw/raw1 /dev/mapper/vg_db-lv_2g_001
raw /dev/raw/raw2 /dev/mapper/vg_db-lv_2g_002
raw /dev/raw/raw2 /dev/mapper/vg_db-lv_2g_002
使用raw命令绑定的裸设备在重启后会失效。所以需要修改/etc/sysconfig/rawdevices配置文件,在文件中加入如下内容(每个裸设备一行):
/dev/raw/raw1 /dev/mapper/vg_db-lv_2g_001
/dev/raw/raw2 /dev/mapper/vg_db-lv_2g_002
执行 /etc/init.d/rawdevices restart 使配置文件中的裸设备生效
执行 /sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载
5.授权
chown -R oracle.dba /dev/mapper
修改配置文件/etc/udev/permissions.d/50-udev.permissions
注释掉raw/*:root:disk:0660
添加新行raw/*:oracle:dba:0660
6.链接(可选)
ln -s /dev/raw/raw1 /oradata/ningoo/system01.dbf
ln -s /dev/raw/raw2 /oradata/ningoo/undo01.dbf
ln -s /dev/raw/raw2 /oradata/ningoo/undo01.dbf


总结的真好啊!
但是现在不是推荐直接使用块设备了吗?O_Direct
Linux裸设备在Oracle 10.2.0.2版本中要过时了
http://www.anysql.net/dba/oracle_linux_rawdevice.html
没想到这篇文章早在2006-6就发了。
字符设备经过了时间和实践的验证,o_direct则没有,那么,你选择哪个?多绑定一次虽然麻烦点,稳定第一啊
另外,5.授权稍微解释一下,可使新建立的lv自动改变owner吗?
新建立的lv通过chown授权,修改配置文件确保重启后权限生效。操作最好按步骤来,安全第一。不要去依赖缺省行为,因为版本的变更可能导致缺省行为的变化。
冒昧问一下,在PCSERVER如HP380g5上(RHEL5)使用裸设备是否有必要?性能方面是否有差别?是裸设备与LVM+裸设备区别大吗?
使用裸设备有无必要取决于你对于IO和内存的需求,跟是否pcserver关系不大。性能的差别当然还是有的。后面一句没看明白,裸设备和lvm有比较关系么?