一种实现流量控制的分布式存储系统及方法与流程

文档序号:20487375发布日期:2020-04-21 21:46阅读:257来源:国知局
一种实现流量控制的分布式存储系统及方法与流程

本发明属于分布式存储技术领域,更具体地,涉及一种实现流量控制的分布式存储系统及方法。



背景技术:

分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

在分布式存储中,存储系统一般都会提供标准的块存储接口iscsi,客户端可以通过iscsi协议访问后端存储集群;因此在分布式存储系统中会存在块存储网关,块存储网关提供iscsi协议的服务端,负责解析协议并将读写请求转发给后端存储集群;其中:client作为存储系统的客户端,也是iscsi协议中的initiator,提供存储卷给应用程序使用;iscsi网关作为iscsi协议中的服务端,对iscsi协议进行解析,将标准的iscsi读写请求转换成分布式存储的私有接口,通过storageclient将数据交给存储集群后端;后端存储集群作为分布式存储的服务端,负责将数据保存起来并保证可靠性可用性等。

client、块存储网关、后端存储集群三者之间都是通过网络进行通信。iscsi网关可以配置多个,client一般情况下通过固定的网关进行数据访问,一个网关可以为一个或多个客户端提供服务。当多个客户端在访问后端存储集群时,有的客户端占用带宽高,有的客户端占用带宽低,当所有客户端的总带宽超过后端存储集群能够提供的最大带宽时,所有客户端的性能都会下降,这种情况下就需要对客户端进行网络带宽进行限制,进而达到对存储带宽的限制。

一般情况下,存储流量控制是存储中的一个高级功能,部分软件还不提供这个功能。在后端存储集群中虽然也可以实现流量控制,但是控制算法比较复杂,实现难度较大。



技术实现要素:

针对现有技术的至少一个缺陷或改进需求,本发明提供了一种实现流量控制的分布式存储系统及方法,通过分别在每一个客户端的上行数据输出端口和网络管理设备的下行数据输出端口配置流控策略,不需要单独在分布式存储集群上实现复杂的存储流控功能就能满足客户端的存储带宽控制。

为实现上述目的,按照本发明的一个方面,提供了一种实现流量控制的分布式存储系统,包括分布式存储集群、至少一个网络管理设备和多个客户端;所述客户端通过网络管理设备访问分布式存储集群;

每个客户端的上行数据输出端口配置有至少一个第一控制队列,每个所述第一控制队列对应一个与该客户端相连的网络管理设备;

当客户端向分布式存储集群中写入数据时,所述第一控制队列根据预先配置的第一控制策略对客户端发往对应网络管理设备的写入数据进行流量控制;

每个网络管理设备的下行数据输出端口配置有至少一个第二控制队列,每个所述第二控制队列对应一个与该网络管理设备相连的客户端;

当客户端从分布式存储集群中读取数据时,所述第二控制队列根据预先配置的第二控制策略对网络管理设备发往对应客户端的读出数据进行流量控制。

优选的,上述分布式存储系统,每个第一控制队列具有指向对应网络管理设备的第一映射标识,所述第一映射标识为网络管理设备ip地址。

优选的,上述分布式存储系统,每个第二控制队列具有指向对应客户端的第二映射标识,所述第二映射标识为客户端ip地址。

优选的,上述分布式存储系统,所述第一控制策略为预先配置的存储带宽;

每个网络控制设备连接的客户端上指向该网络控制设备的第一控制策略对应的存储带宽之和小于设备最大带宽。

优选的,上述分布式存储系统,所述第二控制策略为预先配置的存储带宽;

每个网络控制设备上所有第二控制策略对应的存储带宽之和小于设备最大带宽。

按照本发明的另一个方面,还提供了一种实现流量控制的分布式存储方法,该方法包括以下步骤:

s1:在每个客户端的上行数据输出端口配置至少一个第一控制队列,每个所述第一控制队列对应一个与该客户端相连的网络管理设备;

s2:当客户端向分布式存储集群中写入数据时,根据所述第一控制队列中预先配置的第一控制策略对客户端发往对应网络管理设备的写入数据进行流量控制;

s3:在每个网络管理设备的下行数据输出端口配置至少一个第二控制队列,每个所述第二控制队列对应一个与该网络管理设备相连的客户端;

s4:当客户端从分布式存储集群中读取数据时,根据所述第二控制队列中预先配置的第二控制策略对网络管理设备发往对应客户端的读出数据进行流量控制。

优选的,上述分布式存储方法,每个第一控制队列具有指向对应网络管理设备的第一映射标识,所述第一映射标识为网络管理设备ip地址。

