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

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: GFS(Global File System)是Minnesota大学开发的基于SAN的共享存储的集群文件系统,后来Sistina公司将GFS产品化。GFS在很长一段时间都是以源代码开放软件的形式出现的,后来由于Sistina希望通过向用户提供支持和服务的计划未能取得成功,为了要促进自己的财务收入,Sistina在2001年将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通过NFSHTTP的扩展

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


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

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


4 GFS的数据传输路径

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

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

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

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


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

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

 

 

优点:

GFS的主要优点在于:

 

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

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

缺点:

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

l        费用较高;


相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
8天前
|
SDN
磁盘和文件系统管理
磁盘和文件系统管理
磁盘和文件系统管理
|
存储 缓存 固态存储
磁盘存储和文件系统| 学习笔记
快速学习磁盘存储和文件系统
148 0
磁盘存储和文件系统| 学习笔记
|
Docker 容器
分布式内存文件系统Alluxio(上)
分布式内存文件系统Alluxio(上)
289 0
分布式内存文件系统Alluxio(上)
|
缓存 Java API
分布式内存文件系统Alluxio(下)
分布式内存文件系统Alluxio(下)
382 0
分布式内存文件系统Alluxio(下)
|
存储
FAT32文件系统的存储组织结构(二)
<p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px; color: rgb(102, 102, 102); font-family: 宋体, Arial; font-size: 16px; line-height: 26px;"> 
1463 0