节点访问方法和装置制造方法

文档序号:7815730阅读:121来源:国知局
节点访问方法和装置制造方法
【专利摘要】本发明提供了一种节点访问方法和装置,该方法包括:接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;获取所述至少两个待访问节点的资源信息;根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。本发明提供的技术方案可以简化客户端对分布式存储系统集群中节点的配置管理,同时能够灵活地调整分布式存储系统集群中各节点的访问请求量,保证了各节点负载均衡。
【专利说明】节点访问方法和装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,特别是一种节点访问方法和装置。

【背景技术】
[0002]Cassandra是依赖DHT (Distributed Hash Table,分布式哈希表)技术实现的一种典型的无中心节点的环形结构的分布式存储系统。Cassandra数据存储空间可以抽象为一个环形结构,数据就是通过hash (哈希)分散在这个环形存储空间上。每个节点负责管理这个环形存储空间上的某一块连续的Range (范围),落在此Range空间上的数据就存储在这个节点上。
[0003]Cassandra的节点角色分为两种,即接入节点和数据节点。首先,接入节点负责接收来自外界的访问数据的请求,如增、删、改、查请求,进而根据请求内容计算数据及其副本在Cassandra集群中所分布的数据节点,并负责请求的分发与应答的汇总。其次,数据节点负责数据副本的真实存储。在Cassandra系统中每个节点都既可以作为接入节点,又可以作为数据节点而存在。由于Cassandra的每个节点都同时具有数据节点和接入节点二者功能,因而,来自外界(如客户端)的访问请求可以通过任何一个接入节点来访问集群中的数据。即,由接入节点根据集群的副本放置策略,定位到数据及其副本所在的数据节点,从而完成客户端访问请求的分发与应答的汇总。Cassandra集群对外提供thrift (软件框架)接口访问方式,客户端通过thrift协议连接指定接入节点发送访问请求。
[0004]如上所述,相关技术中,客户端请求访问Cassandra提供的thrift协议连接的指定接入节点即可访问Cassandra集群数据。然而,客户端具体可以访问哪些接入节点完全由客户端来控制。客户端通常维护一个接入节点的IP(Internet Protocol,互联网协议)列表,随机从其中选择一个IP连接访问。这种方式通常存在以下缺点。
[0005]1、客户端只知道Cassandra集群中存在若干接入节点的IP列表可以连接访问。这个IP列表通过客户端的配置文件中进行管理。但是,Cassandra集群规模动辄上千台节点,客户端管理上千个节点的IP的开销很大,若只配置其中少量几个接入节点,而往往会导致Cassandra节点间的资源占用不均衡,比如网卡带宽、CPU资源占用等。
[0006]2、当接入节点出现变更,或者接入节点故障、停机时,客户端无法迅速、及时地屏蔽故障的接入节点,从而导致大量的访问失败。
[0007]3、由于客户端无法获知Cassandra集群的接入节点的负载的高低,因而只能采用将请求平均发送到其配置的所有接入节点的策略。这样,负载高的接入节点也要处理同样多的请求,直接导致接入节点的负载更加严重,使得请求的访问延迟大幅变长。
[0008]综上,如何有效地解决上述问题成为目前亟待解决的技术问题。


【发明内容】

