大话存储系列17——GFS 文件系统

GFS(Global File System)是Minnesota大学开发的基于SAN的共享存储的集群文件系统,后来Sistina公司将GFS产品化。GFS在很长一段时间都是以源代码开放软件的形式出现的,后来由于Sistina希望通过向用户提供支持和服务的计划未能取得成功,为了要促进自己的财务收入,Sistina在2001年将GFS变成了一种“专有软件”。Red Hat公司收购Sistina之后,在遵循GPL协议(GeneralPublic
License)的条件下履行诺言公开了GFS的源代码。现在,GFS的全名被称为“红帽全球文件系统”(Red Hat Global File System ,GFS)的软件,每台服务器每年收取2200美元的费用。

可能是redhat为了更好的收取服务费的缘故,有关GFS的文档真是少之又少,我只能从网上一些零星的资料来看看GFS的概貌。

框架

GFS最初是在IRIX上开发的,后来移植到LINUX上,并开放源码。基本框架如下图所示。

图1 GFS的基本框架图

通过使用GFS,多台服务器可以共用一个文件系统来存储文件。信息既可以存储在服务器上,也可以存储在一个存储局域网络上。

GFS与GPFS结构相似,但它是全对称的机群文件系统,没有服务器,因而没有性能瓶颈和单一故障点。GFS将文件数据缓存于节点的存储设备中,而不是缓存在节点的内存中。并通过设备锁来同步不同节点对文件的访问,保持UNIX文件共享语义。GFS实现了日志,节点失效可以快速恢复。GFS使用SCSI设备锁来进行同步,目前很少设备实现这种设备锁。在没有设备锁的情况下,GFS也是通过唯一的锁服务器来进行同步,因此,锁服务器是其性能的瓶颈。

用户通过GFS可以加快数据访问速度,并进行信息复制。一旦一台服务器出现问题,用户仍可以通过网络内其他的计算机访问有关的数据。GFS对于以以下两种方式连接而成的计算机集群尤其有用:1、计算机集群中任何一台机器都可以在另一台机器发生故障时接管这台计算机的工作,2、计算机集群中的所有机器联合起来组成一台超级计算机。

GFS允许多个Linux机器通过网络共享存储设备。每一台机器都可以将网络共享磁盘看作是本地磁盘,而且GFS自己也以本地文件系统的形式出现。如果某台机器对某个文件执行了些操作,则后来访问此文件的机器就会读到写以后的结果。

图2 GFS通过NFS和HTTP的扩展

如上图所示,GFS设计时就考虑到了可以通过NFS或者HTTP协议进行扩展。但是数据控制和数据传输的开销显然要小于NFS。

图3 NFS的控制和数据传输路径

上图是NFS的控制和数据传输路径。控制路径从用户应用通过VFS传递到NFS客户端。NFS通过TCP/IP协议执行远程调用。NFS服务器端响应调用请求,通过VFS访问本地文件系统,然后由本地文件系统来访问本地的存储设备。数据传输路径包括:用户内存和NFS客户端缓存之间的内存拷贝,NFS客户端与网络缓存之间的拷贝,缓存网络缓存和NFS服务器端缓存之间的拷贝。这些拷贝通过系统总线和网络连接进行。

图4 GFS的数据传输路径

GFS的控制和数据传输路径由上图所示。控制路径从用户应用通过VFS到达GFS。GFS向网络存储池(network
storage pool,NSP)中的存储设备发出请求。块对齐数据(Block aligned data)在用户内存和存储设备间传输,非对齐数据则临时的通过系统内存传递。

GFS中有一个很重要的概念,叫网络存储池(The network storagepool,NSP)。NSP为每台机器提供了一个统一的存储地址空间。GFS通过NSP实现了存储设备的网络共享。这些存储设备可以是共享SCSI(SharedSCSI)和共享通道(Fibre
Channel - FC)。NSP包装这些存储设备使得它们好像节点本地的文件系统。

   NSP还可以根据存储设备的类型分为多个子存储池(subpools)。NSP同时也对锁进行管理。GFS发送“锁”和“解锁”命令给NSP,NSP收到后把逻辑锁号转成对应的物理设备的锁号进行锁定。

   GFS把文件系统组织成数个资源组(resourcegroups,RG)。通过RG,GFS把文件系统的资源分布在整个NSP上。一个存储设备上可以存在多个RG。RG实际上是各微型的文件系统(minifile
system)。

图5文件到存储池和资源组的映射

上图演示了从文件到RG,以及从RG到NSP子池的映射。文件可能被存放在数个RG和多重存储池中。

 

 

优点:

GFS的主要优点在于:

 

