用于共享内存访问的内存控制器和用于内存控制器之中的方法技术

技术编号:39407643 阅读:8 留言:0更新日期:2023-11-19 15:59
一种内存控制器用于可操作地连接到客户端以进行共享内存访问。所述内存控制器用于通过确定用于恢复的起点,然后将共享内存复制到目标文件系统来执行共享内存的恢复。所述内存控制器用于通过以下操作确定起点:生成文件操作日志;生成所述共享内存的快照;根据所述快照将所述共享内存恢复到所述目标文件系统;确定日志中快照之前的最后一个操作;将最后一个操作之后的下一个操作设置为起点。所述内存控制器还用于通过根据日志从起点开始重放文件操作来复制共享内存。本公开能够与客户端创建所述共享内存的初始一致同步点,这又确保在任何不利事件中所述共享内存的可靠数据恢复。何不利事件中所述共享内存的可靠数据恢复。何不利事件中所述共享内存的可靠数据恢复。

【技术实现步骤摘要】
【国外来华专利技术】用于共享内存访问的内存控制器和用于内存控制器之中的方法


[0001]本公开一般地涉及共享存储和备份领域;更具体地,涉及可操作地连接到客户端以进行共享内存访问的内存控制器和用于内存控制器之中以进行共享内存访问的方法。

技术介绍

[0002]网络附属存储器(network

attached storage,NAS)等共享存储广泛用于存储来自多个客户端的数据。众所周知,与提供文件服务的通用服务器相比,NAS设备提供更快的数据访问、更容易的管理和简单的配置。网络附属存储器存储从源站点中的客户端接收的数据,因此也称为源网络附属存储器。该数据进一步作为备份数据存储在目标网络附属存储器中的目标站点。通常,数据备份用于在源站点发生数据丢失时保护和恢复数据。数据丢失事件的示例可以包括但不限于数据损坏、源站点中的硬件或软件故障、数据意外删除、黑客攻击或恶意攻击。因此,出于安全考虑,单独的备份存储或目标网络附属存储器被广泛用于存储源站点中存在的数据的备份。
[0003]源NAS经常用于客户端存储新的或更新的数据。因此,这些增量更改需要从源NAS连续存储到目标NAS,以启用容灾。为了基于将增量更改从源NAS复制到目标NAS来启用恢复,必须首先执行初始同步,以使目标NAS进入与在增量更改复制的一些序列开始时源NAS的状态相同的已知状态。在共享存储的情况下,尤其是NAS的情况下,同步问题尤为突出,因为源NAS由多个客户端同时更新。通常,源NAS快照的备份可以恢复到目标NAS,但由于客户端仍在存储或更新数据,因此当时源NAS已经更改。因此,难以更新增量更改,并可能在发生灾难时导致数据丢失。传统技术根据更改的文件将数据存储在目标NAS中。在一示例中,这可以基于定期扫描整个源NAS,也可以涉及使用客户端侧上的设施来监视更改的文件。此外,完全更改的文件然后从源NAS复制到目标NAS。但是,这引入了竞争条件,因为可能存在与此类文件关联的输入/输出,即使文件被复制到目标NAS,这些文件也会持续进行,因此此类增量更改不与上述文件一起存储。此外,由于必须复制完全更改的文件,因此该过程变得非常占用资源和耗时。此外,从源NAS到目标NAS的这种传统数据存储也涉及供应商锁定问题,因此,要求源NAS和目标NAS及其工具和复制方案应属于同一NAS系列。因此,当依赖于具有兼容的源NAS和目标(例如云存储)时,提供任何关于复制和数据恢复的改进方案变得越来越困难。此外,用户需要或必须使用特定供应商提供的服务,以避免不兼容问题,这通常需要额外付费,因此也是不希望的。
[0004]因此,根据上述讨论,需要克服与传统数据存储中源NAS与目标NAS之间的初始同步相关的上述缺点。

技术实现思路

