首页 > 代码库 > RAID

RAID

     独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

     磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。

RAID0:把数据条带化后,分别同时写入不同的磁盘当中,每个磁盘的数据内容不一样,但是容量一致,读写都有提升,出现故障,无法进行任何补救,


RAID1:把数据做成备份,所有的盘里都是一样的数据内容,浪费,写的性能下降,读有提升,

RAID4:带有校验码的磁盘阵列,一个盘存校验码,但是由于使用磁盘频繁,导致它会容易损坏,

RAID5:带有校验码,所有盘轮回存校验码,使用几率和磁盘损坏几率都公平,

RAID6:两个校验盘

RAID10:先1后0,公司大部分使用这种方式

下面就用软件模拟的方式做一个RAID5

环境:在centos7、sdb磁盘上进行

创建4个磁盘分区

#fdisk    /dev/sdb

         n

       +10G

  ....

#partx   -a   /dev/sdb  (内核重读设备文件)

#mdadm  -C  /dev/md5  -a yes  -l  5  -n  3   -x  1 /dev/sdb{5,6,7,8}    (创建raid5)

#mke2fs -j   /dev/md5   (格式化文件系统)

#mount /dev/md5 /mnt   (挂载)

#cp -r /etc  /mnt

#mdadm  -D  /dev/md5  (查看raid信息)

[root@localhost ~]# mdadm /dev/md5 -f /dev/sdb5
mdadm: set /dev/sdb5 faulty in /dev/md5(模拟损坏)

空闲盘会自动顶上替。

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

[root@localhost ~]# mdadm /dev/md5  -r /dev/sdb5
mdadm: hot removed /dev/sdb5 from /dev/md5(把磁盘5移除)
#mdadm /dev/md5 -f /dev/sdb6 (把6模拟损坏)

[root@localhost ~]# cat /mnt/etc/is
iscsi/     issue      issue.net 
[root@localhost ~]# cat /mnt/etc/issue
\S
Kernel \r on an \m

(还能正常访问)

在有坏的就不能访问了,能访问也是缓存里面的,机器重启后,无法访问:

生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服务:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
强制启动:mdadm –R /dev/md0
删除raid信息:mdadm –zero-superblock /dev/sdb1


RAID