技术原理:将要存储的文件分割成 k k k 个数据单元,对其进行编码生成 m m m 个校验单元。并将这 n ( n = k + m ) n(n=k+m) n(n=k+m) 个文件碎片分布到不同的节点中。只要获得其中的 k ′ ( k ′ > = k ) k'(k'>=k) k′(k′>=k) 个文件碎片就可以重构原始的存储文件。
RS 是 MDS 码中唯一一个能够任意确定 k k k 个数据单元和 m m m 个校验单元的编码方法。但 EVENODD, WEAVER, RDP 等阵列码的编码过程和解码过程仅使用 XOR 运算。实现相对简单并且计算能力较高。只不过容错性能十分有限。
LRC 又将校验块分为全局校验块和局部校验块。比如 LRC(12,2,2)
就是 12 个分块,之后每 6 个进行一次局部校验。最终在为这 12 个做一个整体校验。这样一来,恢复代价会从原来的 12 降低到 6, 网络 I/O 开销减半。
可靠度,可维护度,可用度 和 可执行度 以及 MTTF,平均修复时间(MTTR)和平均故障时间(MTBF)。
可靠度是指在某一时刻正常工作的情况下,在某一时间区间内正常工作的概率。
R ( t ) = P { x > t } R(t)=P\{x>t\} R(t)=P{x>t}
系统在失效后在时间间隔 t t t 内被修复的概率。
M ( t ) = P { X < = t } M(t)=P\{X<=t\} M(t)=P{X<=t}
在任意时刻 t t t 系统正常工作的概率。
( A ( t 1 , t 2 ) ‾ = 1 t 2 − t 1 ∫ t 1 t 2 2 A ( t ) d t \overline {(A({t_1},{t_2})} = \frac{1}{{{t_2} - {t_1}}}\int_{{t_1}}^{{t_2}} {2A(t)dt} (A(t1,t2)=t2−t11∫t1t22A(t)dt
A s s = lim t → ∞ A ( t ) Ass = \mathop {\lim }\limits_{t \to \infty } A(t) Ass=t→∞limA(t)
可执行度 P ( L , t ) P(L, t) P(L,t) 的定义是:系统在时刻 t t t 其性能保持在 L 级或 L 级以上水平的概率。
MTTF 是指系统发生故障前正常运行的平均时间,MTTR 指用于修复系统和在修复后将它恢复到正常工作状态所用的平均时间,MTBF 指两次故障之间间隔的平均时间。
对于存储系统而言,可靠性的度量标准有两个:
可靠度是指产品在规定的时间和条件内正常工作的概率,因此
R ( t ) = P ( T > t ) R(t)=P(T>t) R(t)=P(T>t)
不可靠度为
F ( t ) = 1 − R ( t ) = P ( T ≤ t ) = ∫ 0 t f ( u ) d u F(t) = 1 - R(t) = P(T \le t) = \int_0^t {f(u)du} F(t)=1−R(t)=P(T≤t)=∫0tf(u)du
其中 f ( u ) f(u) f(u) 是故障概率密度函数
MTBF=MTTF+MTTR
,而又因为 MTTR 通常远小于 MTTF,所以 MTBF 近似等于 MTTF,通常由 MTTF 替代。