RAID介绍,以及linux中软RAID的实现

  

RAID: redundant arrays of independent disks

       提高I/O能力

       提供耐用性

RAID实现方式

       外接式RAID:通过额外adapter

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

       Software RAID:软RAID,学习使用

RAID级别:

  标准RAID:

       RAID 0:条带卷 stripping,最少两块盘,无冗余,读写速度接近单块磁盘n倍(视RAID卡而定),故障率为单块盘的N倍,容量为N*min(disk0,disk1……diskN),适用安全性不高情况.

 

 

       RAID 1:镜像卷 mirroring,最少两块盘,写入时数据需chunk后复制N份到每个磁盘,因此写入速度和单个磁盘差不多,读取时可同时从每个磁盘读取数据的不同chunk,故速度和RAID 0接近,但是也存在只读取单磁盘的情况,依RAID卡而定.容量为1*min(disk0,disk1……diskN),可同时损坏N-1快盘.

 

 

       RAID 5:至少三块盘,每个磁盘轮流做校验盘,需额外计算,数据按位对齐,进行异或计算,一般为left symmetric的对齐方式,读取速率为N-1快盘的速度,写入速率比较复杂,跟RAID卡关系很大,牵扯到RAID卡芯片的数据计算性能,,RAID卡是否开启cache等.磁盘有损坏时会degrade降级,只能坏一块盘.容量为(N-1)*min(disk0,disk1……diskN).

 

 

       RAID 6:至少四块盘,两块校验盘,故最多坏两块盘,写入时计算量更大,容量为(N-2)*min(disk0,disk1……disnN).

  混合RAID:

       JBOD:just a bunch of disks.简单讲多块盘串联组成大硬盘,可以空间为sum(disk0,disk1,……diskN)

 

 

       RAID 10:至少四块盘,每组镜像中最多只能坏一块,容量为N*min(disk0,disk1……diskN)/2,读写性能均提升

 

 

       RAID 01:数据需两次chunk,增加计算量,底层的RAID0坏一块盘则此RAID0整体数据报废,如果另一个RAID0再坏一块盘,则数据将永久损坏,安全系数较RAID10低,而且替换硬盘后,整体的数据recovery量会非常大,此过程中硬盘I/O压力非常大,极易会再次损坏.

 

RAID 4 5 6的数据都需要按位对齐,需要计算过程

 

Linux中有内核模块支持模拟软RAID,对于的接口工具为mdadm,/proc/mdstat中可查看软RAID信息.

 

 

 

 

 

 

 

使用mdadm --create子命令创建软RAID

 

 

 

 

mdadm --detail /dev/md0查看具体信息

 

 

mdadm --manage子命令用于管理

 

 

下面把RAID6中一块盘设为故障

 

 

再次查看RAID6状态

 

 

 可以看到已经是degraded降级状态,但整个RAID仍未clean状态

再次设置一块盘为故障状态

 

 再来查看

 

 仍能读取其中内容(已将其挂载至/mnt)

 

 

再将/dev/sdb1加到/dev/md0中

 

 查看状态

 

 可以看到是rebuilding,recovering状态,但RAID6仍处于degraded状态

当RAID6坏三块盘时的状态为failed

 

 但是文件为什么仍能正常读取呢?

 

 留给大家思考

posted @ 2020-05-31 16:20  ascertain  阅读(430)  评论(0编辑  收藏  举报