一种数据写入方法及装置制造方法及图纸

技术编号:26303706 阅读:17 留言:0更新日期:2020-11-10 19:57
本申请提供了一种数据写入方法及装置,以提高时间点快照LUN的写入性能。一种数据写入方法,包括:按照预设粒度将写请求待写入的数据划分为至少一个子数据块并写入时间点快照LUN;对于每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于预设粒度,则确定该逻辑存储地址块为目标逻辑存储地址块;依据所述时间点快照LUN对应的快照时间点查找到已记录的源LUN在所述快照时间点时的数据信息,从所述数据信息中读取目标逻辑存储地址块中的目标逻辑存储地址读取目标数据并写入时间点快照LUN的目标逻辑存储地址中,该目标逻辑存储地址在时间点快照LUN中未存储数据。

【技术实现步骤摘要】
一种数据写入方法及装置
本申请涉及存储
,特别涉及一种数据写入方法及装置。
技术介绍
快照是存储设备的一项重要功能。通过快照技术可为逻辑单元号(LogicalUnitNumber,LUN)创建快照时间点,以记录LUN在特定时刻的数据状态,通常将该LUN称为源LUN。利用源LUN的快照时间点,可将源LUN的数据快速恢复到该快照时间点对应时刻的状态。时间点快照LUN是基于源LUN的一个快照时间点建立的可读写的LUN资源,通过时间点快照LUN可读取该快照时间点创建时刻的源LUN的数据,以及写入该时间点快照LUN的数据。时间点快照LUN所存储的数据通常是按照预设粒度对齐的,当需要向时间点快照LUN中写入数据时,若待写入的数据的大小小于预设粒度,且待写入的数据对应的逻辑存储地址未存储数据,则需要从快照时间点对应的源LUN数据中读取数据,以补齐该待写入的数据相比预设粒度缺失的部分,再将补齐后的数据写入到时间点快照LUN中,以使时间点快照LUN最终存储的数据按照预设粒度对齐。而上述向时间点快照LUN写入数据的过程中,从源LUN中读取数据这一操作影响了时间点快照LUN的写入性能。
技术实现思路
本申请提供了数据写入方法及装置,以提高时间点快照LUN的写入性能。本申请提供的技术方案包括:第一方面,本申请提供一种数据写入方法,包括:当接收到写请求时,按照预设粒度对所述写请求待写入的数据进行划分得到至少一个子数据块,并将各子数据块写入时间点快照LUN中对应的逻辑存储地址块;所述子数据块对应的逻辑存储地址块是按照所述预设粒度对待写入的数据对应的逻辑存储地址进行划分得到的其中一个逻辑存储地址块;所述逻辑存储地址块与子数据块的数量相同;针对写入至所述时间点快照LUN中的每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于所述预设粒度,则将该子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块;依据所述时间点快照LUN对应的快照时间点查找到已记录的源LUN在所述快照时间点时的数据信息,所述数据信息至少包括数据以及存储数据的逻辑存储地址;从已记录的所述数据信息中读取所述目标逻辑存储地址块存储的目标数据,所述目标逻辑存储地址块中用于存储所述目标数据的目标逻辑存储地址在所述时间点快照LUN中未存储数据;将所述目标数据写入所述时间点快照LUN中的所述目标逻辑存储地址。第二方面,本申请提供一种数据写入装置,包括:写入单元,用于当接收到写请求时,按照预设粒度对上述写请求待写入的数据进行划分得到至少一个子数据块,并将各子数据块写入时间点快照LUN中对应的逻辑存储地址块;上述子数据块对应的逻辑存储地址块是按照上述预设粒度对待写入的数据对应的逻辑存储地址进行划分得到的其中一个逻辑存储地址块;上述逻辑存储地址块与子数据块的数量相同;确定单元,用于针对写入至上述时间点快照LUN中的每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于上述预设粒度,则将该子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块;回读单元,用于依据上述时间点快照LUN对应的快照时间点查找到已记录的源LUN在上述快照时间点时的数据信息,上述数据信息至少包括数据以及存储数据的逻辑存储地址;从已记录的上述数据信息中读取上述目标逻辑存储地址块存储的目标数据,上述目标逻辑存储地址块中用于存储上述目标数据的目标逻辑存储地址在上述时间点快照LUN中未存储数据;将上述目标数据写入上述时间点快照LUN中的上述目标逻辑存储地址。本申请通过将写请求待写入的各子数据块写入时间点快照LUN中,并对于写入的每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于预设粒度,则将该子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块,后续从依据时间点快照LUN对应的快照时间点,从已记录的源LUN的数据信息中读取目标逻辑存储地址块存储的目标数据并写入到时间点快照LUN中。由此,可在将写请求待写入的数据全部写入时间点快照LUN后,后台读取已记录的源LUN的数据信息中的目标逻辑存储地址块存储的目标数据并写入时间点快照LUN中。由于后台操作不会影响前端业务,对前端业务来说,将写请求待写入的数据全部写入时间点快照LUN即完成写入操作,时间点快照LUN的写入性能得到了有效提升。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1为本申请实施例提供的时间点快照LUN的数据来源示意图;图2为本申请实施例提供的数据写入方法流程图;图3A-3B为本申请实施例提供的步骤S103的实现示意图;图4为本申请实施例提供的步骤S101、S102的实现流程图;图5为本申请实施例提供的数据读取方法流程图;图6为本申请实施例提供的数据写入装置的结构示意图;图7为本申请实施例提供的另一数据写入装置的结构示意图;图8为本申请实施例提供的一种电子设备的硬件结构示意图。具体实施方式在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。为使本领域技术人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的快照、数据读写的相关技术进行简要说明。在一些实施例中,存储设备中可设置多个LUN,用于为应用服务器提供可访问的逻辑存储资源,通过快照技术可记录任一LUN在特定时刻的数据状态。目前常用快照技术包括首写拷贝(Copy-on-write,COW)技术和写时重定向(Redirect-on-write,ROW)技术。虽然在具体实现上存在差异,但ROW和COW的原理基本一致。本申请实施例中的技术方案与采用这两种快照技术中的哪一种并无必然联系,为便于描述,本申请实施例中均以ROW技术为例进行描述。在实际应用时若需采用COW技术,对相关流程进行差异化处理即可。下面对ROW技术进行举例说明:使用ROW技术在t0时刻为源LUN创建快照时间点t0后,在接收到对源LUN的写请求,且该写请求指示向源LUN的某一逻辑存储地址中首次写入新数据时,将该写请求重定向到快照资源本文档来自技高网...