[0009]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的节点访问方法和相应的装置。
[0010]依据本发明的一个方面,提供了一种节点访问方法,包括:接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;获取所述至少两个待访问节点的资源信息;根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
[0011]可选地,所述方法还包括:所述分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在所述Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
[0012]可选地,从所述至少两个待访问节点中选择目标访问节点之后,还包括:根据所述映射关系查询所述目标访问节点的IP地址;以使所述客户端接入所述目标访问节点,包括:以使所述客户端利用所述目标访问节点的IP地址接入所述目标访问节点。
[0013]可选地,所述资源信息包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
[0014]可选地,所述方法还包括:根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至所述Zookeeper。
[0015]可选地,所述负载评价指标信息包括下列至少之一:
[0016]中央处理器CPU使用率;
[0017]内存使用率;
[0018]磁盘输入/输出使用率;
[0019]网卡带宽占用;
[0020]请求平均访问时延。
[0021]可选地,根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息存储至所述Zookeeper之后,还包括:根据所述分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子;对所述各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息;将所述各个节点所允许的访问流量的信息存储于所述Zookeeper管理的高速缓冲存储器Cache。
[0022]可选地,根据预设的时间周期,将所述分布式存储系统集群的节点的硬件参数信息存储至所述Zookeeper之后,还包括:根据所述分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值;将所述各个节点的性能参数值存储于所述Zookeeper管理的Cache。
[0023]可选地,获取所述至少两个待访问节点各自所允许的资源信息,包括:从所述Zookeeper管理的Cache中获取所述至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
[0024]可选地,所述方法还包括:当所述分布式存储系统集群的节点发生故障时,在所述Zookeeper中删除该故障节点。
[0025]可选地,在所述Zookeeper中删除该故障节点,包括:在所述Zookeeper中删除该故障节点的IP地址,并在所述Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0026]可选地,所述分布式存储系统为Cassandra系统。
[0027]依据本发明的另一个方面,还提供了一种节点访问装置,包括:
[0028]选择模块,适于接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;
[0029]获取模块,适于获取所述至少两个待访问节点各自所允许的资源信息;
[0030]访问模块,适于根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
[0031]可选地,所述装置还包括映射建立模块,适于:所述分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在所述Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
[0032]可选地,所述访问模块还适于:根据所述映射关系查询所述目标访问节点的IP地址,以使所述客户端利用所述目标访问节点的IP地址接入所述目标访问节点。
[0033]可选地,所述资源信息包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
[0034]可选地,所述装置还包括存储模块,适于:根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至所述Zookeeper。
[0035]可选地,所述负载评价指标信息包括下列至少之一:
[0036]中央处理器CPU使用率;
[0037]内存使用率;
[0038]磁盘输入/输出使用率;
[0039]网卡带宽占用;
[0040]请求平均访问时延。
[0041]可选地,所述存储模块还适于:根据所述分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子;对所述各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息;将所述各个节点所允许的访问流量的信息存储于所述Zookeeper管理的高速缓冲存储器Cache。
[0042]可选地,所述存储模块还适于:根据所述分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值;将所述各个节点的性能参数值存储于所述Zookeeper管理的Cache。
[0043]可选地,所述获取模块还适于:从所述Zookeeper管理的Cache中获取所述至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
[0044]可选地,所述装置还包括删除模块,适于:当所述分布式存储系统集群的节点发生故障时,在所述Zookeeper中删除该故障节点。
[0045]可选地,所述删除模块还适于:在所述Zook^per中删除该故障节点的IP地址,并在所述Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0046]可选地,所述分布式存储系统为Cassandra系统。
[0047]依据本发明的技术方案,通过接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,进而获取至少两个待访问节点的资源信息,之后根据获取的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作。由此可见,本发明可以从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,从而简化了客户端对分布式存储系统集群中节点的配置管理,解决了相关技术中通过客户端的配置文件来管理分布式存储系统集群中的节点,增加客户端管理节点的开销的问题。并且,本发明进一步根据至少两个待访问节点的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作,实现了根据待访问节点的当前负载情况灵活地选择目标访问节点,进行访问操作,保证了各节点负载均衡。综上,本发明提供的技术方案可以简化客户端对分布式存储系统集群中节点的配置管理,同时能够灵活地调整分布式存储系统集群中各节点的访问请求量,保证了各节点负载均衡。
[0048]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0049]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

【专利附图】

【附图说明】
[0050]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0051]图1示出了根据本发明一个实施例的节点访问方法的流程图;
[0052]图2示出了根据本发明一个实施例的节点访问的架构示意图;
[0053]图3示出了根据本发明一个实施例的节点访问装置的一种结构示意图;以及
[0054]图4示出了根据本发明一个实施例的节点访问装置的另一种结构示意图。