[0005]本公开旨在提供一种内存控制器和用于内存控制器之中以进行共享内存访问的方法。本公开旨在提供一种方案,以解决现有问题,即在与将数据增量更改从源NAS复制到
目标存储关联的传统系统中进行容灾(即不可靠的数据恢复机制)的情况下,数据丢失的高风险问题。此外,在现有系统中,依赖于在源端和目标端使用兼容的供应商服务,用户必须或被迫在源和目标共享存储系统中使用来自同一制造商或供应商的硬件和软件方案,这增加了解决不可靠数据恢复机制问题的难度。本公开的目的是提供至少部分克服现有技术中遇到的问题的方案,并提供改进的内存控制器和方法,通过提供同步初始已知一致崩溃备份点(即起点)以开始共享内存(例如源NAS)与目标存储之间的连续复制会话的机制,提供与将数据增量更改从共享内存(例如源NAS)复制到目标存储关联的可靠数据恢复方案。此机制消除了NAS供应商锁定问题,因为方案不依赖于源侧和目标侧兼容的供应商服务。
[0006]本公开的一个或多个目的是通过所附独立权利要求中提供的方案实现的。本公开的有利实现方式在从属权利要求中进一步定义。
[0007]在一个方面中,本公开提供了一种内存控制器,所述内存控制器用于可操作地连接到一个或多个客户端以进行共享内存访问,每个客户端包括IO时钟,并且所述内存控制器用于通过以下操作执行共享内存的恢复:确定用于所述恢复的起点,然后基于所述起点将所述共享内存复制到目标文件系统,其中,所述内存控制器的特征在于,所述内存控制器用于通过以下操作确定所述起点:在所述共享内存中生成文件操作日志;生成所述共享内存的快照;根据所述快照将所述共享内存恢复到所述目标文件系统;确定文件操作日志中快照之前的最后一个操作;将所述最后一个操作之后的下一个操作设置为所述起点,并且所述内存控制器用于:通过根据所述日志从所述起点开始重放(replaying)文件操作来复制所述共享内存。
[0008]本公开提供了一种改进的内存控制器,所述改进的内存控制器通过与多个NAS客户端创建共享内存(即,活动共享存储或源NAS)的初始一致同步点,提供可靠、高效和准确的数据复制和恢复机制。内存控制器创建初始一致同步点,而不在NAS客户端与共享内存之间的数据流中引入任何明显的时延(即,非常最小和可忽略的时延),并且在共享内存处没有任何额外的共享内容读取(或重新读取)要求以用于复制。内存控制器可以复制文件中数据的增量更改,而不必担心数据丢失,这在容灾的情况下非常关键。通过恢复快照和日志中快照之后的后续操作,将数据恢复到目标文件系统,从而创建共享内存的高粒度一致复制。有益的是,本公开以完全分布式的方式工作,使得一个或多个客户端中的每一个都负责其自己的日志记录。因此,本公开不需要在生成输入输出操作时完全暂停。内存控制器与异构NAS服务器无缝工作,从而避免NAS供应商锁定问题,因为该方案不依赖于源共享存储(即源NAS)和目标共享存储(即目标NAS)上的兼容供应商服务。
[0009]在一种实现方式中,所述内存控制器还用于通过以下操作确定所述最后一个操作:将操作计数器设置为初始值;从所述日志中的第一文件操作开始;确定所述文件操作的结果;确定所述文件操作的结果是否在所述目标文件系统中可观察到;如果所述文件操作可观察到,则将所述计数器减小,如果所述文件操作不可观察到,则将所述计数器增大;确定所述计数器是否达到初始值,如果达到,则将所述文件操作设置为所述最后一个操作,如果没有达到,则继续下一个文件操作。
[0010]通过设置操作计数器来确定最后一个操作,从而指定用于开始从日志到目标文件系统的操作重放的下一个操作。因此,该下一个操作充当初始已知一致崩溃备份点,用于开始共享内存(例如NAS源)与目标文件系统(例如云存储)之间的连续复制会话。
[0011]在另一种实现方式中,所述内存控制器还用于:当生成所述日志时,确定所述日志中的每个文件操作的标识符,并将所述标识符存储在文件操作标识符文件中,直到快照生成;选择所述文件操作标识符文件中具有最新时间戳的文件操作;确定所述选择的文件操作的结果是否在所述目标文件系统中可观察到;如果所述选择的文件操作可观察到,则将所述选择的文件操作设置为所述最后一个操作,如果所述文件操作不可观察到,则将所述选择的文件操作设置为所述起点。
[0012]通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种内存控制器(100),用于可操作地连接到一个或多个客户端(106A至106N)以进行共享内存访问,每个客户端包括IO时钟(108A至108N);所述内存控制器(100)用于通过以下操作执行共享内存(102)的恢复:确定用于所述恢复的起点;然后基于所述起点将所述共享内存(102)复制到目标文件系统(104),其中,所述内存控制器(100)的特征在于,所述内存控制器(100)用于通过以下操作确定所述起点:在所述共享内存(102)中生成文件操作日志(110);生成所述共享内存(102)的快照(112);根据所述快照(112)将所述共享内存(102)恢复到所述目标文件系统(104);确定文件操作日志(110)中快照(112)之前的最后一个操作;将所述最后一个操作之后的下一个操作设置为所述起点,并且所述内存控制器(100)用于:通过根据所述日志(110)从所述起点开始重放文件操作来复制所述共享内存(102)。2.根据权利要求1所述的内存控制器(100),其中,所述内存控制器(100)还用于通过以下操作确定所述最后一个操作:将操作计数器(114)设置为初始值;从所述日志(110)中的第一文件操作开始;确定所述文件操作的结果;确定所述文件操作的结果是否在所述目标文件系统(104)中可观察到;如果所述文件操作可观察到,则所述计数器减计数,如果所述文件操作不可观察到,则所述计数器加计数;确定所述计数器是否达到所述初始值,如果达到,则将所述文件操作设置为所述最后一个操作,如果没有达到,则继续所述下一个文件操作。3.根据权利要求1所述的内存控制器(100),其中,所述内存控制器(100)还用于:当生成所述日志(110)时,确定所述日志(110)中的每个文件操作的标识符,并将所述标识符存储在文件操作标识符文件(116)中,直到快照(112)生成;选择所述文件操作标识符文件(116)中具有所述最新时间戳的文件操作;确定所述选择的文件操作的结果是否在所述目标文件系统(104)中可观察到;如果所述选择的文件操作可观察到,则将所述选择的文件操作设置为所述最后一个操作,如果所述文件操作不可观察到,则将所述选择的文件操作设置为所述起点。4.根据权利要求2或3所述的内存控制器(100),其中,如果所述操作的结果与所述目标卷之间不存在矛盾,则文件操作可观察到,如果所述操作的结果与所述目标卷之间存在矛盾,则所述文件操作不可观察到。5.根据前述权利要求中任一项所述的内存控制器(100),其中,所述内存控制器(100)还用于:构建将源标识及目标标识与客户端标识进行关联的映射;通过基于所述映射根据所述日志(110)从所述起点开始重放文件操作来复制所述共享内存(102)。
6.根据权利要求2和4所述的内存控制器(100),其中,所述内存控制器(100)还用于通过以下操作构建所述映射:当确定所述文件操作是否可观察到时,确定所述文件操作是否是索引节点操作,如果是,则针对所述映射中所有相关节点记录所述文件操作的结果和序列号;或者确定所述文件操作是否是数据操作,如果是,则针对所述映射中所述相关节点...

【专利技术属性】
技术研发人员:伊塔玛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1