写在前面--命令总览建RAID:mdamd -C [-l别 -n数量 -cchunk  -a是否询问]

看RAID: mdadm –D   停止RAID:mdadm –S  管理RAID:-f标记损坏  -r除  -a添加

watch  文件:/proc/mdstat   操作简单流程在尾部

 

RAID特性及创建

RAID全称独立磁冗余列(Redundant Array of Independent Disks),基本思想就是把多个相便宜的硬盘组合起来,成一个硬盘阵,使性能达到甚至超一个价格昂的硬

 

RAID点如下:

把多盘组合成更大的硬当做一使用

提高IO能力:磁并行

提高耐用性:通冗余来实现

有独立内存和自我供能力,在突然断电时能靠池把内存中的数据写入磁,一定程度上防止数据失。

 

RAID实现方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器

上述两种方式:RAID配置在BIOS中

software RAID:但在几乎没人用了

 

RAID别:level,多盘组织在一起的工作方式不同,而不是性能好坏之分

一类型:

RAID-0:条卷。chunk

wKioL1aCOazwDC1bAABQZ-kSl2Q890.png

假如,有两A和B,把数据存上。就把数据切割成到四数据,把数据1到A上,数据2到B上,把数据3再存到A上,把数据4到B上。这样A和B可以同,整个数据存时间就减半了。相同的,从两一起数据,取的时间也减半了。

但是,假如一坏掉的可能性1/4,那么两块盘坏掉一的概率就1/2,坏掉任何块盘都会致整个数据的坏,所以使用磁越多,虽然IO能力越强,但风险也越大。上述数据1,数据2等称chunk种方式一般存放不是很重要的数据。

特性:

写能力提升

可用空:n*min 假如有三分别10G,12G,15G 大小,可用空间为3x10G=30G

无容(冗余)能力,反而增加风险

需要磁数量:2以上

 

RAID-1像卷。

wKiom1aCOZKxbrX-AABF5fb5eW4398.png

把数据分别写入A和B两块盘内,相当于把数据存了两份,两个内的数据完全一这样,即便有一块盘坏掉,另一块盘也能保存好完成数据。取是从两块盘一起,所以取能力上升。但是写入数据需要把数据写两遍,所以写入能力下降。

特性:

写性能下降

性能提升

可用空:1*min,只有一块盘有用,其他只是做

有容能力

最少磁数:2

 

RAID-4:校验盘。假如有四块盘,拿三块盘A,B,C分别存小数据chunk,拿最后一块盘D做校验盘,存前面三块盘数据的校验码(校验码可以理解前三块盘数据的和但占用空却没增加)。这样就允坏一块盘,无任何一块盘坏掉,通另外三块盘都可以找回失的数据。但是校验盘D数据多,力大,而且前ABC三块盘任何一坏掉,校验盘D就不得不扛起那坏掉的的工作,力很大,所以坏掉的可能性最大。所以通常就验盘D做一块备E,E监视D的一,哪一天D坏掉了,胎E就会自自告勇,挑起大梁。

RAID-5:块盘轮流做校验盘

比如第一把chunk1存到A上,chunk2存到B上,chunk3存到C上,校验码到D上。第二验码存到C上,chunk存到ABD上,第三把校验码到B上,chunk存到ACD上,第四把校验码到A上,以此类推。这样就不会有哪一块盘力特别大了。

写性能提升

可用空:n-1,相当于一拿来做校验盘

能力:1块盘

最少磁数:3

 

RAID-6

拿两个做校验盘这样可以允坏两,但效果不如RAID10

写性能提升

可用空:n-2

能力:2块盘

最少磁数:4

 

混合类型

RAID-10:先做1再做0,先合下,才能合上

wKiom1aCOZLi5ePiAABK6SL3jYw681.png

假如6个分成三,AB,CD二,EF三称把数据分成三个chunk,每一一个chunk,

写性能提升。一拿到chunk后把自己的chunk分别存到A,B上,这样A和B就互为镜像了。这样每个小内都允坏掉一块盘,比如ACE同坏掉都没事。

可用空:1/2

有容能力:每只能坏一

最少磁数:4

RAID-01

wKioL1aCOazjUbvKAABLDfr79nY905.png

例如把6个分成两,ABC第一,DEF第二。把数据第一,再把相同的数据第二。第一拿到数据后把数据切成三个chunk,分别存到A、B、C、上。第二拿到数据后也行与第一相同的操作。表面看两为镜像,但由于拿到数据后又行了切割,两个的切割方式几乎不可能完全相同,所以如果第一和第二都各自坏掉一块盘,数据基本就找不回来了,所以只允有一,一内全部坏掉都没事,但不允

 

RAID-50:至少6块盘,最多坏一个

RAID-7

 

JBOD:just a bunch of disks

简单的将多合并成一个大的可用空

可用空:sum,不是否一

无容能力

 

常用别:RAID-0,RAID-1,RAID-10,RAID-50,JBDO

一般用10,和50,或0,其他不好用

 

centos6RAID实现

合内核中的md(multi device)

 

mdadm:模式化工具

支持LINEAR, RAID0,RAID4,RAID5,RAID6,RAID10

建:-C     看–D     管理-f,-r,-a    停用,除-S    装配-A   控-F

-C:建RAID

mdadm –C /dev/md0–l  5 –n  3 –x 1 –c  128K -a  yes /dev/sda{5,6,7}

 

-n #:使用#块设备创建此RAID

-l #:指明RAID

