一种云存储客户端及其高效数据访问方法
【技术领域】
[0001]本申请涉及计算机存储技术领域,具体涉及一种云存储系统客户端及其高效数据访问方法。
【背景技术】
[0002]随着信息化程度的不断提高,全球数据日益膨胀。面对当前海量数据存储需求,传统的存储系统在容量和性能的扩展上存在瓶颈。云存储以其扩展性强、性价比高、容错性好等优势得到了业界的广泛认同。云存储是通过集群应用、网格技术、分布式文件系统等,将网络中大量类型各异的存储设备整合起来,并对外提供数据存储和业务访问功能的系统。简单来说,云存储是对虚拟化存储资源的管理和使用。云存储是存储领域一个新的概念,其目前已成为学术界和工业界的一个研宄热点。
[0003]区别于传统的存储技术,云存储提供了更好的可扩展性,当需增加存储能力时,只需添加服务器即可实现,而不需要对存储系统的结构进行重新设计;同时随着存储能力的增加,云存储系统的性能不会下降。目前,云存储的兴起正在颠覆传统的存储系统架构,其正以良好的可扩展性、性价比和容错性等优势得到业界的广泛认同。
[0004]云存储客户端程序作为云存储系统的结构模型中的访问层,对外提供数据存储和业务访问功能。用户可以将本地电脑的文件通过云存储客户端保存到云存储服务器中,也可以通过客户端提供的接口直接进行业务访问。同时用户随时通过其它安装有云存储客户端的电脑,快速地访问和获取属于存储于云端的文件。
[0005]在现有技术中,一种策略是,客户端的每次操作请求都直接发送到服务端,这样频繁的对服务端的访问会加大服务端的负担,导致服务端响应慢。另外,对于文件的读写操作,一种策略是只从一台存储服务节点上读取或写数据,这样会导致该台存储节点压力过大,而其他存储节点处于空闲中,即没有充分利用网络带宽。
【发明内容】
[0006]本申请提供了一种云存储客户端及其高效数据访问方法,能够提高云存储系统的访问能力,解决访问云存储服务端数据的响应速度慢,并发效率低,带宽利用率低的缺陷。
[0007]本申请实施例提供的一种云存储客户端高效数据访问方法,文件分为元数据和数据,其中元数据存储在云服务端的元数据服务节点,数据存储在云服务端的存储服务节点,数据按照一定大小划分为数据块,允许同一文件不同数据块并发访问;该方法包括如下步骤:
[0008]A、客户端根据用户操作,生成文件访问请求;
[0009]B、查询所述文件访问请求所要访问文件的元数据在客户端本地是否有相应缓存,若是,执行步骤D,否则执行步骤C ;
[0010]C、客户端从云服务端元数据服务节点上下载元数据,更新客户端本地的元数据缓存,并结束本流程;
[0011]D、从客户端本地的元数据缓存中读取对应的元数据信息。
[0012]较佳地,步骤D包括:将元数据操作缓存在队列中,采用异步方式对元数据进行批量处理。
[0013]较佳地,步骤C或步骤D之后进一步包括:
[0014]判断是否读写文件内容,若是,并发向云服务端存储服务节点读写数据。
[0015]较佳地,对于写操作,根据预定的写缓存大小缓存一定的数据,定时分块并发传送到相应的云服务端的存储服务节点上。
[0016]较佳地,对于读操作,根据预取的大小和预取的偏移量,决定到对应的云服务端存储服务节点上预取部分数据。
[0017]本申请实施例还提供了一种云存储客户端,包括元数据缓存管理模块、数据缓存及读写处理模块和元数据批量处理模块;
[0018]元数据缓存管理模块,用于缓存元数据基本属性信息;若客户端请求的文件信息在元数据缓存管理模块中时,直接从元数据缓存管理模块中返回信息;
[0019]数据缓存及读写处理模块,对于写操作,根据预定的写缓存大小缓存一定的数据,定时分块并发传送到相应的云服务端的存储服务节点上,其中不同的数据块可能存储在不同的存储服务节点也可能存储在相同的存储服务节点;对于读操作,根据预取的大小和预取的偏移量决定到对应的云服务端存储服务节点上预取部分数据到数据缓存及读写处理模块中;
[0020]元数据批量处理模块,用于将元数据操作缓存到队列中,采用异步方式对元数据进行批量处理。
[0021]较佳地,该云存储客户端进一步包括:
[0022]异步和超时处理模块,用于对于实时性要求高的数据访问操作,采用异步和超时处理:对于读访问,预读某个数据块一旦读超时立即重试读另一个复制块,达到及时取回所需的数据块到数据缓存及读写处理模块中;对于写访问,采取异步方式,采集到的数据块写入数据缓存及读写处理模块后立即返回,由另一个专门的传输线程将数据缓存及读写处理模块中的数据刷新到云服务端。
[0023]从以上技术方案可以看出,通过元数据和数据分开存储在不同服务节点,数据分块并发传输方式,提高了带宽利用率;通过异步和超时处理机制缩短了访问数据的响应时间;通过元数据缓存和数据缓冲区减少了网络请求量,加快了数据处理;通过批量处理小文件访问请求减少了对元数据服务器的负担,提升了大量数据请求的性能。本申请提供的云存储客户端能够高效地满足企业级用户将大量数据向云存储服务端备份以及并发读取的需求,并且具有高性能,低延迟,大容量,易扩展,易管理,安全可靠的特点。
【附图说明】
[0024]图1为本申请实施例提供的云存储客户端的内部结构示意图;
[0025]图2为本申请实施例提供的云存储系统客户端的数据访问流程示意图。
【具体实施方式】
[0026]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0027]本申请提供的云存储客户端高效数据访问方法的基本设计思想是:将文件分为元数据和数据两部分,数据按一定大小分块的组织方式。该组织方式提供高效数据访问的基础。同一文件不同数据块可以并发访问。只涉及到元数据部分的操作可以批量处理。同时元数据和数据的网络访问独立进行,互不影响,保证了传输数据块时带宽的最大利用率。对于对时间实时性要求高的应用采用读写缓冲,异步和超时相结合的处理机制。
[0028]所述云存储客户端的内部结构如图1所示,其包括的主要模块有元数据缓存管理模块101、数据缓存及读写处理模块102、元数据批量处理模块103以及异步和超时处理模块104。其中,
[0029]元数据缓存管理模块101,用于缓存元数据基本属性信息,如创建时间,文件大小等信息。若客户端请求的文件信息在该元数据缓存管理模块中时,直接从元数据缓存管理模块中返回信息,避免大量元数据访问操作经过网络向云服务端元数据服务节点请求。
[0030]数据缓存及读写处理模块102,对于写操作,根据预定的写缓存大小缓存一定的数据,定时分块并发传送到相应的云服务端的存储服务节点上,其中不同的数据块可能存储在不同的存储服务节点也可能存储在相同的存储服务节点;对于读操作,根据预取的大小和预取的偏移量决定到对应的云服务端存储服务节点上预取部分数据到数据缓存及读写处理模块中。
[0031]根据本申请的另一实施例,所谓预取的偏移量即本次读操作在所读文件中的起始位置,预取的大小则是从起始