一种计算机用数据迁移系统及方法

文档序号:923453 发布日期:2021-03-02 浏览:1次 >En<

阅读说明:本技术 一种计算机用数据迁移系统及方法 (Data migration system and method for computer ) 是由 王建华 赵莉 于 2020-11-16 设计创作,主要内容包括:本发明公开了一种计算机用数据迁移系统及方法,数据迁移系统包括块划分模块、关键字采集模块和已存在数据信息采集模块,所述块划分模块预先采集固态驱动器SSD中各个Block的磨损数值,将各个Block按照磨损数值所处的范围划分为第一Block、第二Block和第三Block,其中,第一Block的磨损数值大于第二Block的磨损数值,第二Block的磨损数值大于第三Block的磨损数值,所述关键字采集模块用于采集准备写入的待写入数据的关键字为第一关键字,在SSD搜索包含第一关键字的已存在数据,在SSD中存储有包含第一关键字的已存在数据时,令所述已存在数据信息采集模块获取该已存在数据的最早写入时间以及已存在数据在当前所处的Block内的信息判断待写入数据的写入的Block。(The invention discloses a data migration system and a method for a computer, the data migration system comprises a block division module, a keyword acquisition module and a stored data information acquisition module, the Block division module collects the wear values of all blocks in the SSD in advance, divides all blocks into a first Block, a second Block and a third Block according to the range of the wear values, wherein the wear value of the first Block is greater than that of the second Block, the wear value of the second Block is greater than that of the third Block, the keyword collection module is used for collecting keywords of data to be written into as first keywords, when the SSD searches for existing data that includes the first key, and when the existing data that includes the first key is stored in the SSD, and enabling the existing data information acquisition module to acquire the earliest writing time of the existing data and the information of the existing data in the current Block to judge the Block of the writing of the data to be written.)

一种计算机用数据迁移系统及方法

技术领域

本发明涉及计算机技术领域,具体为一种计算机用数据迁移系统及方法。

背景技术

SSD是固态驱动器的简称,又叫固态硬盘,固态硬盘是用固态电子存储芯片阵列制成的硬盘,固态硬盘具有读写速度快、防震抗摔性、低功耗、无噪音、工作温度范围大和轻便等优点,被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。现有技术中,当SSD在某个区域进行频繁擦写时,会导致该区域的磨损较大,影响SSD的使用寿命。

发明内容

本发明的目的在于提供一种计算机用数据迁移系统及方法,以解决上述背景技术中提出的问题。

为了解决上述技术问题,本发明提供如下技术方案:一种计算机用数据迁移系统,所述数据迁移系统包括块划分模块、关键字采集模块和已存在数据信息采集模块,所述块划分模块预先采集固态驱动器SSD中各个Block的磨损数值,将各个Block按照磨损数值所处的范围划分为第一Block、第二Block和第三Block,其中,第一Block的磨损数值大于第二Block的磨损数值,第二Block的磨损数值大于第三Block的磨损数值,所述关键字采集模块用于采集准备写入的待写入数据的关键字为第一关键字,在SSD搜索包含第一关键字的已存在数据,在SSD中存储有包含第一关键字的已存在数据时,令所述已存在数据信息采集模块获取该已存在数据的最早写入时间以及已存在数据在当前所处的Block内的信息判断待写入数据的写入的Block。

进一步的,所述已存在数据信息采集模块包括时间间隔时长采集模块、运行操作信息采集模块和写入选择模块,所述时间间隔时长采集模块用于获取该已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长,在该时间间隔时长大于间隔时长阈值时令运行操作信息采集模块采集已存在数据写入Block的运行操作信息,所述写入选择模块根据运行操作信息采集模块的内容将待写入数据的写入第一Block或者第二Block或者第三Block,所述写入选择模块包括第一Block写入模块、第二Block写入模块和第三Block写入模块,所述第一Block写入模块用于将待写入数据的写入第一Block,所述第二Block写入模块用于将待写入数据的写入第二Block,所述第三Block写入模块用于将待写入数据的写入第三Block。

