RAID

目的:提高冗余  提高性能

A:array  阵列

R :redundent 冗余

常见级别:0 1 5 6 10 

根据硬件或者连接方式的不同,分为软件RAID和硬件RAID(专门的RAID卡)

以硬件方式实现的磁盘阵列,所对应的设备文件在/dev/下都已sd开头。

以软件的方式实现的RAID,是依靠linux自身将设备连接起来,是在内核中实现的,实现的模块为md。所对应的设备文件在/dev/下以md开头。

mdadm 多磁盘管理工具,可以是分区,也可以是独立的一块磁盘。

linear (线性模式),将两个以上的磁盘整合成为一个实体的存数装置。所有的数据是:“一个一个填满之后,才将数据继续写到下一个磁盘上”。由于数据是一个一个写入到不同的磁盘当中,因此整个磁盘的读取性能并不会增加。此外,数据具有连续性,若一个磁盘损毁,导致整个数据丢失。优势是:磁盘的空间会完整的被利用完毕!

RAID0:条带(strip) 将数据分成多块,按等分放在不同的磁盘上交叉进行存储,可以提高磁盘性能,无容错功能。任何一块盘坏掉,会导致整个 数据全部丢失。

RAID1:镜像卷  将数据同时写入两块磁盘中,提供冗余功能。总容量以最小的那块磁盘为主。但是写速度明显降低,读性能明显提高。磁盘利用率百分之五十。

RAID4:至少三块磁盘,有一块盘专门用来做校验盘,缺陷:校验盘会成为系统的瓶颈。

RAID5:至少三块磁盘,轮流做校验盘,前两块磁盘放数据,第三块磁盘放奇偶校验码,二三放数据,第一块磁盘放校验数据,依次轮流。空间利用率(N-1)/ N。只允许坏一块盘。读取性能相当于RAID0,因为要计算写入到磁盘当中的平衡信息(parity information),所以写入的性能增加不会很明显。

PS:可以增加一块空闲盘(spare disk),一旦有一块盘发生故障可以立即顶上去。

RAID6 至少需要四块盘,两块盘做奇偶校验,轮流放奇偶校验数据。

mdadm   manage MD devices aka(also known as 众所周知)linux  software  Raid

         创建软raid  模式化工具

格式  mdadm  [mode]   <raiddevice>  [options] <component-devices> 组成模式

常用模式(mode):assemble(装配) create(创建)   follow or monitor(监控)   grow(增长)manage(管理)

Assemble:把一个从别处移植过来的或者已经停用的raid重新启用起来。不用指定raid中有哪些磁盘组成,可以手动或者自动扫描。

Create :创建一个Raid ,有两个或两个以上的磁盘或者分区。

Follow or monitor:监控模式,监控raid当中磁盘的工作状态,只对1,4,5,6,10(有冗余功能)有效。

Grow:增长或者收缩raid,或者重建raid。所支持功能包括改变活动处于活动状态磁盘的大小及个数,适用于1,4,5,6具有冗余功能的级别下。

Manage:管理模式,实现特殊的管理工作,添加一个新的冗余盘或者移掉一个坏盘。在MISC模式(杂项模式)下同样可以实现。

选项 Options

-A,--assemble   assemble a pre-existing array

-C,--create    create a new array

-F,--follow,--monitor  select monitor mode

-G, --grow    change the size  or shape of an active array

如果在一个设备之前已经指定了一个选项,例如  -add,--fail ,--remove 将自动被识别为manage模式。

跟模式无关的选项:

-V,--verbose 显示更详细的信息,选项较特殊,只能跟--detail (显示raid设备的详细信息), --scan(扫描) 和 --examine  , --scan一起用。

-s,--scan  扫描配置文件或者/proc/mdstat(保留当前系统上处于活动或者停止状态的raid设备)来获取额外的信息。

Create  和grow 的选项

-n  --raid-devices=    指定当前创建的raid一共有多少块活动的设备个数

-x  --spare-devices=   指定空闲设备的个数

-c  --chunk=         定义块大小,默认是64k     

-l   --level=         指定级别 

在VMware上模拟raid0的创建过程:

先创建两个分区

[root@server27 ~]# fdisk /dev/sda

wps_clip_image-11194

wps_clip_image-1665

wps_clip_image-25801保存退出,sda7和sda8为已经准备好的两个分区。

