一种对CEPH文件系统进行带宽控制的方法及系统与流程

文档序号:11253787阅读:746来源:国知局
一种对CEPH文件系统进行带宽控制的方法及系统与流程

本发明涉及通信领域,特别是涉及一种对ceph文件系统进行带宽控制的方法及系统。



背景技术:

分布式文件系统ceph是一个可拓展、高性能的分布式文件系统,当对ceph文件系统的访问量过大时,会给该文件系统造成很大压力,甚至可能会导致文件系统奔溃。为了保证ceph文件系统稳定运行,需要对其带宽进行控制(具体的,带宽为一个固定的时间内传送的最大字节数)。

现有技术中在进行带宽控制时一般是通过程序关键字usleep来实现的。但是,当程序运行到usleep关键字的时候,会使整个程序停止运行一段时间,在这段时间内,通过usleep控制下行带宽时,上行操作将无法进行,通过usleep控制上行带宽时,下行操作将无法进行,这样就不能做到将带宽上行和下行的控制分离,降低了带宽的灵活性,在使用usleep关键字控制带宽时,无法直接获取某段时间内传送的字节数,而是通过其接收数据包的个数来估算的,从而得到相应的带宽值,当估算的带宽值超过理论带宽值时,停止传送数据包,直到一段时间后程序重新运行,这种通过估算字节数、延长时间来控制带宽的方式可能会使得所控制的带宽并不准确,进而无法控制对ceph文件系统的访问量,甚至可能会影响ceph文件系统的稳定性。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种对ceph文件系统进行带宽控制的方法,不仅可以实现对带宽的上行和下行进行分离控制,而且可以直接获取网络中的字节数,得到相应的带宽值,提高了带宽的灵活性和准确性,进而可以对ceph文件系统的访问量进行有效的控制,提高了ceph文件系统的稳定性。本发明的另一目的是提供一种ceph文件系统进行带宽控制的系统。

为解决上述技术问题,本发明提供了一种对ceph文件系统进行带宽控制的方法,应用于软件samba网络层的循环查询机制tevent中,包括:

创建定时器,其中,所述定时器包括用于每隔预设时间触发清零字节数的定时函数;

统计获取的字节数,并根据所述字节数得到相应的带宽值;

判断所述带宽值是否大于理论带宽值;

若是,则关闭网络socket事件,将获取的所述字节数清零,触发网络socket事件。

优选的,所述网络socket事件为网络socket读事件。

优选的,所述网络socket事件为网络socket写事件。

优选的,所述判断所述带宽值是否大于理论带宽值之后,若是,则关闭网络socket事件之前,该方法还包括:

若否,则继续所述网络socket事件,并继续统计获取的字节数,并根据所述字节数得到相应的带宽值,每隔预设时间直接将获取的字节数清零。

优选的,所述预设时间为1s。

为解决上述技术问题,本发明还提供了一种对ceph文件系统进行带宽控制的系统,应用于软件samba网络层的循环查询机制tevent中,包括:

创建模块,用于创建定时器,其中,所述定时器包括用于每隔预设时间触发清零字节数的定时函数;

统计模块,用于统计获取的字节数,并根据所述字节数得到相应的带宽值;

判断模块,用于判断所述带宽值是否大于理论带宽值;

清零模块,用于若是,则关闭网络socket事件,将获取的所述字节数清零,触发网络socket事件。

优选的,所述网络socket事件为网络socket读事件。

优选的,所述网络socket事件为网络socket写事件。

优选的,所述判断所述带宽值是否大于理论带宽值之后,若是,则关闭网络socket事件之前,所述清零模块还用于若否,则继续所述网络socket事件,触发统计模块,并每隔预设时间直接将获取的字节数清零。

优选的,所述预设时间为1s。

本发明提供了一种对ceph文件系统进行带宽控制的方法,应用于软件samba网络层的循环查询机制tevent中,包括创建定时器,其中,定时器包括用于每隔预设时间触发清零字节数的定时函数;统计获取的字节数,并根据字节数得到相应的带宽值;判断带宽值是否大于理论带宽值;若是,则关闭网络socket事件,将获取的字节数清零,触发网络socket事件。

可见,应用本发明的方法,在tevent机制中对带宽进行控制的时候,不会阻塞整个程序的正常运行,可以实现对带宽的上行和下行进行分离控制,且使用本发明的方法来控制带宽,可以直接获取网络中的字节数,得到相应的带宽值,不需要估算,当带宽值大于理论带宽值时,关闭网络socket事件,通过定时器定时清零获取的字节数来控制带宽,这样做可以使带宽控制更加精确,提高了带宽的灵活性和准确性,降低了带宽控制的复杂性,进而可以对ceph文件系统的访问量进行有效控制,提高了ceph文件系统的稳定性。

本发明还提供了一种对ceph文件系统进行带宽控制的系统,具有如上述控制方法相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的一种对ceph文件系统进行带宽控制方法的流程图;

图2为本发明所提供的一种对ceph文件系统进行带宽控制系统的结构示意图。

具体实施方式

本发明的核心是提供一种对ceph文件系统进行带宽控制的方法,不仅可以实现对带宽的上行和下行进行分离控制,而且可以直接获取网络中的字节数,得到相应的带宽值,提高了带宽的灵活性和准确性,进而可以对ceph文件系统的访问量进行有效的控制,提高了ceph文件系统的稳定性。本发明的另一核心是提供一种ceph文件系统进行带宽控制的系统。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明所提供的一种对ceph文件系统进行带宽控制方法的流程图,包括:

