一种数据的存储方法和设备的制作方法

文档序号:6600299阅读:245来源:国知局
专利名称:一种数据的存储方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种数据的存储方法和设备。
背景技术
RAID (Redundant Array of Inexpensive Disks,磁盘冗余阵列)是一种高性能、高可靠性的存储技术,通过将一系列单独的磁盘以不同的方式组合起来,为应用终端或终 端集群提供逻辑上的磁盘。其中,使用RAID的优点包括扩大磁盘容量、提高磁盘读写的性 能和数据的安全性等。具体的,RAID技术已经广泛应用于数据存储的各种场合,长用的RAID技术包括 RAIDO、RAIDl、RAID5、RAID6、RAIDlO等;其中,RAIDO不具有冗余能力,RAIDl并不是完全的 磁盘阵列;而RAID5、RAID6和RAIDlO分别由多块磁盘(例如,RAID5和RAID6不少于3块, RAIDlO不少于4块)组成,各个RAID以条带的方式向阵列中的磁盘写数据,并将奇偶校验 数据存放在阵列中的各个磁盘上。在目前的监控领域中,一般是通过使用RAID5阵列为监控设备提供用于数据写入 的存储阵列,而在使用RAID5阵列作为监控数据写入的载体时,为了减少空间的耗损,通常 是将一个磁盘柜(例如,16块磁盘)作1个RAID5阵列,该RAID5阵列为15块磁盘,剩下一 块磁盘做为热备盘。但是,监控数据的写入都是实时性的(例如,每周为24X7小时),从而导致在每个 磁盘柜中,几乎所有的磁盘都在运转,(即每个磁盘柜的15块磁盘都需要转动),并不能起 到节能的效果,而且会加剧硬盘的耗损,导致硬盘故障。从实际应用中可以得出,RAID5阵 列在这种运行模式下工作时,硬盘的故障率很高。而随着运行时间的增加,当出现两块磁盘 故障时,导致数据丢失的风险会大幅度增加。

