为何RAID 01阵列在每组条带各出现一次磁盘故障时就会失效?
为何RAID 01阵列在每组条带各出现一次磁盘故障时就会失效?
咱们先把RAID 10和RAID 01的底层结构掰扯明白,你就能瞬间get到问题的核心了:
- RAID 10是先做镜像,再做条带:简单说就是先把磁盘两两配对做成镜像组,再把这些镜像组当成独立的“虚拟盘”来做条带化。比如4盘RAID10,就是(盘1+盘2做镜像)、(盘3+盘4做镜像),然后把这两个镜像组组合成条带阵列。
- RAID 01是先做条带,再做镜像:先把磁盘两两做成条带组,再把这些条带组整个做镜像备份。比如4盘RAID01,就是(盘1+盘2做条带)、(盘3+盘4做条带),然后让这两个条带组互为镜像。
拿4盘的场景举个具体的例子:
假设RAID01里的两个条带组分别是条带A(盘1+盘2)和条带B(盘3+盘4),二者互为镜像。
如果条带A里的盘1坏了,那整个条带A直接就废了——毕竟RAID0的特性就是只要有一块盘故障,整个条带就彻底失效。这时候阵列还能靠条带B正常运行,因为它是条带A的完整镜像。
但如果这时候条带B里的盘3也坏了,条带B也跟着废了。现在两个条带组都挂了,整个RAID01阵列就没有任何可用的数据副本了,自然就彻底失效了。
而换成RAID10的情况就不一样:两个镜像组(盘1+盘2、盘3+盘4)做条带化。哪怕盘1和盘3分别故障,各自的镜像组里还有盘2和盘4顶着,阵列依然能正常工作——只有当某个镜像组里的两块盘都故障(比如盘1和盘2全挂),整个阵列才会失效。
所以你质疑的那个说法本质是:RAID01的每个条带组本身是RAID0,单盘故障就会废掉一个条带组;而两个条带组又是镜像关系,当两个条带组都因为单盘故障报废时,阵列就没救了。
备注:内容来源于stack exchange,提问作者Christopher Miller
相关产品推荐
相关产品推荐