优选的,上述分布式存储方法,每个第二控制队列具有指向对应客户端的第二映射标识,所述第二映射标识为客户端ip地址。

优选的,上述分布式存储方法,所述第一控制策略为预先配置的存储带宽;

每个网络控制设备连接的客户端上指向该网络控制设备的第一控制策略对应的存储带宽之和小于设备最大带宽。

优选的,上述分布式存储方法,所述第二控制策略为预先配置的存储带宽;

每个网络控制设备上所有第二控制策略对应的存储带宽之和小于设备最大带宽。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供的一种实现流量控制的分布式存储系统及方法,在每个客户端的上行数据输出端口配置第一控制队列,当客户端向分布式存储集群中写入数据时,第一控制队列对客户端发往对应网络管理设备的写入数据进行流量控制;在每个网络管理设备的下行数据输出端口配置第二控制队列,当客户端从分布式存储集群中读取数据时,第二控制队列对网络管理设备发往对应客户端的读出数据进行流量控制;本发明通过分别在每一个客户端的上行数据输出端口和网络管理设备的下行数据输出端口配置流控策略,不需要单独在分布式存储集群上实现复杂的存储流控功能就能满足客户端的存储带宽控制,并根据不同客户端的带宽需求进行对应的流量控制,有效提高了网络服务质量,且方法简单易操作。

(2)本发明提供的一种实现流量控制的分布式存储系统及方法,第一控制队列、第二控制队列的配置过程灵活简单,支持随时配置每个客户端的流量速率;存储带宽可以在线调整,调整过程中业务不中断。

附图说明

图1是本发明实施例提供的实现流量控制的分布式存储系统的组成结构示意图;

图2是本发明实施例提供的客户端写数据时的带宽控制过程示意图;

图3是本发明实施例提供的客户端读数据时的带宽控制过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1是本实施例提供的一种实现流量控制的分布式存储系统的组成结构示意图,参见图1所示,该分布式存储系统包括分布式存储集群、至少一个网络管理设备和多个客户端;客户端通过网络管理设备访问分布式存储集群;网络管理设备可以为网关、接入控制器(accesscontroller,ac)、路由器等,本实施例采用iscsi网关。

客户端向分布式存储集群中写入数据时,数据从客户端的上行数据输出端口输出,到达网络管理设备,网络管理设备按照iscsi协议解析数据内容,解析完成后将需要写入的数据按照固定大小进行分块并把分块数据发送给分布式存储集群,分布式存储集群将数据保存在本地硬盘上。

每个客户端的上行数据输出端口配置有至少一个第一控制队列,每个第一控制队列对应一个与该客户端相连的网络管理设备;当客户端向分布式存储集群中写入数据时,第一控制队列根据预先配置的第一控制策略对客户端发往对应网络管理设备的写入数据进行流量控制。

本实施例中,每个第一控制队列具有指向对应网络管理设备的第一映射标识,该第一映射标识为网络管理设备ip地址。

第一控制策略为预先配置的存储带宽;每个网络控制设备连接的客户端上指向该网络控制设备的第一控制策略对应的存储带宽之和小于网络控制设备的最大带宽。

图2是本发明实施例提供的客户端写数据时的带宽控制过程示意图;参见图2所示,当客户端写入数据时,数据先从客户端的上行数据输出网口(eth0)到网络管理设备的上行数据输入网口,然后再通过上行数据输出网口出来,到达后端存储服务器,最后数据保存在存储服务器的硬盘上。

本实施例在每个客户端的上行数据输出网口(eth0)上制定第一控制队列,每个第一控制队列对应一个流控策略,如果客户端连接了多个网络管理设备,则按照网络管理设备的数量,在输出网口上配置多个第一控制队列,每个第一控制队列上设定网络速率,表示只允许不超过设定速率的数据包通过,再根据源ip(代表每一个客户端)和目的ip(iscsitarget)进行过滤,将每个目的ip的流量分配到不同的第一控制队列上,这样就能够在网关节点上实现对存储客户端数据写入的带宽控制。

一般情况下网络流量的控制在输出端口,虽然在网络管理设备的上行数据输入网口也可以进行网络流量控制,linux也有相关的功能,但一般说来,我们无法控制外部的网络设备,所以网络管理设备的上行数据输入网口的流量控制相对比较困难。因此,本实施例采用在客户端的上行数据输出端口进行流量控制。

