发明内容
根据本发明实施例,提供了一种数据备份方法,应用于电子设备中,该电子设备包括非易失性存储器,该方法包括:
在所述非易失性存储器中写入数据;
创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写;
复制当前映射表,在所述映射表中建立所述快照对应的数据在所述非易失性存储器中的物理地址和存取所述数据的逻辑地址之间的对应关系;以及
将所述映射表保存到所述非易失性存储器的特定区域中作为初始映射表。
优选地,所述数据至少包括以下数据的一种:操作系统、操作系统和应用程序集、应用程序、以及应用数据。
优选地,创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写包括:
确定所述快照对应的数据的各物理存储块中是否存在空闲页,其中所述非易失性存储器以块为单位进行擦除操作,以页为单位进行读写操作;
当确定物理块中存在空闲页时,将该物理块后面的物理块中的数据页移动到该物理块中,直到该物理块中没有空闲页;
对剩余物理块执行相同操作,直到所有物理块中没有空闲页;
更新移动操作后的所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写。
优选地,所述数据备份方法还包括:
当更新所述快照中的数据时,将需要更新的页的数据移动到空白页中,然后对移动到该空白页的数据进行更新;
更新当前映射表反映更新操作。
优选地,所述数据备份方法还包括:
当删除所述快照中的数据时,保留快照中的数据;
更新当前映射表反映删除操作。
优选地,所述数据备份方法还包括:
当需要还原写入数据时,从非易失性存储器的特定区域读取保存的初始映射表;
将读取的初始映射表设为当前的映射表。
根据本发明另一实施例,提供了一种电子设备,包括:
非易失性存储器;
写入单元,用于在所述非易失性存储器中写入数据;
快照创建单元,用于创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写;
复制单元,用于复制当前映射表,在所述映射表中建立所述快照对应的数据在所述非易失性存储器中的物理地址和存取所述数据的逻辑地址之间的对应关系;以及
保存单元,用于将所述映射表保存到所述非易失性存储器的特定区域中作为初始映射表。
优选地,所述数据至少包括以下数据的一种:操作系统、操作系统和应用程序集、应用程序、以及应用数据。
优选地,所述创建单元进一步配置为:
确定所述快照对应的数据的各物理存储块中是否存在空闲页,其中所述非易失性存储器以块为单位进行擦除操作,以页为单位进行读写操作;
当确定物理块中存在空闲页时,将该物理块后面的物理块中的数据页移动到该物理块中,直到该物理块中没有空闲页;
对剩余物理块执行相同操作,直到所有物理块中没有空闲页;
更新移动操作后的所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写。
优选地,所述电子设备还包括:
更新单元,用于当更新所述快照中的数据时,将需要更新的页的数据移动到空白页中,然后对移动到该空白页的数据进行更新,以及更新当前映射表反映更新操作。
优选地,所述电子设备还包括:
删除单元,用于当删除所述快照中的数据时,保留快照中的数据,以及更新当前映射表反映删除操作。
优选地,所述电子设备还包括:
还原单元,用于当需要还原写入数据时,从非易失性存储器的特定区域读取保存的初始映射表,以及将读取的初始映射表设为当前的映射表。
因此,根据本发明实施例的数据备份方法和电子设备,能够通过少量的存储空间实现大容量的数据备份。
具体实施方式
下面,将参考附图详细描述根据本发明实施例的数据备份方法。
在描述根据本发明实施例的数据备份方法之前,首先说明本发明实施例的数据备份方法的原理。在本实施例中以操作系统的备份为例进行说明,但是需要注意的是,根据本发明实施例的数据备份方法不仅可应用于备份操作系统,而且可以应用于备份各种类型的数据。
另外,在本申请中涉及的一些名词的含义如下:
Preload:预装,指预制在电子设备中的软件系统
SSD:固态硬盘,采用flash等电子存储机制的固态存储系统
Flash:半导体结构,可以在其浮栅中捕获电子。基本存储单位为一个单元(cell),多个cell组成一个页,多个页组成块。
LBA:逻辑块地址(logical block address),硬盘的级别存取单位。
在使用硬盘作为存储装置的电子设备中,电子设备通过LBA访问方式来读取硬盘,也就是说,在传统硬盘中提供按块访问的机制。另一方面,在使用诸如SSD的固态存储作为存储装置的电子设备中,为了与现有的硬盘兼容,通常在SSD中模拟硬盘接口以提供按块(block)访问的机制。在实际上,在SSD硬盘中,内部的闪存(flash)的读写单位为页(page),擦除单位为块,因此,需要一个映射表,将多个块地址映射到一个页地址上,同时内部将根据读写差异改变这个映射表。
下面参考图1A和1B进行具体说明。如图1A所示,在SSD硬盘中,当执行各种读写/擦除操作时,逻辑地址通过映射表指向实际的物理地址。操作系统例如通过连续的逻辑地址进行各种操作,但是实际上访问的物理地址是离散的,因此,需要映射表在逻辑地址和物理地址之间建立对应关系。所以映射表表示了存储在flash中数据的一个视图,采用不同的映射表可以重新组织flash中保存的数据。特别地,如果保存在flash中的数据表示当前软件系统,但其中的绝大部分内容没有变化,则通过加载原始映射表,就可以还原preload系统。
具体地,如图1B所示,预装快照映射表图示了电子设备出厂时预装系统所使用的物理闪存。此时,该预装快照映射表中示出了逻辑地址1、2和3对应的各自物理地址,也就是说,该3个物理地址上已经写入预装数据。
在经过一段时间的使用之后,当前映射表图示了目前所使用的物理闪存。此时,该当前映射表中示出了逻辑地址1、2、3和4对应的各自物理地址,也就是说,该4个物理地址上已经写入预装数据。
从图1B中可以看到,在经过一段时间的使用之后,如果保存在闪存中的预装数据表示当前软件系统,则其中的绝大部分内容没有变化。此时,通过加载原始预装快照映射表,可以还原预装系统。这就是本发明实施例的数据备份方法的基本原理。
下面,参考图2详细描述根据本发明实施例的数据备份方法。
根据本发明实施例的数据备份方法100应用于电子设备中。该电子设备可以是任何电子设备,如台式机、笔记本电脑、智能手机、智能电视、平板电脑等等,只要该电子设备包括非易失性存储器,如SSD硬盘。
该方法包括:
步骤S101:在所述非易失性存储器中写入数据;
步骤S102:创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写;
步骤S103:复制当前映射表,在所述映射表中建立所述快照对应的数据在所述非易失性存储器中的物理地址和存取所述数据的逻辑地址之间的对应关系;以及
步骤S104:将所述映射表保存到所述非易失性存储器的特定区域中作为初始映射表。
在步骤S101中,可以向所述非易失性存储器中写入数据。需要注意的是,虽然本实施例中以预装系统为例进行说明,但是写入的数据不限于此。例如,所述数据至少包括以下数据的一种:操作系统、操作系统和应用程序集、应用程序、以及应用数据。
在步骤S102中,创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写。在该步骤中,当期望保护以用于将来恢复的数据已经完成写入时,可以创建所述数据的快照。在本说明书中,快照指将期望的数据进行保护而不可重写。也就是说,将期望的数据所使用的物理闪存设置为不可操作,从而在将来对SSD硬盘进行各种操作时,该设置为不可操作的物理闪存的位置对于操作系统进行屏蔽,从而不能被操作。
然后,在步骤S103中,复制当前映射表,在所述映射表中建立所述快照对应的数据在所述非易失性存储器中的物理地址和存取所述数据的逻辑地址之间的对应关系。也就是说,在该步骤中,复制当前状态下的映射表,在当前状态下的映射表中,已经建立期望的数据所述非易失性存储器中的物理地址和存取所述期望的数据的逻辑地址之间的对应关系。也就是说,在该步骤中,因为已经在非易失性存储器中写入了期望的数据,所以此时非易失性存储器的原始映射表已经变为写入期望的数据后的映射表。此时,如果确定当前状态是希望保留用于将来恢复的状态,则复制当前映射表用于将来恢复操作。
最后,在步骤S104中,将所述映射表保存到所述非易失性存储器的特定区域中作为初始映射表。在该步骤中,需要将复制的映射表保存到非易失性存储器的特定区域中,该特定区域是用户不可操作的,因此确保该特定区域中存储的映射表不会被用户的操作破坏。
在步骤S102中,创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写可以通过以下详细步骤来实现:
确定所述快照对应的数据的各物理存储块中是否存在空闲页,其中所述非易失性存储器以块为单位进行擦除操作,以页为单位进行读写操作;
当确定物理块中存在空闲页时,将该物理块后面的物理块中的数据页移动到该物理块中,直到该物理块中没有空闲页;
对剩余物理块执行相同操作,直到所有物理块中没有空闲页;
更新移动操作后的所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写。
也就是说,因为非易失性存储器以块为单位进行擦除操作,以页为单位进行读写操作,所以为了提高非易失性存储器的使用效率并减少数据浪费,可以选择尽量将被保护的闪存块中的页数据进行移动,保证大部分块没有空闲页。
在一个实施例中,还可以对快照中的数据进行更新。如图3所示,当更新所述快照中的数据时,将需要更新的页的数据移动到空白页中,然后对移动到该空白页的数据进行更新,并且更新当前映射表反映更新操作。也就是说,当对快照中的数据进行更新时,因为快照中的数据受到保护而不能被操作,所以需要将需要更新的页的数据移动(复制)到空白页中,该空白页不属于快照,因此可以被操作。然后,对移动到该空白页的数据进行更新获得更新后的数据。此时,可以更新当前映射表以反映更新操作的结果。即,更新当前映射表,使得更新后的映射表能够反映该更新操作后的页的数据。
在一个实施例中,在非易失性存储器中可能出现坏块。此时,如果写入数据时遇到坏块,则将重新在新的好块里写入该数据。然后,把检测到的坏块里其余的有效页数据全部复制到新的块里去,标记老的块为坏块,更新坏块表里的地址,把原本坏块的地址重新映射到新的好块里。此时,可以更新当前映射表以反映更新操作的结果。即,更新当前映射表,使得更新后的映射表能够反映该坏块处理操作后的数据。
在另一个实施例中,还涉及到非易失性存储器中的垃圾回收。垃圾回收的功能是将所有块中的有效页合并到一个新的块中,并将旧的块进行擦除。这样做的好处一方面减少寻址负担,另一方面留出更多的空闲块。所以垃圾回收对固态硬盘的性能和寿命都起到至关重要的作用。此时,可以更新当前映射表以反映更新操作的结果。即,更新当前映射表,使得更新后的映射表能够反映该垃圾回收处理操作后的数据。
在另一个实施例中,还涉及到掉电处理。用户在对非易失性存储器进行各种操作时可能遇到掉电情况。此时,将导致系统认为某些块地址已经损坏(坏块),但SSD自身并不会对这些逻辑块地址(LBA)对应的物理块地址重映射,因此出现故障。
此时,可以删除要擦除的磁盘的所有分区,让硬盘显示为未分配状态,然后加载初始映射表。也就是说,将非易失性存储器恢复为初始状态(预装系统)。
在另一个实施例中,还可以删除快照中的数据。当删除所述快照中的数据时,保留快照中的数据,而指示通过更新当前映射表反映删除操作。也就是说,更新当前映射表,使得被删除的数据不在映射表中反映。
然后,当用户期望恢复原始写入的数据时,也就是说,当需要还原写入数据时,可以从非易失性存储器的特定区域读取保存的初始映射表,然后将读取的初始映射表设为当前的映射表。此时,因为非易失性存储器的映射表已经恢复为初始映射表,所以对于非易失性存储器而言,通过该初始映射表访问的物理闪存中的数据就是初始写入的数据。也就是说,将非易失性存储器恢复为初始状态(预装系统)。
因此,与现有技术相比,采用映射表来创建preload系统分区具有以下优点:
1)无空间占用
在现有技术中,preload系统分区占用高达1/10容量。另一方面,根据本发明实施例,只要预装系统基本不变,不变的部分将不会占用空间。对于变化的部分,则考虑在页或者块级进行保护,此时依然只占用变化的空间。而映射表所占的空间很小,比如对128G的磁盘,最大不超过128M,只占总空间的1/1000。因此,与现有技术中preload系统分区占用高达1/10容量相比,极大地节省了存储空间。
2)恢复速度极快
在现有技术中,如果重新加载preload系统,即使使用现在流行的Ghost技术等来进行恢复,恢复操作系统也需要3-10分钟时间。另一方面,根据本发明实施例,因为只需要简单地将保存的初始映射表复制为当前映射表,所以恢复操作系统只需要几秒钟的时间。因此,与现有技术相比,极大地提高了预装系统的恢复速度。
因此,根据本发明实施例的数据备份方法,能够通过少量的存储空间实现大容量的数据备份,同时极大地提高了数据备份的恢复速度。
下面参考图4描述根据本发明实施例的电子设备。
根据本发明实施例的电子设备400包括:
非易失性存储器401;
写入单元402,用于在所述非易失性存储器中写入数据;
快照创建单元403,用于创建所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写;
复制单元404,用于复制当前映射表,在所述映射表中建立所述快照对应的数据在所述非易失性存储器中的物理地址和存取所述数据的逻辑地址之间的对应关系;以及
保存单元405,用于将所述映射表保存到所述非易失性存储器的特定区域中作为初始映射表。
优选地,所述数据至少包括以下数据的一种:操作系统、操作系统和应用程序集、应用程序、以及应用数据。
优选地,所述快照创建单元403进一步配置为:
确定所述快照对应的数据的各物理存储块中是否存在空闲页,其中所述非易失性存储器以块为单位进行擦除操作,以页为单位进行读写操作;
当确定物理块中存在空闲页时,将该物理块后面的物理块中的数据页移动到该物理块中,直到该物理块中没有空闲页;
对剩余物理块执行相同操作,直到所有物理块中没有空闲页;
更新移动操作后的所述数据的快照,使得所述快照对应的数据设为保护区域而不可重写。
优选地,所述电子设备400还包括:
更新单元406,用于当更新所述快照中的数据时,将需要更新的页的数据移动到空白页中,然后对移动到该空白页的数据进行更新,以及更新当前映射表反映更新操作。
优选地,所述电子设备400还包括:
删除单元407,用于当删除所述快照中的数据时,保留快照中的数据,以及更新当前映射表反映删除操作。
优选地,所述电子设备400还包括:
还原单元408,用于当需要还原写入数据时,从非易失性存储器的特定区域读取保存的初始映射表,以及将读取的初始映射表设为当前的映射表。
也就是说,该电子设备400的各个单元配置为执行上面描述的数据备份方法的相应步骤。
因此,根据本发明实施例的电子设备,能够通过少量的存储空间实现大容量的数据备份,同时极大地提高了数据备份的恢复速度。
需要注意的是,在图示根据各个实施例的电子设备时仅仅示出了其功能单元,并没有具体描述各个功能单元的连接关系,本领域技术人员可以理解的是,各个功能单元可以通过总线、内部连接线等等适当地连接,这样的连接对于本领域技术人员来说是熟知的。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。