一种基于时分复用的存储方法和装置转让专利

申请号 : CN200910250646.4

文献号 : CN101729421A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙策

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了一种基于时分复用的存储方法,包括:存储设备将数据划分为至少两个批次;所述存储设备根据划分结果为每个批次中的数据设置时间片时长;所述存储设备根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。本发明中,通过使用时分复用技术,显著提高了缓存单元的利用率。

权利要求 :

1.一种基于时分复用的存储方法,其特征在于,应用于需要处理大量并发数据的存储设备中,所述方法包括以下步骤:所述存储设备将所述数据划分为至少两个批次;

所述存储设备根据划分结果为每个批次中的数据设置时间片时长;

所述存储设备根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。

2.如权利要求1所述的方法,其特征在于,所述方法应用的系统中还包括至少两个监控设备,所述数据为对应所述监控设备的数据;

所述存储设备将所述数据划分为至少两个批次具体包括:

所述存储设备为每个监控设备分别创建逻辑资源,所述逻辑资源用于存储所述监控设备对应的数据;

所述存储设备获取所述逻辑资源的总数,并根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次。

3.如权利要求2所述的方法,其特征在于,所述存储设备根据划分结果为每个批次中的数据设置时间片时长具体包括:所述存储设备根据划分结果获取所述数据的批次总数;

所述存储设备根据所述批次总数和预设的时间长度为每个批次中的数据设置时间片时长。

4.如权利要求3所述的方法,其特征在于,根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次之后,还包括:所述存储设备根据所述时间片时长向一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令;

当所述监控设备接收到所述发包指令时,向所述存储设备上对应的逻辑资源写入自身的数据;

当所述监控设备接收到所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入自身的数据。

5.如权利要求3所述的方法,其特征在于,当有新的逻辑资源被创建,或者,原有逻辑资源被释放时,所述方法还包括:所述存储设备根据当前逻辑资源的总数和所述预设的参数为所述监控设备对应的数据重新划分批次,并判断批次总数是否发生变化;

当批次总数发生变化时,所述存储设备根据当前批次总数和所述预设的时间长度重新设置时间片时长;使重新划分的每个批次中的监控设备根据所述重新设置的时间片时长向所述存储设备写入自身的数据。

6.一种基于时分复用的存储装置,其特征在于,应用于需要处理大量并发数据的存储设备中,所述装置包括:批次划分模块,用于将所述数据划分为至少两个批次;

时间片时长设置模块,与所述批次划分模块连接,用于根据划分结果为每个批次中的数据设置时间片时长;

收发模块,与所述时间片时长设置模块连接,用于根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。

7.如权利要求6所述的装置,其特征在于,所述装置应用的系统中还包括至少两个监控设备,所述数据为对应所述监控设备的数据;

所述批次划分模块具体用于,为每个监控设备分别创建逻辑资源,所述逻辑资源用于存储所述监控设备对应的数据;获取所述逻辑资源的总数,并根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次。

8.如权利要求7所述的装置,其特征在于,

所述时间片时长设置模块具体用于,根据划分结果获取所述数据的批次总数;并根据所述批次总数和预设的时间长度为每个批次中的数据设置时间片时长。

9.如权利要求8所述的装置,其特征在于,

所述收发模块还用于,根据所述时间片时长向一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令;由所述监控设备根据所述发包指令向所述存储设备上对应的逻辑资源写入自身的数据,由所述监控设备根据所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入自身的数据。

10.如权利要求8所述的装置,其特征在于,当有新的逻辑资源被创建,或者,原有逻辑资源被释放时,所述批次划分模块还用于,根据当前逻辑资源的总数和所述预设的参数为所述监控设备对应的数据重新划分批次,并判断批次总数是否发生变化;

所述时间片时长设置模块还用于,当批次总数发生变化时,根据当前批次总数和所述预设的时间长度重新设置时间片时长;使重新划分的每个批次中的监控设备根据所述重新设置的时间片时长向所述存储设备写入自身的数据。

说明书 :

一种基于时分复用的存储方法和装置

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及一种基于时分复用的存储方法和装置。

背景技术

