CN105187565A - 一种利用网络存储数据的方法 - Google Patents
一种利用网络存储数据的方法 Download PDFInfo
- Publication number
- CN105187565A CN105187565A CN201510660935.7A CN201510660935A CN105187565A CN 105187565 A CN105187565 A CN 105187565A CN 201510660935 A CN201510660935 A CN 201510660935A CN 105187565 A CN105187565 A CN 105187565A
- Authority
- CN
- China
- Prior art keywords
- cloud platform
- client
- data server
- topology information
- access
- 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.)
- Pending
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/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)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种利用网络存储数据的方法,该方法包括在云平台存储系统中按照预定义散列算法对数据服务器的ID进行散列,并将各个数据服务器分布在整个散列值域的环上;每一个数据服务器周期性地向主节点发送心跳消息,主节点管理云平台的拓扑信息;客户端访问主节点获取云平台拓扑信息并缓存在本地,对文件名进行散列计算,确定对应的小文件所在数据服务器并进行读取或写入操作。本发明提出了一种新的面向小文件的云平台存储系统和存储方法,减少了连续读写小文件的网络连接次数,存储更轻量级,延迟更低,并降低了主节点负载,使其失效后服务恢复更快,整个存储系统可用性提高。
Description
技术领域
本发明涉及数据存储,特别涉及一种远程存储方法。
背景技术
近年来,网络服务都需要存储大量小文件,如图片、邮件、电子书、音乐文件、微博文本内容等。目前针对海量大文件的存储和处理系统主要存储元数据的节点和存储文件数据的节点在应用到海量小文件时,遇到很多问题:第一,海量小文件带来了大量的元数据。因为每个目录和文件的元数据信息都存放在名字节点的内存中,如果系统中存在大量的小文件,则无疑会降低整个云平台存储系统的存储效率和存储能力。第二,访问大量小文件的速度远远小于访问相同容量的几个大文件的速度。因为如果访问大量的小文件,需要不断地连接不同的数据服务器,这是一种低效的数据访问模式。而现有的面向海量小文件的云平台存储系统将小文件合并到大块中,虽然减少了小文件占用本地的节点的数目。但需要使用多个服务云平台单元完成存储文件功能,因此使得读写流程繁琐,一次读写需要建立多次网络连接。同时,也使用高负载的名字服务器,这使得现有小文件系统的可用性仍然较低。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种利用网络存储数据的方法,包括:
在云平台存储系统中将多个数据服务器在逻辑上组织成环,按照预定义散列算法对数据服务器的ID进行散列,并根据散列值将各个数据服务器分布在整个散列值域的环上;
云平台存储系统中设置一个主节点,每一个数据服务器周期性地向主节点发送其心跳消息,主节点接收这些消息用于管理云平台的拓扑信息;
客户端访问主节点获取云平台拓扑信息并缓存在本地,在客户端进行读取和写入时,对文件名进行散列计算,并确定对应的小文件所在的数据服务器,并在相应数据服务器中对小文件进行读取或写入操作。
优选地,执行以下步骤实现小文件写入过程:
(1)如果客户端是第一次访问云平台存储系统,则客户端访问主节点,请求云平台的拓扑信息,并记录到本地,在连续访问时,如果不是第一次访问云平台存储系统,则客户端本地已缓存了云平台的拓扑信息;
(2)客户端对文件名进行散列,并按照一致性散列算法决定该小文件应由哪一个数据服务器进行处理;
(3)客户端访问步骤(2)中得到的数据服务器,将客户端缓存的云平台拓扑信息、小文件的文件名、小文件内容缓冲区发送到该数据服务器;
(4)数据服务器首先判断客户端缓存的云平台拓扑信息是否过期,即对比数据服务器本身记录的云平台拓扑信息和客户端写请求消息中的云平台拓扑信息的版本号是否一致,如果一致,转步骤(5);如果不一致,则对比客户端写请求消息中的云平台拓扑信息,判断差异是否会影响本次写操作,如果不影响,标记为需要更新并转步骤(5),否则通知客户端写操作失败,并将新的云平台拓扑信息发送给客户端;
(5)数据服务器访问存取信息管理单元,检查该小文件的文件名是否已经存在,若存在,则通知客户端文件名已存在,否则转步骤(6);
(6)数据服务器通过文件块管理单元将小文件的内容写入块中,同时将文件块管理单元得到的存取信息和文件名以键值对形式写入存取信息管理单元,向客户端返回写入成功消息,如果设置了需要更新标记,则同时将新的云平台拓扑信息通知客户端,写操作结束。
本发明相比现有技术,具有以下优点:
本发明实现了一种新的面向小文件的云平台存储系统及其存储方法。有如下优点:
(1)在云平台拓扑信息没有变化时,连续读写小文件只需一次网络连接。
(2)使用键值对存储来管理文件名与对应存取信息的映射关系。存储更轻量,延迟更低。
(3)主节点负载低,失效后服务恢复更快,因此云平台存储系统可用性更高。
附图说明
图1是根据本发明实施例的利用网络存储数据的方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种利用网络存储数据的方法。图1是根据本发明实施例的利用网络存储数据的方法流程图。
本发明首先在云平台存储系统中将所有的数据服务器在逻辑上组织成环。云平台存储系统采用一致性散列方案,按照预定义散列算法对数据服务器的ID进行散列,并根据散列值将各个数据服务器分布在整个散列值域的环上。
云平台中设置一个主节点即主节点,每一个数据服务器周期性地向主节点发送其心跳消息,主节点接收这些消息,用于管理云平台的拓扑信息。主节点管理的云平台拓扑信息包括云平台中所有活动的数据服务器列表以及当前云平台拓扑信息的版本号。数据服务器列表中保存了每一个活动的数据服务器的ID和这个数据服务器所监听的IP地址和端口。云平台拓扑信息版本号用单调递增的时间戳表示。当云平台有新的数据服务器加入或者原有的数据服务器退出时,主节点重新生成一个云平台拓扑信息,并将这个云平台拓扑信息的版本号设置为当前时间戳,然后主节点将这个新的云平台拓扑信息发送到所有当前活动的数据服务器。这样所有的数据服务器都会保存同样的云平台全局信息。
客户端在本地缓存云平台拓扑信息。客户端第一次云平台时,会访问主节点获取云平台拓扑信息,并缓存在本地,后续读写时使用本地缓存的云平台拓扑信息。客户端进行读写时,首先根据文件名,按照一致性散列方案,对文件名进行散列计算,并确定该小文件所在的数据服务器。然后对比数据服务器保存的云平台拓扑信息和客户端保存的云平台拓扑信息的版本号,如果版本号一致,则在数据服务器进行实际的读写操作。
数据服务器有两个主要单元,一个是文件块管理单元,一个是存取信息管理单元。文件块管理单元使用小文件合并成大块的方案。云平台存储系统预先分配好较大的文件块,然后新写入的小文件会写入大块内。在已知小文件所在块号、小文件在块内偏移量和小文件大小这些存取信息的情况下,就可以从一个数据服务器中检索出该小文件。云平台存储系统使用键值对存储来管理文件名到存取信息的映射关系,即:
Key:filename→Value:(BlockId,Offset,Size)
本发明实现了一个具备持久化功能的键值对存储。用这个键值对存储来管理存取信息。
以下描述了云存储平台中的小文件写入流程:
(1)如果客户端是第一次访问云平台存储系统,则客户端访问主节点,请求云平台的拓扑信息,并记录到本地。在连续访问时,如果不是第一次访问云平台存储系统,则客户端本地已缓存了云平台的拓扑信息。
(2)客户端对文件名进行散列,并按照一致性散列算法决定该小文件应由哪一个数据服务器进行处理。
(3)客户端访问步骤(2)中得到的数据服务器,将客户端缓存的云平台拓扑信息、小文件的文件名、小文件内容缓冲区发送到该数据服务器。
(4)数据服务器首先判断客户端缓存的云平台拓扑信息是否过期,即对比数据服务器本身记录的云平台拓扑信息和客户端写请求消息中的云平台拓扑信息的版本号是否一致。如果一致,转步骤(5);如果不一致,则对比客户端写请求消息中的云平台拓扑信息,判断差异是否会影响本次写操作,如果不影响,标记为需要更新并转步骤(5),否则通知客户端写操作失败,并将新的云平台拓扑信息发送给客户端,写操作结束。
(5)数据服务器访问存取信息管理单元,检查该小文件的文件名是否已经存在。若存在,则通知客户端文件名已存在,否则转步骤(6)。
(6)数据服务器通过文件块管理单元将小文件的内容写入块中,同时将文件块管理单元得到的存取信息和文件名以键值对形式写入存取信息管理单元。向客户端返回写入成功消息,如果设置了需要更新标记,则同时将新的云平台拓扑信息通知客户端,写操作结束。
以下描述了云存储平台中的小文件读取流程:
(1)如果客户端是第一次访问云平台存储系统,则客户端访问主节点,请求云平台的拓扑信息,并记录到本地。连续访问时,如果不是第一次访问云平台存储系统,则客户端本地已缓存了云平台的拓扑信息。
(2)客户端对文件名进行散列,并按照一致性散列算法决定该小文件应由哪一个数据服务器进行处理。
(3)客户端访问步骤(2)中得到的数据服务器,判断客户端读请求中附带的云平台拓扑信息是否与本地数据服务器记录的云平台拓扑信息版本号一致。如果一致,转步骤(4);如果不一致,标记需要更新。
(4)数据服务器向存取信息管理单元查询该小文件的文件名,检查该小文件文件名是否存在。如果存在,读取出存取信息,转步骤(5);如果不存在,则向客户端发送文件不存在消息,若步骤(3)设置了需要更新标记,则将新的云平台拓扑信息附带在文件不存在消息中,通知客户端更新缓存中的云平台拓扑信息,读操作结束。
(5)数据服务器通过步骤(4)中得到的存取信息,从文件块管理单元中读取小文件内容,并发送给客户端,如果标记了需要更新,则将新的云平台拓扑信息附带在该消息中,读操作结束。
从上述读写流程可以看出,连续访问的情况下,云平台存储系统客户端在第一次访问主节点后,读取到云平台拓扑信息,并在客户端缓存。在云平台拓扑没有发生变化时,客户端后续的读写操作根据客户端已经缓存的云平台拓扑信息能够直接确定客户端需要访问的数据服务器,客户端访问这个数据服务器完成一次读请求或写请求。
在云平台拓扑发生变化时,客户端后续的读写请求首先根据客户端之前缓存的陈旧的云平台拓扑信息,确定要访问的数据服务器。如果客户端连接成功,并正确进行了读取或者写入,则表明数据服务器判断出此时云平台拓扑变化(新增节点或者有节点退出)并没有影响到该小文件的读写请求,同时客户端再完成此次读写请求后能够从请求消息中读取出附带的最新的云平台拓扑信息,更新客户端本地陈旧的云平台拓扑信息缓存。再后续的读写请求就可以用最新的云平台拓扑信息来访问云平台存储系统云平台。如果连接不成功,表明想要访问的节点已经失效退出,客户端需要多一次访问主节点,获取当前最新的云平台拓扑信息,重新进行读写。如果访问成功但数据服务器判断出云平台拓扑变化影响了此次读写请求,则数据服务器回复客户端读写失败,并将最新的云平台拓扑信息附带给客户端,客户端重新进行读写。因此云平台存储系统简化了读写流程,减少了每次读写过程中的网络连接次数。实验结果证明,这种改进能够有效降低延迟。另外,云平台存储系统使用更轻量级的键值对存储来管理存取信息。在存取信息比较多,连续写入存取信息的情况下,键值对存储往往会在性能上比传统数据库如MySQL表现出更低的延迟和更高的吞吐量。
综上所述,本发明提出了一种新的面向小文件的云平台存储系统和存储方法,减少了连续读写小文件的网络连接次数,存储更轻量级,延迟更低,并降低了主节点负载,使其失效后服务恢复更快,整个存储系统可用性提高。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在云平台存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (2)
1.一种利用网络存储数据的方法,其特征在于,包括:
在云平台存储系统中将多个数据服务器在逻辑上组织成环,按照预定义散列算法对数据服务器的ID进行散列,并根据散列值将各个数据服务器分布在整个散列值域的环上;
云平台存储系统中设置一个主节点,每一个数据服务器周期性地向主节点发送其心跳消息,主节点接收这些消息用于管理云平台的拓扑信息;
客户端访问主节点获取云平台拓扑信息并缓存在本地,在客户端进行读取和写入时,对文件名进行散列计算,并确定对应的小文件所在的数据服务器,并在相应数据服务器中对小文件进行读取或写入操作。
2.根据权利要求1所述的方法,其特征在于,进一步包括,执行以下步骤实现小文件写入过程:
(1)如果客户端是第一次访问云平台存储系统,则客户端访问主节点,请求云平台的拓扑信息,并记录到本地,在连续访问时,如果不是第一次访问云平台存储系统,则客户端本地已缓存了云平台的拓扑信息;
(2)客户端对文件名进行散列,并按照一致性散列算法决定该小文件应由哪一个数据服务器进行处理;
(3)客户端访问步骤(2)中得到的数据服务器,将客户端缓存的云平台拓扑信息、小文件的文件名、小文件内容缓冲区发送到该数据服务器;
(4)数据服务器首先判断客户端缓存的云平台拓扑信息是否过期,即对比数据服务器本身记录的云平台拓扑信息和客户端写请求消息中的云平台拓扑信息的版本号是否一致,如果一致,转步骤(5);如果不一致,则对比客户端写请求消息中的云平台拓扑信息,判断差异是否会影响本次写操作,如果不影响,标记为需要更新并转步骤(5),否则通知客户端写操作失败,并将新的云平台拓扑信息发送给客户端;
(5)数据服务器访问存取信息管理单元,检查该小文件的文件名是否已经存在,若存在,则通知客户端文件名已存在,否则转步骤(6);
(6)数据服务器通过文件块管理单元将小文件的内容写入块中,同时将文件块管理单元得到的存取信息和文件名以键值对形式写入存取信息管理单元,向客户端返回写入成功消息,如果设置了需要更新标记,则同时将新的云平台拓扑信息通知客户端,写操作结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510660935.7A CN105187565A (zh) | 2015-10-14 | 2015-10-14 | 一种利用网络存储数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510660935.7A CN105187565A (zh) | 2015-10-14 | 2015-10-14 | 一种利用网络存储数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105187565A true CN105187565A (zh) | 2015-12-23 |
Family
ID=54909404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510660935.7A Pending CN105187565A (zh) | 2015-10-14 | 2015-10-14 | 一种利用网络存储数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187565A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634965A (zh) * | 2018-12-17 | 2019-04-16 | 郑州云海信息技术有限公司 | 背板配置信息访问方法、装置、设备及介质 |
CN112714155A (zh) * | 2020-12-14 | 2021-04-27 | 国电南瑞科技股份有限公司 | 基于端云协同服务的电力运行数据一致性校验方法及装置 |
CN114745281A (zh) * | 2022-04-11 | 2022-07-12 | 京东科技信息技术有限公司 | 一种数据处理的方法和装置 |
CN116541537A (zh) * | 2023-06-06 | 2023-08-04 | 简单汇信息科技(广州)有限公司 | 一种基于知识图谱的企业贸易信息可视化展示方法 |
CN116541365A (zh) * | 2023-07-06 | 2023-08-04 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储系统及其处理方法 |
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN104965845A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种小文件的定位方法及系统 |
-
2015
- 2015-10-14 CN CN201510660935.7A patent/CN105187565A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143215A (zh) * | 2011-01-20 | 2011-08-03 | 中国人民解放军理工大学 | 一种基于网络的pb级云存储系统及其处理方法 |
CN103501319A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种低延迟的面向小文件的分布式存储系统 |
CN104965845A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种小文件的定位方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634965A (zh) * | 2018-12-17 | 2019-04-16 | 郑州云海信息技术有限公司 | 背板配置信息访问方法、装置、设备及介质 |
CN109634965B (zh) * | 2018-12-17 | 2021-10-29 | 郑州云海信息技术有限公司 | 背板配置信息访问方法、装置、设备及介质 |
CN112714155A (zh) * | 2020-12-14 | 2021-04-27 | 国电南瑞科技股份有限公司 | 基于端云协同服务的电力运行数据一致性校验方法及装置 |
CN114745281A (zh) * | 2022-04-11 | 2022-07-12 | 京东科技信息技术有限公司 | 一种数据处理的方法和装置 |
CN114745281B (zh) * | 2022-04-11 | 2023-12-05 | 京东科技信息技术有限公司 | 一种数据处理的方法和装置 |
CN116541537A (zh) * | 2023-06-06 | 2023-08-04 | 简单汇信息科技(广州)有限公司 | 一种基于知识图谱的企业贸易信息可视化展示方法 |
CN116541537B (zh) * | 2023-06-06 | 2023-11-03 | 简单汇信息科技(广州)有限公司 | 一种基于知识图谱的企业贸易信息可视化展示方法 |
CN116541365A (zh) * | 2023-07-06 | 2023-08-04 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
CN116541365B (zh) * | 2023-07-06 | 2023-09-15 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198356B2 (en) | Distributed cache nodes to send redo log records and receive acknowledgments to satisfy a write quorum requirement | |
US9547706B2 (en) | Using colocation hints to facilitate accessing a distributed data storage system | |
US9715507B2 (en) | Techniques for reconciling metadata and data in a cloud storage system without service interruption | |
US9699017B1 (en) | Dynamic utilization of bandwidth for a quorum-based distributed storage system | |
CN107025243B (zh) | 一种资源数据的查询方法、查询客户端和查询系统 | |
US9317213B1 (en) | Efficient storage of variably-sized data objects in a data store | |
US9330108B2 (en) | Multi-site heat map management | |
US20200344128A1 (en) | Storage capacity evaluation method based on content delivery network application and device thereof | |
US20130339314A1 (en) | Elimination of duplicate objects in storage clusters | |
US9405643B2 (en) | Multi-level lookup architecture to facilitate failure recovery | |
US20100312749A1 (en) | Scalable lookup service for distributed database | |
CN104111804A (zh) | 一种分布式文件系统 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
CN105187565A (zh) | 一种利用网络存储数据的方法 | |
CN104184812B (zh) | 一种基于私有云的多点数据传输方法 | |
EP2710477B1 (en) | Distributed caching and cache analysis | |
CN107003814A (zh) | 存储系统中的有效元数据 | |
CN106599308A (zh) | 一种分布式元数据管理方法及系统 | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储系统 | |
CN104660643A (zh) | 请求响应方法、装置及分布式文件系统 | |
CN105159845A (zh) | 存储器读取方法 | |
CN109522283A (zh) | 一种重复数据删除方法及系统 | |
US20170351620A1 (en) | Caching Framework for Big-Data Engines in the Cloud | |
CN108347459A (zh) | 一种云端数据快速存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151223 |
|
RJ01 | Rejection of invention patent application after publication |