进一步的,所述运行操作信息采集模块包括时长划分模块、擦写次数采集模块、擦写次数判断模块、第一擦写比较模块、第二擦写比较模块,

所述时长划分模块用于将已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长平均划分成第一时长、第二时长和第三时长,所述擦写次数采集模块采集已存在数据在当前所处的Block中在第一时长、第二时长、第三时长内的擦写次数c1、c2、c3,所述擦写次数判断模块用于判断擦写次数c1、c2、c3中与擦写阈值c0的关系,在擦写次数c1、c2、c3中存在两个擦写次数大于等于擦写阈值c0时,设剩余的那个擦写次数为cq1并令第一擦写比较模块进行处理,在擦写次数c1、c2、c3中存在两个擦写次数小于擦写阈值c0时,设剩余的那个擦写次数为cq2并令第二擦写比较模块进行处理;

所述第一擦写比较模块包括第一擦写相差率比较模块和第一剩余空间比较模块,所述第一擦写相差率比较模块根据擦写次数为cq1和擦写阈值c0计算第一擦写相差率,并将其与第一擦写相差率阈值进行比较,在第一擦写相差率cm大于等于第一擦写相差率阈值时令第三Block写入模块工作,在在第一擦写相差率cm小于第一擦写相差率阈值时,第一剩余空间比较模块比较第二Block和第三Block中未写入数据的剩余空间,根据剩余空间情况选择令第二Block写入模块或者第三Block写入模块工作;

所述第二擦写比较模块包括第二擦写相差率比较模块和第二剩余空间比较模块,所述第二擦写相差率比较模块根据擦写次数为cq2和擦写阈值c0计算第二擦写相差率,并将其与第二擦写相差率阈值进行比较,在第一擦写相差率cn大于等于第一擦写相差率阈值时令第一Block写入模块工作,在在第一擦写相差率cm小于第一擦写相差率阈值时,第二剩余空间比较模块比较第一Block和第二Block中未写入数据的剩余空间,根据剩余空间情况选择令第一Block写入模块或者第二Block写入模块工作。

进一步的,所述数据迁移系统还包括Block比较模块、第三剩余空间比较模块和数据迁移模块,所述Block比较模块用于比较已存在数据在当前所处的Block和待写入数据写入的Block的类型,当已存在数据在当前所处的Block和待写入数据写入的Block中一个为第一Block,另一个为第三Block时,令第三剩余空间比较模块根据待写入数据写入的Block未写入数据的剩余空间和已存在数据在当前所处的Block未写入数据的剩余空间计算第三空间相差率,在第三空间相差率大于等于第三空间相差率阈值时,令数据迁移模块将已存在数据从原先的Block迁移到待写入数据写入的Block。

一种计算机用数据迁移方法,所述数据迁移方法包括:

步骤S1:预先采集固态驱动器SSD中各个Block的磨损数值,将各个Block按照磨损数值所处的范围划分为第一Block、第二Block和第三Block,其中,第一Block的磨损数值大于第二Block的磨损数值,第二Block的磨损数值大于第三Block的磨损数值;

步骤S2:采集准备写入的待写入数据的关键字为第一关键字,在SSD搜索包含第一关键字的已存在数据,如果SSD中存储有包含第一关键字的已存在数据,获取该已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长,

当该时间间隔时长大于间隔时长阈值时,采集已存在数据写入Block的运行操作信息,根据运行操作信息判断待写入数据的写入的Block。

进一步的,所述步骤S2中根据运行操作信息判断待写入数据的写入方式包括:

将已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长平均划分成第一时长、第二时长和第三时长,

采集已存在数据在当前所处的Block中在第一时长、第二时长、第三时长内的擦写次数c1、c2、c3;

如果擦写次数c1、c2、c3中存在两个擦写次数大于等于擦写阈值c0时,设剩余的那个擦写次数为cq1,