[0002] RAID(Redundant Array of Inexpensive Disks,磁盘冗余阵列)是一种高性能、高可靠性的存储技术,通过将一系列单独的磁盘以不同的方式组合起来,为应用终端或终端集群提供逻辑上的磁盘。其中,使用RAID的优点包括:扩大磁盘容量、提高磁盘读写的性能和数据的安全性等。
[0003] 具体的,RAID技术已经广泛应用于数据存储的各种场合,使用RAID技术的包括RAID0、RAID1、RAID5、RAID6、RAID10等;其中,RAID0不具有冗余能力,RAID1并不是完全的磁盘阵列;而RAID5、RAID6和RAID10分别由多块磁盘(例如,RAID5和RAID6不少于3块,RAID10不少于4块)组成,各个RAID以条带的方式向阵列中的磁盘写数据,并将奇偶校验数据存放在阵列中的各个磁盘上。
[0004] 在数据存储的各种场合,使用最为广泛的是RAID5,该RAID5的每个条带中包含有1个校验位,在RAID5中,可以通过对条带中其他数据分块中的数据进行奇偶校验来提供冗余保护;即当一块磁盘损坏时,可以通过校验位与其他数据盘的奇偶运算来重建丢失的数据。
[0005] 具体的,奇偶校验数据是由每个条带中的数据位使用XOR运算得出的,在一个磁盘发生损坏时,可以通过对应条带中的数据位 奇偶校验位,并使用XOR运算来还原丢失的数据。
[0006] 如图1所示,为一种针对RAID5阵列存储数据过程示意图,其中,在图1中,RAID5阵列是由5块磁盘组成,而缓存是由一系列的缓存单元所组成,缓存单元的大小和条带的大小相同,当缓存单元写满后,将缓存单元中的数据刷入阵列磁盘中,并计算条带校验和,其中,P的数据块是奇偶校验数据,分别由每个条带中的数据XOR算出。图1中,[0007]
[0008]
[0009]
[0010]
[0011] 此时,假设Disk1损坏,则条带1中的数据A,可以由B C D P1运算得出。可以看出,通过使用奇偶校验数据,当一块磁盘损坏时,可以通过校验位来重建丢失的数据。
[0012] 此外,由于校验位数据的存在,在写入新数据时,需要更新校验位数据,如图1所示,当需要对个别数据块执行写入(不是进行整个条带的写入)操作时,则需要将条带中的其他数据块读出,并和新写入的数据,重新进行条带校验位的计算,继而将新写入的数据和新校验和一起写入条带中。
[0013] 但是,当一个缓存单元中的数据未写满,而到达了强制刷缓时间时,则需要进行非整个条带的刷缓过程,例如,有一个缓存单元中有数据A’和数据B’,当到达了强制刷缓时间时,需要将数据A’和数据B’写入到条带1中,此时,首先需要将数据C和数据D读出,并计算新校验和P’,即P’=A’ B’ C D;然后,将数据A’、B’和P’一起写入到条带中。
[0014] 综上可以看出,对于整个刷缓过程,缓存单元在满条带刷缓时,比缓存单元在非满条带刷缓时,缺少读取旧数据的操作过程,从而使得满条带刷缓过程的执行速度快于非满条带刷缓过程的执行速度,即需要尽量使用满条带刷缓。
[0015] 现有技术中,对于监控存储系统,数据流是顺序写入流,为了使缓存单元进行满条带刷缓,监控存储系统中常用的一种写缓存技术为将写缓存以条带大小为单位划分为一个个独立的缓存单元。例如,阵列条带大小为64KB时,则缓存也以64KB为标准划分成一个个64KB大小的缓存单元。此时,如果阵列的总缓存为800MB,则会被划分为12800个缓存单元。
[0016] 具体的,在监控存储系统中,存储设备会对并发写入的数据包进行分析,并将目标地址连续的数据包存放在同一个缓存单元中,当缓存单元填满后,则需要向阵列中的条带刷入数据。而如果缓存单元没有存满,则该缓存单元不会接受与已经存储的数据包的目的地址不连续的数据,将一直处于等待连续数据的状态;而如果到达强制刷缓时间时,则需要将非整个条带的数据刷入阵列的条带中。
[0017] 可以看出,在监控存储系统中,当监控设备写入的路数不多时,对应的写入数据也不多,写入的数据将呈现顺序写特征,此时,监控存储系统处理和分析数据目的地址的压力较小,可以迅速的对每个IO做出响应,并根据数据的目的地址将数据快速的分配到对应的缓存单元中,并以整条带写入方式向阵列中及时的刷入数据。在这种情况下,如果监控设备对应的数据链路由于传输延时等原因造成不能及时将数据写入到存储设备时,将导致对应的缓存单元长期处于等待连续数据的状态,在到达强制刷缓时间后,则需要以非条带的方式刷入阵列中,而由于整个阵列的缓存单元很多,监控设备对应的缓存单元处于等待连续数据的状态时,不会影响到其他正常监控设备的数据存储过程所使用的缓存单元,所以并不影响整个存储设备的写入性能。
[0018] 但是,随着监控设备写入路数的增加,对应的写入数据包也大量增加,如果并发写入数很多(即向存储设备写入数据的监控设备很多)时,则到达监控设备的数据会很多,此时,监控存储系统处理和分析数据目的地址的压力很大,IO平均相应速度将会大大增加,存储性能随之下降,从而导致部分数据可能会呈现随即写的特性。此外,在大量数据包写入时,缓存单元的使用率会很高,即空闲的缓存单元很少,此时,如果监控设备对应的数据链路由于传输延时等原因造成不能及时将数据写入到存储设备时,也会导致对应的缓存单元长期处于等待连续数据的状态,在到达强制刷缓时间后,则需要以非条带的方式刷入阵列中,而由于大量数据包写入时空闲的缓存单元很少,监控设备对应的缓存单元处于等待连续数据的状态时,将会影响到其他正常监控设备的数据存储过程所使用的缓存单元,继而影响整个存储设备的写入性能,从而造成存储设备性能的下降。
[0019] 例如,在实际应用中,当10路监控流(对应监控设备写入的路数不多的情况)以每秒16个16KB(4M码流)包发送数据到存储设备时,存储设备中大概维持有960个缓存单元被占用,而每个IO的平均相应时间为1ms左右。如果阵列中一共有12800个缓存单元,当有100路监控数据(对应监控设备写入路数的增加的情况)写入时,理论计算时被占用的缓存单元为9600个,而存储设备为12800个缓存单元,存储设备支持100路监控数据写入;但是,监控设备对应的数据链路由于传输延时等原因造成不能及时将数据写入到存储设备时,将导致对应的缓存单元长期处于等待连续数据状态,继而导致实际的测试结果为12800个缓存单元全部被占用,而每个IO的平均相应时间为56ms,监控数据发生丢包现象,即实际应用中存储设备不支持(4M码流)100路监控数据同时写入。
[0020] 综上可以看出,上述监控存储系统中至少存在以下问题:
[0021] 1、大量数据流并发写入时,监控存储系统中同时处理和分析数据目的地址的压力很大,IO平均相应时间明显增加。
[0022] 2、大量数据流并发写入时,缓存单元在写满后将同时请求向阵列中写入数据,导致磁盘写入时呈现无规律的寻道现象,从而增加了刷缓时间,导致存储设备性能的下降。
[0023] 3、大量数据流并发写入时,缓存单元的使用率较高,当部分监控设备对应的数据链路由于传输延时等原因造成不能及时将数据写入到存储设备时,将导致对应的缓存单元长期处于等待连续数据的状态,继而影响到其他正常设备对缓存单元的使用,存储设备的性能下降。

