这两天成功申请了博客专栏,为这个专栏的申请,凑了一篇简单梳理RAID算法,也说到之后再写些更多有关RAID的东西,至于专栏的第一篇文章正在整理当中。其实,关于RAID的文章挺多的,但大多是源码分析,对于RAID的空间布局基本都是一图带过。在刚接触RAID的时候,对其在理解上总觉得差点什么,也许是数学情怀作祟,想想要是这个空间布局能用数学公式抽象表示出来,像RAID算法一样,那就完美了?那么就开始,先来一张图片:
图1
图形基础分析
RIAD阵列空间分析主要以raid5为例,对于一个有冗余数据保护功能的阵列来说,数据分为原数据及校验数据如图1中raid5构成。而用户看到的可视阵列mddev设备容量仅为原数据总量,如图2示,假设阵列无最小容量限制,默认raid5配置,可知:mddev=28*chunk=28*512k=0xE0000=14M。
如图1,raid5表示为原数据加校验数据,如此为进一步探究raid5相关结构数量及映射关系,第j块chunk块所属x数据磁盘使用二维数组可以表示为d[x][j],同理校验块数据表示为pd[y][i]。若raid5数据块分布算法采用左非对称算法-LEFT_ASYMMETRIC&