当第一擦写相差率cm=(cq1-c0)/c0大于等于第一擦写相差率阈值时,将待写入数据写入第三Block,

当第一擦写相差率cm=(cq-c0)/c0小于第一擦写相差率阈值时,比较第二Block、第三Block中未写入数据的剩余空间确定待写入数据的写入方式;

如果擦写次数c1、c2、c3中存在两个擦写次数小于擦写阈值c0时,设剩余的那个擦写次数为cq2,

当第二擦写相差率cn=(cq2-c0)/c0小于第二擦写相差率阈值时,将待写入数据写入第一Block;

当第二擦写相差率cn=(cq-c0)/c0大于等于第二擦写相差率阈值时,比较第一Block和第二Block中未写入数据的剩余空间确定待写入数据的写入方式。

进一步的,所述比较第二Block和第三Block中未写入数据的剩余空间确定待写入数据的写入方式包括:

如果(s3-s2)/s2大于等于第一空间相差率阈值,将待写入数据写入第三Block,

如果(s3-s2)/s2小于第一空间相差率阈值,将待写入数据写入第二Block,

所述比较第一Block和第二Block中未写入数据的剩余空间确定待写入数据的写入方式包括:

如果(s1-s2)/s2大于等于第二空间相差率阈值,将待写入数据写入第一Block,

如果(s1-s2)/s2小于第二空间相差率阈值,将待写入数据写入第二Block,

其中,s1为第一Block中未写入数据的剩余空间,s2为第二Block中未写入数据的剩余空间,s3为第三Block中未写入数据的剩余空间。

进一步的,所述数据迁移方法包括:

步骤S3:如果已存在数据在当前所处的Block和待写入数据写入的Block中一个为第一Block,另一个为第三Block时,

设待写入数据写入的Block未写入数据的剩余空间为Sc,已存在数据在当前所处的Block未写入数据的剩余空间为Sx,

如果第三空间相差率Sm=(Sc-Sx)/Sx大于等于第三空间相差率阈值,将已存在数据从原先的Block迁移到待写入数据写入的Block。

进一步的,所述步骤S2中还包括:

如果SSD中不存在有包含第一关键字的已存在数据或者时间间隔时长小于等于间隔时长阈值时,将待写入数据写入第二Block。

与现有技术相比,本发明所达到的有益效果是:本发明根据关键字将待写入数据和SSD中已存在数据进行关联,根据已存在数据在Block的擦写情况确定待写入数据所写入的Block,从而防止SSD中某一个区域磨损较大,SSD出现磨损不均衡的情况。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明计算机用数据迁移系统的模块示意图。

具体实施方式

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

请参阅图1,本发明提供技术方案:一种计算机用数据迁移系统,所述数据迁移系统包括块划分模块、关键字采集模块和已存在数据信息采集模块,所述块划分模块预先采集固态驱动器SSD中各个Block的磨损数值,将各个Block按照磨损数值所处的范围划分为第一Block、第二Block和第三Block,其中,第一Block的磨损数值大于第二Block的磨损数值,第二Block的磨损数值大于第三Block的磨损数值,所述关键字采集模块用于采集准备写入的待写入数据的关键字为第一关键字,在SSD搜索包含第一关键字的已存在数据,在SSD中存储有包含第一关键字的已存在数据时,令所述已存在数据信息采集模块获取该已存在数据的最早写入时间以及已存在数据在当前所处的Block内的信息判断待写入数据的写入的Block。

所述已存在数据信息采集模块包括时间间隔时长采集模块、运行操作信息采集模块和写入选择模块,所述时间间隔时长采集模块用于获取该已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长,在该时间间隔时长大于间隔时长阈值时令运行操作信息采集模块采集已存在数据写入Block的运行操作信息,所述写入选择模块根据运行操作信息采集模块的内容将待写入数据的写入第一Block或者第二Block或者第三Block,所述写入选择模块包括第一Block写入模块、第二Block写入模块和第三Block写入模块,所述第一Block写入模块用于将待写入数据的写入第一Block,所述第二Block写入模块用于将待写入数据的写入第二Block,所述第三Block写入模块用于将待写入数据的写入第三Block。

