本文欢迎转载,转载请注明出处和作者。
如何对存储的数据进行保护
逻辑分区:
物理硬盘格式化与分区后可以直接给操作系统识别使用,可以将扩展分区进行逻辑分区,逻辑分区是连续的。
逻辑硬盘
为了对数据实时保护,磁盘提供冗余的性能,可以通过对多块磁盘进行RAID,将物理磁盘组织成逻辑磁盘。
对于操作系统层面,不会区分逻辑硬盘或物理硬盘,所有映射给操作系统识别的硬盘,通通认为是物理硬盘,格式化与分区后正常使用。
但是同样一个文件,由于逻辑盘的空间是由多个物理硬盘构成的,所以拆分后的块通过RAID计算后,会存放在不同的物理硬盘当中。
Raid
RAID0(条带化)
数据分别存储在多块硬盘中,硬盘容量按照N倍扩展。
不足之处是没有保护,单块硬盘故障将导致整份数据错误。
RAID1(镜像)
两块硬盘互为备份,数据在另外一块硬盘上建立副本。
好处在于对数据有保护,当一个硬盘故障,数据在另外一块硬盘有副本。
不足之处在于最大可用容量仅为最小的一块硬盘的容量。
RAID3(校验)
N-1块硬盘用于存储数据,1块硬盘用于存储奇偶校验数据。
当一块硬盘故障,可以通过其他n-2块硬盘+校验盘的数据,进行奇偶校验检测,还原出故障硬盘原来的数据。
缺点在于校验盘故障时,将无法继续实施数据保护。另外每次数据恢复都需要所有硬盘一起投入运算。
RAID5(分布式校验)
与RAID3主要区别是校验数据分散到每一块硬盘上。
利用率=(n-1)/n。
RAID10(先做镜再条带)
假设DISK1故障,剩下3块DISK正常工作,整体不受影响。剩余的3块磁盘中,仅有DISK2故障,才会导致整个RAID组不可用,而如果是DISK3或DISK4之中任意一块故障,整个RAID组依然可用。
RAID01(先条带再镜像)
假设同样是DISK1故障,由于DISK1与DISK2做的RAID0,所以左边的RAID0组已经整个无法读写,剩余DISK3、4工作。(这里就已经比RAID10表现差了)
此外,剩余的DISK3、DISK4,任意一块故障,都会导致整个RAID组故障,因此风险率大大高于DISK10。
结论是RAID10完胜RAID01,生产基本上看不到有人用RAID01的。
关于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的运维日常
本篇文章由一文多发平台ArtiPub自动发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。