两个5G分区已经创建完毕,注意此时一定不要格式化分区。

[root@server27 ~]# mdadm -C /dev/md0  -a yes -l 0 -n 2 /dev/sda7 /dev/sda8

mdadm: array /dev/md0 started.

-a  yes 当设备启动的时候自动创建设备文件

-l 0 创建级别

-n 2 指定磁盘个数

创建完毕后查看一下:

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

wps_clip_image-20227

格式化设备:

[root@server27 ~]# mkfs -t ext3 -L RAID0 /dev/md0

创建一个挂载点,然后挂载:

[root@server27 ~]# mkdir /raid

[root@server27 ~]# mount /dev/md0 /raid

wps_clip_image-20050

wps_clip_image-28385:

/dev/mdo 已经工作正常。

设置开机自动挂载,编辑/etc/fstab 文件,添加:

/dev/md0           /raid              ext3              defaults      0   0

在VMware上模拟raid1的创建过程:

三块分区已经创建好了 /dev/sda9,  /dev/sda10, /dev/sda11

wps_clip_image-26732

[root@server27 raid]# partprobe

分区信息与内核同步一下,一定不要忘了

[root@server27 raid]# cat /proc/partitions

wps_clip_image-1561

准备工作已经完成,下面开始Raid1的创建,过程跟raid0 差不多

[root@server27 raid]# mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1  -c 32 /dev/sda9 /dev/sda10 /dev/sda11

[root@server27 raid]# cat /proc/mdstat

wps_clip_image-31322

[root@server27 raid]# mdadm --detail /dev/md1

查看某个Raid设备的详细信息

wps_clip_image-12591

模拟raid的创建过程:

PS:创建raid5 至少需要三块盘,如果再加一块冗余盘的话,至少需要四块。

四个分区已经准备完毕: /dev/sda12, /devsda13, /dev/sda14 ,/dav/sda15

wps_clip_image-8088

[root@server27 raid]# partprobe

[root@server27 raid]# mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sda{12,13,14}

[root@server27 raid]# cat /proc/mdstat

wps_clip_image-29330

添加一块冗余盘

[root@server27 raid]# mdadm -a /dev/md2 /dev/sda15

[root@server27 raid]# mdadm --detail /dev/md2

wps_clip_image-23093

移除一块冗余盘:

[root@server27 raid]# mdadm -r /dev/md2 /dev/sda15

查看一下:

wps_clip_image-4105

格式化设备

[root@server27 raid]# mkfs -t ext3 /dev/md2

创建一个挂载点,并挂载

wps_clip_image-15622

模拟磁盘坏掉的情况 --fail  --set-faulty

[root@server27 md2]# mdadm --set-faulty /dev/md2  /dev/sda14

wps_clip_image-19606

wps_clip_image-5244

依然可以正常访问。

增加一块新盘:

[root@server27 md2]# mdadm -a /dev/md2 /dev/sda15

wps_clip_image-27258

正在重建,等会儿会显示正常

wps_clip_image-27424

将坏盘移除

[root@server27 md2]# mdadm -r /dev/md2 /dev/sda14

将Raid停止

先卸载

[root@server27 ~]# mdadm -S /dev/md2

如果想重新使用需要重新装配

[root@server27 ~]# mdadm -A /dev/md2 /dev/sda{12,13,15}

如果想保留raid 的详细信息需要手动去编辑。在/etc/下mdadm.conf(默认不存在)

wps_clip_image-32312

[root@server27 ~]# mdadm --detail --scan

显示磁盘上所有处于活动装状态的阵列

wps_clip_image-28424

[root@server27 ~]# mdadm --detail --scan &gt;&gt; /etc/mdadm.conf

再来查看一下mdadm.conf 已经有信息了

wps_clip_image-8901

来验证一下,看能不能使用

停掉md2 在重新装配一下

[root@server27 ~]# umount /md2

[root@server27 ~]# mdadm -S /dev/md2

mdadm: stopped /dev/md2

[root@server27 ~]# mdadm -A --scan

mdadm: /dev/md2 has been started with 3 drives .

PS:格式化的时候有一个选项要注意

mkfs.ext3 -j -b 4096  -E stride=16 /dev/md0

-E指定扩展选项,stride= chuck/block  写上之后可以提高raid的性能