[发明专利]嵌入式网络存储系统及其方法无效
申请号: | 201010300791.1 | 申请日: | 2010-01-27 |
公开(公告)号: | CN101789976A | 公开(公告)日: | 2010-07-28 |
发明(设计)人: | 李小勇;郑涔;战科宇 | 申请(专利权)人: | 上海交通大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王锡麟;王桂忠 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 网络 存储系统 及其 方法 | ||
1.一种嵌入式网络存储系统的存储方法,其特征在于,该存储方法包括以下 步骤:
第一步,NFS服务器端根据己知的文件名F,为文件F分配N1字节大小的连续 空间,并向文件F写入N1个空字符“NULL”;
第二步,NFS服务器端进入只写不读的应用情景,启动入NFS服务,输出共享 目录D,此时NFS服务器端的接收请求模块和RPC服务模块处于运行状态,监听NFS 客户端的请求;
第三步,当NFS客户端向NFS服务器端发送RPC请求,请求挂载NFS服务器端 输出的共享目录D至本地文件系统,NFS服务器端的接收请求模块将该请求放入请 求队列,而NFS服务器端的处理请求模块从请求队列中取出该请求并进行处理;
第四步,NFS客户端挂载共享目录D成功后,再次向NFS服务器端发送RPC请 求,请求写该目录中的文件F,NFS服务器端的接收请求模块将该请求放入请求队列, 而NFS服务器端的处理请求模块从请求队列中取出该请求,从而完成NSF服务器端 处理写文件的请求,NFS客户端收到NFS服务器端的写文件的应答报文;
第五步,NFS服务器端进入只读不写的应用情景,用户在NFS服务器端获取文 件真实大小后,进行本地系统调用执行ftruncate操作对文件重新设置大小;
第六步,NFS客户端向NFS服务器端发送RPC请求,请求读目录D中的文件F,NFS 服务器端的接收请求模块将该请求放入请求队列,NFS服务器端的处理请求模块从 请求队列中取出该请求并进行处理,从而完成NFS服务器端处理读文件的请求,NFS 客户端收到NFS服务器端的读文件的应答报文。
2.根据权利要求1所述的嵌入式网络存储系统的存储方法,其特征是,所述 的NFS服务器端处理写文件的请求,具体步骤为:
1)处理请求模块调用FCB管理模块根据文件句柄查找FCB数组,当找到FCB结 构后,执行3);否则执行2);
2)处理请求模块将文件句柄转换为文件名,并调用FCR管理模块创建一个该文 件的FCB结构,放入FCB数组中;
3)处理请求模块调用FCB管理模块打开FCB,若文件未打开过,进行本地系统 调用open()打开文件,并将文件描述符存放到FCB中,若文件已打开,直接获取 其文件描述符;
4)处理请求模块根据文件描述符对该文件进行写操作,若写入文件大小超过 第一步中预分配的文件范围,使用文件系统自动为其分配的空间,写完后不关闭文 件,调用RPC服务模块将结果封装成RPC应答报文返回给NFS客户端。
3.根据权利要求1所述的嵌入式网络存储系统的存储方法,其特征是,所述 的获取文件真实大小,具体步骤为:
1)设定置信长度N2,并设定一个低端L和高端H用于限定查找范围,L的初 始值为文件头,即第1个字节,H的初始值为文件尾,即第N1个字节;
2)判断N1与置信长度N2的大小,当N1小于N2时,从文件末尾起向前扫描 文件直到第一个非“NULL”字符作为文件真实大小的末端;当N1大于N2时,找到 (L,H)的中间字符,即第(N1+1)/2个字节或第N1/2个字符;
3)判断该字符是否是“NULL”;
4)当该字符为非“NULL”,则将L置为该字符之后的一个字节,找到(L,H) 的中间字符,返回3);当字符为“NULL”,则从该字符起向前扫描,统计前面的连 续“NULL”字符的数量N3,若N3达到置信长度N2,停止统计;
5)判断N3与置信长度N2的大小,当N3等于置信长度N2,则将H置为该字 符之前的一个字节,找到(L,H)的中间字符,返回3);当N3小于置信长度N2, 则从该字符起向后扫描,统计后面的连续“NULL”字符的数量N4,若N3+N4达到置 信长度N2,停止统计;
6)判断N3+N4与置信长度N2的大小,当N3+N4小于置信长度N2,则将L 置为该字符之后的一个字节,找到(L,H)的中间字符,返回3);当N3+N4等于置 信长度N2,则从该字符起向前扫描文件直到第一个非“NULL”字符作为文件真实大 小的末端。
4.根据权利要求1所述的嵌入式网络存储系统的存储方法,其特征是,所述 的NFS服务器端处理读文件的请求,具体步骤为:
l)处理请求模块调用FCB管理模块根据文件句柄查找FCB数组,当找到FCB 结构时,执行3);当没有找到FCB结构时,执行2);
2)处理请求模块将文件句柄转换为文件名,并调用FCB管理模块创建一个该 文件的FCB结构,放入FCB数组中;
3)处理请求模块调用FCB管理模块打开FCB,若该文件未打开过,进行本地系 统调用open()打开文件,并将文件描述符存放到FCB中;若文件己打开,直接获 取其文件描述符;
4)处理请求模块根据文件描述符对该文件进行读操作,读完后不关闭文件, 调用RPC服务模块将结果封装成RPC应答报文返回给NFS客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010300791.1/1.html,转载请声明来源钻瓜专利网。