05讲从RAID看垂直伸缩到水平伸缩的演化
1 | 大数据技术主要是要解决大规模数据的计算处理问题,但是我们要想对数据进行计算,首先要解决的其实是大规模数据的存储问题。 |
如果一个文件的大小超过了一张磁盘的大小,你该如何存储?
1 | 我的答案是,单机时代,主要的解决方案是RAID;分布式时代,主要解决方案是分布式文件系统。 |
其实不论是在单机时代还是分布式时代,大规模数据存储都需要解决几个核心问题,这些问题都是什么呢?总结一下,主要有以下三个方面。
1 | 1.数据存储容量的问题。既然大数据要解决的是数以PB计的数据计算问题,而一般的服务器磁盘容量通常1~2TB,那么如何存储这么大规模的数据呢? |
1 | 首先,我们先假设服务器有N块磁盘,RAID 0是数据在从内存缓冲区写入磁盘时,根据磁盘数量将数据分成N份,这些数据同时并发写入N块磁盘,使得数据整体写入速度是一块磁盘的N倍;读取的时候也一样,因此RAID 0具有极快的数据读写速度。但是RAID 0不做数据备份,N块磁盘中只要有一块损坏,数据完整性就被破坏,其他磁盘的数据也都无法使用了。 |
1 | RAID技术有硬件实现,比如专用的RAID卡或者主板直接支持;也可以通过软件实现,在操作系统层面将多块磁盘组成RAID,从逻辑上视作一个访问目录。RAID技术在传统关系数据库及文件系统中应用比较广泛,是改善计算机存储特性的重要手段。 |
1 | 我们对更强计算能力和更大规模数据存储的追求几乎是没有止境的,这似乎是源于人类的天性。神话里人类试图建立一座通天塔到神居住的地方,就是这种追求的体现。 |
垂直伸缩VS水平伸缩
1 | 在计算机发展的早期,我们获得更强大计算能力的手段主要依靠垂直伸缩。一方面拜摩尔定律所赐,每18个月计算机的处理能力提升一倍;另一方面由于不断研究新的计算机体系结构,小型机、中型机、大型机、超级计算机,不断刷新我们的认知。 |
思考题
1 | 传统机械磁盘进行数据连续写入的时候,比如磁盘以日志格式连续写入操作,其写入速度远远大于磁盘随机写入的速度,比如关系数据库连续更新若干条数据记录,你知道这是为什么吗? |