步骤s1:创建定时器,其中,定时器包括用于每隔预设时间触发清零字节数的定时函数;

具体的,samba进程创建循环定时器,每隔预设时间定时器启动一次控制这个时间段内的带宽,使带宽控制更加准确更加灵活。

步骤s2:统计获取的字节数,并根据字节数得到相应的带宽值;

具体的,带宽就是在一个固定的时间内,能传送的最大字节数,所以想要对带宽进行控制,则需要控制其传送的字节数,应用本发明提供的方法,可以直接获取字节数,不需要估算,使带宽控制更加精确。

步骤s3:判断带宽值是否大于理论带宽值;

具体的,在实际应用中,对ceph文件系统进行访问的数据量如果过大,会造成文件系统崩溃,所以若想ceph文件系统保持稳定,则需要把ceph文件系统的业务量在某一时间段内控制到一定范围,即把访问带宽控制在理论范围值之内,所以本发明根据统计的字节数得到相应的带宽值之后,首先与理论带宽值进行比较,这样做可以提高带宽的灵活性和准确性,为对ceph文件系统的访问量进行有效控制提供了基础。

步骤s4:若是,则关闭网络socket事件,将获取的字节数清零,触发网络socket事件。

具体的,samba进程通常通过socket向网络发出请求或者应答网络请求。当网络socket事件获取的带宽值大于理论带宽值时,则需要对带宽进行控制,将网络socket事件关闭,不再获取网络中的字节数,到达预设时间时,将获取的字节数清空,再触发网络socket事件,重新统计从网络中获取的字节数,应用这种方式,使带宽控制更加精确,且不会阻塞整个程序的正常运行,在对上行带宽进行控制时,不会影响下行操作,在对上行带宽进行控制的时候,也不会影响上行操作,可以实现对带宽的上行和下行进行分离控制,提高了带宽的灵活性和准确性,降低了带宽控制的复杂性。

其中,网络socket事件受事件监控机制event_loop监控,当它监控到网络socket事件触发或关闭时,通知给用户。

本发明提供了一种对ceph文件系统进行带宽控制的方法,应用于软件samba网络层的循环查询机制tevent中,包括创建定时器,其中,定时器包括用于每隔预设时间触发清零字节数的定时函数;统计获取的字节数,并根据字节数得到相应的带宽值;判断带宽值是否大于理论带宽值;若是,则关闭网络socket事件,将获取的字节数清零,触发网络socket事件。

可见,应用本发明的方法,在tevent机制中对带宽进行控制的时候,不会阻塞整个程序的正常运行,可以实现对带宽的上行和下行进行分离控制,且使用本发明的方法来控制带宽,可以直接获取网络中的字节数,得到相应的带宽值,不需要估算,当带宽值大于理论带宽值时,关闭网络socket事件,通过定时器定时清零获取的字节数来控制带宽,这样做可以使带宽控制更加精确,提高了带宽的灵活性和准确性,降低了带宽控制的复杂性,进而可以对ceph文件系统的访问量进行有效控制,提高了ceph文件系统的稳定性。

在上述实施例的基础上:

作为一种优选的实施例,网络socket事件为网络socket读事件。

具体的,网络socket读事件,在实际应用中,就是从网络中读取数据进行业务处理的过程。

当然网络socket事件除了可以为网络socket读事件,还可以为其他事件,本发明在此不做限定。

作为一种优选的实施例,网络socket事件为网络socket写事件。

具体的,网络socket的写事件,在实际应用中,就是进行业务处理向网络中发送数据的过程。

当然网络socket事件除了可以为网络socket写事件,还可以为其他事件,本发明在此不做限定。

作为一种优选的实施例,判断带宽值是否大于理论带宽值之后,若是,则关闭网络socket事件之前,该方法还包括:

若否,则继续网络socket事件,并继续统计获取的字节数,并根据字节数得到相应的带宽值,每隔预设时间直接将获取的字节数清零。

具体的,当从网络中统计得到的带宽值小于等于理论带宽值时,应用本发明的方法,每隔预设时间也会将获取的字节数清零,再重新获取网络中的字节数,这样可以使带宽控制算法更精确,更严谨。

作为一种优选的实施例,预设时间为1s。

具体的,带宽就是在一个固定的时间内能通过的最大字节数,当预设时间为1s时,从网络中获取的字节数就是带宽值,进一步降低了带宽控制的复杂性。

请参照图2,图2为本发明所提供的一种对ceph文件系统进行带宽控制系统的结构示意图,包括:

创建模块1,用于创建定时器,其中,定时器包括用于每隔预设时间触发清零字节数的定时函数;

统计模块2,用于统计获取的字节数,并根据字节数得到相应的带宽值;

判断模块3,用于判断带宽值是否大于理论带宽值;

清零模块4,用于若是,则关闭网络socket事件,将获取的字节数清零,触发网络socket事件。

作为一种优选的实施例,网络socket事件为网络socket读事件。

作为一种优选的实施例,网络socket事件为网络socket写事件。

作为一种优选的实施例,判断带宽值是否大于理论带宽值之后,若是,则关闭网络socket事件之前,清零模块4还用于若否,则继续网络socket事件,触发统计模块2,并每隔预设时间直接将获取的字节数清零。

作为一种优选的实施例,预设时间为1s。

对于本发明所提供的一种对ceph文件系统进行带宽控制系统的介绍请参照上述实施例,本发明在此不再赘述。

本发明还提供了一种对ceph文件系统进行带宽控制的系统,具有如上述控制方法相同的有益效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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