-a {yes,no}:自动创建目RAID设备设备文件

-c chunk_size:指明大小

-x#:指明空闲盘的个数

-D示raid的详细信息

mdadm-D /dev/md0

md

cat/proc/mdstat

watch命令:

watch –n1 'command'

watch -n1 'cat /proc/mdstat'

 

管理模式:

-f标记盘为损

           mdadm /dev/md0 -f /dev/sda6

-a添加磁

           mdadm /dev/md0 -a /dev/sda5

-r移除磁

           mdadm /dev/md0 -r /dev/sda5

 

-S停止,除md设备

mdadm -S /dev/md0  ---------除md0

下面为创建RAID5的详细过

 [root@localhost ~]# mdadm -C /dev/md0 -l 5 -n3 -x 1 -c 128K -a yes /dev/sda{7,8,9,10}
mdadm: /dev/sda7appears to contain an ext2fs file system  ----------------创建/dev/md0 
size=2099724K  mtime=Thu Jan 1 08:00:00 1970
mdadm: largestdrive (/dev/sda9) exceeds size (2097664K) by more than 1%
Continue creatingarray? y
mdadm: Defaultingto version 1.2 metadata
mdadm: array/dev/md0 started.


 

 [root@localhost ~]# cat /proc/mdstat---------查看配置文件,看有没有RAID设备
Personalities :[raid6] [raid5] [raid4] 
md0 : activeraid5 sda9[4] sda10[3](S) sda8[1] sda7[0]
      4195328 blocks super 1.2 level 5, 128kchunk, algorithm 2 [3/3] [UUU]
unused devices:<none>


[root@localhost~]# mke2fs -t ext4 /dev/md0  -----------格式化md0
[root@localhost~]# mkdir /mydata
[root@localhost~]# mount /dev/md0 /mydata
[root@localhost~]# mdadm -D /dev/md0  ----可以看到一共有4块设备组成/dev/sda{7,8,9}和/dev/sda10


[root@localhost~]# mdadm /dev/md0 -f /dev/sda7  --------把/dev/sda7标记损坏
mdadm: set/dev/sda7 faulty in /dev/md0
[root@localhost~]# mdadm -D /dev/md0 
    Number  Major   Minor   RaidDevice State
       3      8       10        0     spare rebuilding   /dev/sda10
       1      8        8        1     active sync   /dev/sda8 --------可看到/dev/sda10自动替换到了/dev/sda7的位置,正在同步数据
       4       8       9        2      active sync   /dev/sda9 
        0      8        7        -     faulty   /dev/sda7


[root@localhost~]# mdadm /dev/md0 -f /dev/sda8   -----再标记坏一块盘
mdadm: set/dev/sda8 faulty in /dev/md0


[root@localhost~]# cd /mydata   
[root@localhostmydata]# ll
总用量 16
drwx------. 2root root 16384 12月 20 17:11 lost+found -------------原来数据还能查看


[root@localhostmydata]# mdadm /dev/md0 -r /dev/sda7 ---------移除/dev/sda7
mdadm: hotremoved /dev/sda7 from /dev/md0
[root@localhostmydata]# mdadm /dev/md0 -r /dev/sda8
mdadm: hotremoved /dev/sda8 from /dev/md0


[root@localhostmydata]# mdadm -D /dev/md0  ------发现只剩两块盘
………………………………………………..
    Number  Major   Minor   RaidDevice State
       3      8       10        0     active sync   /dev/sda10
       2      0        0        2     removed
       4      8        9        2     active sync   /dev/sda9


[root@localhostmydata]# mdadm /dev/md0 -a /dev/sda7 -------/dev/sda7加上去
mdadm: added/dev/sda7
[root@localhostmydata]# mdadm -D /dev/md0 ----------/dev/sda7添加成功
    Number  Major   Minor   RaidDevice State
       3      8       10        0     active sync   /dev/sda10
       5      8        7        1     spare rebuilding   /dev/sda7
       4      8        9        2     active sync   /dev/sda9


 

 

 

下面为创建RAID5的

fdisk /dev/sda--- 建4个5G分区---用t,设备号即数字----把磁类型改写fd,RAID用的磁类型

cat /proc/mdstat  ---------此文件可看RAID设备的信息

mdadm -C /dev/md0-a yes -n 3 -l 5 /dev/sda{5,6,7,8,}----- 建一个名md0的RAID

mke2fs -t ext4/dev/md0        -------------把RAID格式化成ext4格式

mount /dev/md0/mydata      ----------把RAID挂至 /mydata目

mount               ----------看是否挂成功

df –lh                  ---------看磁信息

blkid /dev/md0      -----------看md0的信息

mdadm -D /dev/md0  ------------看md0的详细信息

mdadm  /dev/md0 -f /dev/sda5---------坏一  坏RAID md0 上的一块盘

watch -n1 'cat/proc/mdstat'      ----------个文件,随掌握RAID的信息

mdadm -D /dev/md0           ----------看md0的详细信息

 

mdadm  /dev/md0 -f /dev/sda6--坏一块盘

mdadm -D /dev/md0    ---------------看md0的详细信息,发现依然能访问

 

mdadm /dev/md0 -r/dev/sda5 -------移除坏掉的

mdadm /dev/md0 -r/dev/sda6

mdadm -D /dev/md0

 

mdadm /dev/md0 -a/dev/sda5 ---------md0加上一块盘

mdadm -D /dev/md0  -----------看md0的状