用于促进对分布式存储系统中的数据的访问的装置和方法_3

文档序号:8433909阅读:来源:国知局
[0044]下文中将以数据备份应用客户端(下文中简称客户端)作为装置200的一个具体示例,详细描述装置200与装置100的交互过程。可以理解,以下描述仅为示例,根据不同的应用场景,装置200与装置100之间可以执行不同的交互过程以及交互不同的信息。
[0045]1.客户端200的发送单元201与装置100的接口单元103进行交互,例如向接口单元103发送用于获取分布式存储系统的运行状态相关信息和与待访问的数据有关的元数据的请求,所述请求中可以包括待访问的数据的标识,例如待访问的文件的文件名或其他标识符。
[0046]2.接口单元103响应于接收到来自客户端200的请求,分别向收集单元101发送第一查询请求以获取所述运行状态相关信息以及向元数据获取单元102发送第二查询请求以获取所述元数据。所述运行状态相关信息例如包括在过去的3分钟(或任意指定的时段)内每个存储节点的平均响应时间和工作负荷(例如CPU使用率、网络速度、存储器使用率等)。与待访问的数据有关的元数据例如包括待访问的数据的各分片在存储节点上的存储位置以及各分片的副本在存储节点上的存储位置。例如,待访问的数据被分为3个分片,3个分片分别存储于3个不同的存储节点上,并且每个分片具有I个副本。
[0047]3.收集单元101响应于第一查询请求从分布式存储系统收集运行状态相关信息并将所收集的运行状态相关信息提供给接口单元103,并且元数据获取单元102响应于第二查询请求从分布式存储系统获取元数据并将所获取的元数据提供给接口单元103。
[0048]4.接口单元103向客户端200发送所述运行状态相关信息和元数据。
[0049]5.客户端200的接收单元202接收所述运行状态相关信息和元数据。
[0050]6.基于接收到的运行状态相关信息和元数据,客户端200的访问单元203向存储有数据的分片的存储节点发起3个数据访问请求,以经由访问扩展单元104并行地访问存储有数据的分片的存储节点。对于每个分片,访问单元203可以基于存储有该分片的存储节点和存储有该分片的副本的存储节点的状态信息(例如负荷状况),智能地选择两个存储节点中的一个来进行访问,以获得最佳的访问性能,例如最小化数据备份窗。
[0051]下面参照图3,其示出了根据本发明一个实施方式的用于促进对分布式存储系统中的数据的访问的方法300的流程图。应当理解,方法300中示出的步骤仅仅是示意性的。例如,这些步骤可以按照不同的顺序执行甚至并行执行。此外,方法300也可以包括附加的步骤,替换某些步骤,或者省略某些步骤。
[0052]首先,在步骤S301,收集分布式存储系统的运行状态相关信息。
[0053]在步骤S302,获取与分布式存储系统中所存储的数据有关的元数据。根据一个实施方式,获取与分布式存储系统中所存储的数据有关的元数据包括周期性地从分布式存储系统获取元数据。根据另一个实施方式,获取与分布式存储系统中所存储的数据有关的元数据包括:接收数据的存储状态发生改变的通知;以及响应于通知而从分布式存储系统获取元数据。
[0054]在步骤S303,响应于来自客户端的请求,向客户端提供运行状态相关信息和与待访问的数据有关的元数据。根据一个实施方式,响应于来自客户端的请求,向客户端提供运行状态相关信息和与待访问的数据有关的元数据包括:响应于来自客户端的请求,从分布式存储系统收集运行状态相关信息以及从分布式存储系统获取元数据。
[0055]在步骤S304,对分布式存储系统中的存储节点进行扩展,以使得客户端能够利用运行状态相关信息和与待访问的数据有关的元数据直接访问存储节点。
[0056]根据某些实施方式,方法300进一步包括:将运行状态相关信息以及元数据存储于分布式存储系统中的信息存储库中。根据某些实施方式,响应于来自客户端的请求,向客户端提供运行状态相关信息和与待访问的数据有关的元数据包括:响应于来自客户端的请求,向信息存储库发送查询请求以获取运行状态相关信息和元数据;以及将从信息存储库中获取的运行状态相关信息和元数据提供给客户端。
[0057]应当理解,结合图3描述的方法300可以由结合图1描述的装置100来执行。特别地,方法300中的各个步骤可以由装置100中的相应单元来执行。由此,上文参考装置100描述的各种特征均适用于方法300中的各个步骤,在此不再赘述。
[0058]接下来参照图4,其示出了根据本发明一个实施方式的用于访问分布式存储系统中的数据的方法400的流程图。
[0059]在步骤S401,发送用于获取分布式存储系统的运行状态相关信息和与待访问的数据有关的元数据的请求。
[0060]在步骤S402,接收对请求的响应,响应中包含运行状态相关信息和元数据;以及
[0061]在步骤S403,利用运行状态相关信息和元数据直接访问分布式存储系统中的存储节点。
[0062]应当理解,结合图4描述的方法400可以由结合图2描述的装置200来执行。特别地,方法400中的各个步骤可以由装置200中的相应单元来执行。由此,上文参考装置200描述的各种特征均适用于方法400中的各个步骤,在此不再赘述。
[0063]下面参考图5,其示出了适于用来实践本发明实施方式的计算机系统500的示意性框图。例如,图5所示的计算机系统500可以用于实现如上文描述的用于促进对分布式存储系统中的数据的访问的装置100和用于访问分布式存储系统中的数据的装置200。
[0064]如图5所示,计算机系统可以包括:CPU(中央处理单元)501、RAM(随机存取存储器)502、ROM (只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些设备中,与系统总线504耦合的有CPU501、RAM502、R0M503、硬盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。硬盘510与硬盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备513与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
[0065]如上所述,装置100和200可以实现为纯硬件,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统500中。此外,本发明的实施方式也可以通过计算机程序产品的形式实现。例如,参考图3描述的方法300和参考图4描述的方法400可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM502、R0M503、硬盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU501)执行的程序指令。所述程序指令至少可以包括用于实现方法300和400的步骤的指令。
[0066]应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1