一种自动化分层存储方法及服务器与流程

文档序号:13729033阅读:131来源:国知局
技术领域本发明涉及一种计算机存储方法,特别是一种自动化分层存储方法及服务器。

背景技术:
自动分层技术能够在同一阵列的不同类型介质间迁移数据。分层存储是个由来已久的作法,可按存取时间或存取频率,将数据分别存放到不同存取速度/成本的存储介质上,从而在存取能效与成本间取得较佳的平衡。考虑到存储环境的复杂性、维护难度,以及根据存取行为自动调整数据分布以达到最佳分层效果的要求,一般要考虑进行自动化分层存储。自动化分层存储可以根据用户的存储行为来调整数据分布,比如将热门数据从存储池自动迁移到性能池,从而提高系统的整体性能。自动化分层存储目前主要存在数据迁移的负担过重的问题:由于数据迁移一般需要跨设备进行读写操作,因此CPU,网络,IO等系统整体负荷都较高,首次读取速度较慢,甚至大大低于各存储池的原有性能。这就造成某些大比例只读取一次的场景反而降低了整体性能,适用场景单一。

技术实现要素:
本发明主要解决的技术问题是提供一种自动化分层存储方法,针对自动化分层存储中存在读取速度较慢负担过重的问题,采用固态硬盘与串口硬盘作为分层存储的媒介,由于固态硬盘具有较高的读写响应速度,改善了自动化分层存储中响应速度较慢的问题,另外由于分层存储存放在串口硬盘内的数据能够用来修复固态硬盘出现的数据错误。为解决上述技术问题,本发明采用的一个技术方案是:提供一种自动化分层存储方法,在服务器端建立固态硬盘与串口硬盘两种不同性能的存储设备;所述固态硬盘用于存储服务器端的热点数据;所述串口硬盘用于存储服务器端需要存储的所有数据;所述固态硬盘存储数据时在串口硬盘同步存储该数据的副本数据;在服务器端建立检测模块,检测固态硬盘存储数据的数据是否有错误;所述检测模块检测到固态硬盘存储数据出现错误时,将串口硬盘存储的副本数据迁移到固态硬盘中。进一步地,所述数据错误包括:数据损坏与数据未命中。更进一步地,所述固态硬盘存储数据损坏时,将串口硬盘存储的副本数据迁移至固态硬盘中修复损坏数据。更进一步地,所述固态硬盘存储数据搜索未命中时,服务器端通过固态硬盘读取串口硬盘存储的副本数据,同时将副本数据迁移至固态硬盘存储。更进一步地,所述副本数据从串口硬盘向固态硬盘迁移时,将所述副本数据分割为固定大小的数据块。更进一步地,所述副本数据分割为数据块后,采用位图文件记录每一数据块的迁移状态;所述位图文件记录完整副本数据中数据块的迁移状态,跟踪哪些数据块位于固态硬盘中,哪些数据块位于串口硬盘中。更进一步地,所述修复固态硬盘数据损坏时,定位所述数据损坏数据的具体位置;定位损坏数据位于副本数据的哪些数据块中;迁移包含数据损失文件的数据块。更进一步地,对所述固态硬盘存储的老化数据进行清理。更进一步地,所述老化数据清理时进行校验;检测串口硬盘存储的副本数据是否完整,检测副本数据完整,则直接进行清理;若否,则将固态硬盘中的数据逆向迁移至串口硬盘中。为解决上述技术问题,本发明还提供一种服务器,具体为:一种服务器,包括固态硬盘、串口硬盘与检测装置;所述固态硬盘存储数据时在串口硬盘同步存储该数据的副本数据;所述检测模块检测固态硬盘存储数据的数据是否有错误;所述检测模块检测到固态硬盘存储数据出现错误时,将串口硬盘存储的副本数据迁移到固态硬盘中。本发明的有益效果是:1.针对自动化分层存储中存在读取速度较慢负担过重的问题,采用固态硬盘与串口硬盘作为分层存储的媒介,由于固态硬盘具有较高的读写响应速度,改善了自动化分层存储中响应速度较慢的问题,另外由于分层存储存放在串口硬盘内的数据能够用来修复固态硬盘出现的数据错误。2.本发明在将串口硬盘内的数据迁移至固态硬盘内时,将数据进行条带化处理,即将需要迁移的副本数据分割为固定大小的数据块,然后通过位图文件将完整的副本数据位置图加以记录,用于跟踪副本数据中那些数据块迁移至固态硬盘中,哪些还留在串口硬盘中。采用条带化将数据分割后,在修复固态硬盘数据错误的时候,只需定位损坏数据的具体位置,定位包含该损坏数据的数据块,然后将该数据块迁移至固态硬盘中即可,而无需将整个文件都迁移到固态硬盘中,提高了修复效率,降低IO负荷。附图说明图1为本发明结构框图;图2为本发明修复损坏数据流程图。附图说明:100、服务器端;200、固态硬盘;300、串口硬盘;400、检测模块。具体实施方式为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。下面结合附图和实施方式对本发明进行详细说明。实施例1请参阅图1,一种自动化分层存储方法,在服务器端100建立固态硬盘200(SDD)与串口硬盘300(SATA)两种不同性能的存储设备,固态硬盘200用于存储服务器端100的热点数据,串口硬盘300用于存储服务器端100需要存储的所有数据,固态硬盘200存储数据时在串口硬盘300同步存储该数据的副本数据,在服务器端100建立检测模块,检测固态硬盘200存储数据的数据是否有错误,检测模块检测到固态硬盘200存储数据出现错误时,将串口硬盘300存储的副本数据迁移到固态硬盘200中。其中检测模块为软件实现的检测模块,根据I/O执行任务中反馈的信息确定固态硬盘200是否出现错误,在固态硬盘200出现故障无法读取时,将该信息反馈值检测模块,检测模块则认定该固态硬盘200出现机械故障,无法正常读取,并将该信息上传至服务器。其中,固态硬盘200(SolidStateDrives),简称固盘,固态硬盘200用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘200具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点,但也存在较大的缺点,其价格仍较为昂贵,容量较低,一旦硬件损坏,数据较难恢复等;并且亦有人认为固态硬盘200的耐用性(寿命)相对较短。本发明采用固态硬盘200作为热点数据存储媒介,主要是因为固态硬盘200快速读写的性能,能够提升服务器的相应速度。其中,串口硬盘300为使用SATA(SerialATA)接口的硬盘又叫串口硬盘300。采用串行方式传输数据,且串口硬盘300具有较高的可靠性,SATA可同时对指令及数据封包进行循环冗余校验(CRC),不仅可检测出所有单bit和双bit的错误,而且根据统计学的原理,这样还能够检测出99.998%可能出现的错误。本实施方式中所说的数据错误主要包括:数据损坏与数据未命中,其中,数据未命中的意思具体是指:在I/O操作时,对固态硬盘200内存储的数据搜索,但未搜索到相应数据即为未命中。本实施方案中针对数据未命中采用的技术方法具体为:固态硬盘200存储数据搜索未命中时,采用固态硬盘200代理的方式从串口硬盘300读取副本数据,固态硬盘200代理具体是指:服务器端100读取串口硬盘300存储的副本数据时,该副本数据从固态硬盘200转移到服务器执行端,在该数据经过固态硬盘200时,将副本数据同时记录存储在固态硬盘200上,由此,固态硬盘200内即可保存该热点数据。在一些实施方式中,在固态硬盘200出现机械故障或数据未命中时,服务器端100直接从串口硬盘300内搜索并读取该数据的副本数据,这种方法运用在固态硬盘200无需对该信息进行存储,或者该信息访问量有限,不值得将其存放在固态硬盘200中。本实施方式中I/O执行任务时,在固态硬盘200搜索任务数据时,搜索确定该任务数据存在在固态硬盘200中,对该任务数据进行执行时,该人物数据无法执行时,I/O将该任务执行情况反馈至检测模块中,检测模块认定该数据损坏。I/O执行任务时,在固态硬盘200搜索任务数据时,发现该任务数据不存在时,I/O将该任务执行情况反馈至检测模块中,检测模块认定该数据未命中。本实施方式中,对数据损坏采用的技术方案为:固态硬盘200存储数据损坏时,将串口硬盘300存储的副本数据迁移至固态硬盘200中修复损坏数据。将串口硬盘300内存储的副本数据迁移至固态硬派时,需对该副本数据进行条带化处理,具体的:将副本数据分割为大小一致的数据块,若干数据块的集合就是完整的副本数据,副本数据能够划分为多少个数据块主要看副本数据的大小,数据分割时按照数据的执行的先后顺序进行分割。本实施方式中数据块的大小为4K,根据具体应用场景的不同能够设定不同大小的数据块。在一些实施方式中,数据块的大小被划分为串口硬盘300I/O配置的较小值,当未命中的数据从串口硬盘300传输到固态硬盘200,并由固态硬盘200上传至服务器执行端时,在传输的过程中就可以顺便完成数据迁移操作,避免冗余的IO操作。如图2所示,本实施方式中,发现固态硬盘200数据损坏后S100,检测模块确定该数据损坏S200,服务器端100逐行执行损坏数据,以确定数据损坏的具体位置S300,确定该具体位置后将该位置上传至服务器端100,服务器端100在串口硬盘300内搜寻该损坏数据的副本数据,找到该副本数据后,在副本数据内部搜索包含该损坏数据的数据块S400,确定该数据块后,将该数据块迁移至固态硬盘200内,对损坏数据进行修复S500。采用条带化将数据分割后,在修复固态硬盘200数据错误的时候,只需定位损坏数据的具体位置,定位包含该损坏数据的数据块,然后将该数据块迁移至固态硬盘200中即可,而无需将整个文件都迁移到固态硬盘200中,提高了修复效率,降低IO负荷。在一些实施方式中,服务期执行发现数据损坏后,在串口硬盘300内搜寻该损坏数据的副本数据,搜寻到该副本数据后将副本数据的所有数据快均迁移至固态硬盘200内,用于修补损坏数据。在本实施方式中,将副本数据分割为大小一致的数据块后,采用位图文件(bitmap)记录每一数据块的迁移状态,位图文件是使用像素阵列来表示的图像,每个像素的色彩信息由RGB组合或者灰度值表示。位图文件按照数据块的分布顺序,以每一个像素点代表一个数据块的形式记录每一数据块,当副本数据中部分数据块经迁移到达固态硬盘200时,位图文件即改变代表该数据块的位图颜色,通过这种方法记录完整副本数据中数据块的迁移状态,跟踪哪些数据块位于固态硬盘200中,哪些数据块位于串口硬盘300中。本实施方式中,对固态硬盘200存储的老化数据进行清理,对老化数据清理时进行校验,检测串口硬盘300存储的副本数据是否完整,检测副本数据完整,则直接进行清理;若否,则将固态硬盘200中的数据逆向迁移至串口硬盘300中。本实施方式中,对固态硬盘200老化数据主要采用3中方法进行管理,分别为:1.根据IO的空闲情况来管理固态硬盘200空间:server端对固态硬盘200进行IO的自动检测,当服务器端100的IO为空闲时,应该根据数据清理策略来清理固态硬盘200空间。而当检测到用户IO时,则立刻停止主动清理行为。2.简化的数据清理策略:数据清理策略需要适用于各种场景,比如热点数据比较固定,这时候热点数据是没必要被频繁清理的,因为会造成重复的数据迁移,并影响固态硬盘200的使用寿命。1)根据可调整的存取时间,如果数据超过一段时间没被访问(比如一个小时或一天,可调整)。则认为数据老化可被清理。但这仅仅只是一个阈值,系统不会在数据老化时马上启动数据清理。而是在发生主动清理和被动清理的一个基本阀值。2)根据可调整剩余空间。分为启动阀值和停止阀值,仅用于主动清理启动时。比如当热池剩余空间不足10%时,热池才会在IO空闲时启动主动清理。而当数据最多清理到剩余空间30%时(需要和存取时间相配合,当条件同时满足时才进行清理,因此此处用最多来表达),停止主动清理。一般情况下,空间清理已经避免了和冷池的交互,因此IO负载已经大大降低,因地认为保持较低比例的阀值即可,不需要频繁并大比例的启动主动清理。3)写IO特别频繁造成热池空间不足。这种情况需要优先考虑热池空间不足或者老化数据阀值过大,当写IO特别频繁,并且在剩余空间不足10%时,仍然不能改善这种现象,那么参考第三点的只读模式和回写模式。对于写入数据即是热点数据,并且热池空间不足的情况,这时候系统只能把相对老化的数据删除,阀值在此会失去作用。同时性能也会受一些影响。3读写模式也会影响数据清理频率:写IO特别频繁的情况,我们建议考虑区分两种模式,一种是数据频繁写入,但是短时间内并没有被访问,则建议是只读模式,另一种是数据频繁写入,并且写入的数据会短时间内被频繁访问,则建议是回写模式。1),只读模式。写入数据时,数据直接重定向到冷池,不经过热池。适用于写入数据短期内经常不是热点数据的情况,能有效分担写入和读取的IO负荷。2),回写模式。写入数据时,数据经过热池并同时回写到冷池。适用于写入数据高概率是热点数据的情况。能减少发生数据迁移的概率。实施例2一种服务器,包括固态硬盘200、串口硬盘300与检测装置,固态硬盘200存储数据时在串口硬盘300同步存储该数据的副本数据,检测模块检测固态硬盘200存储数据的数据是否有错误,检测模块检测到固态硬盘200存储数据出现错误时,将串口硬盘300存储的副本数据迁移到固态硬盘200中。其中检测模块为软件实现的检测模块,根据I/O执行任务中反馈的信息确定固态硬盘200是否出现错误,在固态硬盘200出现故障无法读取时,将该信息反馈值检测模块,检测模块则认定该固态硬盘200出现机械故障,无法正常读取,并将该信息上传至服务器。本实施方式中的服务器采用实施例1中的自动化分层存储方法,管理固态硬盘200与串口硬盘300内数据的存储与恢复。需要说明的是,本发明的说明书及其附图中给出了本发明的较佳的实施例,但是,本发明可以通过许多不同的形式来实现,并不限于本说明书所描述的实施例,这些实施例不作为对本发明内容的额外限制,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。并且,上述各技术特征继续相互组合,形成未在上面列举的各种实施例,均视为本发明说明书记载的范围;进一步地,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1