初窥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发送邮件的注意事项 ...
随机推荐
- 消息队列-ActiveMQ
1 业务需求描述 举例描述: 再警情通报的业务时通过发送消息界面可以选择 警情联络,和船情通报两种消息 发送方式可分为 一对一发送:部门对部门.个人对个人 一对多发送:部门对多部门.个人对多人 2 功 ...
- Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)
下面是 Metadata Service 的架构图,本节我们详细讨论各个组件以及它们之间的关系. nova-api-metadata nova-api-metadata 是 nova-api 的一个子 ...
- Altera Stratix IV Overview
由于要开发基于DE4平台的应用,应该要了解一下该平台的芯片情况Stratix IV 具体型号为:Stratix IV EP4SGX230KF40C2 命名规范如下 官网资料为:https://www. ...
- AQS阻塞唤醒工具LockSupport
LockSupport在JDK源码中描述为:构建锁和其他同步类的基本线程阻塞原语,构建更高级别的同步工具集.LockSupport提供的park/unpark从线程的粒度上进行阻塞和唤醒,park/u ...
- UI自动化测试表单重要代码
public class frame { public static void main(String[] args) { // TODO Auto-generated method stub Sys ...
- Omi框架Store体系的前世今生
原文链接-https://github.com/AlloyTeam/omi Store 体系 先说说Store系统是干什么的!为什么要造这样一个东西?能够系统架构带来什么? 当我们组件之间,拥有共享的 ...
- MyBatis原始dao开发及问题总结(五)
一.MyBatis原始Dao开发方式 1.原始dao开发需要程序员编写dao接口和dao接口实现类 编写UserDao接口:UserDao.java package codeRose.dao; pub ...
- oracle查询每个表所占的空间
查看当前用户的每个表所占的空间大小: select segment_name,sum(bytes)/1024/1024 size_M from user_extents group by segmen ...
- 什么是node.js
1.0什么是nodejs 1.1定义: Node.js是Javascript除了浏览器之外可以运行的另一个环境(runtime).可以为我们提供开启服务功能和提供文件读写功能 1.2特点: 1)基于g ...
- 填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试
总是用模拟器,小破本的渣内存无法承受,同时模拟器的版本大多停在4.4,无法体现Android 5.0.6.0 的版本特性,因此决定利用 Android Studio 的插件实现真机无线调试. 步骤如下 ...