在磁盘阵列性能的两个要素(磁盘空间和IOPS)都有很大影响的是磁盘阵列的组建类型(即RAID类型)。而在我们的日常工作中,常用的RAID类型为:RAID0 (没有奇偶检验的条带卷)、RAID1(镜像卷)、RAID5(带有奇偶检验的条带卷)、RAID10 (镜像的条带卷)。同时简单介绍最新还有一种RAID类型是RAID6.
1常见RAID类型的比较
常见RAID类型的比较 |
类型 |
原理 |
容错性 |
备份冗余 |
可用容量 |
I/O性能 |
数据重构 |
数据安全 |
RAID0 |
将数据分成一定大小顺序写到阵列的磁盘里 |
无 |
无 |
N倍 |
读写高 |
不能 |
无 |
RAID1 |
将数据完全一致的分别写到工作磁盘和镜像磁盘上 |
有 |
有 |
n/2倍 |
读高写一般 |
1块磁盘 |
低 |
RAID5 |
将数据校验的信息均匀的分散到阵列的各个磁盘上。这样就不存在并发写操作时的校验磁盘性能瓶颈 |
有 |
有 |
(n-1)/n倍 |
读高写低 |
n-1块磁盘 |
低 |
RAID10 |
RAID1和RAID0的结合 |
有 |
有 |
n/2倍 |
读写高 |
1块磁盘 |
高 |
1.1 IO性能
读性能
RAID0 是N块磁盘的读速率,RAID5是(n-1)块磁盘读速率。
因为在RAID1中寻道一般能跨越组内所有磁盘进行。这意味着RAID1可获得两倍于单一磁盘的读取速度。同理得RAID10是N块磁盘的读速率。
写性能
对于写操作,RAID 10和RAID1类型都会产生一个额外的读操作。
对于写操作,RAID5需要执行两个读,两个写和两个XOR(异或检验)操作。另外对于单个用户的写操作,在新数据应用之前必须将老的数据从校验盘中移除,整个的执行过程是如下:读出旧数据,旧数据与新数据做XOR,并创建一个即时的值,读出旧数据的校验信息,将即时值与检验数据进行XOR,最后写下新的校验信息。为了减少对系统的影响,大多数的RAID5都读出并对整个条带(包括校验条带)写入缓存,执行两个XOR操作,然后发出并行写操作(通常对整个条带)。小数据量写操作的巨大使得RAID5技术很应用于密集写操作的场合,如重做日志文件和日志文件。
每块磁盘I/O计算如下:(n为磁盘个数)
RAID0 (r+w)/n
RAID1 (r+2w)/2
RAID5 (r+4w)/n
RAID10 (r+2w)/n
1.2数据重构
对于RAID10和RAID1,当一块硬盘失效时,进行数据重构的操作是复制一个新磁盘。
对于RAID5,需要从每块磁盘中读取数据,经过重新计算得到一块硬盘的数据量。因此RAID5在数据重构上的工作负荷和花费的时间远大于RAID10和RAID1.
1.3数据安全保护
RAID10(先做RAID1,再做RAID0)只要不出现成对磁盘损坏的情况,整个系统不会出现数据丢失。
RAID5不能出现两块损坏的磁盘,但由于数据重构时间和开销比RAID10高,在数据重构期间RAID5的可靠性比RAID10低。所以RAID5出现数据的丢失的可能性要比RAID10高,
2 RAID6
RAID 6的全称是独立的数据库硬盘与两个独立分布检验方案。实现这个思想的方法之一是用两个校验磁盘支持数据磁盘,第一个校验支持一种校验算法,而第二个磁盘支持另一种校验算法,第二算法也称为P+Q检验。
3 RAID 10与RAID01的分别
对于RAID01,当一个磁盘损坏等同于整个镜像条带的丢失,所以一旦镜像磁盘失效,RAID01系统就为了RAID0系统,增加了潜在的风险。另外RAID01数据是按整个条带进行重构,存在与RAID5数据重构一样的风险。因此强烈要求不架设RAID01的镜像的条带卷。 |