1. RAID

RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本原理是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。

RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。

  在 Linux下通过自带的软件就能实现RAID功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁盘的 IO 性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。   基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多 位错误的能力、错误磁盘自动检测和阵列重建等方面。

1.1. RAID级别对比

RAID级别 优缺点
RAID 0 存取速度最快 没有容错
RAID 1 完全容错 成本高
RAID 2 带海明码校验,数据冗余多,速度慢
RAID 3 写入性能最好 没有多任务功能
RAID 4 具备多任务及容错功能 Parity 磁盘驱动器造成性能瓶颈
RAID 5 具备多任务及容错功能 写入时有overhead
RAID 0+1/RAID 10 速度快、完全容错 成本高

其他还有RAID 6、7、5E、5EE、DP、ADG之类的就不一一介绍了。每种RAID的详细介绍网上一搜一堆,之一

1.2. RAID 5 和 RAID 10 对比

RAID 0、10、5、ADG对比表格:

raid

上表在可用磁盘空间计算,假设以下条件成立:

  • 1)阵列中所有的物理磁盘容量一致;
  • 2)没有使用热备硬盘;
  • 3)RAID 5中不超过14块硬盘;
  • 4)RADI ADG中不超过56块硬盘。

一般raid5会多配一块热备盘,因为raid5本身只允许有1块磁盘损坏,而raid10,每组允许损坏1块,2组就是各1块,4组就是各4块,但是同组内不允许有2块损坏。

读方面:磁盘阵列读操作的关键更多的体现在cache的命中率上。所以,RAID5和RAID10在读数据上面,他们基本是没有差别的。

连续写:在连续写操作过程,如果有写cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,差别不大,因为这个时候的RAID校验是在cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,同时写入3个数据+1个校验。而RAID10只能同时写入2个数据+2个镜相。如果没有写缓存存在,RAID5写性能不如10。

随机写:假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次io:

先读出2与校验6,可能发生读命中 然后在cache中计算新的校验 写入新的数字4与新的校验8

对于RAID10,同样的单个操作,最终RAID10只需要2个io,而RAID5需要4个io。这里考虑的是没有缓存的情况。

总结:小io的数据库类型操作,建议采用RAID10,而大型文件存储,数据仓库,则从空间利用的角度,可以采用RAID5。

results matching ""

    No results matching ""