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

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: 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        费用较高;


相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
移动开发 JavaScript
H5唤起手机打电话(拨号)和发短信功能
H5唤起手机打电话(拨号)和发短信功能
1152 0
|
移动开发 监控 小程序
钉钉工作台开放能力建设阶段性总结
工作台的平台化开放能力建设已经走了近3年的时间,包括定制工作台的开放、工作台模板的开放、工作台组件的开放等等。本文主要是对过程中一些关键能力的总结和思考,欢迎交流。工作台的类型工作台作为企业业务数字化的统一门户,是组织用于提升管理效率、实现业务在线的平台。工作台的组织就是钉钉上的组织,针对不同的组织规模,提供了多种类型工作台:角色工作台、行业工作台和自定义工作台。角色工作台是对不同的角色,例如财务
1546 0
钉钉工作台开放能力建设阶段性总结
|
8月前
|
BI Windows 容器
AD域组策略管理
ADManager Plus是一款基于Web的Active Directory组策略管理工具,支持多域GPO管理,提供GPO创建、编辑、启用、禁用、删除、链接、继承控制等功能,支持批量操作,提升管理效率。内置丰富报表,如GPO清单、阻止继承容器等,便于快速获取GPO信息,优化AD策略管理。
224 6
|
小程序 API 开发工具
支付宝支付对接案例详解
支付宝支付对接指南,涵盖电脑网站、当面付和手机网站支付方式。对接前需了解支付宝开放平台和商家平台的区别,完成注册、实名认证、创建应用及签约产品等步骤。配置支付环境包括API密钥、回调地址和开发环境搭建。提供三种SDK供选择,推荐使用alipay-easysdk。详细步骤和示例代码可参考官方文档。
1613 15
|
存储 前端开发 开发工具
git clone -mirror 和 git clone 的区别
git clone -mirror 和 git clone 的区别
|
存储 网络协议 Unix
图解VirtualBox安装CentOS 7
VirtualBox是由德国InnoTek软件公司出品的虚拟机软件,现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部分。
3398 0
图解VirtualBox安装CentOS 7
|
Python
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
2155 0
|
调度 数据库 计算机视觉
并行和并发的区别(详细)
并行和并发的区别(详细)

热门文章

最新文章

下一篇
开通oss服务