RAID(RedundantArrays of Inexpensive(Independent) Disk):叫独立磁盘冗余阵列node
其实现方式有:硬件实现方式和软件实现方式app
RAID是分级别(level)的,不一样的级别表明不一样的实现方式以及功能的不一样ide
RAID-0:通常叫条带卷,strip;分片进行存储,每一个硬盘存一部分,没有备份工具
RAID-1: 通常叫镜像卷,mirror;每一个硬盘里都存一份,有备份性能
RAID-2spa
...component
RAID-5:orm
RAID-6ip
RAID10it
RAID01
RAID-0: 是使用两块或两块以上的硬盘,以两块为例,是把数据分红CHUNK(块),而后每一个硬盘存一部分数据
特色:读、写性能提高;
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+
RAID-1:是使用两块或两块以上的硬盘,以两块为例,是把数据分别拷贝进每一个硬盘存一份,作备份
特色:读性能提高、写性能略有降低;
可用空间:1*min(S1,S2,...)
有冗余能力
最少磁盘数:2, 2+
RAID-5:使用3块或3块以上的硬盘实现,以3块为例,使用两块来按条带卷的形式存储数据,即每一个硬盘存一部分数据,最后一块硬盘作校验盘,若是有一块硬盘坏了,令两块硬盘里的数据按位异或能够获得第三个盘的数据,但校验盘负荷比较大,会容易坏
特色:读、写性能提高
可用空间:(N-1)*min(S1,S2,...),有一块硬盘作校验盘,其余作数据盘,
有容错能力:能够在坏1块磁盘的状况下正常工做,不过此时工做在降级模下
最少磁盘数:3, 3+
RAID-6:
使用4块或4块以上的硬盘实现,以3块为例,使用两块来按条带卷的形式存储数据,即每一个硬盘存一部分数据,最后两块硬盘作校验盘,若是有一块硬盘坏了,令两块硬盘里的数据按位异或能够获得第三个盘的数据
特色:读、写性能提高
可用空间:(N-2)*min(S1,S2,...)。有两块校验盘,其余作数据盘
有容错能力:
最少磁盘数:4, 4+
混合类型
RAID-10:就是先RAID1而后在RAID0,先两两一组,做为镜像卷,而后在把全部镜像卷作RAID0,作成条带卷
特色: 读、写性能提高
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块;
最少磁盘数:4, 4+
RAID-01:就是先RAID0而后在RAID1;通常不会用
经常使用的RAID级别有RAID0,RAID1,RAID5,RAID10;通常还会用JBOD:将多块磁盘的空间合并一个大的连续空间使用;
下面以CentOS6下实现软件RAID:
mdadm:模式化的工具
命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR,RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
模式:
建立:-C
装配: -A
监控: -F
管理:-f, -r, -a
<raiddevice>:/dev/md#
<component-devices>: 任意块设备
-C:建立模式
-n#: 使用#个块设备来建立此RAID;
-l#:指明要建立的RAID的级别;
-a{yes|no}:自动建立目标RAID设备的设备文件;
-cCHUNK_SIZE: 指明块大小;
-x#: 指明空闲盘的个数;
D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f:标记指定磁盘为损坏;
-a:添加磁盘
-r:移除磁盘
例:mdadm/dev/md0 -f /dev/sda6;mdadm /dev/md0 -r /dev/sda6
观察md的状态:
cat/proc/mdstat
中止md设备:
mdadm-S /dev/md#
例如:建立一个10G可用空间的RAID5;3块应用,一块空闲(这样能保证坏两块盘,也能正常工做)
首先要建立四个5G的分区,而后使用t选项修改三个分区的列表编号为fd,
而后使用partx –a /dev/sda把分区加载到内核上,
而后使用cat /proc/mdstat查看是否有RAID,没有的话而后建立,若是有名字很差建重复了
使用mdadm -C/dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda[5,6,7,8]建立,
[root@localhost~]# mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda[5,6,7,8]
mdadm: /dev/sda5appears to contain an ext2fs file system
size=5253220K mtime=Sat Aug 2212:54:38 2015
mdadm: /dev/sda6appears to contain an ext2fs file system
size=5253220K mtime=Sat Aug 2212:59:07 2015
mdadm: /dev/sda7appears to contain an ext2fs file system
size=5253220K mtime=Thu Jan 1 08:00:00 1970
mdadm: /dev/sda8appears to contain an ext2fs file system
size=5253220K mtime=Sat Aug 2220:10:17 2015
Continuecreating array?
Continuecreating array? (y/n) y
mdadm:Defaulting to version 1.2 metadata
mdadm: array/dev/md0 started.
完成后,使用mke2fs -t ext4/dev/md0,对这个建立的md0进行格式化,
[root@localhost~]# mke2fs -t ext4 /dev/md0
mke2fs 1.41.12(17-May-2010)
Filesystemlabel=
OS type: Linux
Block size=4096(log=2)
Fragmentsize=4096 (log=2)
Stride=128blocks, Stripe width=256 blocks
657072 inodes,2624512 blocks
131225 blocks(5.00%) reserved for the super user
First datablock=0
Maximumfilesystem blocks=2688548864
81 block groups
32768 blocks pergroup, 32768 fragments per group
8112 inodes pergroup
Superblockbackups stored on blocks:
32768, 98304, 163840, 229376, 294912,819200, 884736, 1605632
Writing inodetables: done
Creating journal(32768 blocks): done
Writingsuperblocks and filesystem accounting information: done
This filesystemwill be automatically checked every 30 mounts or
180 days,whichever comes first. Use tune2fs -c or-i to override.
建立一个mydata目录,而后进行挂载mount /dev/md0 mydata/,使用mount看是否挂载成功,使用 df –lh 查看建立的RAID的信息
[root@localhost~]# mount /dev/md0 mydata/
[root@localhost~]# mount
/dev/mapper/vg0-rooton / type ext4 (rw)
proc on /proctype proc (rw)
sysfs on /systype sysfs (rw)
devpts on/dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on/dev/shm type tmpfs (rw)
/dev/sda1 on/boot type ext4 (rw)
/dev/mapper/vg0-usron /usr type ext4 (rw)
/dev/mapper/vg0-varon /var type ext4 (rw)
none on/proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/md0 on/root/mydata type ext4 (rw)
[root@localhost~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-root 20G 287M 19G 2% /
tmpfs 935M 0 935M 0% /dev/shm
/dev/sda1 190M 33M 148M 18% /boot
/dev/mapper/vg0-usr 9.8G 1.9G 7.4G 21% /usr
/dev/mapper/vg0-var 20G 195M 19G 2% /var
/dev/md0 9.8G 23M 9.3G 1% /root/mydata
这就算建立成功了,若是要开机自动挂载,须要写入/etc/fstab中,要先使用
blkid /etc/md0查到UUID,进行编写,由于每次开机的设备名可能不一样
[root@localhost~]# blkid /dev/md0
/dev/md0:UUID="ec8d3b6c-4599-4176-88e0-372cfd5b01c5" TYPE="ext4"