所述运行操作信息采集模块包括时长划分模块、擦写次数采集模块、擦写次数判断模块、第一擦写比较模块、第二擦写比较模块,

所述时长划分模块用于将已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长平均划分成第一时长、第二时长和第三时长,所述擦写次数采集模块采集已存在数据在当前所处的Block中在第一时长、第二时长、第三时长内的擦写次数c1、c2、c3,所述擦写次数判断模块用于判断擦写次数c1、c2、c3中与擦写阈值c0的关系,在擦写次数c1、c2、c3中存在两个擦写次数大于等于擦写阈值c0时,设剩余的那个擦写次数为cq1并令第一擦写比较模块进行处理,在擦写次数c1、c2、c3中存在两个擦写次数小于擦写阈值c0时,设剩余的那个擦写次数为cq2并令第二擦写比较模块进行处理;

所述第一擦写比较模块包括第一擦写相差率比较模块和第一剩余空间比较模块,所述第一擦写相差率比较模块根据擦写次数为cq1和擦写阈值c0计算第一擦写相差率,并将其与第一擦写相差率阈值进行比较,在第一擦写相差率cm大于等于第一擦写相差率阈值时令第三Block写入模块工作,在在第一擦写相差率cm小于第一擦写相差率阈值时,第一剩余空间比较模块比较第二Block和第三Block中未写入数据的剩余空间,根据剩余空间情况选择令第二Block写入模块或者第三Block写入模块工作;

所述第二擦写比较模块包括第二擦写相差率比较模块和第二剩余空间比较模块,所述第二擦写相差率比较模块根据擦写次数为cq2和擦写阈值c0计算第二擦写相差率,并将其与第二擦写相差率阈值进行比较,在第一擦写相差率cn大于等于第一擦写相差率阈值时令第一Block写入模块工作,在在第一擦写相差率cm小于第一擦写相差率阈值时,第二剩余空间比较模块比较第一Block和第二Block中未写入数据的剩余空间,根据剩余空间情况选择令第一Block写入模块或者第二Block写入模块工作。

所述数据迁移系统还包括Block比较模块、第三剩余空间比较模块和数据迁移模块,所述Block比较模块用于比较已存在数据在当前所处的Block和待写入数据写入的Block的类型,当已存在数据在当前所处的Block和待写入数据写入的Block中一个为第一Block,另一个为第三Block时,令第三剩余空间比较模块根据待写入数据写入的Block未写入数据的剩余空间和已存在数据在当前所处的Block未写入数据的剩余空间计算第三空间相差率,在第三空间相差率大于等于第三空间相差率阈值时,令数据迁移模块将已存在数据从原先的Block迁移到待写入数据写入的Block。

一种计算机用数据迁移方法,所述数据迁移方法包括:

步骤S1:预先采集固态驱动器SSD中各个Block(块)的磨损数值,将各个Block按照磨损数值所处的范围划分为第一Block、第二Block和第三Block,其中,第一Block的磨损数值大于第二Block的磨损数值,第二Block的磨损数值大于第三Block的磨损数值;在划分SSD中的block时,可以根据Block的磨损数值范围的大小确定第一磨损数值阈值、第二磨损数值阈值,第一磨损数值阈值大于等于第二磨损数值阈值,当某块Block的磨损数值大于等于第一磨损数值阈值,该Block为第一Block,当某块Block的磨损数值大于等于第二磨损数值阈值且该块Block的磨损数值小于第一磨损数值阈值,该Block为第二Block,当某块Block的磨损数值小于第二磨损数值阈值,该Block为第三Block;

步骤S2:采集准备写入的待写入数据的关键字为第一关键字,在SSD搜索包含第一关键字的已存在数据,如果SSD中存储有包含第一关键字的已存在数据,获取该已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长,通过第一关键字来寻找待写入数据和已存在数据之间的关联性,便于后续确定待写入数据的写入的Block;

