在linux上使用raw device方式
2008-02-29 19:41
在linux上使用raw device一般有两个方式,下面分别测试一下:
第一种方式是非lvm方式,直接使用partion方式如下: 一,创建分区 [root@localhost ~]# fdisk -l Disk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 64 514048+ 83 Linux /dev/sda2 65 1174 8916075 83 Linux /dev/sda3 1175 1435 2096482+ 82 Linux swap /dev/sda4 1436 1566 1052257+ 5 Extended /dev/sda5 1436 1566 1052226 83 Linux Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdb doesn't contain a valid partition table Disk /dev/sdc: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdc doesn't contain a valid partition table [root@localhost oracle]# fdisk /dev/sdb The number of cylinders for this disk is set to 1044. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): n p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1044, default 1): 65 Last cylinder or +size or +sizeM or +sizeK (65-1044, default 1044): Using default value 1044 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 65 1044 7871850 83 Linux Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 65 1044 7871850 83 Linux Command (m for help): h h: unknown command Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): d Selected partition 1 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) 1 p Partition number (1-4): 1 First cylinder (1-1044, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 65 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (66-1044, default 66): Using default value 66 Last cylinder or +size or +sizeM or +sizeK (66-1044, default 1044): 130 Command (m for help): n Command action e extended p primary partition (1-4) 3 Invalid partition number for type `3' Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (131-1044, default 131): Using default value 131 Last cylinder or +size or +sizeM or +sizeK (131-1044, default 1044): 196 Command (m for help): n Command action e extended p primary partition (1-4) p Selected partition 4 First cylinder (197-1044, default 197): 4 Value out of range. First cylinder (197-1044, default 197): Using default value 197 Last cylinder or +size or +sizeM or +sizeK (197-1044, default 1044): 262 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux /dev/sdb2 66 130 522112+ 83 Linux /dev/sdb3 131 196 530145 83 Linux /dev/sdb4 197 262 530145 83 Linux 二,绑定raw device [root@localhost oracle]# raw /dev/raw/raw1 /dev/sdb1 /dev/raw/raw1: bound to major 8, minor 18 [root@localhost oracle]# raw /dev/raw/raw2 /dev/sdb2 /dev/raw/raw2: bound to major 8, minor 18 [root@localhost oracle]# raw /dev/raw/raw3 /dev/sdb3 /dev/raw/raw3: bound to major 8, minor 18 [root@localhost oracle]# raw /dev/raw/raw4 /dev/sdb4 /dev/raw/raw4: bound to major 8, minor 18 [root@localhost oracle]#vi /etc/sysconfig/rawdevices 在文件中加入如下内容: /dev/raw/raw1 /dev/sdb1 /dev/raw/raw2 /dev/sdb2 /dev/raw/raw3 /dev/sdb4 /dev/raw/raw4 /dev/sdb4 另执行 /etc/init.d/rawdevices restart 使配置文件中的裸设备生效,执行 /sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载。 三,授权 [root@localhost oracle]# chown -R oracle:dba /dev/raw/raw1 [root@localhost oracle]# chown -R oracle:dba /dev/raw/raw2 [root@localhost oracle]# chown -R oracle:dba /dev/raw/raw3 [root@localhost oracle]# chown -R oracle:dba /dev/raw/raw4 另修改配置文件/etc/udev/permissions.d/50-udev.permissions 注释掉raw/*:root:disk:0660,添加新行raw/*:oracle:dba:0660 此时,如绑定raw device,则默认权限为oracle:dba了。 --另如需要可以进行相应链接, 如ln -s /dev/raw/raw1 /u1/oracle/oradata/test10g/test_raw1.dbf,然后可以直接为oracle所用了。 另一种是lvm的方式,测试如下: 一,创建pv [root@localhost ~]# pvcreate -M2 --metadatasize 100M /dev/sdb7 /dev/sdb8 /dev/sdb9 /dev/sdb10 /dev/sdc Physical volume "/dev/sdb7" successfully created Physical volume "/dev/sdb8" successfully created Physical volume "/dev/sdb9" successfully created Physical volume "/dev/sdb10" successfully created Physical volume "/dev/sdc" successfully created [root@localhost ~]# lvmdiskscan /dev/ramdisk [ 16.00 MB] /dev/ram [ 16.00 MB] /dev/sda1 [ 502.00 MB] /dev/ram2 [ 16.00 MB] /dev/root [ 8.50 GB] /dev/ram3 [ 16.00 MB] /dev/sda3 [ 2.00 GB] /dev/ram4 [ 16.00 MB] /dev/ram5 [ 16.00 MB] /dev/sda5 [ 1.00 GB] /dev/ram6 [ 16.00 MB] /dev/ram7 [ 16.00 MB] /dev/ram8 [ 16.00 MB] /dev/ram9 [ 16.00 MB] /dev/ram10 [ 16.00 MB] /dev/ram11 [ 16.00 MB] /dev/ram12 [ 16.00 MB] /dev/ram13 [ 16.00 MB] /dev/ram14 [ 16.00 MB] /dev/ram15 [ 16.00 MB] /dev/sdb1 [ 980.50 MB] /dev/sdb2 [ 980.53 MB] /dev/sdb3 [ 1.92 GB] /dev/sdb5 [ 509.84 MB] /dev/sdb6 [ 549.07 MB] /dev/sdb7 [ 509.84 MB] LVM physical volume /dev/sdb8 [ 509.84 MB] LVM physical volume /dev/sdb9 [ 549.07 MB] LVM physical volume /dev/sdb10 [ 627.51 MB] LVM physical volume /dev/sdb11 [ 1011.88 MB] /dev/sdc [ 8.00 GB] LVM physical volume 3 disks 23 partitions 1 LVM physical volume whole disk 4 LVM physical volumes 二,创建vg [root@localhost ~]# vgcreate vg_db1 /dev/sdc -s 128m Volume group "vg_db1" successfully created [root@localhost ~]# vgcreate vg_db2 /dev/sdc -s 128m Volume group "vg_db2" successfully created 三,创建lv [root@localhost ~]# lvcreate -L 512m -I 64k vg_db2 -n lv_db2_02 Ignoring stripesize argument with single stripe Logical volume "lv_db2_02" created [root@localhost ~]# lvcreate -L 1024m -I 64k vg_db2 -n lv_db2_03 Ignoring stripesize argument with single stripe Logical volume "lv_db2_03" created [root@localhost ~]# lvcreate -L 512m -I 64k vg_db2 -n lv_db2_04 Ignoring stripesize argument with single stripe Logical volume "lv_db2_04" created [root@localhost ~]# lvcreate -L 2048m -I 64k vg_db2 -n lv_db2_05 Ignoring stripesize argument with single stripe Logical volume "lv_db2_05" created 四,绑定 [root@localhost ~]# raw /dev/raw/raw1 /dev/mapper/vg_db2-lv_db2_01 /dev/raw/raw4: bound to major 253, minor 5 [root@localhost ~]# raw /dev/raw/raw2 /dev/mapper/vg_db2-lv_db2_02 /dev/raw/raw4: bound to major 253, minor 5 [root@localhost ~]# raw /dev/raw/raw3 /dev/mapper/vg_db2-lv_db2_03 /dev/raw/raw4: bound to major 253, minor 5 [root@localhost ~]# raw /dev/raw/raw4 /dev/mapper/vg_db2-lv_db2_04 /dev/raw/raw4: bound to major 253, minor 5 后面授权等作业和第一种方式类同,上面要注意的是lv的命名方式,命名方式分解如下: /dev/mapper/+ vgname + '-' + lvname. |