发明内容

[0024] 本发明提供一种基于时分复用的存储方法和装置,以提高存储设备的使用性能,并降低IO平均使用时间。
[0025] 为了达到上述目的,本发明提出了一种基于时分复用的存储方法,应用于需要处理大量并发数据的存储设备中,所述方法包括以下步骤:
[0026] 所述存储设备将所述数据划分为至少两个批次;
[0027] 所述存储设备根据划分结果为每个批次中的数据设置时间片时长;
[0028] 所述存储设备根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。
[0029] 所述方法应用的系统中还包括至少两个监控设备,所述数据为对应所述监控设备的数据;
[0030] 所述存储设备将所述数据划分为至少两个批次具体包括:
[0031] 所述存储设备为每个监控设备分别创建逻辑资源,所述逻辑资源用于存储所述监控设备对应的数据;
[0032] 所述存储设备获取所述逻辑资源的总数,并根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次。
[0033] 所述存储设备根据划分结果为每个批次中的数据设置时间片时长具体包括:
[0034] 所述存储设备根据划分结果获取所述数据的批次总数;
[0035] 所述存储设备根据所述批次总数和预设的时间长度为每个批次中的数据设置时间片时长。
[0036] 根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次之后,还包括:
[0037] 所述存储设备根据所述时间片时长向一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令;
[0038] 当所述监控设备接收到所述发包指令时,向所述存储设备上对应的逻辑资源写入自身的数据;
[0039] 当所述监控设备接收到所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入自身的数据。
[0040] 当有新的逻辑资源被创建,或者,原有逻辑资源被释放时,所述方法还包括:
[0041] 所述存储设备根据当前逻辑资源的总数和所述预设的参数为所述监控设备对应的数据重新划分批次,并判断批次总数是否发生变化;
[0042] 当批次总数发生变化时,所述存储设备根据当前批次总数和所述预设的时间长度重新设置时间片时长;使重新划分的每个批次中的监控设备根据所述重新设置的时间片时长向所述存储设备写入自身的数据。
[0043] 一种基于时分复用的存储装置,应用于需要处理大量并发数据的存储设备中,所述装置包括:
[0044] 批次划分模块,用于将所述数据划分为至少两个批次;
[0045] 时间片时长设置模块,与所述批次划分模块连接,用于根据划分结果为每个批次中的数据设置时间片时长;
[0046] 收发模块,与所述时间片时长设置模块连接,用于根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。
[0047] 所述装置应用的系统中还包括至少两个监控设备,所述数据为对应所述监控设备的数据;
[0048] 所述批次划分模块具体用于,为每个监控设备分别创建逻辑资源,所述逻辑资源用于存储所述监控设备对应的数据;获取所述逻辑资源的总数,并根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次。
[0049] 所述时间片时长设置模块具体用于,根据划分结果获取所述数据的批次总数;并根据所述批次总数和预设的时间长度为每个批次中的数据设置时间片时长。
[0050] 所述收发模块还用于,根据所述时间片时长向一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令;由所述监控设备根据所述发包指令向所述存储设备上对应的逻辑资源写入自身的数据,由所述监控设备根据所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入自身的数据。
[0051] 当有新的逻辑资源被创建,或者,原有逻辑资源被释放时,
[0052] 所述批次划分模块还用于,根据当前逻辑资源的总数和所述预设的参数为所述监控设备对应的数据重新划分批次,并判断批次总数是否发生变化;
[0053] 所述时间片时长设置模块还用于,当批次总数发生变化时,根据当前批次总数和所述预设的时间长度重新设置时间片时长;使重新划分的每个批次中的监控设备根据所述重新设置的时间片时长向所述存储设备写入自身的数据。
[0054] 与现有技术相比,本发明具有以下优点:通过使用时分复用技术,将大量并发顺序数据流按时间片进行分批,从而减小了存储设备对写入到缓存单元中数据连续性判断的并发工作量,并减小了IO的平均相应时间;而且通过将大量并发顺序数据流按时间片进行分批,减少了缓存单元写满后请求向阵列中写入数据,使得磁盘在写入时呈现一定的顺序性,方便寻道,并提高了刷缓效率;另外,通过将大量并发顺序数据流按时间片进行分批,使得数据分时分批的写入到缓存单元,当部分监控设备存在故障并导致延时,向存储设备写入问题数据的时间将会被限制在时间片的时间内,从而不会减少对缓存单元的占用数量,显著提高了缓存单元的利用率。

