一、大数据存储面临3个难题

  1. 数据存储容量问题:一个文件(一组数据)可能超过一个磁盘的容量。

  2. 数据读写速度问题:几十PB数据从磁盘读写可能要天荒地老。

  3. 数据可靠性问题:频繁读写易造成磁盘损坏,怎么保证数据可靠。

二、RAID独立磁盘冗余阵列技术

单机时代解决方案是RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)技术。将多块普通磁盘组成一个阵列,在多块磁盘上实现并发读写和数据备份。共同对外提供服务,改善磁盘的存储容量、读写速度,增强可用性和容错能力。

RAID类型

访问速度

数据可靠性

磁盘利用率

RAID 0

很快

很低

100%

RAID 1

很慢

很高

50%

RAID 10

中等

很高

50%

RAID 5

较快

较高

(N-1)/N

RAID 6

较快

较(RAID 5)高

(N-2)/N

表1 各种类型的RAID技术性能比较

RAID 0原理:

根据磁盘数量(N)将数据分成N份,并行写入磁盘。读写速度快,但无校验、无备份,数据可靠性很差。

RAID 1原理:

不切分数据,在写入一个磁盘的同时,同时写入另一个磁盘做备份。读写速度快,数据可靠性高。

RAID 10原理:

对RAID 0和RAID 1进行技术融合。根据磁盘数量分成两半,每份有N/2个,写入数据时切分成N/2份并行写入其中一半,同时并行写入另外一半做备份。

RAID 3原理:

根据磁盘数量(N)将数据分成N-1份,并行写入1~N-1号磁盘中,再N号磁盘记录此文件的校验数据,用来在磁盘失效时恢复数据。但是此方案N号磁盘读写最频繁,最容易损坏。

RAID 5原理:

类似RAID 3的数据校验方式,但RAID 5不是单一的一块磁盘存储校验数据,而是所有螺旋地轮换存储校验数据。

RAID 6原理:

类似RAID 3和RAID 5,但是RAID 6用两块特定的磁盘螺旋地写入校验数据(使用不同算法生成),数据只并行地存入N-2块磁盘。数据可靠性较RAID 5更高。

RAID技术解决了单机上较大规模数据存储面临的难题。需要注意的是,传统机械硬盘的访问延迟主要来自于寻址时间,真正的读写时间可能只占一小部分,所以数据分片并行读写并不能成倍提高读写速度。

三、垂直伸缩和水平伸缩

RAID技术这种在单机上增加数据容量的方法叫“垂直伸缩”(Scaling Up),但是单机始终有穷尽。将RAID思想应用到服务器集群上,通过增加服务器数量的方式增加数据存储容量的方法叫“水平伸缩”(Scaling Out),Hadoop的分布式文件系统HDFS就是这样来存储更大规模的数据。

(整理自《大数据技术架构:核心原理与技术实践》)