l        高可用性:如果一个GFS客户失效,数据还可以通过其他GFS客户访问;

l        扩展性:因为不需要中心服务器,所有很容易扩展存储容量和访问带宽;

缺点:

l        和现在流行的SAN型文件系统相比,设计思想似乎有点落后了;

l        费用较高;

时间: 2024-10-31 05:03:43

大话存储系列17——GFS 文件系统的相关文章

大话存储系列16——VFS 文件系统

文章整理自网络: 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核.总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等.本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在机制,在这过程中会涉及到上层文件系统调用和下层实际文件系统的如何挂载.文章试图从一个比较高

大话存储系列14——集群文件系统

文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的.对象化的访问接口,屏蔽对物理设备的直接操作和资源管理. 根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是: 单处理器单用户的本地文件系统,如DOS的文件系统: 多处理器单用户的本地文件系统,如OS/2的文件系统: 多处理器多用户的本地文件系统,如Unix的本地文件系统: 多处理器多用户的分布式文件系统,如Lustre文件系统. 平时大家有很多叫法:什么集群文件系统.san共享文件

大话存储系列5——RAID原理

整理自网络和大话存储2: 1.预备知识:条带化 当多个进程同时访问一个磁盘时,可能会出现磁盘冲突.大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制.当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突.     避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡.     条带化技术就是一种

大话存储系列1——对存储的初步认识

这篇文章转载自大牛Hellodba,连接如下:http://www.hellodb.net/2009/08/storage.html 那这篇文章开始我的存储之旅,我将会在近期整理出关于存储的更多细节. IOPS IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能.存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以

大话存储系列15——NFS 和 CIFS 文件系统

1.NFS 文件系统 本文整理自:http://www.ibm.com/developerworks/cn/linux/l-cn-nfs/index.html?ca=drs- Sun公司估计现在大约有超过310万个系统在运行NFS,大到大型计算机.小至PC机,其中至少有80%的系统是非Sun平台.NFS是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所以它的通讯协定设计与主机及作业系统无关.当使用

大话存储系列11——NAS、DAS、SAN三国争霸

原文转自:http://www.liusuping.com/storage/das-nas-san-cunchu-jishu-bijiao.html 1.什么是NAS 找了一篇非常非常好的文章,把NAS的解释的淋漓尽致,看下面的东西之前,一定要看这篇文章: 转自:http://www.storageonline.com.cn/storage/nas/what-is-the-the-the-the-the-nas/ IT男们经常受到两个消息的折磨:好消息是,有姑娘主动打来电话了:坏消息是,她们只是

大话存储系列12——集群的本质

1.引子 随着网络视频行业不断走向成熟,越来越多的企业都参与到视频网站建设中来,竞争愈加激烈,而带宽.服务器.存储.编解码等各项技术直接关系到竞争优势.存储系统作为视频数据的载体,其IO性能和可扩展性.可靠性对整套系统架构起着至关重要的作用. 集中存储 在面对海量数据存储时,以往用户会采用传统的使用方法:集中存储,将所有的数据存放于一个单一大容量盘阵或者存储服务器中,并采用较高等级的RAID进行数据保护(如RAID 5.RAID 6等). 这种类型的方案确实给用户带来了一定的益处,那就是数据可以

大话存储系列8——磁盘阵列

JBOD(just a Bound Of  Disk)只是一串磁盘:这就是盘柜,里面没有带RAID 控制器. 而我们说的盘阵(磁盘阵列)是指的自带RAID控制器的盘柜.磁盘阵列将内部的磁盘经过外部SCSI接口连接到主机上段的SCSI接口.此时,整个磁盘对于主机来说,就是主机SCSI总线上的一个或者多个设备,具有一个或者多个SCSI ID.所有的逻辑磁盘都以LUN的形势呈现给主机. hp EVA 和 MSA 的区别 接口不一样嘛! EVA 里面的硬盘接口也是光纤的,而MSA就不是了,用的硬盘是SC

大话存储系列19——数据备份与恢复 下

4.卷克隆(Clone) 克隆是指源数据集某时间点的一份或者几份实实在在的实体复制,利用快照做克隆:首先对某个源数据集(源卷或者源文件系统)创建一份快照,之后将这份快照执行的所有数据块阯出来到一个额外的存储空间,这样,被复制出来的所有数据就组成了源数据集在那个时刻的一个克隆实体. 历史是不能回过头去改变的,但是快照却是可写的(以前我一直以为快照时只读的),其实可写的Snapshot也只不过是对指针的处理而已,即系统增加了一个RoFW数据映射表,比如存储系统将Snapshot也只不过是对指针的处理