ycnian

这个人很懒,他什么也没有留下

pNFS读操作

前面几篇文章基本介绍清楚了LAYOUTGET和GETDEVICEINFO两个请求,这是客户端发起I/O操作前的准备工作,这篇文章中我们就以读操作为例讲讲pNFS中的I/O操作。pNFS中的读操作和没有采用pNFS机制时的读操作基本流程是一致的,只是部分步骤有差别,这篇文章主要关注差别之处。 sta...

2013-04-05 08:15:49

阅读数:1512

评论数:4

GETDEVICEINFO(二)

上一篇文章讲解了客户端deviceid相关的数据结构和操作函数,这篇文章中讲讲MDS中与deviceid相关的数据结构和操作。当MDS接收到GETDEVICEINFO请求后,会解析报文,解析出的数据存放在数据结构struct nfsd4_pnfs_getdevinfo中了,这个数据结构定义如下: ...

2013-04-04 10:51:02

阅读数:2952

评论数:0

GETDEVICEINFO(一)

这篇文章中我们先说说deviceid。什么是deviceid呢?在使用pNFS的情况下,客户端执行I/O操作前需要先获取文件的layout。同时客户端需要获取DS的详细信息,比如DS的IP地址,否则客户端还是没办法发起I/O请求。deviceid就包含了DS的基本信息。客户端中deviceid用数...

2013-04-02 21:51:58

阅读数:1871

评论数:0

LAYOUTGET(五)

上篇文章讲到了MDS中LAYOUTGET的处理过程,当MDS处理完毕后就会将数据封装到应答消息中返回给客户端。这篇文章中我们讲讲客户端接收到应到报文后的处理。以前的文章讲到过客户端用struct pnfs_layout_segment表示一个layout,LAYOUTGET的作用就是获取文件的la...

2013-04-01 23:45:38

阅读数:890

评论数:0

LAYOUTGET(四)

前面一篇文章讲到了nfs4_pnfs_get_layout()最终调用struct pnfs_export_operations结构中的layout_get()创建一个新的layout,这篇文章中就详细讲讲file layout中layout的创建过程。file layout中的pnfs_expo...

2013-04-01 06:31:44

阅读数:967

评论数:0

LAYOUTGET(三)

这篇文章中讲解nfs4_pnfs_get_layout()的执行过程,有些复杂,首先讲讲layout在MDS中的保存方式。MDS中有两个数据结构跟layout相关,分别是struct nfs4_layout_state和struct nfs4_layout。struct nfs4_layout表示...

2013-03-31 18:08:53

阅读数:942

评论数:0

MDS中file layout初始化过程

pNFS系统的部署过程见这篇文章:http://blog.csdn.net/ycnian/article/details/8523193。这篇文章中我们讲讲MDS的初始化过程,主要想讲讲向文件/proc/fs/nfsd/pnfs_dlm_device中写入数据后MDS做了哪些工作,以下面这条命令为...

2013-03-31 15:58:28

阅读数:1698

评论数:1

LAYOUTGET(二)

上一篇文章中我们分析了layout在客户端的保存形式、相关的数据结构、客户端发起LAYOUTGET请求的时间点,这篇文章中我们详细分析一下LAYOUTGET请求的发起过程以及MDS端的处理过程。 1.客户端处理程序 首先看几个客户端的数据结构: struct nfs4_layoutget...

2013-03-31 14:28:08

阅读数:1061

评论数:0

LAYOUTGET(一)

现在可以讲解LAYOUTGET请求了,首先我们需要回忆一下NFS文件系统中读数据的过程,看看LAYOUT请求是什么时候触发的。NFS文件系统中,每个缓存页关联了一个数据结构struct nfs_page。同时客户端还定义了一个数据结构struct nfs_pageio_descriptor,这个结...

2013-03-28 17:31:17

阅读数:1041

评论数:0

设置layout

layout需要MDS、DS和客户端三方共同支持,当客户端通过GETATTR请求获取了layout类型后,还需要检查自己是否支持这种类型,客户端检查、设置layout的函数是set_pnfs_layoutdriver()。     RFC5661定义了三种layout,三种layout的编号依次...

