CN105407044B - 一种基于nfs的云存储网关系统的实现方法 - Google Patents
一种基于nfs的云存储网关系统的实现方法 Download PDFInfo
- Publication number
- CN105407044B CN105407044B CN201510924495.1A CN201510924495A CN105407044B CN 105407044 B CN105407044 B CN 105407044B CN 201510924495 A CN201510924495 A CN 201510924495A CN 105407044 B CN105407044 B CN 105407044B
- Authority
- CN
- China
- Prior art keywords
- file
- cloud storage
- storage gateway
- client
- nfs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于NFS的云存储网关系统的实现方法:接收客户端的写文件请求和具体文件内容;将文件写入云存储网关的本地文件系统;将本地文件系统上的文件上传到云存储中;清空本地文件系统上的文件内容;接收读文件请求时判断文件的存储位置,从正确的位置进行文件读取,本发明基于NFS的云存储网关系统的实现方法具有实用性强和开发成本低等优点。
Description
技术领域
本发明涉及云存储和传统存储协议领域,具体涉及一种基于NFS的云存储网关系统的实现方法。
背景技术
云存储技术是信息化时代数据不断增长的背景下诞生的一种新兴的网络存储技术。云存储是在云计算的基础上扩展出来的一种技术,是通过机器集群、网络、分布式文件系统等技术将不同的存储设备集中起来协同工作,对外提供数据存储和业务访问的系统。云存储技术正处在高速发展的时期,国内外已经出现了很多相对成功的云存储系统。拥有可弹性扩容、安全可靠、价格低廉等优点的云存储服务是未来的发展方向,云存储技术是可见未来内解决数据增长问题的最好技术之一。
云存储网关就是为了解决云存储和传统存储之间接口不匹配的问题而提出来的。大多数云存储服务都使用基于HTTP REST(Representational State Transfer)协议或者SOAP(Simple Object Access Protocol)协议制定的接口,而不提供传统存储协议接口。对于大量成熟稳定的传统应用而言,云存储接口无法直接使用。云存储网关可以将REST或者SOAP形式的云存储接口翻译转换为传统存储协议。云存储网关完成的功能就是云存储接口和传统存储之间协议转换功能,把云存储服务无缝整合到现有的软硬件系统中,满足传统应用的扩容需求。
NFS是一种分散式文件系统的协议,实现的功能是通过网络实现跨主机,跨操作系统分享文件。NFS是C/S结构,并提供了与文件系统相同的接口。客户端挂载服务器的相应目录,之后就能使用POSIX标准系统调用进行文件访问和文件操作。在传统应用中,NFS被广泛地使用。
现有的云存储网关系统由于删除本地文件步骤使得系统引入了更为复杂的处理方法,致使云存储网关技术的实现较为困难,开发成本较高。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种基于NFS的云存储网关系统的实现方法,该方法降低了云存储网关系统的实现难度。
为达到上述目的,本发明采用了以下技术方案:
S1、接收客户端的写文件请求和具体文件内容;
S2、将客户端请求写入的文件写入云存储网关的本地文件系统;
S3、将所述本地文件系统上的部分或全部文件上传到云存储中;
S4、清空所述本地文件系统中已上传至云存储的文件所对应的文件内容,保留空文件;
S5、接收客户端的读文件请求时判断需要读取的文件的存储位置,然后进行文件读取;
所述步骤S1、S2以及S5属于第一异步线程,所述步骤S3以及S4属于第二异步线程。
所述实现方法还包括以下步骤:客户端在使用云存储网关之前将云存储网关挂载在自身文件系统,客户端与云存储网关之间使用NFS协议进行通信。
所述步骤S2具体包括以下步骤:
(2-1)云存储网关将客户端请求写入的文件按照客户端的请求写在所述本地文件系统中的指定路径内;
(2-2)经过步骤(2-1)后,在文件信息表中新建一条记录用于存储新写入文件的文件信息。
所述步骤S3具体包括以下步骤:
(3-1)在文件上传到云存储前,使用对称加密算法对要上传的文件进行加密处理;
(3-2)利用云存储的API将加密处理后的文件上传到云存储;
(3-3)文件上传到云存储后,将文件信息表中的相应文件记录中的文件位置标记为云存储。
所述步骤S4具体包括以下步骤:
(4-1)使用系统调用清空文件内容;
(4-2)在文件内容清空的同时保留空文件。
所述步骤S5具体包括以下步骤:
(5-1)通过查询文件信息表判断客户端请求读取的文件的位置是位于云存储网关的本地文件系统还是位于云存储中;
(5-2)情况一:若客户端请求读取的文件位于云存储网关的本地文件系统,则直接从云存储网关的本地文件系统进行读取;情况二:若客户端请求读取的文件位于云存储,则首先从云存储中下载该文件至云存储网关的本地文件系统,再从云存储网关的本地文件系统进行文件读取,同时更新文件信息表中的文件位置信息。
所述情况二中,客户端请求读取的文件下载并覆盖云存储网关的本地文件系统中保留的该文件的空文件。
所述更新文件信息表中的文件位置信息是指将文件信息表中的相应文件记录中的文件位置标记为云存储网关。
所述第一异步线程处理客户端的请求,第二异步线程处理文件上传的事务。
所述第一异步线程和第二异步线程并行工作。
本发明的有益效果体现在:
本发明针对当前云存储网关不能很好地承载传统应用而提出一种基于NFS的云存储网关系统。客户端根据NFS协议格式发出写文件请求,将文件内容发送到云存储网关。云存储网关接收写文件请求和文件内容,并将文件存储在本地文件系统上。云存储网关在适当的时机将本地文件系统上的文件上传到云存储上,以节省云存储网关本地的存储空间,间接地存储更多的文件。云存储网关在上传文件到云存储之后并不彻底删除本地文件,而只是清空文件内容,清空文件内容就能达到节省存储空间的目的。客户端在需要读取文件时发送读文件请求到云存储网关,云存储网关判断文件是否被上传到云存储,若文件未被上传到云存储,则从云存储网关本地文件系统读取文件;若文件位于云存储,则从云存储下载文件后再进行文件读取操作。本发明能够解决云存储和传统存储之间接口不匹配的问题。把云存储服务无缝整合到现有的软硬件系统中,满足传统应用的扩容需求,提高云存储网关承载传统应用的能力。当云存储网关上传文件时只清空文件内容而不删除文件的步骤可以避免由于删除文件而引入的复杂的处理方法,极大降低云存储网关的开发难度。
进一步的,云存储网关将本地文件系统中的文件上传之后保留空文件,这样可以解决不保留空文件就难以实现硬链接文件支持的问题。同时保留空文件可以让文件句柄的生成使用通用的文件句柄函数。
进一步的,处理客户端的NFS请求部分和云存储网关上传文件到云存储部分分开到两个异步线程中,一个异步线程专门处理客户端的NFS请求,可以加快云存储网关对客户端的响应速度。
附图说明
图1是云存储网关系统整体示意图。
图2是写文件过程交互图。
图3a是读文件(位于本地)过程交互图。
图3b是读文件(位于云存储)过程交互图。
图4是文件上传过程交互图。
具体实施方式
下面结合附图和实施例对本发明作详细的描述,但本发明的实施方式不限于此。
参见图1,本发明所述基于NFS的云存储网关系统在功能上主要分为两个部分,处理客户端请求部分以及文件上传部分。两个部分分属云存储网关上两个不同的异步线程,采取的处理策略为一个线程处理客户端的请求,另一个线程处理文件上传的事务。处理客户端请求部分主要是实现接收客户端的NFS请求,对NFS请求进行响应;文件上传部分实现的是将云存储网关本地文件系统中的文件进行上传处理,节省云存储网关的本地存储空间。
所述处理客户端请求部分包括步骤S1、S2、S5;所述文件上传部分包括步骤S3、S4。主要工作流程如下:
S1、接收客户端的写文件请求和具体文件内容
云存储网关启动服务,监听客户端的MOUNT挂载请求。客户端在使用云存储网关之前先利用MOUNT协议将云存储网关(同时也作为NFS服务器)挂载在自身文件系统;
后续客户端与云存储网关之间的所有操作均使用NFS标准协议格式进行通信。
S2、将文件写入云存储网关的本地文件系统
参见图2,云存储网关解析客户端的NFS请求,将客户端请求写入的文件按照客户端的请求写入本地文件系统中的指定路径内;
在文件信息表中新建一条记录用于存储新写入文件的文件信息,文件信息表存储在MySQL数据库中(文件信息表可以存储在关系型数据库中,例如,MySQL数据库,但并不限定文件信息表的数据格式以及存储方式),文件信息表中记录文件的属性,包括文件的自有属性和附加属性,自有属性指文件在文件系统中的文件属性,附加属性指能让云存储网关正常运行的除自有属性之外的所有属性。每个客户端写入的文件均在文件信息表中有一条相应的记录。基于文件信息表的目录查询可以使用系统调用,这个在文件数量变大之后更能体现出优势,使用系统调用可以避免在数量巨大的文件信息表中进行全表查询。
S3、将本地文件系统上的文件上传到云存储中
参见图4,为了节省云存储网关本地存储容量,能够在云存储网关上存储更多文件,需要将部分闲置的文件上传到云存储中。在文件上传之前使用对称加密算法DES对要上传的文件进行加密处理;
利用云存储提供的API将文件上传到云存储,实际的云存储网关系统中并不局限于某种特定的云存储,也不局限于某种特定的云存储API;
文件上传之后将文件信息表中的相应文件记录中的其中一个附加属性——文件位置标记为云存储。
S4、文件上传之后,清空本地文件系统上的已上传文件的文件内容
参见图4,使用truncate系统调用将文件的大小截断为0,即将文件内容清空;
只将文件内容清空,但是并不删除云存储网关本地文件系统的文件,而是保留空文件,保留的空文件可以保证该文件在本地文件系统中的属性不被销毁,避免由于文件的自有属性销毁后可能导致的错误。
S5、接收读文件请求时判断文件的存储位置,从正确的位置进行文件读取。
接收到客户端的读文件请求时首先查询文件信息表,读取文件的位置信息,判断文件位于云存储网关本地文件系统还是位于云存储中;
参见图3a,若文件位于云存储网关本地文件系统,则直接从本地文件系统进行读取,并将结果返回给客户端;
参见图3b,若文件位于云存储,则首先利用云存储API下载文件,直接将下载文件覆盖到S4保留的空文件(这个空文件就是之前上传下载文件时保留的)上,再使用常规的文件读取方式进行文件读取,最后更新文件信息表中的文件位置信息为云存储网关。
实际情况并不完全按照上述步骤顺序执行,云存储网关接收到客户端的写文件请求便执行步骤S1、S2,接收到读文件请求便执行步骤S5;云存储网关在存储容量告急的时候执行步骤S3、S4来节省云存储网关的存储容量。两个异步线程并行工作,以提高程序效率。
总之,当云存储网关的客户端是传统应用时,本发明基于NFS的云存储网关通过NFS协议与云存储API之间的协议转换,使传统应用可以像使用本地文件系统一样使用云存储资源,为传统应用解决存储资源消耗问题,在信息化时代数据不断增长的背景下满足传统应用的扩容需求,并提升传统应用升级扩容的快速响应能力,具有实用性强和开发成本低等优点。
Claims (9)
1.一种基于NFS的云存储网关系统的实现方法,其特征在于:包括以下步骤:
S1、客户端在使用云存储网关之前将云存储网关挂载在自身文件系统,客户端与云存储网关之间使用NFS协议进行通信,客户端根据NFS协议格式发出写文件请求,将文件内容发送到云存储网关,云存储网关接收客户端的写文件请求和具体文件内容;
S2、将客户端请求写入的文件写入云存储网关的本地文件系统;
S3、将所述本地文件系统上的部分或全部文件内容上传到云存储中;
S4、清空所述本地文件系统中已上传至云存储的文件所对应的文件内容,保留空文件;
S5、接收客户端的读文件请求时判断需要读取的文件的存储位置,然后进行文件读取;
所述步骤S1、S2以及S5属于第一异步线程,所述步骤S3以及S4属于第二异步线程。
2.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述步骤S2具体包括以下步骤:
(2-1)云存储网关将客户端请求写入的文件按照客户端的请求写在所述本地文件系统中的指定路径内;
(2-2)经过步骤(2-1)后,在文件信息表中新建一条记录用于存储新写入文件的文件信息。
3.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述步骤S3具体包括以下步骤:
(3-1)在文件上传到云存储前,使用对称加密算法对要上传的文件进行加密处理;
(3-2)利用云存储的API将加密处理后的文件上传到云存储;
(3-3)文件上传到云存储后,将文件信息表中的相应文件记录中的文件位置标记为云存储。
4.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述步骤S4具体包括以下步骤:
(4-1)使用系统调用以清空文件内容;
(4-2)在文件内容清空的同时保留空文件。
5.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述步骤S5具体包括以下步骤:
(5-1)通过查询文件信息表判断客户端请求读取的文件的位置是位于云存储网关的本地文件系统还是位于云存储中;
(5-2)情况一:若客户端请求读取的文件位于云存储网关的本地文件系统,则直接从云存储网关的本地文件系统进行读取;情况二:若客户端请求读取的文件位于云存储,则首先从云存储中下载该文件至云存储网关的本地文件系统,再从云存储网关的本地文件系统进行文件读取,同时更新文件信息表中的文件位置信息。
6.根据权利要求5所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述情况二中,客户端请求读取的文件下载并覆盖云存储网关的本地文件系统中保留的该文件的空文件。
7.根据权利要求5所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述更新文件信息表中的文件位置信息是指将文件信息表中的相应文件记录中的文件位置标记为云存储网关。
8.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述第一异步线程处理客户端的请求,第二异步线程处理文件上传的事务。
9.根据权利要求1所述一种基于NFS的云存储网关系统的实现方法,其特征在于:所述第一异步线程和第二异步线程并行工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510924495.1A CN105407044B (zh) | 2015-12-11 | 2015-12-11 | 一种基于nfs的云存储网关系统的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510924495.1A CN105407044B (zh) | 2015-12-11 | 2015-12-11 | 一种基于nfs的云存储网关系统的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105407044A CN105407044A (zh) | 2016-03-16 |
CN105407044B true CN105407044B (zh) | 2019-03-01 |
Family
ID=55472303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510924495.1A Active CN105407044B (zh) | 2015-12-11 | 2015-12-11 | 一种基于nfs的云存储网关系统的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105407044B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790434B (zh) * | 2016-12-05 | 2020-03-27 | 上海爱数信息技术股份有限公司 | 网络数据的管理方法、网络附属存储网关及存储服务系统 |
CN106844100A (zh) * | 2016-12-30 | 2017-06-13 | 江苏天联信息科技发展有限公司 | 日志文件存储方法及装置 |
CN110019021A (zh) * | 2017-10-25 | 2019-07-16 | 凯迈(洛阳)机电有限公司 | 一种Windows系统与centos系统中NFS目录数据的传输方法 |
CN108989400A (zh) * | 2018-06-28 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种云存储网关读写文件的方法、装置及设备 |
CN111880737A (zh) * | 2020-07-28 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置、设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092672A (zh) * | 2014-06-26 | 2014-10-08 | 安徽云盾信息技术有限公司 | 一种采用密文存储网关对信息进行加解密的方法 |
CN104092758B (zh) * | 2014-07-14 | 2018-01-12 | 南京斯坦德云科技股份有限公司 | 一种分布式高速云存储服务器集群系统的读取方法 |
-
2015
- 2015-12-11 CN CN201510924495.1A patent/CN105407044B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于NFS的云存储网关关键技术研究及系统实现;钟林;《中国优秀硕士学位论文全文数据库》;20151215;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105407044A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105407044B (zh) | 一种基于nfs的云存储网关系统的实现方法 | |
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN100518131C (zh) | 网格数据副本管理系统 | |
US20190188187A1 (en) | Method for seamless access to a cloud storage system by an endpoint device using metadata | |
CN103714123B (zh) | 企业云存储分块对象重复数据删除和重组版本控制方法 | |
RU2346323C2 (ru) | Система и способ усовершенствованной синхронизации между сервером и клиентом | |
CN104573068A (zh) | 一种基于大数据的信息处理方法 | |
CN104133882A (zh) | 一种基于hdfs的小文件处理方法 | |
JP5585062B2 (ja) | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム | |
CN107045422A (zh) | 分布式存储方法和设备 | |
CN103095769B (zh) | 跨机房的数据同步方法以及系统 | |
US10122665B2 (en) | Distributed synchronization data in a message management service | |
CN103605698A (zh) | 一种用于分布异构数据资源整合的云数据库系统 | |
CN106294870B (zh) | 基于对象的分布式云存储方法 | |
CN103237046A (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
US8489694B2 (en) | Peer-to-peer collaboration of publishers in a publish-subscription environment | |
US20220035786A1 (en) | Distributed database management system with dynamically split b-tree indexes | |
CN103279474A (zh) | 一种视频文件索引方法及系统 | |
CN111177159B (zh) | 一种数据处理的系统、方法和数据更新设备 | |
CN112653730A (zh) | 一种用户态网络文件存储方法和系统 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN102238223B (zh) | 一种面向移动设备的网络化个人数据管理方法 | |
CN105354250A (zh) | 一种面向云存储的数据存储方法及装置 | |
CN109756573A (zh) | 一种基于区块链的文件系统 | |
CN111491037A (zh) | 通过sftp数据流与对象存储服务器的通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |