对存在中心节点的分布式文件系统的总结与思考
0. 前言
本文是在学习GFS(The Google File System,谷歌文件系统)后对存在中心节点的分布式文件系统的一些宏观的总结与思考。本文并没有太多关注GFS的细节实现,而是侧重在GFS的基础上进行归纳和进一步探究。
1. 为什么需要分布式文件系统?
关于这个问题,百度百科是这么说的
计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题…
更深层次而言,纵观人类软件系统的发展史,业务的爆炸不断驱动着技术飞速发展。随着接入网络的人数越来越多,软件系统也需要不断升级以能够满足海量用户的并发请求。**而软件系统的升级过程,就是不断挑战性能瓶颈的过程。**从这个角度出发,用户的增多必然会导致单机无法容纳需要持久化的数据,即使采用增加硬盘个数的方式将单机不断扩大,在达到一定规模后,查找有关数据的操作会变得非常缓慢,掣肘整体软件性能的提升。为了解决这些问题,分布式文件系统几乎是必经之路,也是唯一选择。
2. 分布式文件系统理想的实现效果?
最终目标只有一句话:用户使用分布式文件系统,感觉就像在使用单机文件系统一样。
而限制这一最终目标达成的最主要因素,就在于网络和机器都不是百分百的可靠。系统运行期间网络的一点点波动、时延,或者机器的一点点故障,都有可能造成用户无法看到或看到不符合预期的结果。
3. 分布式文件系统的要求?
- 大容量。这点是分布式文件系统的基础要求,也是固有属性。如果大容量都无法满足,那还不如单机的文件系统。
- 支持并发访问。支持的并发数量是衡量分布式文件系统性能的重要指标之一。
- 持久化。这也是基础要求,数据不能持久化的分布式文件系统是没有太大意义的。
- 高可用。分布式文件系统会存在很多服务器,难免会出现某个服务器宕机的情况,这种情况下仍需要保证文件系统的正常运转。
- 一致性。衔接上一条高可用,冗余备份是实现高可用最常见的方式,而一致性是冗余备份无论如何也绕不开的关键问题。
- 低时延。没有用户愿意在发出一个请求后经历漫长的等待,时延也是衡量分布式文件系统性能的重要指标之一。不过关于这一点,不同的分布式文件系统有不同的要求,比如GFS就没有过于追求某一次操作的低时延