当该时间间隔时长大于间隔时长阈值时,采集已存在数据写入Block的运行操作信息,根据运行操作信息判断待写入数据的写入的Block;当已存在数据在SSD中超过一定时长,已存在数据在SSD中的擦写情况才会更贴近待写入数据存入Block的实际情况,才会具有参考性。

如果SSD中不存在有包含第一关键字的已存在数据或者时间间隔时长小于等于间隔时长阈值时,将待写入数据写入第二Block;

所述步骤S2中根据运行操作信息判断待写入数据的写入方式包括:

将已存在数据的最早写入时间与待写入数据的准备写入时间的时间间隔时长平均划分成第一时长、第二时长和第三时长,

采集已存在数据在当前所处的Block中在第一时长、第二时长、第三时长内的擦写次数c1、c2、c3;

如果擦写次数c1、c2、c3中存在两个擦写次数大于等于擦写阈值c0时,设剩余的那个擦写次数为cq1,

当第一擦写相差率cm=(cq1-c0)/c0大于等于第一擦写相差率阈值时,将待写入数据写入第三Block,

当第一擦写相差率cm=(cq-c0)/c0小于第一擦写相差率阈值时,比较第二Block、第三Block中未写入数据的剩余空间确定待写入数据的写入方式;

如果擦写次数c1、c2、c3中存在两个擦写次数小于擦写阈值c0时,设剩余的那个擦写次数为cq2,

当第二擦写相差率cn=(cq2-c0)/c0小于第二擦写相差率阈值时,将待写入数据写入第一Block;

当第二擦写相差率cn=(cq-c0)/c0大于等于第二擦写相差率阈值时,比较第一Block和第二Block中未写入数据的剩余空间确定待写入数据的写入方式;

其中,擦写阈值c0根据第一Block、第二Block和第三Block中的平均擦写次数来确定,其中,第一Block的平均擦写次数为SSD内所有为第一Block的Block的擦写次数的平均数,第二Block和第三Block中的平均擦写次数以此类推;将擦写次数c1、c2、c3与擦写阈值c0进行比较以及比较擦写相差率和擦写相差率阈值是判断在已存在数据在SSD中是否出现过在某一时间段内擦写次数高峰或擦写次数低谷情况,从而便于根据已存在数据的擦写次数的确定待写入数据写入的Block;

所述比较第二Block和第三Block中未写入数据的剩余空间确定待写入数据的写入方式包括:

如果(s3-s2)/s2大于等于第一空间相差率阈值,将待写入数据写入第三Block,

如果(s3-s2)/s2小于第一空间相差率阈值,将待写入数据写入第二Block,

所述比较第一Block和第二Block中未写入数据的剩余空间确定待写入数据的写入方式包括:

如果(s1-s2)/s2大于等于第二空间相差率阈值,将待写入数据写入第一Block,

如果(s1-s2)/s2小于第二空间相差率阈值,将待写入数据写入第二Block,

其中,s1为第一Block中未写入数据的剩余空间,s2为第二Block中未写入数据的剩余空间,s3为第三Block中未写入数据的剩余空间。

所述数据迁移方法包括:

步骤S3:如果已存在数据在当前所处的Block和待写入数据写入的Block中一个为第一Block,另一个为第三Block时,

设待写入数据写入的Block未写入数据的剩余空间为Sc,已存在数据在当前所处的Block未写入数据的剩余空间为Sx,

如果第三空间相差率Sm=(Sc-Sx)/Sx大于等于第三空间相差率阈值,将已存在数据从原先的Block迁移到待写入数据写入的Block,实现对SSD的进一步优化。

将已存在数据的历史擦写情况作为待写入数据的参考擦写情况,从而为待写入数据选择合适的Block使得SSD中的磨损保持均衡,避免了在已经存入待写入数据后再调整待写入数据的写入位置,从而提高了写入数据的写入效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种针对超融合架构的存储空间优化方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类