【技术保护点】
1.一种数据写入方法,其特征在于,所述方法包括:/n当接收到写请求时,按照预设粒度对所述写请求待写入的数据进行划分得到至少一个子数据块,并将各子数据块写入时间点快照LUN中对应的逻辑存储地址块;所述子数据块对应的逻辑存储地址块是按照所述预设粒度对待写入的数据对应的逻辑存储地址进行划分得到的其中一个逻辑存储地址块;所述逻辑存储地址块与子数据块的数量相同;/n针对写入至所述时间点快照LUN中的每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于所述预设粒度,则将该子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块;/n依据所述时间点快照LUN对应的快照时间点查找到已记录的源LUN在所述快照时间点时的数据信息,所述数据信息至少包括数据以及存储数据的逻辑存储地址;从已记录的所述数据信息中读取所述目标逻辑存储地址块存储的目标数据,所述目标逻辑存储地址块中用于存储所述目标数据的目标逻辑存储地址在所述时间点快照LUN中未存储数据;将所述目标数据写入所述时间点快照LUN中的所述目标逻辑存储地址。/n

【技术特征摘要】
1.一种数据写入方法,其特征在于,所述方法包括:
当接收到写请求时,按照预设粒度对所述写请求待写入的数据进行划分得到至少一个子数据块,并将各子数据块写入时间点快照LUN中对应的逻辑存储地址块;所述子数据块对应的逻辑存储地址块是按照所述预设粒度对待写入的数据对应的逻辑存储地址进行划分得到的其中一个逻辑存储地址块;所述逻辑存储地址块与子数据块的数量相同;
针对写入至所述时间点快照LUN中的每一子数据块,若该子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,且该子数据块的大小小于所述预设粒度,则将该子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块;
依据所述时间点快照LUN对应的快照时间点查找到已记录的源LUN在所述快照时间点时的数据信息,所述数据信息至少包括数据以及存储数据的逻辑存储地址;从已记录的所述数据信息中读取所述目标逻辑存储地址块存储的目标数据,所述目标逻辑存储地址块中用于存储所述目标数据的目标逻辑存储地址在所述时间点快照LUN中未存储数据;将所述目标数据写入所述时间点快照LUN中的所述目标逻辑存储地址。


2.根据权利要求1所述的方法,其特征在于,时间点快照LUN当前记录有映射表,该映射表用于记录时间点快照LUN中的逻辑存储地址与物理存储地址的映射关系;
所述将各子数据块写入时间点快照LUN中对应的逻辑存储地址块,包括:
对于每一子数据块,检查所述映射表中是否存在与该子数据块对应的逻辑存储地址块具有映射关系的物理存储地址块,若是,则将所述子数据块写入所述物理存储地址块;若否,则为所述子数据块对应的逻辑存储地址块分配一个物理存储地址块,并将所述子数据块写入所述物理存储地址块。


3.根据权利要求2所述的方法,其特征在于,所述子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据,通过以下步骤确定:
针对每一子数据块,在将该子数据块写入对应的逻辑存储地址块之前,若时间点快照LUN记录的映射表中不存在与该逻辑存储地址块具有映射关系的物理存储地址块,则确定所述子数据块对应的逻辑存储地址块在写入该子数据块之前未存储数据。


4.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
当接收到针对所述时间点快照LUN的读请求时,针对所述读请求携带的逻辑存储地址中的第一地址,第一地址是指与所述目标逻辑存储地址不存在重合的地址,若所述时间点快照LUN中的第一地址存储有数据,则从所述时间点快照LUN中读取所述第一地址存储的数据;若所述时间点快照LUN中的第一地址尚未存储数据,则从已记录的所述数据信息中读取所述第一地址存储的数据;
针对所述读请求携带的逻辑存储地址中的第二地址,第二地址是指与所述目标逻辑存储地址存在重合的地址,若所述时间点快照LUN中所述目标逻辑存储地址尚未存储数据,则从已记录的所述数据信息中读取所述目标逻辑存储地址存储的所述目标数据并写入所述时间点快照LUN中的所述目标逻辑存储地址,之后从所述时间点快照LUN中读取所述重合的地址存储的数据。


5.根据权利要求1-4任一项所述的方法,其特征在于,将所述子数据块对应的逻辑存储地址块确定为目标逻辑存储地址块后,该方法进一步包括:为所述时间点快照LUN中的所述目标逻辑存储地址块设置对应的回读标记;
在将所述目标数据写入所述时间点快照LUN中的目标逻辑存储地址后,该方法进一步包括:清除为所述目标逻辑存储地址块设置的回读标记。


6.一种数据写入装置,其特征在于,所述装置包括:
写入单元,用于当接收到写请求时,按照预设粒...

【专利技术属性】
技术研发人员:龚飞
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:浙江;33

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

1