附图说明

[0055] 图1为现有技术中存储数据过程示意图;
[0056] 图2为本发明提出的一种基于时分复用的存储方法流程图;
[0057] 图3为本发明一种具体应用场景下提出的基于时分复用的存储方法流程图;
[0058] 图4为本发明提出的一种基于时分复用的存储装置结构图;
[0059] 图5为本发明提出的另一种基于时分复用的存储装置结构图。

具体实施方式

[0060] 本发明的核心思想是通过将写入的数据流按时间片时长,分为若干批次并分别进行处理,当存储设备处理其中一个批次的数据包时,其他批次的数据包将依次等待自身时间片的到来,只有当到达自身的时间片时长时,才会对阵列进行写入操作。从而将大量并发顺序数据流按时间片进行分批,减小了存储设备对写入到缓存单元中数据连续性判断的并发工作量,并减小了IO的平均相应时间;而且通过将大量并发顺序数据流按时间片进行分批,减少了缓存单元写满后请求向阵列中写入数据,使得磁盘在写入时呈现一定的顺序性,方便寻道,并提高了刷缓效率;另外,通过将大量并发顺序数据流按时间片进行分批,使得数据分时分批的写入到缓存单元,当部分监控设备存在故障并导致延时,向存储设备写入问题数据的时间将会被限制在时间片的时间内,从而不会减少对缓存单元的占用数量,显著提高了缓存单元的利用率。
[0061] 如图2所示,为本发明提出的一种基于时分复用的存储方法,应用于需要处理大量并发数据的存储设备中,所述方法包括以下步骤:
[0062] 步骤201,所述存储设备将所述数据划分为至少两个批次。
[0063] 步骤202,所述存储设备根据划分结果为每个批次中的数据设置时间片时长。
[0064] 步骤203,所述存储设备根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。
[0065] 为了更加清楚的说明本发明所提供的基于时分复用的存储方法,以下结合一种具体的应用场景对本发明进行详细赘述。该应用场景是针对监控存储系统的,在监控存储系统中,至少包括了存储设备和监控设备,其中,本应用场景是针对大量监控设备同时向存储设备写入数据的。当然,在实际应用中,并不局限于监控设备向存储设备写入数据,还可以为其他设备向存储设备写入数据。
[0066] 如图3所示,该方法包括以下步骤:
[0067] 步骤301,存储设备对数据对应的设备进行批次划分。其中,该数据对应的设备包括但不限于监控设备、采集设备等。为了方便描述,本发明实施例中以监控设备为例进行后续的说明。
[0068] 本步骤中,存储设备需要将数据对应的监控设备进行批次划分,后续过程以存储设备对监控设备进行批次划分为例进行说明,对于数据对应的其他设备,处理方式与该监控设备的处理方式相同,本发明中不再赘述。
[0069] 具体的,由于大量的监控设备需要向存储设备写入数据,本步骤中,需要将该大量的监控设备进行批次划分。
[0070] 在实际应用中,存储设备可以根据自身的需要确定是否进行批次划分;其中,该存储设备可以直接进行批次划分,即无论有多少监控设备需要向存储设备写入数据,该存储设备都执行批次划分的操作。
[0071] 此外,该存储设备还可以根据实际的需要设置一个批次划分门限值,即只有当需要向存储设备写入数据的监控设备的数量超出该批次划分门限值时,该存储设备才会执行批次划分的操作。例如,当存储设备的硬件性能很好时,可以设置一个比较大的批次划分门限值;当存储设备的硬件性能不是很好时,可以设置一个比较小的批次划分门限值。当然,实际应用中,该批次划分门限值的选取是任意的,本发明中以存储设备直接进行批次划分为例进行说明。
[0072] 本步骤中,该存储设备对监控设备进行批次划分包括:
[0073] (1)当监控设备在阵列中创建逻辑资源时,存储设备记录逻辑资源的数量。其中,当监控设备需要向阵列中写入数据时,则需要由存储设备创建逻辑资源,并使用该逻辑资源存储对应监控设备的数据。可以看出,逻辑资源总数和需要向阵列中写入数据的监控设备总数是相同的,且一一对应,即存储设备可以使用逻辑资源总数代替监控设备总数。
[0074] (2)存储设备获取该逻辑资源的总数,并根据逻辑资源的总数和预设的参数将监控设备划分为不同的批次。其中,该预设的参数为根据实际需要任意选择的,例如,当同时向存储设备写入数据的监控设备为10个时,可以保证不会影响到存储设备的性能,则该预设的参数可以选择10。
[0075] 具体的,该存储设备需要根据该预设的参数为监控设备进行编号,相同的编号表示同一个时间片的批次,而不同的编号表示不同的批次。例如,当预设的参数为10时,对于前10个逻辑资源所对应的监控设备,对应的编号为1,表示第一批次的监控设备。之后的10个逻辑资源所对应的监控设备,对应的编号为2,表示第二批次的监控设备;以此类推。
[0076] 综上可以看出,根据该逻辑资源的总数和预设的参数即可以获知批次的数量,例如,当逻辑资源的总数为76时,对应了76台监控设备,如果按10台一批的编号,则一共编了8批,即批次的数量为8。
[0077] 需要说明的是,为了简化存储设备中的处理过程,可以在存储设备中添加一个时分控制模块,并使用该时分控制模块执行本步骤中的操作,即通过使用时分控制模块对监控设备进行批次划分等操作,当然,在实际应用中,并不局限于使用该时分控制模块执行本发明中的相关操作,还可以使用存储设备中的其他模块,或是任意模块或实体的组合来实现本发明,而本发明中只是以时分控制模块为例来说明对应操作过程,对于其他的情况不再赘述。
[0078] 进一步需要说明的是,在使用时分控制模块执行本发明中的相关操作时,该时分控制模块可以集成在存储设备上,该时分控制模块还可以集成在其他设备上,或者,该时分控制模块单独做为一个设备(例如,控制设备),并通过使用该单独的设备进行相应的处理,本发明中以时分控制模块集成在存储设备上为例进行说明。
[0079] 步骤302,时分控制模块确定时间片时长。其中,该时分控制模块可以为所有的批次设置相同的时间片时长;或者,该时分控制模块还可以为不同的批次设置不同的时间片时长,例如,为第一批次的监控设备设置100ms的时间片时长,为第二批次的监控设备设置105ms的时间片时长等。
[0080] 在实际应用中,该时间片时长可以根据实际的需要任意设置,本发明中以为所有的批次设置相同的时间片时长为例进行说明。例如,该时分控制模块可以直接将时间片时长设置为100ms,此时,所有批次的时间片时长均为100ms。
[0081] 此外,根据实际的需要,时分控制模块还可以设置一个预设的时间长度,该预设的时间长度为所有批次所使用的时间长度,此时,时分控制模块需要根据批次总数(即监控设备的最大编号)和预设的时间长度确定该时间片时长,该时间片时长的确定公式为(预设的时间长度)/(最大编号)。例如,有76台监控设备时,按10台一批的编号,则一共编了8批,即最大编号为8,如果预设的时间长度为1000ms时,则时间片时长=1000/8=125ms。
[0082] 步骤303,时分控制模块向其中一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令。
[0083] 根据自身的需要,该时分控制模块可以根据该时间片时长,并按照第一批次、第二批次等的批次顺序依次向监控设备发送发包指令或者暂停发包指令;该时分控制模块也可以根据该时间片时长,并任意依次选择批次(例如,一共有4个批次时,可以按照第二批次、第三批次、第一批次、第四批次的顺序;需要注意的是,时分控制模块需要依次选择到所有的批次)向监控设备发送发包指令或者暂停发包指令。
[0084] 例如,当时分控制模块向第一批次(编号为1)的监控设备发送发包指令时,该时分控制模块还需要向第二批次的监控设备、第三批次的监控设备和第四批次的监控设备(以共有4个批次为例)发送暂停发包指令。
[0085] 需要说明的是,从向其中一个批次中的监控设备发送发包指令开始计时,当到达时间片时长后,则该时分控制模块需要向该批次中的监控设备发送暂停发包指令,并向下一个批次中的监控设备发送发包指令,此时,需要从0开始重新计算时间,当到达时间片时长后,对这一批次监控设备发送暂停发包指令,依此类推。
[0086] 例如,时间片时长为125ms时,如果时分控制模块向第一批次的监控设备发送发包指令到达125ms后,该时分控制模块需要向第一批次的监控设备发送暂停发包指令;当时分控制模块接受到监控设备对该暂停发包指令的回复指令后,该时分控制模块需要向下一个批次(例如,第二批次)的监控设备发送发包指令,此时,第一批次的监控设备、第三批次的监控设备和第四批次的监控设备处于接收到暂停发包指令的状态。
[0087] 可以看出,以此类推,时分控制模块需要根据该时间片时长,依次向各个批次的监控设备发送发包指令,或者暂停发包指令;继而由各个监控设备根据该发包指令或者暂停发包指令进行相应的处理。
[0088] 步骤304,监控设备根据发包指令或者暂停发包指令进行相应的处理。其中,当监控设备接收到发包指令时,该监控设备可以向存储设备对应的逻辑资源存储数据包;当监控设备接收到暂停发包指令时,该监控设备不能像存储设备中存储数据包。
[0089] 需要说明的是,可以在监控设备中新增加一个复用控制模块,并使用该复用控制模块接收来自存储设备时分控制模块发送过来的发包指令或者暂停发包指令;当然,实际应用中,并不局限于使用该复用控制模块执行本发明中的相关操作,还可以使用监控设备中的其他模块,或是任意模块或实体的组合来实现本发明,而本发明中只是以复用控制模块为例来说明对应操作过程,对于其他的情况不再赘述。
[0090] 可以看出,当复用控制模块接收到发包指令时,该监控设备需要将数据包(监控数据包)存储到存储设备对应的逻辑资源上,并一直向存储设备存储自身的数据包;只有当复用控制模块接收到暂停发包指令(该接收过程在上述步骤中已经赘述,本步骤中不再赘述)后,才会停止向存储设备存储自身的数据包,并在下一次接收到发包指令后,继续将数据包存储到存储设备对应的逻辑资源上。
[0091] 综上所述,在本发明中,通过将写入的数据流按时间片时长,分为若干批次并分别进行处理,当存储设备处理其中一个批次的数据包时,其他批次的数据包将依次等待自身时间片的到来,只有当到达自身的时间片时长时,才会对阵列进行写入操作。例如,时分控制模块可以将100路监控流(对应于100台监控设备的数据包)按照100ms的时间片进行分批,每10路监控流一个时间片批次,1s钟的时间内可以将100路监控流轮询一遍。此时,在每个时间片时间内,存储设备只需要处理10路监控流的写入,并对10路监控流进行相应的处理,即将监控流写入到缓存单元,以及后续写入到条带中的相关操作等,本发明中不再详加赘述该处理过程。
[0092] 可以看出,通过将写入的数据流按时间片时长分为若干批次并分别进行处理,当一个时间片时间结束之后,第二个时间片批次的数据流开始写入存储设备,而第一时间片未完成刷缓操作的缓存单元将以较高的优先级继续向阵列刷入数据;而之后时间片批次的数据流将按照相同操作方式进行写入。当其中一个批次或者几个批次的数据流中存在网络或者设备故障,导致占用缓存单元的情况出现时,由于有时间片的控制,当时间片时间到达后,上述的问题数据流将停止继续扩大占用缓存单元,从而使其他批次的数据流不会受到影响。
[0093] 需要说明的是,当有新的逻辑资源被创建(即有新的监控设备需要向存储设备写入数据包),或者,原有逻辑资源被释放(即正在向存储设备写入数据包的监控设备不再需要向存储设备写入数据包)时,上述的时分控制模块还需要对监控设备重新划分批次,该重新划分批次的方式与步骤301中的方式相同,在此不再赘述。仍以预设的参数为10个为例进行说明,当需要向存储设备写入数据包的监控设备从76个变成了81个时(例如,有5个新的监控设备需要向存储设备写入数据包),则监控设备的批次从8个变成了9个;同样的,当需要向存储设备写入数据包的监控设备从76个变成了69个时(例如,有7个监控设备不再需要向存储设备写入数据包),则监控设备的批次从8个变成了7个。
[0094] 当监控设备的批次发生变化时,如果时分控制模块是通过设置预设的时间长度来计算时间片时长的话,则时分控制模块还需要根据该新的批次总数重新计算时间片时长,并在计算完成后,按照重新计算获得的时间片时长进行分批存储。
[0095] 需要注意的是,在新建逻辑资源时,时分控制模块还需要向当前批次的监控设备发送暂停发包指令,以使该批次中的监控设备停止向存储设备写入数据包,当新的时间片时长和批次产生后,按照之前暂停的批次编号开始使用新的时间片时长恢复数据传输。
[0096] 其中,本发明中的步骤还可以根据实际的需要进行调整。
[0097] 可以看出,通过使用本发明提供的方法,具有以下优点:
[0098] (1)计算时间的比较(以100路写入为例):
[0099] 由于现有技术中以并发方式将数据包写入到存储设备,在第一批数据包到达后,存储设备需要将100个数据包放入到100个缓存单元,并记录各缓存单元中数据包的目的地址,当后续的数据包到达后,存储设备需要将每个数据包的目的地址与之前到达的100个数据包的目的地址进行比较,以判断数据包的连续性,计算量较大。而本发明中通过将100路数据包,以10路为单位分成10个批次,每一个批次间数据包的连续性判断计算量将大大的减少,从而使IO平均相应时间加快。
[0100] (2)刷缓寻道时间比较:
[0101] 现有技术中100路数据包是并行写入的,缓存单元写满后需要将数据刷入到阵列磁盘,由于是并行写入,在磁盘刷入过程中,大量缓存单元中的数据是同时写入到磁盘的,使得磁盘无规律的寻道,导致性能下降。而本发明中通过将100路数据流以10路为单位分成10个批次,在磁盘刷入过程中,根据批次的不同,对应的缓存优先级不同,继而不需要将数据同时写入到磁盘;而且10个资源地址与100个资源地址相比较来说,寻道的规律性要高很多,性能得到了提高。
[0102] (3)故障设备对存储性能影响比较:
[0103] 现有技术中如果100路监控设备中有设备(例如,设备1)由于网络或者自身故障等原因,导致向存储设备上的写入的数据本身不连续时,上述的问题数据将会占用缓存单元,最后并以非条带的方式刷入到阵列中;此时,存储该问题数据的缓存单元的释放周期是非常长的。而且,由于设备1是不间断的向存储设备写入数据的,对应的问题数据也会不断的占用空闲的缓存单元,从而导致其他正常设备的数据会缺少可用的缓存单元,继而使得缓存的利于率大大下降,整个存储设备的性能降低。而本发明中通过将100路数据流以10路为单位分成10个批次;如果设备1在第一个批次,则该设备1可以向缓存单元写入数据的时间只有原先时间的十分之一,对空闲缓存单元的占用得到了有效的控制,从而保障了存储的性能。
[0104] 如图4所示,为本发明所提出的一种基于时分复用的存储装置,该装置应用于需要处理大量并发数据的存储设备中,该存储设备包括:
[0105] 批次划分模块41,用于将所述数据划分为至少两个批次。
[0106] 所述装置应用的系统中还包括至少两个监控设备,所述数据为对应所述监控设备的数据;所述批次划分模块41具体用于为每个监控设备分别创建逻辑资源,所述逻辑资源用于存储所述监控设备对应的数据;获取所述逻辑资源的总数,并根据所述逻辑资源的总数和预设的参数将所述监控设备对应的数据划分为至少两个批次。
[0107] 此外,当有新的逻辑资源被创建,或者,原有逻辑资源被释放时,所述批次划分模块41还用于根据当前逻辑资源的总数和所述预设的参数为所述监控设备对应的数据重新划分批次,并判断批次总数是否发生变化。
[0108] 时间片时长设置模块42,与所述批次划分模块41连接,用于根据划分结果为每个批次中的数据设置时间片时长。
[0109] 所述时间片时长设置模块42具体用于根据划分结果获取所述数据的批次总数;并根据所述批次总数和预设的时间长度为每个批次中的数据设置时间片时长。
[0110] 另外的,由于新的逻辑资源被创建或者原有逻辑资源被释放,从而导致批次划分模块41重新划分批次时,所述时间片时长设置模块42还用于当批次总数发生变化时,根据当前批次总数和所述预设的时间长度重新设置时间片时长;使重新划分的每个批次中的监控设备根据所述重新设置的时间片时长向所述存储设备写入自身的数据。
[0111] 收发模块43,与所述时间片时长设置模块42连接,用于根据所述时间片时长依次接收每个批次中的数据,并对所述数据进行处理。
[0112] 具体的,所述收发模块43还用于根据所述时间片时长向一个批次中的监控设备发送发包指令,并向其他批次中的监控设备发送暂停发包指令;由所述监控设备根据所述发包指令向所述存储设备上对应的逻辑资源写入自身的数据,由所述监控设备根据所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入自身的数据。
[0113] 其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。例如,可以将上述的批次划分模块41、时间片时长设置模块42和收发模块43集成到存储设备的时分控制模块中。
[0114] 如图5所示,为本发明所提出的一种基于时分复用的存储装置,该装置应用于包括存储设备和至少两个监控设备的系统中,并作为所述系统中的监控设备,包括:
[0115] 收发模块51,用于接收所述存储设备根据时间片时长向一个批次中的监控设备发送发包指令,或者,向其他批次中的监控设备发送暂停发包指令。
[0116] 处理模块52,与所述收发模块51连接,用于当接收到所述发包指令时,向所述存储设备上对应的逻辑资源写入数据包;
[0117] 当接收到所述暂停发包指令时,不需要向所述存储设备上对应的逻辑资源写入数据包。
[0118] 其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。例如,可以将上述的收发模块51和处理模块52集成到监控设备的复用控制模块中。
[0119] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明所述的方法。
[0120] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
[0121] 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0122] 上述本发明序号仅仅为了描述,不代表实施例的优劣。
[0123] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。