构建软RAID磁盘阵列

1.     RAID 简介

RAID是英文Redundant Array of Inexpensive Disks的缩写,中文名字为磁盘冗余阵列,顾名思义它是由磁盘组成阵列而成的。
   
单地说,RAID就是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来的一个硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能和数据冗余的技术,既 保证了存取数据的快捷方便和管理客户端的简捷,也解决了存储海量数据的问题,同时提供了容错性(Fault Tolerant)。它可以在不须停机的情况下自动检测故障硬盘、进行硬盘替换,还可以扩充硬盘容量、重建故障硬盘上的数据。
   
目前最流行的是RAID 0RAID 1RAID 5。其中RAID1RAID 5过多的用于保证数据的安全,最大程度的防止磁盘意外坏掉而丢失数据情况的发生。
    RAID0 :
是最早的RAIDLevel 0RAID 0,通常称为带区,是利用带区数据映射技巧的特定性能。也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。这带来了高I/O 能,低开销,但不提供任何冗余。磁盘组的存储量等于总的各磁盘容量之和。
特征:并行读写数据,性能高,但没有数据冗余,阵列中任何一个硬盘坏掉,意味着所有数据丢失
容量:所有硬盘容量之和
条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.
    RAID1: Level 1
RAID 1级,它就是常常提到的镜像RAID,相比其它各级别RAID来说,这个级别使用的时间较长。RAID 1通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。镜像由于它的简单实现和数据的高可信度而一直很受欢迎。 1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其它的操作时无法提供高速的I/O传输速率。1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。要求组成磁盘组的各磁盘 规格相同,而组成后磁盘组的容量仅仅等于一块磁盘的容量。

特征:数据冗余,可靠性强。任何一块硬盘坏掉,不会丢失数据。写入慢,读取快。
容量:所有硬盘容量之和/2。(冗余度 50%
条件:至少两块硬盘,做为RAID的分区大小必须是几乎相同的.
   RAID5:
服务器最常用的RAID级别,该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。
如果出现两个以上硬盘出现问题时,数据是不能得到有效的保护的。也就是说RAID 5只能在其中一块硬盘出问题时保证数据完好。
特征:采用奇偶效验,可靠性强。只有当两块硬盘坏掉时才会丢失数据。并行读写数据,性能也很高。
容量:所有硬盘容量-1个硬盘容量
条件:至少三块硬盘,做为RAID的分区大小必须是几乎相同的。
    RAID 0+1: RAID 0
RAID 1的组合
特征:数据冗余,可靠性强。任何一块硬盘坏掉,不会丢失数据。写入慢,读取快。
容量:所有硬盘容量之和/2。(冗余度 50%
条件:至少四块硬盘,做为RAID的分区大小必须是几乎相同的.

 

2.     准备RAID磁盘分区

 

在做RAID磁盘阵列时必须要有mdadm软件的支持。Mdadm软件一般是默认安装的,如果没有就在RHEL5光盘中找:

[root@server Server]# rpm -ivh mdadm-2.5.4-3.el5.i386.rpm

warning: mdadm-2.5.4-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...   ########################################### [100%]

 

Linux服务器添加420GSCSI硬盘,用fdisk工具各划分一个分区,依次为:/dev/sdb1/dev/sdc1/dev/sdd1/dev/sde1、其中它们的类型的id改为“fd”对应为“Linux raid autodetect”。

 

[root@server Server]# fdisk /dev/sdb

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.

 

 

The number of cylinders for this disk is set to 2610.

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): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-2610, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +2610M

 

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raid autodetect)

 

Command (m for help): p

 

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         318     2554303+  fd  Linux raid autodetect

创建好分区好之后执行“partprobe”重新检测分区表,验证分区类型和容量信息。

[root@server ~]# partprobe

[root@server ~]# fdisk -l /dev/sd[b-e] | grep "^/dev/sd"

/dev/sdb1               1         318     2554303+  fd  Linux raid autodetect

/dev/sdc1               1         318     2554303+  fd  Linux raid autodetect

/dev/sdd1               1         318     2554303+  fd  Linux raid autodetect

/dev/sde1               1         318     2554303+  fd  Linux raid autodetect

 

3.      创建RAID磁盘设备

 

①使用mdadm工具组合多个RAID分区成一个磁盘阵列

[root@server ~]# mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[b-e]1

mdadm: layout defaults to left-symmetric

mdadm: chunk size defaults to 64K

mdadm: size set to 2554176K

mdadm: array /dev/md0 started.

②查看RAID磁盘阵列

[root@server ~]# ls -l /dev/md0

brw-r----- 1 root disk 9, 0 06-26 14:54 /dev/md0

[root@server ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0]

      7662528 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

 

unused devices: <none>

RAID设备上建立文件系统

[root@server ~]# mkfs -t ext3 /dev/md0

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

959104 inodes, 1915632 blocks

95781 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=1962934272

59 block groups

32768 blocks per group, 32768 fragments per group

16256 inodes per group

Superblock backups stored on blocks:

          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

 

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 29 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

 

挂载RAID设备文件系统

[root@server /]# mount /dev/md0 /liujian

[root@server /]# df -T | grep "md0" 

/dev/md0      ext3     7542096    148044   7010928   3% /liujian

如果想重启后还挂载

 

[root@server /]# vim /etc/fstab

/dev/md0     /liujian      /ext3      defaults       1  1

 

4.      RAID阵列的管理

①扫描RAID阵列的磁盘信息

[root@server /]# mdadm -vDs /dev/md0

/dev/md0:

         Version : 0.90

    Creation Time : Sat Jun 26 15:14:19 2010

      Raid Level : raid5

     Array Size : 7662528 (7.31 GiB 7.85 GB)

    Used Dev Size : 2554176 (2.44 GiB 2.62 GB)

    Raid Devices : 4

    Total Devices : 4

Preferred Minor : 0

    Persistence : Superblock is persistent

 

    Update Time : Sat Jun 26 15:25:26 2010

          State : clean

   Active Devices : 4

Working Devices : 4

 Failed Devices : 0

  Spare Devices : 0

 

          Layout : left-symmetric

      Chunk Size : 64K

 

             UUID : fdf9854f:ede019da:37a15237:9284b3a7

           Events : 0.2

 

      Number   Major   Minor   RaidDevice State

         0       8       17        0      active sync   /dev/sdb1

         1       8       33        1      active sync   /dev/sdc1

         2       8       49        2      active sync   /dev/sdd1

         3       8       65        3      active sync   /dev/sde1

②启动/停止RAID阵列

停止

[root@server /]# mdadm -S /dev/md0

mdadm: fail to stop array /dev/md0: Device or resource busy

Perhaps a running process, mounted filesystem or active volume group?

启动

[root@server /]# mdadm –A /dev/md0

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章