文档章节

Google文件系统(转自维基百科)

xionghuiCoder
 xionghuiCoder
发布于 2016/03/29 17:26
字数 1389
阅读 94
收藏 0

Google文件系统(英语:Google File System,缩写为GFS或GoogleFS),一种专有分布式文件系统,由Google公司开发,运行于Linux平台上[1]。尽管Google在2003年公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。[2]

2013年,Google公布了Colossus项目,作为下一代的Google文件系统[3]

历史

设计

GFS专门为Google的核心数据即页面搜索的存储进行了优化。数据使用大到若干G字节的大文件持续存储,而这些文件极少被删除、覆盖或者减小;通常只是进行添加或读取操作。它也是针对Google的计算机集群进行的设计和优化,这些节点是由廉价的“常用”计算机组成,这就意味着必须防止单个节点的高损害率和随之带来的数据丢失。其它设计理念包括高数据吞吐率,甚至这带来了访问反应期变差。

节点分为两类:节点和Chunkservers。Chunkservers存储数据文件,这些单个的文件象常见的文件系统中的簇或者扇区那样被分成固定大小的数据块(这也是名字的由来)。每个数据块有一个唯一的64位标签,维护从文件到组成的数据块的逻辑映射。每个数据块在网络上复制一个固定数量的次数,缺省次数是3次,对于常用文件如可执行文件的次数要更多。

主服务器通常并不存储实际的大块数据,而是存储与大块数据相关的元数据,这样的数据如映射表格将64位标签映射到大块数据位置及其组成的文件、大块数据副本位置、哪个进程正在读写特定的大数据块或者追踪复制大块数据的“快照”(通常在主服务器的激发下,当由于节点失败的时候,一个大数据块的副本数目降到了设定的数目下)。所有这些元数据通过主服务器周期性地接收从每个数据块服务器来的更新(“心跳消息”)保持最新状态。

操作的允许授权是通过限时的、倒计时“租期”系统来处理的,主服务器授权一个进程在有限的时间段内访问数据块,在这段时间内主服务器不会授权其它任何进程访问数据块。被更改的chunkserver——总是主要的数据块存储器,然后将更改复制到其它的chunkserver上。这些变化直到所有的chunkserver确认才存储起来,这样就保证了操作的完整性和原子性

访问大数据块的程序首先查询主服务器得到所要数据块的位置,如果大数据块没有进行操作(没有重要的租约),主服务器回答大数据块的位置,然后程序就可以直接与chunkserver进行联系接收数据(类似于Kazaa和它的超级节点)。

批评意见

只能有一个主服务器——代码不允许存在多个主服务器。这看起来是限制系统可扩展性和可靠性的一个缺陷,因为系统的最大存储容量和正常工作时间受制于主服务器的容量和正常工作时间,也因为它要将所有的元数据进行编制,并且因为几乎所有的动作和请求都经过它;但是Google的工程师们辩解说事实并不是这样。元数据是非常紧凑的,仅仅只有数K到数M的大小,并且主服务器通常是网络上性能最好的节点之一;至于可靠性,通常有一个“影子”主服务器制作主服务器的镜像,一旦主服务器失败它将接替工作。另外,主服务器极少成为瓶颈,因为客户端仅仅获取元数据然后将它们缓存起来;随后的交互工作是直接与chunkservers进行。同样,使用单个的主服务器可以大幅度地降低软件的复杂性,如果有多个的主服务器,软件将变得复杂以能够保证数据完整性、自动操作、负载均衡和安全性。

参考文献

  1. ^ Google提供的论文The Google File System中,多处提到

  2. ^ "Despite having published details on technologies like the Google File System, Google has not released the software as open source and shows little interest in selling it. The only way it is available to another enterprise is in embedded form--if you buy a high-end version of the Google Search Appliance, one that is delivered as a rack of servers, you get Google's technology for managing that cluster as part of the package." "How Google Works"

  3. ^ Google's Colossus Makes Search Real-Time by Dumping MapReduce, High Scalability (World Wide Web log), 2010-09-11.

外部链接

参见

本文转载自:https://zh.wikipedia.org/wiki/Google%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1

共有 人打赏支持
xionghuiCoder
粉丝 81
博文 34
码字总数 31340
作品 4
海淀
程序员
2015 Google hosts 持续更新【更新于:2015-09-22】

本页面长期更新Google、谷歌学术、维基百科、ccFox.info、ProjectH、3DM、Battle.NET 、WordPress、MicrosoftLive、GitHub、Box.com、SoundCloud、inoreader、Feedly、FlipBoard、Twitter、F...

天天顺利
2015/09/23
0
1
维基百科停摆原因:光纤故障服务中断

维基百科本月6日位于佛州的数据中心发生光纤断线的技术性意外,致使数百万使用者无法访问。维基百科昨日在太平洋时间早上6:30左右出现无法存取或严重延迟的情形,当时网站通过Twitter公告,网...

oschina
2012/08/08
1K
3
Android 十大优秀应用软件

Android市场上有将近九万种应用软件,我们且举其中十个值得一看的。 Google Android操作系统受欢迎度骤增,其应用软件市场迅速成长。目前市场上已经有大概九万种应用,虽然不及iPhone三十万之...

xyxzfj
2010/10/31
2.2K
0
common-tools(1)之中文相关工具类使用(ZhUtil)

发了个自己写的工具包,发现可能是样例代码太少了,导致反响不够强烈啊。那么从现在开始就以博文的形式介绍下我的这个工具包有哪些功能。 工具包我发布到github上了,开源中国的地址是:htt...

路小磊
2013/02/24
0
2
Google 屏蔽自定义网站的功能也下课了

噩耗一个接着一个,Google搜索曾经有一个很强大的功能就是让你自定义屏蔽某些特定网站域名不出现在搜索结果里(当然你必须登录自己的帐号), 比如你讨厌百毒百科,就屏蔽baike.baidu.com这个...

oschina
2013/03/25
1K
18

没有更多内容

加载失败,请刷新页面

加载更多

xilinx资源

本系列教学视频由赛灵思高级战略应用工程师带领你:从零开始,一步步深入 掌握 HLS 以及 UltraFAST 设计方法,帮助您成为系统设计和算法加速的大拿! http://www.eetrend.com/topics/2018-0...

whoisliang
5分钟前
0
0
=====BJmeter性能测试小接=====

一、性能测试分类 1、负载测试: 通过逐步加压的方法,达到既定的性能阈值的目标,阈值的设定应是小于某个值,如cpu使用率小于等于80% 2、压力测试: 通过逐步加压的方法,使得系统的某些资源...

覃光林
8分钟前
0
0
企业级开源四层负载均衡解决方案--LVS

网盘链接 企业级开源四层负载均衡解决方案--LVS 本课程将在Linux环境下,学习配置使用LVS,对Web集群和MySQL集群进行负载均衡,并结合利用Keepalived实现负载均衡器的高可用,实现对后端Rea...

qq__2304636824
14分钟前
0
0
Windows上安装Spacemacs

emacs安装 下载地址emacs 安装比较简单,解压后执行\bin\addpm.exe即可 emacs配置 emacs的默认配置文件路径和.emacs.d文件夹都是在Windows主目录下的 C:\Users\Administrator\AppData\Roami...

yxmsw2007
30分钟前
0
0
OSChina 周一乱弹 —— 鱼生不值得

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念:分享新裤子的单曲《没有理想的人不伤心 (Remix版)》: 《没有理想的人不伤心 (Remix版)》- 新裤子 手机党少年们想听歌,请使劲儿戳...

小小编辑
今天
171
9

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部