Google GFS架构分析.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Google GFS 架构分析 Google File System(GFS)是 Google 早期研发的分布式文件系统,主要目标是高可用、可靠、性能和可扩展。GFS 对外提供文件创建、删除、打开、关闭、读、写、快照等接口。系统架构只有文件客户端、主服务器、存储服务器三个角色。主服务器是单点,存储文件信息、目录信息、文件服务器信息等元数据;存储服务器是集群,存储文件。 GFS 的高可用是通过“冗余+自动故障转移”的思路实现的,包括服务高可用、文件存储高可用。master 高可用是通过冗余了一台影子 master 实现的;chunk-server 高可用是通过冗余服务实现的;文件存储高可用是通过每一份文件存三份冗余文件实现的。 GFS 的高性能是通过多个 chunk-server 可以通过线性扩展提升处理能力和存储空间实现的。GFS 的潜在瓶颈是单点 master,因此需要架构优化,如提升 master 性能、减少与 master 交互。GFS 使用了很多经典的手段来保证系统可靠性,例如元数据的变更会先写日志、master 轮询探测 chunk-server 的存活性等。 GFS 架构的设计目标是高可用、可靠、性能和可扩展。GFS 的架构理念是简单的,但反映了非常复杂的架构理念。GFS 的高可用和高性能是通过冗余和自动故障转移实现的。GFS 的架构是分布式架构的经典案例,原因之一是接口简单,但反映的架构理念不简单。 GFS 的系统架构可以分为三个角色:文件客户端、主服务器、存储服务器。文件客户端提供对外接口;主服务器存储文件信息、目录信息、文件服务器信息等元数据;存储服务器是集群,存储文件。主服务器是单点,存储文件信息,能够避免分布式锁,可以拥有全局视野,能够统一调度与监控,系统整体复杂度降低很多。 GFS 的高可用是通过冗余和自动故障转移实现的。master 高可用是通过冗余了一台影子 master 实现的;chunk-server 高可用是通过冗余服务实现的;文件存储高可用是通过每一份文件存三份冗余文件实现的。GFS 的高性能是通过多个 chunk-server 可以通过线性扩展提升处理能力和存储空间实现的。 GFS 的架构优化思路是提升 master 性能、减少与 master 交互。例如,不存储文件数据,不让磁盘容量成为 master 瓶颈;元数据会存储在磁盘和内存里,不让磁盘 IO 成为 master 瓶颈;元数据大小内存完全能装得下,不让内存容量成为 master 瓶颈;所有数据流、数据缓存都不走 master,不让带宽成为 master 瓶颈;元数据可以缓存在客户端,每次从客户端本地缓存访问元数据,只有元数据不准确的时候,才会访问 master,不让 CPU 成为 master 瓶颈。 GFS 的架构优化思路还包括:文件块使用 64M,避免太多碎片降低性能;使用追加写,而不是随机写,提升性能;使用 TCP 长连接,提升性能。GFS 的架构是分布式架构的经典案例,原因之一是接口简单,但反映的架构理念不简单。
- 粉丝: 8507
- 资源: 19万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助