【具体实施方式】
[0055]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0056]为解决上述技术问题,本发明实施例提供了一种节点访问方法,图1示出了根据本发明一个实施例的节点访问方法的流程图。如图1所示,该方法至少包括以下步骤S102至步骤S106。
[0057]步骤S102、接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点。
[0058]步骤S104、获取至少两个待访问节点的资源信息。
[0059]步骤S106、根据获取的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作。
[0060]依据本发明的技术方案,通过接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,进而获取至少两个待访问节点的资源信息,之后根据获取的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作。由此可见,本发明可以从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,从而简化了客户端对分布式存储系统集群中节点的配置管理,解决了相关技术中通过客户端的配置文件来管理分布式存储系统集群中的节点,增加客户端管理节点的开销的问题。并且,本发明进一步根据至少两个待访问节点的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作,实现了根据待访问节点的当前负载情况灵活地选择目标访问节点,进行访问操作,保证了各节点负载均衡。综上,本发明提供的技术方案可以简化客户端对分布式存储系统集群中节点的配置管理,同时能够灵活地调整分布式存储系统集群中各节点的访问请求量,保证了各节点负载均衡。
[0061]本发明实施例中的分布式存储系统是一种分布式非关系型数据系统,可以是Cassandra系统,还可以是其他分布式非关系型数据系统。
[0062]本发明实施例提供的技术方案中,首先引入了 Zookeeper(协同工作系统)进行分布式存储系统集群的节点列表的管理。Zookeeper是一个高效可靠的协同工作系统,常常用来支撑leader (领导者)选举、配置信息维护等分布式协同操作。例如在分布式的环境中,Zooke印er可以用来存储一些配置信息,确保配置写入的一致性。分布式存储系统集群的节点启动时,将该节点的IP地址存储至Zookeeper,并在Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系,即各节点实现向Zookeeper注册各自的IP地址。同时,各个节点会根据预设的时间周期,将其自身的负载评价指标信息和/或硬件参数信息存储至Zookeeper,即各个节点会定期向Zookeeper汇报其自身的负载评价指标信息和/或硬件参数信息,当然,硬件参数信息一般情况下不会发生变化。这里的负载评价指标信息可以包括:CPU(Central Processing Unit,中央处理器)使用率、内存使用率、磁盘输入/输出使用率、网卡带宽占用、请求平均访问时延等信息。图2示出了根据本发明一个实施例的节点访问的架构示意图,如图2所示,以分布式存储系统为Cassandra系统为例,Cassandra集群的各节点启动时,向Zookeeper注册各自的IP地址以及定期向Zookeeper汇报其自身的负载评价指标信息和/或硬件参数信息。
[0063]其次,本发明还对Zookeeper进行了外部封装,如ΖΚ-Wrapper(包装),并引入决策模块,如图2所示。该决策模块用于周期性地根据Cassandra集群的节点的负载评价指标信息,计算各个节点的负载因子,并对各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息,从而当接收到来自客户端的、访问Cassandra存储空间上的数据的访问请求时,决策模块可以决策客户端能够访问的节点。以及,该该决策模块还用于周期性地根据Cassandra集群的节点的硬件参数信息,计算各个节点的性能参数值,从而当接收到来自客户端的、访问Cassandra存储空间上的数据的访问请求时,决策模块可以决策客户端能够访问的节点。此外,决策模块还可以综合各个节点所允许的访问流量的信息以及各个节点的性能参数值来决策客户端能够访问的节点。进一步地,将各个节点所允许的访问流量的信息以及各个节点的性能参数值存储于Zookeeper管理的Cache (高速缓冲存储器),数据读取速度快。
[0064]基于上述的介绍,上文步骤S102至步骤S106中,当接收到来自客户端的、访问Cassandra存储空间上的数据的访问请求时,从Zookeeper管理的节点列表中选择能够提供待访问数据的至少两个待访问节点,并从Zookeeper管理的Cache中获取至少两个待访问节点的资源信息(即至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值),进而由决策模块根据至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值,从至少两个待访问节点中选择目标访问节点,并根据Zookeeper的目录树中节点与节点的IP地址间的映射关系查询目标访问节点的IP地址,以使客户端利用目标访问节点的IP地址接入目标访问节点,进行访问操作。
[0065]如图2所示,当接收到来自客户端的、访问Cassandra存储空间上的数据的访问请求(Access Requests)时,Stepl (第一步)获取目标访问节点,即从Zookeeper管理的节点列表中选择能够提供待访问数据的至少两个待访问节点,并从Zookeeper管理的Cache中获取至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值,进而由决策模块根据至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值,从至少两个待访问节点中选择目标访问节点。Step2(第二步)连接访问目标访问节点,进行访问操作,即根据Zookeeper的目录树中节点与节点的IP地址间的映射关系查询目标访问节点的IP地址,以使客户端利用目标访问节点的IP地址接入目标访问节点,通过thrift协议完成正常的读与访问。
[0066]进一步地,当节点发生故障等事件而无法提供数据服务时,Zookeeper会迅速自动发现该节点已经不可以访问,进而从其管理的节点列表中删除该故障节点。例如,在Zookeeper中删除该故障节点的IP地址,并在Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0067]需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
[0068]基于同一发明构思,本发明实施例还提供了一种节点访问装置,以实现上述节点访问方法。
[0069]图3示出了根据本发明一个实施例的节点访问装置的一种结构示意图。参见图3,该装置至少包括:选择模块310、获取模块320以及访问模块330。
[0070]现介绍本发明实施例的节点访问装置的各组成或器件的功能以及各部分间的连接关系:
[0071]选择模块310,适于接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;
[0072]获取模块320,与选择模块310相耦合,适于获取至少两个待访问节点各自所允许的资源信息;
[0073]访问模块330,与获取模块320相耦合,适于根据获取的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作。
[0074]图4示出了根据本发明一个实施例的节点访问装置的另一种结构示意图。如图4所示,上述图3展示装置还可以包括映射建立模块340,与访问模块330相耦合,适于:分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
[0075]在一个实施例中,上述访问模块330还适于:根据映射关系查询目标访问节点的IP地址,以使客户端利用目标访问节点的IP地址接入目标访问节点。
[0076]在一个实施例中,资源信息可以包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
[0077]在一个实施例中,上述装置还可以包括存储模块350,与获取模块320相耦合,适于:根据预设的时间周期,将分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至Zookeeper。
[0078]在一个实施例中,负载评价指标信息包括下列至少之一:
[0079]中央处理器CPU使用率;
[0080]内存使用率;
[0081]磁盘输入/输出使用率;
[0082]网卡带宽占用;
[0083]请求平均访问时延。
[0084]在一个实施例中,上述存储模块350还适于:根据分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子;对各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息;将各个节点所允许的访问流量的信息存储于Zookeeper管理的高速缓冲存储器Cache。
[0085]在一个实施例中,上述存储模块350还适于:根据分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值;将各个节点的性能参数值存储于Zookeeper管理的Cache。
[0086]在一个实施例中,上述获取模块320还适于:从Zookeeper管理的Cache中获取至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
[0087]在一个实施例中,上述装置还可以包括删除模块360,与映射建立模块340相耦合,适于:当分布式存储系统集群的节点发生故障时,在Zookeeper中删除该故障节点。
[0088]在一个实施例中,上述删除模块360还适于:在Zookeeper中删除该故障节点的IP地址,并在Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0089]在一个实施例中,分布式存储系统为Cassandra系统。
[0090]根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
[0091]依据本发明的技术方案,通过接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,进而获取至少两个待访问节点的资源信息,之后根据获取的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作。由此可见,本发明可以从分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点,从而简化了客户端对分布式存储系统集群中节点的配置管理,解决了相关技术中通过客户端的配置文件来管理分布式存储系统集群中的节点,增加客户端管理节点的开销的问题。并且,本发明进一步根据至少两个待访问节点的资源信息,从至少两个待访问节点中选择目标访问节点,以使客户端接入目标访问节点,进行访问操作,实现了根据待访问节点的当前负载情况灵活地选择目标访问节点,进行访问操作,保证了各节点负载均衡。综上,本发明提供的技术方案可以简化客户端对分布式存储系统集群中节点的配置管理,同时能够灵活地调整分布式存储系统集群中各节点的访问请求量,保证了各节点负载均衡。
[0092]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0093]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0094]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0095]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0096]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的节点访问装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0097]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0098]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
[0099]本发明还公开了 Al、一种节点访问方法,包括:
[0100]接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;
[0101]获取所述至少两个待访问节点的资源信息;
[0102]根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
[0103]A2、根据Al所述的方法,其中,还包括:
[0104]所述分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在所述Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
[0105]A3、根据A2所述的方法,其中,
[0106]从所述至少两个待访问节点中选择目标访问节点之后,还包括:
[0107]根据所述映射关系查询所述目标访问节点的IP地址;
[0108]以使所述客户端接入所述目标访问节点,包括:
[0109]以使所述客户端利用所述目标访问节点的IP地址接入所述目标访问节点。
[0110]A4、根据Al至A3任一项所述的方法,其中,所述资源信息包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
[0111]A5、根据Al至A4任一项所述的方法,其中,还包括:
[0112]根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至所述Zookeeper。
[0113]A6、根据A5所述的方法,其中,所述负载评价指标信息包括下列至少之一:
[0114]中央处理器CPU使用率;
[0115]内存使用率;
[0116]磁盘输入/输出使用率;
[0117]网卡带宽占用;
[0118]请求平均访问时延。
[0119]A7、根据A5或A6所述的方法,其中,根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息存储至所述Zookeeper之后,还包括:
[0120]根据所述分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子;
[0121]对所述各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息;
[0122]将所述各个节点所允许的访问流量的信息存储于所述Zookeeper管理的高速缓冲存储器Cache。
[0123]AS、根据A5或A6所述的方法,其中,根据预设的时间周期,将所述分布式存储系统集群的节点的硬件参数信息存储至所述Zookeeper之后,还包括:
[0124]根据所述分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值;
[0125]将所述各个节点的性能参数值存储于所述Zookeeper管理的Cache。
[0126]A9、根据Al至AS任一项所述的方法,其中,获取所述至少两个待访问节点各自所允许的资源信息,包括:
[0127]从所述Zookeeper管理的Cache中获取所述至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
[0128]A10、根据Al至A9任一项所述的方法,其中,还包括:
[0129]当所述分布式存储系统集群的节点发生故障时,在所述Zookeeper中删除该故障节点。
[0130]All、根据AlO所述的方法,其中,在所述Zooke印er中删除该故障节点,包括:
[0131]在所述Zookeeper中删除该故障节点的IP地址,并在所述Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0132]A12、根据Al至All任一项所述的方法,其中,所述分布式存储系统为Cassandra系统。
[0133]B13、一种节点访问装置,包括:
[0134]选择模块,适于接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点;
[0135]获取模块,适于获取所述至少两个待访问节点各自所允许的资源信息;
[0136]访问模块,适于根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
[0137]B14、根据B13所述的装置,其中,还包括映射建立模块,适于:
[0138]所述分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在所述Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
[0139]B15、根据B14所述的装置,其中,所述访问模块还适于:
[0140]根据所述映射关系查询所述目标访问节点的IP地址,以使所述客户端利用所述目标访问节点的IP地址接入所述目标访问节点。
[0141]B16、根据B13至B15任一项所述的装置,其中,所述资源信息包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
[0142]B17、根据B13至B16任一项所述的装置,其中,还包括存储模块,适于:
[0143]根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至所述Zookeeper。
[0144]B18、根据B17所述的装置,其中,所述负载评价指标信息包括下列至少之一:
[0145]中央处理器CPU使用率;
[0146]内存使用率;
[0147]磁盘输入/输出使用率;
[0148]网卡带宽占用;
[0149]请求平均访问时延。
[0150]B19、根据B17或B18所述的装置,其中,所述存储模块还适于:
[0151]根据所述分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子;
[0152]对所述各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息;
[0153]将所述各个节点所允许的访问流量的信息存储于所述Zookeeper管理的高速缓冲存储器Cache。
[0154]B20、根据B17或B18所述的装置,其中,所述存储模块还适于:
[0155]根据所述分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值;
[0156]将所述各个节点的性能参数值存储于所述Zookeeper管理的Cache。
[0157]B21、根据B13至B20任一项所述的装置,其中,所述获取模块还适于:
[0158]从所述Zookeeper管理的Cache中获取所述至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
[0159]B22、根据B13至B21任一项所述的装置,其中,还包括删除模块,适于:
[0160]当所述分布式存储系统集群的节点发生故障时,在所述Zookeeper中删除该故障节点。
[0161]B23、根据B22所述的装置,其中,所述删除模块还适于:
[0162]在所述Zookeeper中删除该故障节点的IP地址,并在所述Zookeeper管理的Cache中删除该故障节点所允许的访问流量的信息和/或性能参数值。
[0163]B24、根据B13至B23任一项所述的装置,其中,所述分布式存储系统为Cassandra系统。
【权利要求】
1.一种节点访问方法,包括: 接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点; 获取所述至少两个待访问节点的资源信息; 根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
2.根据权利要求1所述的方法,其中,还包括: 所述分布式存储系统集群的节点启动时,将该节点的互联网协议IP地址存储至协同工作系统Zookeeper,并在所述Zookeeper的目录树中建立该节点与该节点的IP地址间的映射关系。
3.根据权利要求2所述的方法,其中, 从所述至少两个待访问节点中选择目标访问节点之后,还包括: 根据所述映射关系查询所述目标访问节点的IP地址; 以使所述客户端接入所述目标访问节点,包括: 以使所述客户端利用所述目标访问节点的IP地址接入所述目标访问节点。
4.根据权利要求1至3任一项所述的方法,其中,所述资源信息包括:节点各自所允许的访问流量的信息和/或节点的性能参数值。
5.根据权利要求1至4任一项所述的方法,其中,还包括: 根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息和/或硬件参数信息存储至所述Zookeeper。
6.根据权利要求5所述的方法,其中,所述负载评价指标信息包括下列至少之一: 中央处理器CPU使用率; 内存使用率; 磁盘输入/输出使用率; 网卡带宽占用; 请求平均访问时延。
7.根据权利要求5或6所述的方法,其中,根据预设的时间周期,将所述分布式存储系统集群的节点的负载评价指标信息存储至所述Zookeeper之后,还包括: 根据所述分布式存储系统集群的节点的负载评价指标信息,计算各个节点的负载因子; 对所述各个节点的负载因子进行归一化处理,得到各个节点所允许的访问流量的信息; 将所述各个节点所允许的访问流量的信息存储于所述Zookeeper管理的高速缓冲存储器Cache。
8.根据权利要求5或6所述的方法,其中,根据预设的时间周期,将所述分布式存储系统集群的节点的硬件参数信息存储至所述Zookeeper之后,还包括: 根据所述分布式存储系统集群的节点的硬件参数信息,计算各个节点的性能参数值; 将所述各个节点的性能参数值存储于所述Zookeeper管理的Cache。
9.根据权利要求1至8任一项所述的方法,其中,获取所述至少两个待访问节点各自所允许的资源信息,包括: 从所述Zookeeper管理的Cache中获取所述至少两个待访问节点各自所允许的访问流量的信息和/或性能参数值。
10.一种节点访问装置,包括: 选择模块,适于接收来自客户端的、访问分布式存储系统存储空间上的数据的访问请求,从所述分布式存储系统集群的多个节点中选择能够提供待访问数据的至少两个待访问节点; 获取模块,适于获取所述至少两个待访问节点各自所允许的资源信息; 访问模块,适于根据获取的所述资源信息,从所述至少两个待访问节点中选择目标访问节点,以使所述客户端接入所述目标访问节点,进行访问操作。
【文档编号】H04L29/06GK104202434SQ201410509449
【公开日】2014年12月10日 申请日期:2014年9月28日 优先权日:2014年9月28日
【发明者】王 锋 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1