发明内容
本发明提供一种数据的存储方法和设备,以减少磁盘的耗损程度,并增加磁盘的 使用时间。为了达到上述目的,本发明提出了一种数据的存储方法,应用于包括多个阵列的 存储设备中,所述方法包括以下步骤a,从所述多个阵列中选择主阵列和备份阵列;b,当有数据需要存储到所述存储设备时,向所述主阵列和所述备份阵列中写入数 据;C,当所述主阵列中写入的数据超过预设阈值时,保存所述主阵列中的数据,并从 所述备份阵列和其他阵列中重新选择主阵列和备份阵列,并转到b。所述方法还包括在各个阵列中记录数据写入次数和作为备份阵列次数;向所述主阵列和所述备份阵列中写入数据,之后还包括将所述主阵列的数据写入次数加1,并将所述备份阵列的数据写入次数和作为备份阵列次数分别加1。从所述多个阵列中选择主阵列和备份阵列,具体包括根据各个阵列的数据写入 次数和作为备份阵列次数来选择主阵列和备份阵列;从所述备份阵列和其他阵列中重新选择主阵列和备份阵列,具体包括根据所述 备份阵列和其他阵列的数据写入次数和作为备份阵列次数重新选择主阵列和备份阵列。根据所述备份阵列和其他阵列的数据写入次数和作为备份阵列次数重新选择主 阵列和备份阵列,具体包括判断所述备份阵列的作为备份阵列次数是否超过预设数值;如果是时,则根据其 他阵列的数据写入次数重新选择主阵列,并根据其他阵列的作为备份阵列次数重新选择备 份阵列;否则,继续选择所述备份阵列为重新选择的备份阵列,并根据其他阵列的数据写入 次数重新选择主阵列。当向所述备份阵列中写入数据失败时,所述方法还包括从其他阵列中重新选择备份阵列,继续向所述主阵列中写入数据,并将数据写入到重新选择的备份阵列;当向所述主阵列中写入数据失败时,所述方法还包括将所述备份阵列作为新的 主阵列,并从其他阵列中重新选择备份阵列,继续向新的主阵列中写入数据,并将数据写入 到重新选择的备份阵列。所述数据包括有时效的持续写入数据,所述方法还包括当到达所述数据的时效时间时,确定所述主阵列中保存的数据失效,并确定能够 继续选择所述主阵列为后续数据存储过程中的主阵列或者备份阵列。一种数据的存储设备,应用于包括多个阵列的存储设备中,该设备进一步包括选择模块,用于从所述多个阵列中选择主阵列和备份阵列;并在所述主阵列中写 入的数据超过预设阈值时,从所述备份阵列和其他阵列中重新选择主阵列和备份阵列;存储模块,与所述选择模块连接,用于当有数据需要存储到所述存储设备时,向所 述主阵列和所述备份阵列中写入数据;处理模块,与所述存储模块连接,用于当所述主阵列中写入的数据超过预设阈值 时,保存所述主阵列中的数据。所述存储模块还用于,在各个阵列中记录数据写入次数和作为备份阵列次数;所述处理模块还用于,在向所述主阵列和所述备份阵列中写入数据之后,将所述 主阵列的数据写入次数加1,并将所述备份阵列的数据写入次数和作为备份阵列次数分别 加1。所述选择模块还用于,根据各个阵列的数据写入次数和作为备份阵列次数来选择 主阵列和备份阵列;并根据所述备份阵列和其他阵列的数据写入次数和作为备份阵列次数 重新选择主阵列和备份阵列;并进一步用于判断所述备份阵列的作为备份阵列次数是否超过预设数值;如果是 时,则根据其他阵列的数据写入次数重新选择主阵列,并根据其他阵列的作为备份阵列次 数重新选择备份阵列;否则,继续选择所述备份阵列为重新选择的备份阵列,并根据其他阵 列的数据写入次数重新选择主阵列。当向所述备份阵列中写入数据失败时,所述选择模块还用于,从其他阵列中重新 选择备份阵列;
所述存储模块还用于,继续向所述主阵列中写入数据,并将数据写入到重新选择的备份阵列;当向所述主阵列中写入数据失败时,所述选择模块还用于,将所述备份阵列作为新的主阵列,并从其他阵列中重新选择备份阵列;所述存储模块还用于,继续向新的主阵列中写入数据,并将数据写入到重新选择的备份阵列。所述数据包括有时效的持续写入数据,所述处理模块还用于,当到达所述数据的时效时间时,确定所述主阵列中保存的 数据失效,并确定能够继续选择所述主阵列为后续数据存储过程中的主阵列或者备份阵 列。与现有技术相比,本发明具有以下优点能够减少磁盘的耗损,增加磁盘以及设备的使用寿命;而且每个磁盘柜上都只有 少部分磁盘在运行,结合磁盘休眠技术可以起到节能的效果;即使有磁盘故障需要进行数 据恢复时,也只需要恢复一块磁盘的数据,对于业务和其他磁盘上的数据不会产生影响;而 且可以增加数据写入的安全性,不会因为硬盘故障导致数据写入失败,导致业务中断。


