CN105260328A - 一种设备掉电时的数据保存方法及装置 - Google Patents
一种设备掉电时的数据保存方法及装置 Download PDFInfo
- Publication number
- CN105260328A CN105260328A CN201510703079.9A CN201510703079A CN105260328A CN 105260328 A CN105260328 A CN 105260328A CN 201510703079 A CN201510703079 A CN 201510703079A CN 105260328 A CN105260328 A CN 105260328A
- Authority
- CN
- China
- Prior art keywords
- memory block
- buffer area
- data
- write
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本发明实施例公开一种设备掉电时的数据保存方法及装置。所述方法包括:当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;响应所述上电信号,对所述缓存区进行Trim操作,并通过顺序写的方式,利用预设大小的数据块写满所述缓存区;当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。上述方案可实现将内存数据快速的写入所述系统盘。
Description
技术领域
本发明涉及存储领域,尤其涉及一种设备掉电时的数据保存方法及装置。
背景技术
固态硬盘(SolidStateDrive,SSD)作为系统盘已应用的越来越广泛。当电源断电时,系统盘还可以用来保存内存数据。
现有技术中,系统盘通常可采用大容量、高带宽、性能稳定的企业级SSD或者小容量、高带宽的mSATA(mini-SATA,迷你版本SATA)接口SSD。二者的优缺点比较可如表1所示:
表1
由于企业级SSD的成本较高,通常是mSATA接口SSD成本的2-3倍,因此,实际应用中,用户通常使用小容量的mSATA接口SSD替代大容量的企业级SSD,以降低硬件设计成本和减小设计空间。
但是,mSATA接口SSD的写性能波动大,写入速度下降明显。当电源断电时,很难保证能快速的将内存中的数据写入mSATA接口SSD中,有可能会导致内存数据丢失。
发明内容
本发明实施例提供了一种设备掉电时的数据保存方法及装置,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述系统盘内的大段的连续可写空间;当电源断电时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区,可实现将内存数据快速的写入所述系统盘。
第一方面,提供了一种设备掉电时的数据保存方法,包括:
当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
响应所述上电信号,对所述缓存区进行Trim操作,并通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。
结合第一方面,在第一种可能的实现方式中,所述系统盘还包括:预留区;在所述对所述缓存区进行Trim操作时,还包括:对所述预留区进行Trim操作。
结合第一方面,或者,结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述对所述缓存区进行Trim操作时,所述方法还包括:对所述操作系统存储区和所述日志存储区进行Trim操作;
在所述对所述操作系统存储区和所述日志存储区进行Trim操作之前,还包括:
将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置;
在所述通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,还包括:将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二备份位置是所述内存。
结合第一方面,在第四种可能的实现方式中,在所述将系统盘的缓存区内的数据保存到第一备份位置之前,所述方法还包括:对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区。
第二方面,提供了一种数据保存装置,包括:
第一保存单元,用于当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
第一Trim单元,用于响应所述上电信号,对所述缓存区进行Trim操作;
第一写单元,用于在所述第一Trim单元对所述缓存区进行Trim操作之后,通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
第二Trim单元,用于当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作;
第二写单元,用于当所述第二Trim单元对写满的所述缓存区进行Trim操作之后,将内存中的数据写入所述缓存区。
结合第二方面,在第一种可能的实现方式中,所述系统盘还包括:预留区;所述第一Trim单元还用于:在所述对所述缓存区进行Trim操作时,对所述预留区进行Trim操作。
结合第二方面,或者,结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一Trim单元还用于:在所述对所述缓存区进行Trim操作时,对所述操作系统存储区和所述日志存储区进行Trim操作;
所述装置还包括:第二保存单元和第三写单元,其中:
所述第二保存单元,用于在所述第一Trim单元对所述操作系统存储区和所述日志存储区进行Trim操作之前,将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置;
所述第三写单元,用于在所述第一写单元通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
结合第二方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述第二备份位置是所述内存。
结合第二方面,在第四种可能的实现方式中,所述装置还包括:分区单元,用于在所述第一保存单元将系统盘的缓存区内的数据保存到第一备份位置之前,对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区。
实施本发明实施例,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述系统盘内的大段的连续可写空间;当电源断电时,对写满的所述缓存区进行Trim操作,为内存中的数据腾出所述大段的连续可写空间,可实现将内存数据快速的写入所述系统盘,最终实现对内存中的数据进行有效保存。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种应用场景的示意图;
图2A是本发明实施例涉及的第一种写性能问题的测试示意图;
图2B是本发明实施例涉及的第二种写性能问题的测试示意图;
图3是本发明实施例提供的一种设备掉电时的数据保存方法的流程示意图;
图4是本发明实施例提供的系统盘的分区示意图;
图5A是本发明实施例提供的解决上述第一种写性能问题的测试示意图;
图5B是本发明实施例提供的解决上述第二种写性能问题的测试示意图;
图6是本发明实施例提供的另一种设备掉电时的数据保存方法的流程示意图;
图7是本发明实施例提供的一种数据保存装置的结构示意图;
图8是本发明实施例提供的一种存储阵列的结构示意图;
图9是本发明实施例提供的图8所示存储阵列涉及的应用场景。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例中涉及到多个术语。
本发明实施例提供了一种设备掉电时的数据保存方法及装置,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述系统盘内的大段的连续可写空间;当电源断电时,对写满的所述缓存区进行Trim操作,为内存中的数据腾出所述大段的连续可写空间,可实现将内存数据快速的写入所述系统盘。
应当理解的,由于SSD与传统的硬盘不同,不支持数据的直接覆盖。SSD只支持对空白数据块的执行直接写入操作,而对于非空白数据块需要先进行擦除操作之后才能执行写入操作。为了解决前述的数据擦除问题,SSD支持Trim操作。具体的,操作系统在擦除数据时可以通过向SSD发送Trim命令告诉SSD哪些数据块中的数据已经不再使用了。SSD在收到Trim命令后,通常会在定期的垃圾收集操作中重新组织这些数据块,使得这些数据块可写,为将来写入数据做好准备。
为了便于理解本发明实施例,下面先详细介绍本发明实施例涉及的应用场景以及所述应用场景存在的技术问题。
由于企业级SSD的成本较高,通常是mSATA接口SSD成本的2-3倍,因此,本发明实施例采用小容量的mSATA接口SSD替代大容量的企业级SSD,以降低硬件设计成本和减小设计空间。
图1示出了磁盘阵列中的单板,该单板上设置有CPU、内存(DDR3)以及用作系统盘的mSATA接口SSD,其中,所述系统盘可用于引导启动操作系统。当电源断电时,BBU可以提供一段时间(根据BBU的型号而决定)的供电,使内存(DDR3)中的数据不丢失。操作系统需要在BBU电力耗尽之前快速的将内存中的数据写入系统盘,避免断电造成内存数据丢失。
但是,mSATA接口SSD的写性能不理想,通过长期测试,大致总结出下述2个主要问题:
问题1:对mSATA接口SSD进行1MB(I/O大小)顺序写测试,如图2A所示的测试结果,当写入数据量增大时,写入速度由开始的75MB/S下降至20MB/S,不满足设备断电时系统需求的写入表现。
可以理解的,SSD内的可写空间减少会导致SSD的写入速度降低。
问题2:对mSATA接口SSD进行随机写(如16并发4K随机写)之后,进行1MB(I/O大小)顺序写测试,如图2B所示的测试结果,顺序写的写入速度波动很大,平均写入速度由120MB/S降低为60MB/S,不满足设备断电时系统需求的写入表现。
可以理解的,由于SSD具有磨损均衡(WearLeveling)特性,因此,随机写会造成SSD上的物理碎片空间增多,连续可写空间减少。虽然所述缓存区的逻辑地址连续,但物理地址连续性差,导致1MB大小的顺序写的写入速度大幅下降。如果SSD内的物理碎片空间超过一定比例,在进行顺序写的同时,SSD控制器在后台进行碎片整理,会导致写入速度的波动。
需要说明的,在图2A、图2B中,横坐标表示写入的数据量,纵坐标表示写入速度。
针对上述技术问题,本发明实施例公开了一种设备掉电时的数据保存方法及装置,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述系统盘内的大段的连续可写空间;当电源断电时,对写满的所述缓存区进行Trim操作,为内存中的数据腾出所述大段的连续可写空间,可实现在将内存数据快速写入所述系统盘。需要说明的,本发明实施例中涉及的所述设备是指存储设备,例如磁盘阵列。以下分别进行详细说明。
参见图3,图3是本发明实施例提供的一种设备掉电时的数据保存方法的流程示意图。在图3所示的方法中,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现尽可能多的占用连续的可写空间;当电源断电时,通过对写满的所述缓存区进行Trim操作,可实现腾出已被占用的连续的可写空间,将内存中的数据写入所述缓存区,可实现将内存数据快速的写入所述缓存区。如图3所示,该方法包括:
S101,当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志。
S103,响应所述上电信号,对所述缓存区进行Trim操作,并通过顺序写的方式,利用预设大小的数据块写满所述缓存区。可以理解的,对所述缓存区进行Trim操作可增加所述系统盘内的连续可写空间,为后续顺序尽可能多的占用连续的可写空间提供条件。在对所述缓存区进行Trim操作之后,通过顺序写的方式,利用预设大小的数据块(如1MB的数据块)写满所述缓存区,可实现尽可能多的占用连续的可写空间。
优选的,在对所述缓存区进行Trim操作时,还可以对所述日志存储区和/或所述操作系统存储区进行Trim操作,进一步的增加所述系统盘内的连续可写空间。
S105,当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。具体的,可以通过顺序写的方式将内存中的数据写入所述缓存区。可以理解的,对写满的所述缓存区进行Trim操作可腾出大段已占用的连续可写空间,为将所述内存中的数据快速的写入所述系统盘提供条件。
本发明实施例中,所述第一备份位置可以是指机械硬盘或固态硬盘等存储介质。所述第一备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
具体实现中,在将系统盘的缓存区内的数据保存到第一备份位置之前,还可以对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区。
可选的,如图4所示,所述系统盘除了包括:所述缓存区、所述操作系统存储区和所述日志存储区外,还可包括预留区。优选的,在所述设备上电时,为了进一步的增加所述系统盘的可写空间,在对所述缓存区进行Trim操作时,还可以对所述预留区进行Trim操作。
具体实现中,由于所述操作系统运行时所产生的系统日志通常数据量比较小,因此可通过随机写的方式将所述系统日志写入所述日志存储区。
可以理解的,由于在所述设备上电时,已经通过顺序写的方式写满了所述缓存区,即尽可能多的占用连续的可写空间,因此,只能将所述操作系统产生的系统日志写入所述连续可写空间之外的空间,可有效的控制随机写入所述系统日志所产生的碎片空间,有利于提高所述设备断电时将内存中的数据写入所述缓存区的写入速度。
需要说明的,上述S101和S103执行在所述操作系统运行之前,可保证在所述操作系统运行之前,所述缓存区已通过顺序写的方式被写满。
采用本发明实施例,对前述问题1进行测试,具体如下:
如图5A所示,对所述系统盘进行多个周期的1MB(I/O大小)的顺序写测试,在每个周期内,随着写入数据的增加,所述系统盘的写入速度明显降低。但是,写满所述缓存区之后,再对所述缓存区进行Trim操作,所述系统盘的写入速度恢复到最大值。统计地来看,每个周期内所述系统盘的平均写速度基本稳定。
对比图2A(无Trim操作)可知,在向所述缓存区写入数据之前先对所述缓存区进行Trim操作可有效增加所述系统盘的可写空间,提高所述系统盘的写入速度。
采用本发明实施例,对前述问题2进行测试,具体如下:
如图5B所示,对所述系统盘进行随机写(如16并发4K随机写)之后,进行1MB(I/O大小)顺序写测试,1MB顺序写的写入速度比较稳定。统计地来看,所述顺序写的平均写入速度可达90MB/S,满足设备断电时系统需求的写入速度。
对比图2B(无写满所述缓存区)可知,在向所述系统盘进行随机写之前,通过顺序写的方式写满所述缓存区可实现尽可能多的占用连续的可写空间,有效的控制所述随机写产生的碎片空间,提高顺序写时所述系统盘的写入速度。
实际应用中,所述系统盘还可以包括其他分区,不限于所述缓存区、所述日志存储区、所述操作系统存储区和所述预留区。
实施本发明实施例,当电源上电时,通过对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现尽可能多的占用连续的可写空间;当电源断电时,通过对写满的所述缓存区进行Trim操作,可实现腾出已被占用的连续的可写空间,将内存中的数据写入所述缓存区,可实现将内存数据快速的写入所述缓存区。
参见图6,图6是本发明实施例提供的另一种设备掉电时的数据保存方法的流程示意图。在图6所示的方法中,当电源上电时,对整个系统盘进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述缓存区大小的连续的可写空间;当电源断电时,通过对写满的所述缓存区进行Trim操作,可实现腾出所述缓存区大小的连续的可写空间,将内存中的数据写入所述缓存区,可实现将内存数据更加快速的写入所述缓存区。图6所示方法是图3所示方法的进一步改进,图6没有提及的内容请参考图3的描述。如图6所示,该方法包括:
S201,当检测到设备的上电信号时,将系统盘的缓存区的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志。
S203,将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置。
S205,响应所述上电信号,对所述缓存区、所述操作系统存储区和所述日志存储区进行Trim操作。可以理解的,S205即是对整个所述系统盘进行Trim操作,可实现将所述系统盘恢复成整盘可写状态,为后续的顺序写提供完全连续的可写空间。
S207,通过顺序写的方式,利用预设大小的数据块写满所述缓存区。可以理解的,在对整个所述系统盘进行Trim操作之后,通过顺序写的方式,利用预设大小的数据块(如1MB的数据块)写满所述缓存区,可实现占用所述缓存区大小(如图4中的30G)的连续的可写空间。
S209,将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
可以理解的,由于已经通过顺序写的方式占用了系统盘中的所述缓存区大小(如30G)的连续可写空间,因此,S209只能将所述操作系统存储区中的数据和所述日志存储区中的数据写到被占用的所述连续可写空间之外的空间,可有效控制S209产生的碎片空间。
优选的,可通过顺序写的方式将所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区,可实现尽可能多的占用连续的可写空间,使得所述系统盘内剩下的可写空间接近连续,可进一步提高后续将内存中的数据写入所述系统盘的写入速度。
S211,当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。具体的,可以通过顺序写的方式将内存中的数据写入所述缓存区。可以理解的,对写满的所述缓存区进行Trim操作可腾出所述缓存区大小(如图4中的30G)的连续的可写空间,为将所述内存中的数据快速的写入所述系统盘提供条件。
本发明实施例中,所述第一备份位置可以是指机械硬盘或固态硬盘等存储介质。所述第一备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
本发明实施例中,所述第二备份位置可以是任意形式的存储介质。所述第二备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
优选的,所述第二备份位置是所述内存,可实现所述操作系统存储区中的数据和所述日志存储区中的数据在所述内存和所述系统盘之间快速的转移,不会降低操作系统的启动速度。
可选的,如图4所示,所述系统盘除了包括:所述缓存区、所述操作系统存储区和所述日志存储区外,还可包括预留区。优选的,在所述设备上电时,为了进一步的增加所述系统盘的可写空间,在对所述缓存区、所述操作系统存储区和所述日志存储区进行Trim操作时,还可以对所述预留区进行Trim操作。
具体实现中,由于所述操作系统运行时所产生的系统日志通常数据量比较小,因此可通过随机写的方式将所述系统日志写入所述日志存储区。
可以理解的,由于在所述设备上电时,已经通过顺序写的方式写满了所述缓存区,即占用了所述缓存区大小(如30G)的连续可写空间,因此,只能将所述操作系统产生的系统日志写入所述缓存区大小的连续可写空间之外的空间,可有效的控制随机写入所述系统日志所产生的碎片空间,有利于提高所述设备断电时将内存中的数据写入所述缓存区的写入速度。
需要说明的,上述S201和S209执行在所述操作系统运行之前,可保证在所述操作系统运行之前,所述缓存区已通过顺序写的方式被写满。
实施本发明实施例,当电源上电时,对整个系统盘进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述缓存区大小的连续的可写空间;当电源断电时,通过对写满的所述缓存区进行Trim操作,可实现腾出所述缓存区大小的连续的可写空间,将内存中的数据写入所述缓存区,可实现将内存数据更加快速的写入所述缓存区。
参见图7,图7是本发明实施例提供的数据保存装置的结构示意图。如图7所示,数据保存装置70可包括:第一保存单元701、第一Trim单元703、第一写单元705、第二Trim单元707和第二写单元709。其中:
第一保存单元701,用于当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
第一Trim单元703,用于响应所述上电信号,对所述缓存区进行Trim操作;
第一写单元705,用于在第一Trim单元703对所述缓存区进行Trim操作之后,通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
第二Trim单元707,用于当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作;
第二写单元709,用于当第二Trim单元707对写满的所述缓存区进行Trim操作之后,将内存中的数据写入所述缓存区。
本发明实施例中,所述第一备份位置可以是指机械硬盘或固态硬盘等存储介质。所述第一备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
进一步的,数据保存装置70在包括:第一保存单元701、第一Trim单元703、第一写单元705、第二Trim单元707和第二写单元709外,还可包括:分区单元711,用于在第一保存单元701将系统盘的缓存区内的数据保存到第一备份位置之前,对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区
可选的,如图4所示,所述系统盘除了包括:所述缓存区、所述操作系统存储区和所述日志存储区外,还可包括预留区。优选的,在所述设备上电时,为了进一步的增加所述系统盘的可写空间,在对所述缓存区进行Trim操作时,第一Trim单元703还可以对所述预留区进行Trim操作。
具体实现中,由于所述操作系统运行时所产生的系统日志通常数据量比较小,因此可通过随机写的方式将所述系统日志写入所述日志存储区。
可以理解的,由于在所述设备上电时,第一写单元705已经通过顺序写的方式写满了所述缓存区,即尽可能多的占用连续的可写空间,因此,只能将所述操作系统产生的系统日志写入所述连续可写空间之外的空间,可有效的控制随机写入所述系统日志所产生的碎片空间,有利于提高所述设备断电时将内存中的数据写入所述缓存区的写入速度。
更进一步的,第一Trim单元703还可用于:在对所述缓存区进行Trim操作时,对所述操作系统存储区和所述日志存储区进行Trim操作。具体的,数据保存装置70在包括:第一保存单元701、第一Trim单元703、第一写单元705、第二Trim单元707和第二写单元709外,还可包括:第二保存单元和第三写单元,其中:
所述第二保存单元,用于在第一Trim单元703对所述操作系统存储区和所述日志存储区进行Trim操作之前,将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置;
所述第三写单元,用于在第一写单元705通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
本发明实施例中,所述第二备份位置可以是任意形式的存储介质。所述第二备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
优选的,所述第二备份位置是所述内存,可实现所述操作系统存储区中的数据和所述日志存储区中的数据在所述内存和所述系统盘之间快速的转移,不会降低操作系统的启动速度。
具体实现中,由于所述操作系统运行时所产生的系统日志通常数据量比较小,因此可通过随机写的方式将所述系统日志写入所述日志存储区。
可以理解的,由于在所述设备上电时,第一写单元705已经通过顺序写的方式写满了所述缓存区,即占用了所述缓存区大小(如30G)的连续可写空间,因此,只能将所述操作系统产生的系统日志写入所述缓存区大小的连续可写空间之外的空间,可有效的控制随机写入所述系统日志所产生的碎片空间,有利于提高所述设备断电时将内存中的数据写入所述缓存区的写入速度。
可理解的是,数据保存装置70中的各个功能模块还可参照图3或图6分别对应的实施例中的实现方式,这里不再赘述。
为了便于实施本发明实施例,本发明提供了一种磁盘阵列,用于实现图3或图6实施例所述的设备断电时的数据保存方法。参见图8,磁盘阵列80可包括:处理器801、内存802、电源管理模块804、系统盘803。其中,系统盘803用于存储操作系统,以及各种软件程序和/或多组指令;内存802用于暂时存放处理器801中的运算数据,以及与硬盘等外部存储器交换的数据。具体实现中,系统盘803可以是mSATA接口SSD,也可以是其他小容量的固态硬盘;内存802可以是掉电易失性RAM,例如DDR3;这些部件可在一个或多个通信总线上通信。
应当理解,磁盘阵列80仅为本发明的一个例子,并且,磁盘阵列80可具有比示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
本发明实施例中,处理器801主要用于执行如下步骤:
当通过电源管理模块804检测到设备的上电信号时,将系统盘803的缓存区内的数据保存到第一备份位置;系统盘803是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
响应所述上电信号,对所述缓存区进行Trim操作,并通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
当通过电源管理模块804检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。
本发明实施例中,所述第一备份位置可以是指机械硬盘或固态硬盘等存储介质。所述第一备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
本发明实施例中,所述设备是指磁盘阵列80。
具体实现中,在将系统盘803的缓存区内的数据保存到第一备份位置之前,处理器801还可以对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区,具体可参见图4所示的分区图。
可选的,如图4所示,系统盘803除了包括:所述缓存区、所述操作系统存储区和所述日志存储区外,还可包括预留区。优选的,在所述设备上电时,为了进一步的增加所述系统盘的可写空间,在对所述缓存区进行Trim操作时,处理器801还可以对所述预留区进行Trim操作。
具体实现中,由于所述操作系统运行时所产生的系统日志通常数据量比较小,因此处理器801可通过随机写的方式将所述系统日志写入所述日志存储区。
可以理解的,由于在所述设备上电时,处理器801已经通过顺序写的方式写满了所述缓存区,即尽可能多的占用连续的可写空间,因此,处理器801只能将所述操作系统产生的系统日志写入所述连续可写空间之外的空间,可有效的控制随机写入所述系统日志所产生的碎片空间,有利于提高所述设备断电时将内存中的数据写入所述缓存区的写入速度。
进一步的,响应所述断电信号,处理器801在对所述缓存区进行Trim操作时,还可以对所述操作系统存储区和所述日志存储区进行Trim操作。也即是说,在设备断电时,处理器801可以对整个所述系统盘进行Trim操作,可实现将所述系统盘恢复成整盘可写状态,为后续的顺序写提供完全连续的可写空间。
具体的,在对整个系统盘进行Trim操作803之前,处理器801可以将所述操作系统存储区中的数据和所述日志存储区中的数据保存到所述第二备份位置处。
具体的,在通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,处理器801可以将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
本发明实施例中,所述第二备份位置可以是任意形式的存储介质。所述第二备份位置既可以是所述设备内部的存储介质,也可以是与所述设备相连的外部存储介质。
优选的,所述第二备份位置是所述内存,可实现所述操作系统存储区中的数据和所述日志存储区中的数据在所述内存和所述系统盘之间快速的转移,不会降低操作系统的启动速度。
可理解的是处理器801执行步骤还可参照图3或图6分别对应的实施例中的具体内容,这里不再赘述。
为了便于应用磁盘阵列80,图9示出了应用磁盘阵列80的一种应用场景:网络监控系统。如图9所示,网络监控系统可包含:由摄像机(Camera)构成的前端系统,由交换机、路由器等传输介质构成的传输系统,以及由存储设备、服务器、显示设备和控制设备等构成的前端系统。具体实现中,前端系统中的存储设备可以由磁盘阵列80构成。
在图9所示的监控系统中,所述前端系统主要用于采集模拟视频信号、音频信号以及其他辅助信息,并经过编码器进行数字化处理,以IP码流的形式通过所述传输系统上传至所述后端系统中的服务器。所述后端系统中的服务器主要用于转发、存储视频流,并对视频码流进行解码或其他处理,可包括:信令服务器、管理服务器、转发服务器和存储服务器。其中,所述存储服务器用于将视频码流存储在磁盘阵列80构成的存储设备上。具体实现中,所述存储服务器与磁盘阵列80构成的存储设备之间的存储方式可以是多种多样的,例如DAS,NAS,SAN等。
应当理解的,图9示出的网络监控系统仅仅是本发明实施例的一种实现方式,实际应用中,网络监控系统还可以包括其他组件,例如所述后端系统中的服务器还可以包括报警服务器,这里不作限制。
需要说明的,除了图9示出的网络监控系统,图8所示的磁盘阵列80还可以用于其他场景中,例如网络金融系统、媒体资源管理系统等等,这里不作限制。
综上所述,实施本发明实施例,当电源上电时,对系统盘中的缓存区进行Trim操作,并通过顺序写的方式写满所述缓存区,可实现占用所述系统盘内的大段的连续可写空间;当电源断电时,对写满的所述缓存区进行Trim操作,为内存中的数据腾出所述大段的连续可写空间,可实现将内存数据快速的写入所述系统盘,最终实现对内存中的数据进行有效保存。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种设备掉电时的数据保存方法,其特征在于,包括:
当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
响应所述上电信号,对所述缓存区进行Trim操作,并通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作,将内存中的数据写入所述缓存区。
2.如权利要求1所述的方法,其特征在于,所述系统盘还包括:预留区;在所述对所述缓存区进行Trim操作时,还包括:对所述预留区进行Trim操作。
3.如权利要求1或2所述的方法,其特征在于,在所述对所述缓存区进行Trim操作时,还包括:对所述操作系统存储区和所述日志存储区进行Trim操作;
在所述对所述操作系统存储区和所述日志存储区进行Trim操作之前,还包括:
将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置;
在所述通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,还包括:将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
4.如权利要求3所述的方法,其特征在于,所述第二备份位置是所述内存。
5.如权利要求1所述的方法,其特征在于,在所述将系统盘的缓存区内的数据保存到第一备份位置之前,还包括:对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区。
6.一种数据保存装置,其特征在于,包括:
第一保存单元,用于当检测到设备的上电信号时,将系统盘的缓存区内的数据保存到第一备份位置;所述系统盘是固态硬盘,包括:所述缓存区、操作系统存储区和日志存储区,其中,所述操作系统存储区用于存储操作系统,所述日志存储区用于存储所述操作系统的系统日志;
第一Trim单元,用于响应所述上电信号,对所述缓存区进行Trim操作;
第一写单元,用于在所述第一Trim单元对所述缓存区进行Trim操作之后,通过顺序写的方式,利用预设大小的数据块写满所述缓存区;
第二Trim单元,用于当检测到所述设备的断电信号时,对写满的所述缓存区进行Trim操作;
第二写单元,用于当所述第二Trim单元对写满的所述缓存区进行Trim操作之后,将内存中的数据写入所述缓存区。
7.如权利要求6所述的装置,其特征在于,所述系统盘还包括:预留区;所述第一Trim单元还用于:在所述对所述缓存区进行Trim操作时,对所述预留区进行Trim操作。
8.如权利要求6或7所述的装置,其特征在于,所述第一Trim单元还用于:在所述对所述缓存区进行Trim操作时,对所述操作系统存储区和所述日志存储区进行Trim操作;
所述装置还包括:第二保存单元和第三写单元,其中:
所述第二保存单元,用于在所述第一Trim单元对所述操作系统存储区和所述日志存储区进行Trim操作之前,将所述操作系统存储区中的数据和所述日志存储区中的数据保存到第二备份位置;
所述第三写单元,用于在所述第一写单元通过顺序写的方式,利用预设大小的数据块写满所述缓存区之后,将保存到所述第二备份位置处的所述操作系统存储区中的数据和所述日志存储区中的数据分别重新写入所述操作系统存储区和所述日志存储区。
9.如权利要求8所述的装置,其特征在于,所述第二备份位置是所述内存。
10.如权利要求6所述的装置,其特征在于,所述装置还包括:分区单元,用于在所述第一保存单元将系统盘的缓存区内的数据保存到第一备份位置之前,对所述系统盘进行逻辑分区,分区后的所述系统盘包括:所述缓存区、所述操作系统存储区和所述日志存储区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510703079.9A CN105260328B (zh) | 2015-10-26 | 2015-10-26 | 一种设备掉电时的数据保存方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510703079.9A CN105260328B (zh) | 2015-10-26 | 2015-10-26 | 一种设备掉电时的数据保存方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260328A true CN105260328A (zh) | 2016-01-20 |
CN105260328B CN105260328B (zh) | 2019-02-12 |
Family
ID=55100026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510703079.9A Active CN105260328B (zh) | 2015-10-26 | 2015-10-26 | 一种设备掉电时的数据保存方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260328B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776381A (zh) * | 2016-12-23 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种存储系统掉电保护方法及系统 |
CN110287062A (zh) * | 2019-06-28 | 2019-09-27 | 深圳忆联信息系统有限公司 | 一种硬件缓存管理数据备份和快速恢复的方法及其系统 |
CN112000524A (zh) * | 2020-08-27 | 2020-11-27 | 北京浪潮数据技术有限公司 | 系统数据在硬盘中的备份和读取方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828510A (zh) * | 2005-03-03 | 2006-09-06 | 富士通株式会社 | 数据存储系统和数据存储控制装置 |
CN102096639A (zh) * | 2009-12-15 | 2011-06-15 | 英特尔公司 | 用于修剪在非易失性闪速介质上的数据的方法 |
CN103019971A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 快速响应trim命令的方法、SSD控制器及系统 |
WO2013189277A1 (zh) * | 2012-06-21 | 2013-12-27 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、系统 |
-
2015
- 2015-10-26 CN CN201510703079.9A patent/CN105260328B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828510A (zh) * | 2005-03-03 | 2006-09-06 | 富士通株式会社 | 数据存储系统和数据存储控制装置 |
CN102096639A (zh) * | 2009-12-15 | 2011-06-15 | 英特尔公司 | 用于修剪在非易失性闪速介质上的数据的方法 |
WO2013189277A1 (zh) * | 2012-06-21 | 2013-12-27 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、系统 |
CN103019971A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 快速响应trim命令的方法、SSD控制器及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776381A (zh) * | 2016-12-23 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种存储系统掉电保护方法及系统 |
CN110287062A (zh) * | 2019-06-28 | 2019-09-27 | 深圳忆联信息系统有限公司 | 一种硬件缓存管理数据备份和快速恢复的方法及其系统 |
CN112000524A (zh) * | 2020-08-27 | 2020-11-27 | 北京浪潮数据技术有限公司 | 系统数据在硬盘中的备份和读取方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105260328B (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609360B (zh) | 一种数据处理方法、装置及系统 | |
KR102168838B1 (ko) | 저장 장치들에 대한 매핑 테이블들 | |
KR101629615B1 (ko) | 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법 | |
KR101908581B1 (ko) | 저장 디바이스들에서의 웨어 레벨링 | |
US11847330B2 (en) | Adjustment of storage device parameters based on workload characteristics | |
KR102663302B1 (ko) | Zns 드라이브에서의 데이터 취합 | |
US20110320690A1 (en) | Mass storage system and method using hard disk and solid-state media | |
KR20130031046A (ko) | 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법 | |
CN107562644B (zh) | 一种固态硬盘映射表的压缩方法 | |
CN101963891A (zh) | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 | |
CN101981551A (zh) | 用于高速缓存利用的设备和方法 | |
US20180074701A1 (en) | Incremental background media scan | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN108182154A (zh) | 一种基于固态硬盘的日志文件的读写方法及固态硬盘 | |
KR20100065786A (ko) | 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템 | |
CN103049220A (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
CN106294226A (zh) | 基于嵌入式stt‑mram的ssd控制器芯片、固态硬盘 | |
CN102541458A (zh) | 一种提高电子硬盘数据写入速度的方法 | |
CN105260328A (zh) | 一种设备掉电时的数据保存方法及装置 | |
CN105183374A (zh) | 一种数据读写方法以及主板 | |
CN103559145B (zh) | 一种数据读取、写入方法和电子设备 | |
CN103064926B (zh) | 数据处理方法和装置 | |
US11507508B2 (en) | Prediction-based selective flushing of data to memory | |
US20230143926A1 (en) | Dynamic Controller Buffer Management and Configuration | |
CN105589912A (zh) | 一种利用mram处理频写文件的方法及存储结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |