
/ enpproperty->
GFS是可扩展的分布式文件系统,用于访问大量数据的分布式应用程序. 它在廉价的通用硬件上运行,并提供容错能力. 它可以为大量用户提供更高的整体性能服务.
GFS也称为google文件系统,这是由Google设计的用于存储大量搜索数据的特殊文件系统.
GFS的工作原理
GFS文件系统实际上是网络日志文件系统,通常用作多台计算机共享的存储设备,并且GDS文件系统本身的相关信息可以存储在服务器或存储区域网络中

图19.3是GFS文件系统的展开图.

此图是通过SAN网络的GFS和GNBD的框架. 它总共分为四个组件,从下到上分别是共享数据存储层gfs文件系统特点,GNBD服务器,GFS文件系统和应用程序层.
共享数据存储层
共享数据存储区域通常由的磁盘阵列设备组成,然后通过SAN网络连接到每个GNBD服务器.
GNBD是Global Netword Block Device的缩写. 它将存储的数据块导出到以太网,并提供了一种通过TCP / IP协议访问Red Hat GFS的方法. GNBD由两个主要部分组成: GNBD客户端和GNBD服务器. GNBD服务器在GNBD服务器上运行,主要用于导出本地存储. GNBD客户端使用GFS文件系统在每个节点上运行,并且主要用于导入从GNBD服务器导出的磁盘设备. 可以有一个或多个GNBD服务器,并且多个GNBD客户端可以同时访问由一台GNBD服务器导出的磁盘设备.
GFS文件系统在群集的每个节点上运行. 通过共享GNBD服务器导出的数据,可以访问业务程序以完成服务器集群技术的存储功能.
最上面的应用程序主要用于提供集群服务. 群集服务在每个节点上运行,并共享相同的数据文件,以提供对外部世界的一致访问.
为了确保文件系统的完整性,GFS使用锁管理器来管理I / O. 当节点修改GFS上的数据时,使用该文件系统的其他节点上的更改立即可见. GFS通过多个节点共享块级存储,从而实现节点共享和资源统一管理.

GFS架构分析
Google文件系统(GFS)是建立在廉价服务器上的大型分布式系统. 它把服务器故障视为正常现象,并通过软件自动容错. 在确保系统可靠性和可用性的同时,大大降低了系统成本.
GFS是Google云存储的基石. 其他存储系统(例如Google Bigtable,Google Megastore和Google Percolator)直接或间接在GFS上构建. 此外,Google的批处理系统MapReduce还需要使用GFS作为海量数据的输入和输出.
系统架构

GFS将整个系统的节点分为三个角色: GFS主服务器(主控制服务器),GFS块服务器(数据块服务器,简称CS)和GFS客户端(客户端).
GFS文件被分成固定大小的块(Chunk),并且在创建时由Master分配了64位的全局唯一块句柄. CS以普通Linux文件的形式在磁盘上存储块. 为了确保可靠性,Chunk在不同的计算机上复制多份副本,默认值为三份.

Master维护系统的元数据,包括文件和块名称空间,GFS文件和块之间的映射以及块位置信息. 它还负责整个系统的整体控制,例如块租赁管理,无用的垃圾回收块,块复制等. 师父会通过心跳定期与CS交换信息.
客户端是GFS提供给应用程序的访问界面. 它是一组不符合POSIX规范的专用接口,并以库文件的形式提供. 客户端访问GFS时,首先访问主节点以获得与之交互的CS信息,然后直接访问这些CS来完成数据访问工作.
应注意,GFS中的客户端不缓存文件数据,仅缓存从主服务器获取的元数据,而元数据则由GFS的应用程序特性决定. GFS有两个主要应用程序: MapReduce和Bigtable. 对于MapReduce,GFS客户端使用顺序读取和写入,并且不需要缓存文件数据. 而Bigtable作为云表单系统,在内部实现了一组缓存机制. 另外,如何保持客户端缓存和实际数据之间的一致性是一个非常复杂的问题.
下面讨论了GFS体系结构中的一些关键问题.
租赁机制
GFS数据以记录单位添加. 每个记录的大小为几十KB到几MB. 如果每次添加记录时都需要请求Master,则Master显然会成为系统的性能瓶颈. 租用机制授权对块服务器进行块写入操作. 租赁授权的块服务器称为主块服务器,其他副本所在的块服务器称为辅助块服务器. 租赁授权是针对单个块的. 在租赁期间,主块服务器负责写入块,从而减轻了主服务器的负担. 通常,租约的有效期相对较长,例如60秒. 只要没有异常,主块服务器就可以连续请求主服务器延长租约的有效期,直到整个块都装满为止.
假定块A在GFS中保存了三个副本A1,A2,A3,其中A1是Primary. 如果副本A2所在的Chunk Server脱机,然后又再次联机,并且在A2的脱机过程中,副本A1和A3具有新的更新,则A2需要由主服务器作为垃圾回收. GFS通过为每个块维护一个版本号来解决此问题. 每次将租约授权应用于块或主块服务器更新租约有效期时,主服务器都会将块版本号增加1. 在A2脱机过程中,副本A1和A3具有新的更新,表示主块服务器重新应用于主服务器,并添加了A1和A3的版本号. A2联机后,Master可以发现A2的版本号太低. 为了将A2标记为可删除的块,Master的垃圾回收任务将定期检查并通知Chunk Server回收A2.

BigTable和GFS有什么区别?
BigTable是键/值分布式,而GFS主要是分布式文件系统. bigTable存储结构化数据,而GFS存储非结构化数据. 此外,BigTable数据存储在GFS上.
有关GFS的云计算问题
问题: 我是云计算的新手,老师给了我一个话题. 要求是构建一个GFS功能框架和工作流,以反映搜索/存储技术功能的应用案例. 谁能指导你? .
答案:
提供一个想法: 例如,当今流行的网络磁盘,客户需要注册,登录,上传,下载,存储,访问并共享到特定空间. 这些可以归类到工作流程中,并进行一些加密和解密. 以及交互(例如输入验证码,忘记密码并通过邮箱检索等),其中的重点是主题中建议的“搜索/存储”,因为对于GFS,它是可扩展的分布式文件系统,用于访问大量数据的大型分布式应用程序. 它可以在廉价的普通硬件上运行,但是可以提供容错功能. 它可以为大量用户提供更高的整体性能服务. 因此,很容易实现主题的需求.
对于GFS的功能框架,应根据工作流确定,可以根据GFS的标准框架进行建模.
如何使用Linux和GFS构建集群存储?
负载平衡是一项艰巨的任务. 我们经常需要通过NFS(网络文件系统)或其他机制来提供数据的中心地址,以共享文件系统. 尽管您的安全性机制可以使您免于Web服务器节点的故障,但是仍然需要通过中央存储节点共享数据. 使用GFS(全球文件系统)(Linux的免费群集文件系统),您可以创建一个真正稳定的群集,该群集不依赖于其他服务器. 在本文中,我们将展示如何正确设置GFS. 从概念上讲,群集文件系统可以允许多个操作系统加载相同的文件系统并将数据同时写入相同的文件系统. 有许多群集文件系统gfs文件系统特点,包括Sun Lustre,Oracle OCFS(Oracle群集文件系统)和Linux GFS. 有很多方法可以使一个块设备同时被多个服务器使用. 您可以划分出对多个服务器可见的SAN(存储LAN ...)...
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-217416-1.html
二小时灭中国东海舰队
美国的帮手会越来越少