图1为本发明提出的一种数据的存储方法流程图;图2为本发明一种应用场景下提出的一种数据的存储方法流程图;图3为本发明提出的一种数据的存储设备的结构图。
具体实施例方式本发明中,通过从多个阵列中选择主阵列和备份阵列,并向该主阵列和备份阵列 中写入数据,只有当主阵列中写入的数据超过预设阈值(例如,主阵列中写满数据)时,才 会重新选择主阵列和备份阵列。而在选择主阵列和备份阵列的过程中,可以根据各个阵列的数据写入次数和作为 备份阵列次数来进行选择,能够使得各个阵列作为主阵列的次数和作为备份阵列的次数相 差不大,从而充分利用存储设备中的每一块磁盘,减少磁盘柜中磁盘的耗损程度,增加存储 设备的使用年限。而且能够保证每个磁盘柜上都只有少部分硬盘在运行,结合磁盘休眠技 术可以起到节能的效果。基于上述思想,本发明中提供一种数据的存储方法,应用于包括多个阵列的存储 设备中,如图1所示,该方法包括以下步骤步骤101,从多个阵列中选择主阵列和备份阵列。在存储设备中,通常是将一个磁盘柜(例如,16块磁盘)作为监控数据写入的载 体,本发明中,通过将各个磁盘做成对应的jbod阵列,并从各个jbod阵列中选择其中一个 jbod阵列作为备份阵列,选择另外一个jbod阵列作为主阵列。其中,jbod阵列为“简单磁 盘捆绑”,是广泛应用的一种存储阵列,在当前的存储领域中,jbod阵列是相当重要的存储 设备。而对于jbod阵列来说,在存储数据时,数据是从第一个磁盘开始存储,只有当第一个 磁盘的存储空间用完之后,才会向后面的磁盘中存储数据。
当然,在实际应用中,并不局限于将各个磁盘做成对应的jbod阵列,只要在数据 存储过程中能够依次将数据写入到每个磁盘中即可,后续过程中直接以阵列为例进行说 明。另外,在本发明中,为了保证每个阵列的均衡使用,还记录了各个阵列的数据写入 次数和作为备份阵列次数,并在从多个阵列中选择主阵列和备份阵列时,根据各个阵列的 数据写入次数和作为备份阵列次数来选择主阵列和备份阵列。具体的,如果还未向各个阵列中写入数据时,则各个阵列的数据写入次数和作为 备份阵列次数均为0,此时,在选择主阵列和备份阵列时,则可以根据实际的需要任意选择 主阵列和备份阵列。而当各个阵列中有阵列的数据写入次数和作为备份阵列次数不为0时,则说明相 应的阵列中已经写入过数据,为了减少磁盘的耗损程度,保证每个磁盘的均勻使用,则需要 根据各个阵列的数据写入次数和作为备份阵列次数来选择主阵列和备份阵列,例如,选择 数据写入次数最少的阵列为主阵列,并选择作为备份阵列次数最少的阵列为备份阵列。步骤102,当有数据需要存储到存储设备时,则分别向主阵列和备份阵列中写入数 据。具体的,为了提高数据存储的可靠性,本发明中,通过将数据同时写入到主阵列和 备份阵列中,当主阵列或者备份阵列中有一个阵列对应的磁盘出现故障时,另外一个磁盘 中仍然有相应的数据,从而不会导致数据丢失和业务中断。步骤103,当主阵列中写入的数据超过预设阈值时,保存所述主阵列中的数据,并 从备份阵列和其他阵列中重新选择主阵列和备份阵列,并转到步骤102中。该预设阈值可以根据需要任意选择,例如,对于jbod阵列来说,需要在一个jbod 阵列写满数据之后向其他jbod阵列写入数据,则此时该预设阈值为该jbod阵列的全部存 储空间。当然,在实际应用中,还可以选择其他的阈值,例如,选择该阵列存储空间的95%为 该预设阈值,本发明中不再赘述,以预设阈值为阵列的全部存储空间为例进行后续的说明。具体的,由于各个阵列的存储空间相同,则主阵列中写满数据时,则对应的备份阵 列中也写满了数据,此时,该主阵列中的数据需要保留,而该备份阵列中的数据不需要保 留。可以理解的是,在向主阵列和备份阵列中写入数据后,则需要将主阵列的数据写入次数 加1,并将备份阵列的数据写入次数和作为备份阵列次数分别加1。当然,该数据写入次数 和作为备份阵列次数并不局限于加1,例如,每次向主阵列和备份阵列中写入数据后,则将 主阵列和备份阵列的数据写入次数加2,并将备份阵列的作为备份阵列次数加3。为了简便 描述,本发明中数据写入次数和作为备份阵列次数均以加1为例进行说明。需要注意的是,为了实现将主阵列中的数据保留,而备份阵列中的数据不需要保 留的过程,本发明中,还可以设置标志位,并通过使用该标志位表示阵列中的数据需要保 留。即当主阵列中已经写满数据时,为该主阵列设置该标志位,并设置需要保留的时间,后 续过程中,该主阵列则不能再次用于主阵列或者备份阵列;而由于备份阵列没有设置该标 志位,则后续过程中该备份阵列能够再次用于主阵列或者备份阵列。当然,在实际应用中,还可以根据主阵列和备份阵列的选取规则实现将主阵列中 的数据保留,即每块磁盘在数据保留时间内只能作为一次主阵列。例如,当数据需要保留15 天时,则在选择主阵列和备份阵列时,需要保证在15天内每块磁盘只能作为一次主阵列。
可以看出,由于该主阵列中已经写满数据,则此时该主阵列不能再次作为存储数 据的阵列,而根据主阵列和备份阵列的选取规则,能够保证主阵列的数据不会被清除(破 坏),直到该主阵列上的数据过期。而对于该备份阵列和其他阵列,由于能够继续写入数据, 则可以继续作为主阵列和备份阵列,以继续存储数据。而对于该备份阵列来说,由于已经写 入了数据,则再次写入数据时,只需要将原数据覆盖即可。本步骤中,当主阵列中写满数据后,则需要从备份阵列和其他阵列中重新选择主 阵列和备份阵列,并转到步骤102中。具体的,在从备份阵列和其他阵列中重新选择主阵列和备份阵列的过程中,需要 根据备份阵列和其他阵列的数据写入次数和作为备份阵列次数重新选择主阵列和备份阵 列。例如,选择数据写入次数最少的阵列为主阵列,并选择作为备份阵列次数最少的阵列为 备份阵列。另外,为了保证每个磁盘作为备份阵列的次数相同,可以根据磁盘的个数选择一 个预设数值,在选择一个磁盘作为备份阵列时,需要判断该磁盘作为备份阵列的次数是否 达到该预设数值,如果没有,则继续选择该磁盘作为备份阵列。基于这种情况,在从备份阵 列和其他阵列中重新选择主阵列和备份阵列的过程中,还需要判断备份阵列的作为备份阵 列次数是否超过预设数值;如果是时,则根据其他阵列的数据写入次数重新选择主阵列,并 根据其他阵列的作为备份阵列次数重新选择备份阵列;否则,继续选择该备份阵列为重新 选择的备份阵列,并根据其他阵列的数据写入次数重新选择主阵列。需要说明的是,通过使用上述的处理过程,即能够实现将数据写入到存储设备中, 而本发明中,为了提高数据存储的可靠性,通过将数据同时写入到主阵列和备份阵列中,当 主阵列或者备份阵列中有一个阵列对应的磁盘出现故障时,另外一个磁盘中仍然有相应的 数据,从而不会导致数据丢失和业务中断。因此,在数据写入的过程中,分为两种情况考虑磁盘出现故障的情况第一种情况当向备份阵列中写入数据失败时,则需要从其他阵列中重新选择备份阵列,继续 向该主阵列中写入数据,并将数据写入到重新选择的备份阵列;第二种情况当向主阵列中写入数据失败时,则需要将该备份阵列作为新的主阵列,并从其他 阵列中重新选择备份阵列,继续向新的主阵列中写入数据,并将数据写入到重新选择的备 份阵列。为了更加清楚的说明本发明提供的技术方案,以下结合一种具体的应用场景,对 本发明提供的技术方案进行详细阐述。本应用场景下,假设每个磁盘柜有16块磁盘(磁盘 柜中磁盘的个数并不会影响本发明的具体实现),而16块磁盘做成16个jbod阵列,为了 方便描述,为每个jbod阵列编号为1 16,以下称为阵列1、阵列2、依次类推,一直到阵列 16。本应用场景中,根据磁盘所能承受的业务压力(例如,每块磁盘上可以有30路512K码 流的摄像头),将相应数量的摄像头(例如30个摄像头)录制的数据完全分布在一块磁盘 中,并通过监控方案的配合,即可以做到当一个jbod阵列写满之后,写下一个jbod阵列。基 于上述情况,如图2所示,该数据存储方法进一步包括步骤201,根据各个磁盘创建阵列。本应用场景中,为将16块磁盘做成16个阵列。
8
步骤202,在各个阵列中选择主阵列和备份阵列。本发明中,为了将磁盘的耗损均摊到每块磁盘上,主阵列和备份阵列可以由16块 磁盘轮流做,因此,在选择主阵列和备份阵列之前,还需要记录各个阵列的数据写入次数和 作为备份阵列次数,而在选择主阵列和备份阵列的过程中,需要根据各个阵列的数据写入 次数和作为备份阵列次数来选择主阵列和备份阵列。具体的,在初始向各个阵列写入数据时,需要将所有磁盘作为备份阵列的计数清 零,并默认设置一个阵列为备份阵列,例如,首先设置阵列16为备份阵列(当然,实际应用 中也可以选择其他的阵列为备份阵列);并在该磁盘上记录该磁盘作为备份阵列次数为1, 数据写入次数为0。另外,还需要选择一个阵列为主阵列,例如,首先设置阵列1为主阵列, (当然,实际应用中也可以选择其他的阵列为主阵列)。需要注意的是,如果各个阵列中有阵列已经写入了数据时,则相应的有阵列的数 据写入次数和作为备份阵列次数不为0,此时,选择主阵列和备份阵列的详细过程将在后续 步骤中进行论述。步骤203,在数据需要写入到存储设备时,将主阵列和备份阵列组成临时的RAID1 阵列,并将数据同时写入到主阵列和备份阵列上。即当检测到有写入到阵列1的数据时,则 需要将该数据同时写入到备份阵列(阵列16)。步骤204,当主阵列中的数据写满时,临时RAID1阵列的关系解除,保存主阵列中 的数据,并转到步骤202中从各个阵列中重新选择主阵列和备份阵列。其中,由于各个阵列 的存储空间相同,则主阵列中写满数据时,则对应的备份阵列中也写满了数据,此时,该主 阵列中的数据需要保留,而该备份阵列中的可以重新被选举为主阵列或者是备份阵列。本应用场景中,当阵列1上的数据写满之后,则阵列1的数据写入次数为1,而备份 阵列(阵列16)的数据写入次数为1,作为备份阵列次数为1。而由于该主阵列中已经写满 数据,则此时该主阵列不能再次作为存储数据的阵列,而对于该备份阵列和其他阵列,则可 以继续作为主阵列和备份阵列,以继续存储数据。在转到步骤202中从各个阵列中重新选择主阵列和备份阵列时,需要根据备份阵 列和其他阵列的数据写入次数和作为备份阵列次数重新选择主阵列和备份阵列。例如,选 择数据写入次数最少的阵列为主阵列(此时不能在选择阵列1),并选择作为备份阵列次数 最少的阵列为备份阵列。而在实际应用中,为了将磁盘的耗损均摊到每块磁盘上,备份阵列可以由16块磁 盘轮流做,基于这种前提,本发明中,可以将每个阵列作为备份阵列的次数选择为磁盘总数 减1,例如,当阵列1-阵列15依次选择为主阵列时,阵列16始终为备份阵列,即阵列16做 15次备份阵列;之后选择阵列15作为备份阵列,当阵列1-阵列14以及阵列16依次选择 为主阵列时,阵列15始终为备份阵列;以此类推,使得备份阵列可以由16块磁盘轮流做,而 且每块磁盘作为备份阵列的次数相同,从而将磁盘的耗损均摊到每块磁盘上。基于上述情况,可以根据磁盘的个数选择一个预设数值,在选择一个磁盘作为备 份阵列时,需要判断该磁盘作为备份阵列的次数是否达到该预设数值,如果没有,则继续选 择该磁盘作为备份阵列。本应用场景下,阵列1写满数据后,则数据会迁移到下一个阵列(例如阵列2,为重 新选择的主阵列,可以理解的是,在选择主阵列的过程中,需要选择数据写入次数最少的阵列为主阵列)中进行存储;而当检测到阵列2上有数据流量时,则需要将数据同时写入到备 份阵列(此时仍然为阵列16)。需要注意的是,本应用场景中提到的数据为有时效的持续写入数据,即当到达数 据的时效时间时,则确定对应阵列中保存的数据失效,并确定能够继续选择该阵列为后续 数据存储过程中的主阵列或者备份阵列。例如,数据的时效时间为7天时,则阵列1中数据 写入的时间到达7天后,则阵列1中写入的数据失效,此时,该阵列1即可以作为主阵列或 者备份阵列。因此,在选择主阵列的过程中,阵列1的数据写入次数为1,而如果其他阵列的 数据写入次数均小于1时,则不会选择阵列1作为主阵列,而如果其他阵列的数据写入次数 均大于1时,则需要选择阵列1作为主阵列。需要说明的是,由于在数据写入过程中,阵列是RAID1,即数据同时写入到主阵列 和备份阵列中,所以当有一块磁盘故障时,不会导致数据丢失和业务中断。本应用场景中,在数据写入的过程中,如果阵列1报错(即主阵列出现故障),则取 消备份阵列16的标志,将阵列16取代阵列1成为主阵列,同时重新选择一个阵列作为备份 阵列(例如,阵列15,此时需要记录该阵列15作为备份阵列次数为1,数据写入次数为1), 数据同时写入到主阵列(阵列16)和备份阵列(阵列15)。而在数据写入的过程中,如果备 份阵列16报错,则重新选择备份阵列,数据继续写入到主阵列,并写入到新选择的备份阵 列中。综上可以看出,通过使用本发明提供的技术方案,能够减少磁盘的耗损,增加磁盘 以及设备的使用寿命;而且每个磁盘柜上都只有少部分磁盘在运行,结合磁盘休眠技术可 以起到节能的效果;即使有磁盘故障需要进行数据恢复时,也只需要恢复一块磁盘的数据, 对于业务和其他磁盘上的数据不会产生影响;而且可以增加数据写入的安全性,不会因为 硬盘故障导致数据写入失败,导致业务中断。例如,监控数据需要保留15天,则每天需要写满一块磁盘,其中,每天的数据是完 全写入一块真实存放数据的磁盘(主阵列)和一块备份数据磁盘(备份阵列),使得每天真 正在运行的磁盘就只有两块,其余磁盘都处于休眠状态,一方面保证了数据写入的安全性、 业务的连续性,同时也能起到很好的节能效果。基于与上述方法同样的发明构思,本发明还提出了一种数据的存储设备应用于包 括多个阵列的存储设备中,如图3所示,该设备进一步包括选择模块10,用于从所述多个阵列中选择主阵列和备份阵列;并在所述主阵列中 写入的数据超过预设阈值时,从所述备份阵列和其他阵列中重新选择主阵列和备份阵列。具体的,在从所述多个阵列中选择主阵列和备份阵列的过程中,所述选择模块10 还用于根据各个阵列的数据写入次数和作为备份阵列次数来选择主阵列和备份阵列;并 根据所述备份阵列和其他阵列的数据写入次数和作为备份阵列次数重新选择主阵列和备 份阵列;并进一步用于判断所述备份阵列的作为备份阵列次数是否超过预设数值;如果是 时,则根据其他阵列的数据写入次数重新选择主阵列,并根据其他阵列的作为备份阵列次 数重新选择备份阵列;否则,继续选择所述备份阵列为重新选择的备份阵列,并根据其他阵 列的数据写入次数重新选择主阵列。存储模块20,与所述选择模块10连接,用于当有数据需要存储到所述存储设备 时,向所述主阵列和所述备份阵列中写入数据。
另外,在本发明中,为了保证每个阵列的均衡使用,还需要记录各个阵列的数据写 入次数和作为备份阵列次数,并在从多个阵列中选择主阵列和备份阵列时,根据各个阵列 的数据写入次数和作为备份阵列次数来选择主阵列和备份阵列。基于这种情况,所述存储 模块20还用于,在各个阵列中记录数据写入次数和作为备份阵列次数。处理模块30,与所述存储模块20连接,用于当所述主阵列中写入的数据超过预设 阈值时,保存所述主阵列中的数据。在向所述主阵列和所述备份阵列中写入数据之后,对于存储模块20在各个阵列 中记录数据写入次数和作为备份阵列次数,所述处理模块30还用于将所述主阵列的数据 写入次数加1,并将所述备份阵列的数据写入次数和作为备份阵列次数分别加1。需要说明的是,为了提高数据存储的可靠性,通过将数据同时写入到主阵列和备 份阵列中,当主阵列或者备份阵列中有一个阵列对应的磁盘出现故障时,另外一个磁盘中 仍然有相应的数据,从而不会导致数据丢失和业务中断。因此,在数据写入的过程中,当向所述备份阵列中写入数据失败时,所述选择模块 10还用于,从其他阵列中重新选择备份阵列;所述存储模20块还用于,继续向所述主阵列 中写入数据,并将数据写入到重新选择的备份阵列;当向所述主阵列中写入数据失败时,所述选择模块10还用于,将所述备份阵列作 为新的主阵列,并从其他阵列中重新选择备份阵列;所述存储模块20还用于,继续向新的 主阵列中写入数据,并将数据写入到重新选择的备份阵列。需要说明的是,本发明中的所述数据包括有时效的持续写入数据,此时,所述处理 模块30还用于,确定所述主阵列中保存的数据失效,并确定能够继续选择所述主阵列为后 续数据存储过程中的主阵列或者备份阵列。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通 过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发 明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储 介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可 以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
一种数据的存储方法,应用于包括多个阵列的存储设备中,其特征在于,所述方法包括以下步骤a,从所述多个阵列中选择主阵列和备份阵列;b,当有数据需要存储到所述存储设备时,向所述主阵列和所述备份阵列中写入数据;c,当所述主阵列中写入的数据超过预设阈值时,保存所述主阵列中的数据,并从所述备份阵列和其他阵列中重新选择主阵列和备份阵列,并转到b。
2.如权利要求1所述的方法,其特征在于,所述方法还包括在各个阵列中记录数据写 入次数和作为备份阵列次数;向所述主阵列和所述备份阵列中写入数据,之后还包括将所述主阵列的数据写入次数加1,并将所述备份阵列的数据写入次数和作为备份阵 列次数分别加1。
3.如权利要求2所述的方法,其特征在于,从所述多个阵列中选择主阵列和备份阵列,具体包括根据各个阵列的数据写入次数 和作为备份阵列次数来选择主阵列和备份阵列;从所述备份阵列和其他阵列中重新选择主阵列和备份阵列,具体包括根据所述备份 阵列和其他阵列的数据写入次数和作为备份阵列次数重新选择主阵列和备份阵列。
4.如权利要求3所述的方法,其特征在于,根据所述备份阵列和其他阵列的数据写入 次数和作为备份阵列次数重新选择主阵列和备份阵列,具体包括判断所述备份阵列的作为备份阵列次数是否超过预设数值;如果是时,则根据其他阵 列的数据写入次数重新选择主阵列,并根据其他阵列的作为备份阵列次数重新选择备份阵 列;否则,继续选择所述备份阵列为重新选择的备份阵列,并根据其他阵列的数据写入次数 重新选择主阵列。
5.如权利要求1-4任一项所述的方法,其特征在于,当向所述备份阵列中写入数据失败时,所述方法还包括从其他阵列中重新选择备份 阵列,继续向所述主阵列中写入数据,并将数据写入到重新选择的备份阵列;当向所述主阵列中写入数据失败时,所述方法还包括将所述备份阵列作为新的主阵 列,并从其他阵列中重新选择备份阵列,继续向新的主阵列中写入数据,并将数据写入到重 新选择的备份阵列。
6.如权利要求1-4任一项所述的方法,其特征在于,所述数据包括有时效的持续写入 数据,所述方法还包括当到达所述数据的时效时间时,确定所述主阵列中保存的数据失效,并确定能够继续 选择所述主阵列为后续数据存储过程中的主阵列或者备份阵列。
7.一种数据的存储设备,应用于包括多个阵列的存储设备中,其特征在于,该设备进一 步包括选择模块,用于从所述多个阵列中选择主阵列和备份阵列;并在所述主阵列中写入的 数据超过预设阈值时,从所述备份阵列和其他阵列中重新选择主阵列和备份阵列;存储模块,与所述选择模块连接,用于当有数据需要存储到所述存储设备时,向所述主 阵列和所述备份阵列中写入数据;处理模块,与所述存储模块连接,用于当所述主阵列中写入的数据超过预设阈值时,保存所述主阵列中的数据。
8.如权利要求7所述的设备,其特征在于,所述存储模块还用于,在各个阵列中记录数据写入次数和作为备份阵列次数;所述处理模块还用于,在向所述主阵列和所述备份阵列中写入数据之后,将所述主阵 列的数据写入次数加1,并将所述备份阵列的数据写入次数和作为备份阵列次数分别加1。
9.如权利要求8所述的设备,其特征在于,所述选择模块还用于,根据各个阵列的数据写入次数和作为备份阵列次数来选择主阵 列和备份阵列;并根据所述备份阵列和其他阵列的数据写入次数和作为备份阵列次数重新 选择主阵列和备份阵列;并进一步用于判断所述备份阵列的作为备份阵列次数是否超过预设数值;如果是时, 则根据其他阵列的数据写入次数重新选择主阵列,并根据其他阵列的作为备份阵列次数重 新选择备份阵列;否则,继续选择所述备份阵列为重新选择的备份阵列,并根据其他阵列的 数据写入次数重新选择主阵列。
10.如权利要求7-9任一项所述的设备,其特征在于,当向所述备份阵列中写入数据失败时,所述选择模块还用于,从其他阵列中重新选择 备份阵列;所述存储模块还用于,继续向所述主阵列中写入数据,并将数据写入到重新选择的备 份阵列;当向所述主阵列中写入数据失败时,所述选择模块还用于,将所述备份阵列作为新的 主阵列,并从其他阵列中重新选择备份阵列;所述存储模块还用于,继续向新的主阵列中写入数据,并将数据写入到重新选择的备 份阵列。
11.如权利要求7-9任一项所述的设备,其特征在于,所述数据包括有时效的持续写入 数据,所述处理模块还用于,当到达所述数据的时效时间时,确定所述主阵列中保存的数据 失效,并确定能够继续选择所述主阵列为后续数据存储过程中的主阵列或者备份阵列。
全文摘要
本发明公开了一种数据的存储方法,包括以下步骤从多个阵列中选择主阵列和备份阵列;当有数据需要存储到所述存储设备时,向所述主阵列和所述备份阵列中写入数据;当所述主阵列中写入的数据超过预设阈值时,保存所述主阵列中的数据。本发明中,能够减少磁盘的耗损,增加磁盘以及设备的使用寿命。
文档编号G06F11/14GK101825992SQ201010140909
公开日2010年9月8日 申请日期2010年4月8日 优先权日2010年4月8日
发明者蔡斌 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1