客户端从分布式存储集群中读取数据时,客户端首先将读请求发送给网络管理设备,网络管理设备解析读请求,计算待读取的数据保存在哪块硬盘上,然后按照分块大小从分布式存储集群的硬盘上读取数据,并将数据封装成iscsi协议,通过下行数据输出端口返回给客户端。

每个网络管理设备的下行数据输出端口配置有至少一个第二控制队列,每个第二控制队列对应一个与该网络管理设备相连的客户端;当客户端从分布式存储集群中读取数据时,第二控制队列根据预先配置的第二控制策略对网络管理设备发往对应客户端的读出数据进行流量控制。

本实施例中,每个第二控制队列具有指向对应客户端的第二映射标识,该第二映射标识为客户端ip地址。

第二控制策略为预先配置的存储带宽;每个网络控制设备上所有第二控制策略对应的存储带宽之和小于网络控制设备的最大带宽。

图3是本发明实施例提供的客户端读数据时的带宽控制过程示意图;参见图3所示,当客户端读取数据时,先从存储服务器的本地硬盘中读取数据,通过网络管理设备点的下行数据输入网口(eth2)进入,再通过网络管理设备的下行数据输出网口(eth1)出来,最后数据到达客户端。

本实施例在网络管理设备的下行数据输出网口(eth1)上制定第二控制队列,按照每个网络管理设备连接的客户端的数量,在下行数据输出网口(eth1)上配置多个第二控制队列,每个第二控制队列上设定网络速率,表示只允许不超过设定速率的数据包通过,再根据源ip(iscsitarget)和目的ip(代表每一个客户端)进行过滤,将每个目的ip(客户端)的流量分配到不同的第二控制队列上,这样就能够在网络管理设备上实现对每个客户端数据读取的带宽控制。

本实施例中,网络管理设备和客户端使用可分类队列实现流量控制功能。

本实施例还提供了一种实现流量控制的分布式存储方法,用于对上述分布式存储系统进行流量控制,该方法包括以下步骤:

s1:在每个客户端的上行数据输出端口配置至少一个第一控制队列,每个第一控制队列对应一个与该客户端相连的网络管理设备;

本实施例中,每个第一控制队列具有指向对应网络管理设备的第一映射标识,该第一映射标识为网络管理设备ip地址。

s2:当客户端向分布式存储集群中写入数据时,根据第一控制队列中预先配置的第一控制策略对客户端发往对应网络管理设备的写入数据进行流量控制;

本实施例中,第一控制策略为预先配置的存储带宽;每个网络控制设备连接的客户端上指向该网络控制设备的第一控制策略对应的存储带宽之和小于设备最大带宽;

首先采集每个网络控制设备上的客户端列表,并规划每个客户端预期分配的存储带宽,单个网络控制设备上所有客户端的存储带宽总和需要小于物理设备的最大带宽。

本实施例中,第一控制队列为可分类队列,其配置过程和控制过程具体包括:在客户端节点的上行数据输出网口上绑定第一控制队列,设置第一控制队列的调度算法;在

第一控制队列上建立分类class,先建立一个根分类,然后再在其上建立子分类,在子分类上设置预期的存储写入带宽;为每一个子分类建立一个过滤器filter,过滤器通过源ip和目的ip进行过滤分类,当源ip为iscsiinitiator(客户端)的ip,且目的ip为iscsitarget(iscsi网关)的ip时,即表示这是客户端往存储的写入数据,此时第一控制队列将该存储写入带宽被限制在设置的预期值。

s3:在每个网络管理设备的下行数据输出端口配置至少一个第二控制队列,每个第二控制队列对应一个与该网络管理设备相连的客户端;

本实施例中,每个第二控制队列具有指向对应客户端的第二映射标识,该第二映射标识为客户端ip地址。

s4:当客户端从分布式存储集群中读取数据时,根据第二控制队列中预先配置的第二控制策略对网络管理设备发往对应客户端的读出数据进行流量控制。

本实施例中,第二控制策略为预先配置的存储带宽;每个网络控制设备上所有第二控制策略对应的存储带宽之和小于设备最大带宽。

第二控制队列为可分类队列,其配置过程和控制过程具体包括:在网络控制设备的下行数据输出网口上绑定第二控制队列,设置第二控制队列的调度算法;在第二控制队列上建立分类class,先建立根分类,然后再在其上建立子分类,在子分类上设置预期的存储读取带宽;为每一个子分类建立过滤器filter,过滤器通过源ip和目的ip进行过滤分类,当源ip为iscsitarget(iscsi网关)的ip,且目的ip为iscsiinitiator(客户端)的ip时,即表示这是客户端读取存储的数据,此时该存储读取带宽被限制在设置的预期值。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1