一种基于对象存储的自适应分级处理方法及系统的制作方法
【专利摘要】本发明公开了一种基于对象存储的自适应分级处理方法和系统,包括:在对象存储操作到来时,主进程首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,主进程继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。分级进程读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。通过本发明的方案,能够提高系统的访问效率。
【专利说明】
一种基于对象存储的自适应分级处理方法及系统
【技术领域】
[0001]本发明涉及云存储领域,具体涉及一种基于对象存储的自适应分级处理方法和系统。
【背景技术】
[0002]分级存储是根据数据的重要性、访问频率、保留时间、容量、性能等指标,将数据采取不同的存储方式分别存储在不同性能的存储设备上,通过分级存储管理实现数据客体在存储设备之间的自动迁移。数据分级存储的工作原理是基于数据访问的局部性,通过将不经常访问的数据自动移到存储层次中较低的层次,释放出较高成本的存储空间给更频繁访问的数据,可以获得更好的性价比。这样可大大减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。
[0003]对象存储系统是以对象为访问接口的网络存储系统,对象存储文件系统提供一套类似于文件操作的访问接口,并将文件操作转化为对象访问,使得用户的多种应用程序不需要进行任何修改就可以运行在对象存储系统上。采用对象接口可以使对象存储系统在跨平台数据共享、安全性、性能以及智能性方面具有优势。在对象存储系统中,数据以对象为单位存放,对象可以提供数据的完整性。对象存储系统中以对象为粒度设计分级功能,以对象为粒度的分级架构由于迁移的对象不再是文件而是文件中的热点对象,这样做就减少了迁移的数据量,同时由于对象较小,大大简化了迁移过程中对数据的处理,加速了迁移过程。
[0004]目前通用的分级设计将磁盘根据性能聚合为两个性能不同存储池,在用户指定的业务空闲期根据数据的热度进行数据在存储池间的迁移。通常情况下高性能存储池虽然访问效率高,但是通常成本很高,因此仅配置少量的高性能存储空间用于存放热点数据。当热点数据过多或者用户策略设置不太合理的情况下,很容易造成高性能存储池空间不足,这时通常的处理方法是拒绝用户的访问请求,或者通过提前预警的方式提醒用户进行高性能存储池的扩容或者手动进行部分数据的迁移,这样会严重影响用户的使用体验。
【发明内容】
[0005]为了解决上述问题,本发明提出了一种基于对象存储的自适应分级处理方法及系统,能够提高系统的访问效率。
[0006]为了达到上述目的,本发明提出了一种基于对象存储的自适应分级处理方法,该方法包括:
[0007]在对象存储操作到来时,主进程首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,主进程继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。
[0008]分级进程读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
[0009]优选地,系统容量水位是指:存储空间中已被占用空间与存储空间的总容量之间的比值。
[0010]优选地,分级进程根据计算的对象热度,执行数据单向迁移操作是指,分级进程遍历对象存储系统中的对象,根据对象的对象热度优先将对象热度最低的对象数据由高性能存储池迁移到低性能存储池。
[0011]优选地,该方法还包括:在分级进程将具有最低对象热度的对象迁移完成之后,主进程再次计算系统容量水位,如果系统容量水位仍然大于或等于所述水位上限,则主进程再次将系统容量水位达到水位上限的消息放入水位监控队列中;分级进程读取监控队列中的消息,并基于对象热度继续进行迁移操作,如果系统容量水位小于水位上限,则主进程继续进行正常的主进程存储操作,并在预定时间内进行下一次系统容量水位的计算,分级进程定时扫描监控队列,等待下一个系统容量水位达到水位上限的消息。
[0012]本发明还提出一种基于对象存储的自适应分级处理系统,该系统包括:主进程模块、分级进程模块。
[0013]主进程模块,用于在对象存储操作到来时,首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。
[0014]分级进程模块,用于读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
[0015]优选地,分级进程模块还用于,遍历对象存储系统中的对象,根据对象的对象热度优先将对象热度最低的对象数据由高性能存储池迁移到低性能存储池。
[0016]优选地,
[0017]主进程模块还用于:在分级进程模块将具有最低对象热度的对象迁移完成之后,再次计算系统容量水位,如果系统容量水位仍然大于或等于水位上限,则再次将系统容量水位达到水位上限的消息放入水位监控队列中;如果系统容量水位小于水位上限,则继续进行正常的主进程存储操作,并在预定时间内进行下一次系统容量水位的计算。
[0018]分级进程模块还用于:如果系统容量水位仍然大于或等于水位上限,则读取监控队列中的消息,并基于对象热度继续进行迁移操作;如果系统容量水位小于水位上限,则定时扫描监控队列,等待下一个系统容量水位达到水位上限的消息。
[0019]与现有技术相比,本发明包括:在对象存储操作到来时,主进程首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,主进程继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。分级进程读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。通过本发明的方案,能够提高系统的访问效率。
【专利附图】
【附图说明】
[0020]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
[0021]图1为本发明的基于对象存储的自适应分级处理方法流程图;
[0022]图2为本发明的基于对象存储的自适应分级处理系统框图;
[0023]图3为本发明的基于对象存储的自适应分级处理方法示意图。
【具体实施方式】
[0024]为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
[0025]基于现有技术中存在的各种问题,本方法提出一种自适应的分级处理方法,在高性能存储池达到容量上限时,自动触发数据的迁移,将热度最低的数据迁移到低性能存储池,从而保证系统的访问效率。
[0026]本发明方法基于对象存储系统的分级功能,加入了容量水位的判断机制,在每一次操作时或者数据迁移后都要计算当前系统的容量水位,在容量接近水位上限时触发由高性能存储池向低性能存储池的数据单向迁移操作,从而保证系统高性能存储池的数据始终维持在一定的水位以下,保证高性能存储池的可操作性。
[0027]本发明方法基于对象存储系统的分级功能,在数据迁移过程中利用了分级功能的热度统计,在迁移时优先迁移热度最低的数据,从而保证了高性能存储池热点数据的访问性能。
[0028]本方法的实现主要是在主进程和分级处理进程之外,增加一个根据水位和热度进行数据迁移的线程,并在主进程中嵌入水位计算处理,这里的主进程是指高性能存储池的操纵进程,数据迁移的线程也位于高性能存储池的进程中。
[0029]具体地,本发明提出了一种基于对象存储的自适应分级处理方法,如图1、3所示,该方法包括:
[0030]S101、在对象存储操作到来时,主进程首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,主进程继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。
[0031]优选地,系统容量水位是指:存储空间中已被占用空间与存储空间的总容量之间的比值。
[0032]S102、分级进程读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
[0033]优选地,分级进程根据计算的对象热度,执行数据单向迁移操作是指,分级进程遍历对象存储系统中的对象,根据对象的对象热度优先将对象热度最低的对象数据由高性能存储池迁移到低性能存储池。
[0034]优选地,该方法还包括:在分级进程将具有最低对象热度的对象迁移完成之后,主进程再次计算系统容量水位,如果系统容量水位仍然大于或等于所述水位上限,则主进程再次将系统容量水位达到水位上限的消息放入水位监控队列中;分级进程读取监控队列中的消息,并基于对象热度继续进行迁移操作,如果系统容量水位小于水位上限,则主进程继续进行正常的主进程存储操作,并在预定时间内进行下一次系统容量水位的计算,分级进程定时扫描监控队列,等待下一个系统容量水位达到水位上限的消息。
[0035]本发明还提出一种基于对象存储的自适应分级处理系统01,如图2所示,该系统包括:主进程模块02、分级进程模块03。
[0036]主进程模块02,用于在对象存储操作到来时,首先计算对象热度,根据系统当前的数据计算系统容量水位,在完成计算后,继续进行正常的主进程存储操作,并在系统容量水位达到水位上限时,将系统容量水位达到水位上限的消息放入水位监控队列中。
[0037]分级进程模块03,用于读取水位监控队列中的系统容量水位达到水位上限的消息,根据计算的对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
[0038]优选地,分级进程模块03还用于,遍历对象存储系统中的对象,根据对象的对象热度优先将对象热度最低的对象数据由高性能存储池迁移到低性能存储池。
[0039]优选地,
[0040]主进程模块02还用于:在分级进程模块03将具有最低对象热度的对象迁移完成之后,再次计算系统容量水位,如果系统容量水位仍然大于或等于水位上限,则再次将系统容量水位达到水位上限的消息放入水位监控队列中;如果系统容量水位小于水位上限,则继续进行正常的主进程存储操作,并在预定时间内进行下一次系统容量水位的计算。
[0041]分级进程模块03还用于:如果系统容量水位仍然大于或等于水位上限,则读取监控队列中的消息,并基于对象热度继续进行迁移操作;如果系统容量水位小于水位上限,则定时扫描监控队列,等待下一个系统容量水位达到水位上限的消息。
[0042]这样的处理尽可能的减少了对主进程性能的影响,从而保证了系统的访问性能。
[0043]需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
【权利要求】
1.一种基于对象存储的自适应分级处理方法,其特征在于,所述方法包括: 在对象存储操作到来时,主进程首先计算所述对象热度,根据系统当前的数据计算系统容量水位,在完成所述计算后,所述主进程继续进行正常的主进程存储操作,并在所述系统容量水位达到水位上限时,将所述系统容量水位达到水位上限的消息放入水位监控队列中; 分级进程读取所述水位监控队列中的所述系统容量水位达到水位上限的消息,根据计算的所述对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
2.如权利要求1所述的方法,其特征在于,所述系统容量水位是指:存储空间中已被占用空间与所述存储空间的总容量之间的比值。
3.如权利要求1所述的方法,其特征在于,所述分级进程根据计算的所述对象热度,执行所述数据单向迁移操作是指,所述分级进程遍历所述对象存储系统中的对象,根据所述对象的对象热度优先将所述对象热度最低的对象数据由所述高性能存储池迁移到所述低性能存储池。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:在所述分级进程将具有最低对象热度的对象迁移完成之后,所述主进程再次计算所述系统容量水位,如果所述系统容量水位仍然大于或等于所述水位上限,则所述主进程再次将所述系统容量水位达到水位上限的消息放入所述水位监控队列中;所述分级进程读取所述监控队列中的消息,并基于所述对象热度继续进行所述迁移操作,如果所述系统容量水位小于所述水位上限,则所述主进程继续进行正常的主进程存储操作,并在预定时间内进行下一次所述系统容量水位的计算,所述分级进程定时扫描所述监控队列,等待下一个所述系统容量水位达到水位上限的消息。
5.一种基于对象存储的自适应分级处理系统,其特征在于,所述系统包括:主进程模块、分级进程模块; 所述主进程模块,用于在对象存储操作到来时,首先计算所述对象热度,根据系统当前的数据计算系统容量水位,在完成所述计算后,继续进行正常的主进程存储操作,并在所述系统容量水位达到水位上限时,将所述系统容量水位达到水位上限的消息放入水位监控队列中; 所述分级进程模块,用于读取所述水位监控队列中的所述系统容量水位达到水位上限的消息,根据计算的所述对象热度,执行由高性能存储池向低性能存储池的对象数据单向迁移操作。
6.如权利要求4所述的系统,其特征在于,所述分级进程模块还用于,遍历所述对象存储系统中的对象,根据所述对象的对象热度优先将所述对象热度最低的对象数据由所述高性能存储池迁移到所述低性能存储池。
7.如权利要求4所述的系统,其特征在于, 所述主进程模块还用于:在所述分级进程模块将具有最低对象热度的对象迁移完成之后,再次计算所述系统容量水位,如果所述系统容量水位仍然大于或等于所述水位上限,则再次将所述系统容量水位达到水位上限的消息放入所述水位监控队列中;如果所述系统容量水位小于所述水位上限,则继续进行正常的主进程存储操作,并在预定时间内进行下一次所述系统容量水位的计算; 所述分级进程模块还用于:如果所述系统容量水位仍然大于或等于所述水位上限,则读取所述监控队列中的消息,并基于所述对象热度继续进行所述迁移操作;如果所述系统容量水位小于所述水位上限,则定时扫描所述监控队列,等待下一个所述系统容量水位达到水位上限的消息。
【文档编号】G06F12/08GK104360961SQ201410757697
【公开日】2015年2月18日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】张在贵, 姜伟丽 申请人:浪潮(北京)电子信息产业有限公司