一、什么是 RAID

磁盘阵列全名是“ Redundant Arrays of Inexpensive Disks, RAID :廉价冗余磁盘阵列。 RAID 可以透过一个技术(软件或硬件),将多个较小的磁碟整合成为一个较大的磁碟装置; 而这个较大的磁碟功能可不止是储存而已,他还具有数据保护的功能。

 

RAID有以下不同级别(level)

 

RAID-0 (等量模式, stripe):效能最佳

这种模式的 RAID 会将磁碟先切出等量的区块, 然后当一个文件要写入 RAID 时,该文件会依据区块的大小切割好,之后再依序放到各个磁碟里面去。由于每个磁碟会交错的存放数据, 因此当你的数据要写入 RAID 时,数据会被等量的放置在各个磁碟上面。

 

RAID-1 (映射模式, mirror):完整备份

这种模式也是需要相同的磁碟容量的,最好是一模一样的磁碟。如果是不同容量的磁碟组成 RAID-1 时,那么总容量将以最小的那一颗磁碟为主。这种模式主要是让同一份数据,完整的保存在两颗磁碟上头。

 

RAID 0+1RAID 1+0

所谓的 RAID 0+1 就是:

(1)先让两颗磁碟组成 RAID 0,并且这样的配置共有两组;

(2)将这两组 RAID 0 再组成一组 RAID 1

 

RAID 5:效能与数据备份的均衡考量

RAID-5 至少需要三颗以上的磁碟才能够组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类似 RAID-0 不过每个循环的写入过程中,在每颗磁碟还加入一个同位检查数据 (Parity) ,这个数据会记录其他磁碟的备份数据, 用于当有磁碟损毁时的救援。利用效率为n-1/n

RAID 4: 工作方式类似于RAID5,但是它只用某一块磁盘来校验备份数据。

 

 

二、software, hardware RAID

硬件磁盘阵列 (hardware RAID) 是透过磁盘阵列卡来达成阵列的目的。硬件磁盘阵列卡又很贵。因此就有发展出利用软件来模拟磁盘阵列的功能, 这就是所谓的软件磁盘阵列 (software RAID)。软件磁盘阵列主要是透过软件来模拟阵列的任务, 因此会损耗较多的系统资源。

 

 

三、mdadm多磁盘管理

-A 装配模式

-C 创建模式

-F 监控模式

-G 增长模式 –n 指定使用多少块磁盘来创建设备

            -x 指定空闲盘的个数

            -c chunk大小(默认64k

            -l  level,指定使用RAID的级别

管理模式 - - add

         - - fail

         - -remove

 

实例:创建RAID5

[root@www ~]# fdisk /dev/hda

Command (m for help): n

First cylinder (2053-5005, default 2053): <==直接按下 [enter]

Using default value 2053

Last cylinder or +size or +sizeM or +sizeK (2053-5005, default 5005): +1000M

# 上述的动作请作五次!

 

Command (m for help): p

 

Disk /dev/hda: 41.1 GB, 41174138880 bytes

255 heads, 63 sectors/track, 5005 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        1288    10241437+  83  Linux

/dev/sda3            1289        1925     5116702+  83  Linux

/dev/sda4            1926        5005    24740100    5  Extended

/dev/sda5            1926        2052     1020096   82  Linux swap / Solaris

/dev/sda6            2053        2175      987966   83  Linux

/dev/sda7            2176        2298      987966   83  Linux

/dev/sda8            2299        2421      987966   83  Linux

/dev/sda9            2422        2544      987966   83  Linux

/dev/sda10           2545        2667      987966   83  Linux

  //6~10 号是需要的 partition

 

Command (m for help): w

 

[root@www ~]# partprobe

 

[root@www ~]# mdadm --C --a=yes /dev/md0 --level=5 –n 5 /dev/sda{6,7,8,9,10}

[root@www ~]# mdadm --detail /dev/md0  //查看详细信息

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

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 hda9[3] hda10[4](S) hda8[2] hda7[1] hda6[0]   

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

格式化与挂载使用 RAID

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

[root@www ~]# mount /dev/md0 /mnt/raid

[root@www ~]# df

Filesystem     1K-blocks      Used Available Use% Mounted on

/dev/hda2        9920624   3858820   5549736  42% /

/dev/hda1         101086     21408     74459  23% /boot

tmpfs             371332         0    371332   0% /dev/shm

/dev/hda3        4956316   1056996   3643488  23% /home

/dev/md0         2916920     69952   2698792   3% /mnt/raid