首页 > 代码库 > Raid入门

Raid入门

1.What is raid?

Raid,一开始是Redundant Arrays of Inexpensive Disks,即冗余的,昂贵的磁盘阵列;后来经过发展,演变成Redundant Arrays of Independent Disks,即廉价的冗余磁盘阵列。通俗点说,就是将多个磁盘设备整合起来当做一个逻辑设备来使用,在数据安全可用性或者读写性能上进行提升。有点类似于设备集群的概念。事实上,RAID已经成为众多存储方案的一个工业化解决方案。


2.What is the level of raid?

将多个设备整合起来,那么有哪些整合的方式呢?描述磁盘整合的方式,就是RAID LEVEL.

常见的RAID LEVEL有如下:

raid 0 :条带技术

raid 1 :镜像技术

raid 5:校验码技术

还可以将raid 0 ,raid 1进行整合使用。

raid 10

raid 01


关于raid 0:

wKiom1O46qmTYxVtAADECESqshk032.jpg

说明:

第一,显而易见的,利用多块磁盘来进行读写,会提升读写性能。

第二,缺点在于,没有冗余空间,一旦某一块设备出现问题,那么其他设备数据将不可用,无法容错。


关于raid 1:

wKiom1O464azZ66gAAEbmJP5qP8997.jpg

说明:

第一,可以发现由于需要写多份数据,那么写性能不会提升,但是读性能会提升。

第二,空间利用率为50%

第三,存在冗余空间,可以容错。


关于raid 5:

wKioL1O47HPBY6zeAADIom-qi8Y326.jpg

说明:

第一,注意对于raid5而言,会有一块盘作为校验盘使用,由于这块校验盘的存在,使得具有容错机制。但是,只能容错一块盘发生问题。

第二,读写性能提升。


3.How to use raid?

LINUX实现RAID有两种方式:一个是硬件RAID,一个是软件RAID。如果使用硬件RAID,则需要在BIOS中进行相关设置。我们这里只讨论软件RAID的实现。

假设,现在需要用软件的方式模拟RAID 0级别。

第一,准备好分区类型为fd的设备

/dev/sdb8              47          53       56196   fd  Linux raid autodetect
/dev/sdb9              54          60       56196   fd  Linux raid autodetect


可以使用partprobe及cat /proc/partitions来确认下内核是否已经识别。



第二,创建md设备文件,所谓md:multi disks。其实软件RAID的实现是依赖于内核MD模块的。

[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb8 /dev/sdb9

注意mdadm命令就是用于软件RAID的,-C表示创建MD设备文件,-l表示RAID级别,-n表示由多少个设备。


第三,创建文件系统,然后挂载,即可使用。

[root@localhost ~]# mke2fs -j /dev/md0




4.mdadm的补充说明

mdadm:

模式化的命令:

创建模式【创建RAID设备】 -C  

    -l指定级别

    -n设备个数

    -a自动为其创建设备文件

    -x指定空闲盘个数,比如RAID1的话,如果坏掉一块,那么空闲的顶上去

管理模式【可以停止RAID】  --add 等等。默认模式

监控模式【监控RAID是否正常】 -F

增长模式 -G

装配模式【重新识别RAID并组装】-A



查看raid阵列的详细信息:

-D 显示详细信息 --detail

mdadm -D /dev/md0


比如,我们将/dev/sdb8 , /dev/sdb7 创建了RAID1 /dev/md1,但是/dev/sdb7坏掉了,现在raid还能继续使用,为了防止RAID在坏掉一块,添加一块:

mdadm /dev/md1 -a /dev/sdb9

【需要注意的是/dev/sdb9 fd size大小保持一致】

cat /proc/mdstat可以发现同步信息。




本文出自 “我想超越自我” 博客,请务必保留此出处http://zhangfengzhe.blog.51cto.com/8855103/1435020