实际生产中,对于数据读写的性能以及数据的可用性要求都比较高。当服务器数量到达一定数量时,磁盘故障基本上是每天都会发生的事情,为了在磁盘故障的情况下仍然不丢失数据,通常会对磁盘对做阵列划分,常用的磁盘阵列是RAID(Redundant Arrays of Independent Disks)。
RAID提高数据读写性能的主要原理是通过将数据分块存储,将数据的读写压力分摊到各个磁盘上来提高性能,多个廉价的普通磁盘可以组成一个大的高性能磁盘。提高数据可用性的原理则是通过数据冗余来提高数据可用性,当磁盘故障时,由于数据有副本或者校验位,所以可以将数据重建回来。
常用RAID的优缺点:
1.RAID0
RAID0代表了磁盘中的最高存储性能,RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
用途:用在swap的场景较多
优点:性能高
缺点:任何一块盘发生故障,则所有数据损坏
2.RAID1
RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
用途:用于数据备份的较多
优点:数据有冗余,数据可用性高
缺点:只能使用容量的1/2,成本偏高
3.RAID5
RAID5是RAID0和RAID1的折中,RAID5最少需要3块磁盘,将数据分散存储在各个磁盘上,同时添加一个校验位,如果某一块磁盘出现故障,可以通过校验位和现存数据计算出丢失的数据位,从而达到重建的目的。校验位的计算方式:
P=D1 xor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
假如数据D1丢失,则用P代替D1,进行计算:
D1=Pxor D2 xor D3 … xor Dn (D1,D2,D3 … Dn为数据块,P为校验,xor为异或运算)
从而恢复出D1的数据
用途:一般作为RAID10的备选方案,如没有足够机器做RAID10情况下又要兼顾性能和可用性时,可以考虑RAID5,业务类型为顺序写时比较友好
优点:性能和安全性兼顾
缺点:校验位会浪费一部分空间;另外会有写惩罚问题,当随机写,坏磁盘的时候尤为严重,性能下降比较明显,因此也限制了RAID5的使用范围。
4.RAID01
RAID01是先将磁盘分成2组,先分别做RAID0,再将2个RAID0组做RAID1
用途:用的很少,被RAID10替代。当存在一块坏盘的情况下,RAID10整个阵列不可用的概率低于RAID01。若4块磁盘分别为(D1,D2)(D3,D4),12一组,34一组。当做RAID01时,在D1已坏的情况下,整个阵列不可用的概率是2/3,而RAID10的概率为1/3
优点:性能高,数据可用性高
缺点:只能使用容量的1/2,成本偏高
5.RAID10
RAID10是对2组RAID1再做RAID0,即将2组RAID1看做2块独立的磁盘,然后再RAID0。
用途:用途最广,主流的RAID方案
优点:性能高,数据可用性高
缺点:只能使用容量的1/2,成本偏高
————————————————
版权声明:本文为CSDN博主「apt-get-install」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nigh51/article/details/105477657