本文欢迎转载,转载请注明出处和作者。

如何对存储的数据进行保护

逻辑分区:

物理硬盘格式化与分区后可以直接给操作系统识别使用,可以将扩展分区进行逻辑分区,逻辑分区是连续的。

逻辑硬盘

为了对数据实时保护,磁盘提供冗余的性能,可以通过对多块磁盘进行RAID,将物理磁盘组织成逻辑磁盘。

对于操作系统层面,不会区分逻辑硬盘或物理硬盘,所有映射给操作系统识别的硬盘,通通认为是物理硬盘,格式化与分区后正常使用。

但是同样一个文件,由于逻辑盘的空间是由多个物理硬盘构成的,所以拆分后的块通过RAID计算后,会存放在不同的物理硬盘当中。

Raid

RAID0(条带化)

数据分别存储在多块硬盘中,硬盘容量按照N倍扩展。

不足之处是没有保护,单块硬盘故障将导致整份数据错误。

RAID1(镜像)

两块硬盘互为备份,数据在另外一块硬盘上建立副本。

好处在于对数据有保护,当一个硬盘故障,数据在另外一块硬盘有副本。

不足之处在于最大可用容量仅为最小的一块硬盘的容量。

RAID3(校验)

N-1块硬盘用于存储数据,1块硬盘用于存储奇偶校验数据。

当一块硬盘故障,可以通过其他n-2块硬盘+校验盘的数据,进行奇偶校验检测,还原出故障硬盘原来的数据。

缺点在于校验盘故障时,将无法继续实施数据保护。另外每次数据恢复都需要所有硬盘一起投入运算。

RAID5(分布式校验)

与RAID3主要区别是校验数据分散到每一块硬盘上。

利用率=(n-1)/n。

RAID10(先做镜再条带)

RAID0+1 不可以两边RAID0中各坏一块硬盘,但可以在单边同时坏掉单边的两块硬盘。

RAID01(先条带再镜像)


RAID0+1 不可以两边RAID0中各坏一块硬盘,但可以在单边同时坏掉单边的两块硬盘。

关于Raid3、5奇偶校验的原理

####异或运算:

1 XOR 1 或者0 XOR 0=0,0 XOR 1 或者1 XOR 0=1

(简单来说就是两个数字相同,就是假,即=0,;两个数字相异,就是真,即=1)

奇偶校验:

假设hd1~3三块硬盘存储数据,而hd4是校验盘;
如右图,第一行中,hd1~hd3得出的检验码结果为0,所以将hd4第一行写成0。当hd3磁盘故障,不知道hd3的数据到底是0还是1了。此时,hd1=0,hd2=0,hd4=0,可以通过对hd1 XOR hd2 = 0,将结果XOR hd4=0,所以hd3=0。通过异或运算,在一块硬盘故障的情况下,可以通过剩余硬盘上面的数据,倒推出故障硬盘的数据。

LVM(逻辑卷)

RAID可以提供磁盘的冗余以及数据的保护,但是RAID操作后形成RAID Group(Raid组或RG)的大小是固定的,无法动态的扩展或者缩小。逻辑盘只能从一个RG中划分,不能跨RG。如果RG容量不够用了,扩展RG后需要格式化所有数据,加入新硬盘,才能形成新的RG。所以RG扩展性差。

为解决此问题,推出了LVM(逻辑卷)的技术。逻辑卷可以跨不同RaidGroup划分,可以从不同RaidGroup抽取存储空间来扩展。所以如果LV(Logic Volume,逻辑卷)空间不够了,只需要增加磁盘,磁盘建立新的RaidGroup,然后加入到VG(VolumeGroup,卷组),就可以扩容卷组里面的逻辑卷LV了。

综上,一般磁盘阵列,例如1台低端的配置了24块硬盘的磁盘阵列,会预留1块做热备盘(等待有磁盘故障的时候再加入使用),其余的23块会做Raid6或者Raid5(Raid6支持同时两块磁盘故障,Raid5只支持1块)。然后,会对Raid后的Raid Group上面划分逻辑卷。
更多精彩内容,可以关注我的微信公众号Waiting的运维日常