初窥GPFS文件系统
作者:姜江 linuxemacs@gmail.com
原文地址:http://blog.csdn.net/jznsmail/article/details/5502840?reload
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行转载,如有需要请联系原作者。
一、什么是GPFS文件系统
General Parallel File System(GPFS)是高性能、可扩展、并行文件系统,起源于IBM SP系统上使用的虚拟共享磁盘技术(VSD)。GPFS文件系统保证资源组内的所有节点可以并行访问整个文件系统,并且文件系统上的文件可以分布在不同的物理硬盘上。利用IBM Linux集群系统中的“虚拟“共享磁盘技术,GPFS似的多个节点上运行的多个应用程序可以同时读写同一个文件。并且GPFS还包含了IBM可扩展集群系统技术(RSCT),可以将存储的内容自动恢复到活动节点上,当系统产生故障时,文件日志可以快速的恢复数据,并且可以保证数据的一致性。在GPFS为应用程序提供了UNIX标准的文件系统借口,可以在不改变现有代码的基础上直接运行。
二、GPFS文件系统的基本结构
GPFS文件系统由三层架构组成:GPFS文件设备、网络共享磁盘(NSD)和磁盘
1、GPFS文件设备(GPFS File System Device)
GPFS文件设备由NSD创建,是可以被多个节点并行同时挂载的文件设备
2、网络共享磁盘(NSD)
网络共享磁盘(NSD)是由物理磁盘映射出来的虚拟设备,与磁盘之间是一一对应的关系。并且,NSD将虚拟设备按照不同的属性划分了不同的用途。NSD虚拟设备具有4种不同的磁盘属性:
a、Desc Only:表示该磁盘存储GPFS文件系统的描述信息
b、Data Only:表示该磁盘只存储GPFS文件系统的数据信息
c、Meta Data Only:表示该磁盘只存储GPFS文件系统的目录结构信息(inode)
d、Meta And Data:表示该磁盘存储GPFS文件系统中的所有信息(默认情况)
三、GPFS文件系统的特点
1、高性能
由于GPFS文件系统允许在同一个节点内的多个进程使用标准的UNIX文件系统接口,并行的访问相同文件(读写)。并且,可以将节点的读写操作分布到不同的物理磁盘上,因此避免了对某个磁盘过多读写操作,增加了整个系统的吞吐量,提高了系统的整体性能。
2、跨平台
GPFS文件系统本身可以看成与具体系统无关的一个单独系统,通过集群方式可以支持多种操作系统,比如AIX、Linux等。
3、保证数据一致性
GPFS文件系统采用信令管理机制保证数据的一致性。信令机制允许各个节点通过独自的路径到达同一个文件。因此,当某个节点的某条路径无法正常工作,依旧可以通过链路冗余达到GPFS文件系统。并且GPFS本身设计成为一种日志文件系统,为不同的节点建立了各自独立的日志(保存了Meta Data的分布信息)。因此,一但节点发生故障后,可以通过日志记录的Meta Data的分布信息,快速的找到相应的Meta Data然后恢复。
4、可扩展性
GPFS可以动态调整系统资源,支持在文件系统挂载的情况下动态的添加和删除硬盘,而无须重启。
5、方便管理
GPFS文件系统,可以自动的同步各个节点的配置文件和文件系统信息,因此可以在任意一个节点上管理GPFS。
四、系统可用状态的仲裁
GPFS文件系统提供3种仲裁方式来确定系统当前状态是否安全可靠:File Descriptor Quorum、Node Quorum和Tiebreaker Quorum
1、File Descriptor Quorum:
当在磁盘上创建GPFS文件系统时,会将文件系统信息的拷贝复制到多个磁盘上,达到数据冗余的目的。这种方式是GPFS文件系统默认支持的,是不可以配置改变的。File Descriptor Quorum通过判断包含有文件系统信息的磁盘的在线情况来判断当前系统是否正常。当超过一半的包含文件系统信息的磁盘下线时,GPFS文件系统会判断系统为非正常状态,此时会自动关闭文件系统。
2、Node Quorum:
GPFS文件系统集群中,将多个主机节点设置成Quorum节点,当有超过一半的Quorum节点下线时,GPFS文件系统判断系统为非正常状态,会自动关闭文件系统。
3、Tiebreaker Quorum:
GPFS文件系统集群中,可以设置一些指定的物理磁盘作为Tiebreaker Disk,GPFS文件系统会动态的监视这些磁盘的状态。当有超过一般的Tiebreaker Disk下线时,则表示系统为非正常状态,自动关闭文件系统。按照文档上来说,用于监视Tiebreaker Disk的Quorum主机数目最多只能配置两台,当2台Quorum主机都故障,则也表示系统故障,此时文件系统也会关闭。
Tibreaker Quorum和Node Quorum仲裁方式只能选择其中一种,不能两种同时使用。Tibreakder Quorum仲裁方式主要是用于节点比较少的亲况下,如果整个系统的接入节点较多,应该考虑Node Quorum的仲裁方式。
五、GPFS文件系统的并发访问
1、并发访问
GPFS文件系统的并行文件访问通过两个部分来实现:一是多个GPFS节点以并行的方式(可以是多个进程)访问磁盘系统上的数据(相同或者不同);二是GPFS文件系统将文件访问分散到不同的物理磁盘上,提升访问效率。
2、文件锁
GPFS文件系统支持并发访问文件,因此需要一套锁机制来保证并发访问时数据的正确性。常见的锁管理机制分为两种:集中式的锁管理机制和分布式的锁管理机制。其中,在集中式的所管理机制中,集群系统中会将一个或者多个节点专门用于负责管理文件系统的元数据(Meta Data)。当集群中有多个节点需要同时访问同一个数据单元时,节点首先需要向元数据管理服务器发送一个访问请求,元数据管理服务器将读写操作授权给节点,节点即可对请求的数据单元进行读写操作。而分布式的锁管理机制中则没有专门用于管理元数据的管理节点,文件系统中的元数据分布在文件系统集群的所有节点上。当有节点同时访问同一个数据单元时,会通过保存的元数据信息找到集群中拥有该数据单元锁的节点发送请求,获得批准后,方可访问请求的数据单元。
GPFS文件系统中是将集中式和分布式锁管理机制结合的方式来管理并发访问,GPFS文件集群中有一个负责全局锁管理的服务器,同时集群中的每个节点上还保存了文件系统元数据。全局索管理服务器,通过令牌(Token)发放的方式,来协调各个节点的元数据访问。当系统中有某个节点需要读写文件时,首先向Token Server请求获得令牌,当获得令牌后,可以从节点中获取文件锁,然后进行数据单元的读取操作。
六、参考资料
GPFS Primer for AIX Clusters,可以从以下站点获得:
http://www-.ibm.com/servers/eserver/pseries/software/whitepapers/gpfs_primer.html
GPFS 1.4 for AIX - Architecture and Performance, Heger,D. and Shah,G.
GPFS on AIX Clusters:High Performance File System Administration Simplified,可以从IBM红皮书站点获得:
http://www.redbooks.ibm.com
The Complete Partitioning Guide forIBM^?pSeries?Servers,可以从IBM红皮书站点获得:
http://www.redbooks.ibm.com
IBM Total Storage:FAStT600/900 and Storage Manager 8.4,可以从IBM红皮书站点获得:
http://www.redbooks.ibm.com
初窥GPFS文件系统的更多相关文章
- 初窥GPFS文件系统(转)
原文地址:http://blog.csdn.net/jznsmail/article/details/5502840?reload 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化 ...
- Scrapy001-框架初窥
Scrapy001-框架初窥 @(Spider)[POSTS] 1.Scrapy简介 Scrapy是一个应用于抓取.提取.处理.存储等网站数据的框架(类似Django). 应用: 数据挖掘 信息处理 ...
- scrapy2_初窥Scrapy
递归知识:oop,xpath,jsp,items,pipline等专业网络知识,初级水平并不是很scrapy,可以从简单模块自己写. 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数 ...
- Scrapy 1.4 文档 01 初窥 Scrapy
初窥 Scrapy Scrapy 是用于抓取网站并提取结构化数据的应用程序框架,其应用非常广泛,如数据挖掘,信息处理或历史存档. 尽管 Scrapy 最初设计用于网络数据采集(web scraping ...
- python爬虫 scrapy2_初窥Scrapy
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- IPFS初窥
虽然区块链有很多令人兴奋的特性,但是也有其固有的缺点.比如,文件或者长度较长的文本信息就不适合存储在链上.那么如何解决这个缺点呢?一个解决方案就是IPFS(Interplanetary File Sy ...
- 初窥Kaggle竞赛
初窥Kaggle竞赛 原文地址: https://www.dataquest.io/mission/74/getting-started-with-kaggle 1: Kaggle竞赛 我们接下来将要 ...
- WWDC15 Session笔记 - Xcode 7 UI 测试初窥
https://onevcat.com/2015/09/ui-testing/ WWDC15 Session笔记 - Xcode 7 UI 测试初窥 Unit Test 在 iOS 开发中已经有足够多 ...
- Java发送邮件初窥
一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...
随机推荐
- Jmeter函数引用和函数重定向
在jmeter中的[选项]中选择[函数助手对话框]---这些函数可以高速有效的帮助我们开展自动化编写与校验!!!!!! 如图: 重点!!!本章的侧重点不讲函数的具体使用,函数具体的使用与java类似, ...
- 用Visual Studio Code Debug世界上最好的语言
前言 这阵子因缘巧合接手了一个辣鸡项目,是用世界上最好的拍黄片写的,项目基本是另一个小伙伴在撸码,我就兼职打杂和发布做点运维的工作. 然后昨天项目上了测试版之后,一用起来Error满天飞了.让小伙伴查 ...
- Java基础——深入理解Java中的final关键字(转载)
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- js高程(二)-----继承
首先来讨论一下原型链,上代码 function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = fun ...
- JAVA-Servlet-ServletConfig 与 ServletContext 的区别
什么是ServletConfig? Servlet容器初始化一个servlet对象时,会为这个servlet对象创建一个servletConfig对象.在servletConfig对象中包含了serv ...
- HTML5 之文件操作(file)
前言 在 HTML 文档中 <input type="file"> 标签每出现一次,一个 FileUpload 对象就会被创建. 该元素包含一个文本输入字段,用来输入文 ...
- python大小写转换函数
1.全部转换成大写:upper() 用法: str = 'marsggbo' print str.upper() 结果:MARSGGBO 2.全部转换成小写:lower() 用法:str = ...
- Tcl与Design Compiler (九)——综合后的形式验证
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 这里来讲一下forma ...
- 读书笔记 effective c++ Item 41 理解隐式接口和编译期多态
1. 显示接口和运行时多态 面向对象编程的世界围绕着显式接口和运行时多态.举个例子,考虑下面的类(无意义的类), class Widget { public: Widget(); virtual ~W ...
- [认证授权] 2.OAuth2(续) & JSON Web Token
0. RFC6749还有哪些可以完善的? 0.1. 撤销Token 在上篇[认证授权] 1.OAuth2授权中介绍到了OAuth2可以帮我们解决第三方Client访问受保护资源的问题,但是只提供了如何 ...