2013-03-28 15:28:58

阅读数:1392

评论数:0

获取layout类型

NFSv4.1支持三种layout类型:file layout、object layout、block layout,这三种layout对数据读写过程的处理方式不同。因此pNFS系统中,客户端首先需要获取layout类型,这是在挂载文件系统时实现的。客户端挂载文件系统时需要发起GETATTR请求,...

2013-03-28 14:30:58

阅读数:1865

评论数:0

FILE LAYOUT

1 file layout中的基本概念     pNFS支持三种LAYOUT,分别为:block layout、object layout、file layout。这篇文章中讲解file layout的设计理念,不涉及Linux中的代码。首先介绍几个概念,这些概念见RFC5661第13章。 ...

2013-03-25 21:26:09

阅读数:2206

评论数:0

文件解锁

文件解锁是加锁的反操作,当处理完毕后应该尽量赶快解锁,避免影响其他用户访问文件。NFS中与文件解锁相关的操作有两个:LOCKU和RELEASE_LOCKOWNER。LOCKU的作用是解锁,RELEASE_LOCKOWNER的作用是释放stateid。 LOCKU客户端程序     客户...

2013-03-10 20:49:17

阅读数:1908

评论数:0

文件加锁

1.客户端处理程序     这篇文章中我们讲讲文件锁的加锁过程,首先说说与文件锁相关的数据结构 struct nfs4_lock_state { // nfs4_state结构中包含多个nfs4_lock_state结构,这些结构构成了一个链表, // ls...

2013-03-10 11:49:37

阅读数:1953

评论数:0

NFS中的文件锁

文件锁是保持文件同步的一种手段,当多个用户同时操作同一个文件时,文件锁可以保证数据不发生冲突。NFSv2和NFSv3依靠NLM协议实现文件锁,NFSv4本身实现了文件锁,不需要NLM协同工作了。NFS中的文件锁既可以加在客户端,也可以加在服务器端。如果客户端挂载NFS文件系统时使用了选项noloc...

2013-03-09 15:26:16

阅读数:11441

评论数:0

关闭文件

1.CLOSE和OPEN_DOWNGRADE     客户端用户执行完读写操作之后就需要关闭文件了,一般情况下客户端用户调用close(2)关闭文件。NFS文件系统中有两个请求与关闭文件相关:CLOSE和OPEN_DOWNGRADE。 CLOSE:这个请求的作用是释放OPEN请求中申请的s...

2013-03-05 22:46:38

阅读数:1780

评论数:1

返还delegation

现在可以讲解delegation的返还过程了。像上一篇文章中讲到的那样,当文件的访问过程发生冲突时,服务器会向客户端发送CB_RECALL请求。客户端接收到CB_RECALL请求后,首先会更新关联在这个文件上的open stateid,然后就向服务器发起DELEGRETURN请求,将delegat...

2013-03-05 00:45:10

阅读数:1243

评论数:0

打开一个有delegation的文件(权限冲突)

这篇文章中先讲讲NFSv4中的READ。客户端发起READ请求时需要提供三个信息:一个stateid、数据在文件中的起始位置、请求的数据量。服务器会根据客户端提供的stateid查找到对应的文件,然后读取文件中的数据返回给客户端。客户端包含三种stateid:delegation stateid、...

2013-03-04 22:48:03

阅读数:1109

评论数:0

打开一个有delegation的文件(权限没有冲突)

这篇文章中我们讨论这样一种情况:假设用户user1以只读权限打开了文件file1,并且服务器为这个文件分配了delegation。现在用户user2用样以只读权限打开文件file1,那么user2打开文件的过程是什么样的呢?是否还需要向服务器发送OPEN请求?     和前一篇文章相似,客户端仍...

2013-03-04 21:11:54

阅读数:860

评论数:0

客户端如何设置delegation

上一篇文章中我们讲解了服务器没有分发delegation的情况下,OPEN操作结束之后客户端的设置过程,这篇文章中我们接着讲讲如果服务器分发了delegation客户端的设置过程。首先讲讲客户端表示delegation的数据结构,客户端delegation用struct nfs_delegatio...

2013-03-02 13:59:41

阅读数:1019

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