CN109710183A - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN109710183A CN109710183A CN201811540310.7A CN201811540310A CN109710183A CN 109710183 A CN109710183 A CN 109710183A CN 201811540310 A CN201811540310 A CN 201811540310A CN 109710183 A CN109710183 A CN 109710183A
- Authority
- CN
- China
- Prior art keywords
- data
- storage equipment
- write request
- synchronous
- spatial cache
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据同步方法及装置,所述方法包括:发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间;向所述第二存储设备发送缓存完成消息,以由所述第二存储设备更新自身的缓存表、并返回更新完成消息;接收所述更新完成消息,确定完成数据同步。在本申请技术方案中,第二存储设备无需从同步写请求中解析目标数据到内存空间,然后从内存空间将目标数据写入到缓存空间,极大地降低了对第二存储设备所在的存储系统的系统资源的消耗和数据同步的延时。
Description
技术领域
本申请涉及存储领域,特别涉及一种数据同步方法及装置。
背景技术
在一些数据保护技术(比如远程复制、镜像、双活等)中,为了保护数据,会将存储系统中的数据备份到另一存储系统中,形成冗余。通过该措施,可在任一存储系统出现故障后,从另一存储系统恢复数据和业务。
在相关技术中,两个存储系统间通常可建立TCP(Transmission ControlProtocol,传输控制协议)连接,然后以私有协议互相传输数据,从而实现数据的同步。
然而,在相关技术中,接收数据的存储系统需从写请求中解析得到目标数据,然后从本地的内存空间将该目标数据写入至本地的缓存空间。这个过程还需由CPU(CentralProcessing Unit,中央处理器)参与处理,因此,对系统资源的消耗较大,且增加了数据同步的延时。
发明内容
有鉴于此,本申请提供一种数据同步方法及装置,用以降低数据同步过程中对系统资源的消耗和数据同步的延时。
具体地,本申请是通过如下技术方案实现的:
一种数据同步方法,应用于第一存储设备,所述第一存储设备与第二存储设备通过支持直接内存存取的方式连接,该方法包括:
发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;
依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间;
向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息;
接收所述同步确认消息,确定完成数据同步。
在所述数据同步方法中,在发送所述同步写请求之前,所述方法还包括:
接收写请求,检查本地的数据同步模式;
若数据同步模式为实时数据同步,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在所述数据同步方法中,在发送所述同步写请求之前,所述方法还包括:
若数据同步模式为延迟数据同步,在达到预设的延迟时机后,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在所述数据同步方法中,所述将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间,包括:
若数据同步模式为延迟数据同步,从本地的缓存空间将所述目标数据直接写入所述第二存储设备的缓存空间;所述方法还包括:
在将所述目标数据写入至所述第二存储设备的缓存空间之前,检查本地的缓存空间是否存在所述目标数据;
若是,执行将所述目标数据写入所述第二存储设备的缓存空间的步骤;
若否,从磁盘空间中读取所述目标数据至本地的缓存空间,然后执行将所述目标数据写入所述第二存储设备的缓存空间的步骤。
在所述数据同步方法中,所述方法还包括:
接收所述第二存储设备发送的同步写请求;
基于所述同步写请求中LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项;
若存在对应的缓存表项,将所述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至所述第二存储设备;
若不存在对应的缓存表项,为所述同步写请求分配缓存地址,将该缓存地址作为目的缓存地址发送至所述第二存储设备。
一种数据同步装置,应用于第一存储设备,所述第一存储设备与第二存储设备通过支持直接内存存取的方式连接,该方法包括:
发送单元,用于发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;
写入单元,用于依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间;
通知单元,用于向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息;
确定单元,用于接收所述同步确认消息,确定完成数据同步。
在所述数据同步装置中,所述装置还包括:
接收单元,用于接收写请求,检查本地的数据同步模式;
所述发送单元,进一步用于若数据同步模式为实时数据同步,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在所述数据同步装置中,所述装置还包括:
所述发送单元,进一步用于若数据同步模式为延迟数据同步,在达到预设的延迟时机后,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在所述数据同步装置中,在将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间时,所述写入单元,进一步用于:
若数据同步模式为延迟数据同步,从本地的缓存空间将所述目标数据直接写入所述第二存储设备的缓存空间;
所述装置还包括:
检查单元,用于在将所述目标数据写入至所述第二存储设备的缓存空间之前,检查本地的缓存空间是否存在所述目标数据;
所述写入单元,进一步用于若是,执行将所述目标数据写入所述第二存储设备的缓存空间的步骤;若否,从磁盘空间中读取所述目标数据至本地的缓存空间,然后执行将所述目标数据写入所述第二存储设备的缓存空间的步骤。
在所述数据同步装置中,所述装置还包括:
接收单元,用于接收所述第二存储设备发送的同步写请求;
所述确定单元,进一步用于基于所述同步写请求中LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项;
所述发送单元,进一步用于若存在对应的缓存表项,将所述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至所述第二存储设备;若不存在对应的缓存表项,为所述同步写请求分配缓存地址,将该缓存地址作为目的缓存地址发送至所述第二存储设备。
在本申请技术方案中,第一存储设备通过支持直接内存存取的方式与第二存储设备连接,当第一存储设备需向第二存储设备同步数据时,可向第二存储设备发送同步写请求,以获得第二存储设备为该同步写请求分配的目的缓存地址,进而根据该目的缓存地址将目标数据直接写入至所述第二存储设备的缓存空间;进一步地,第一存储设备与第二存储设备通过发送缓存完成消息和更新完成消息确认完成数据同步;
整个过程中,第二存储设备无需从同步写请求中解析目标数据到内存空间,然后从内存空间将目标数据写入到缓存空间,极大地降低了对第二存储设备所在的存储系统的系统资源的消耗。
附图说明
图1是相关技术的一种实时数据同步的示意图;
图2是相关技术的一种延迟数据同步的示意图;
图3是本申请示出的一种数据同步方法的流程图;
图4是本申请示出的一种实时数据同步的示意图;
图5是本申请示出的一种延迟数据同步的示意图;
图6是本申请示出的一种数据同步装置的实施例框图;
图7是本申请示出的一种数据同步装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
请参见图1,为相关技术的一种实时数据同步的示意图。如图1所示,存储系统1与存储系统2通过私有协议互相传输数据,从而实现数据的同步。
存储系统1和存储系统2都为自身的LUN(Logical Unit Number,逻辑单元号)预配置缓存空间。利用上述缓存空间,存储系统可更快速地响应IO(Input Output,输入输出)请求,从而提供更好的存储服务。其中,上述缓存空间由多个缓存块(Cache块)构成。
存储系统1接收到外部(包括上层应用程序或与该存储系统对接的服务器)发送的写请求,此时,存储系统1可以检查本地的数据同步模式,并确定数据同步模式为实时数据同步。
存储系统1首先可将该写请求中待写入的目标数据写入到本地的缓存空间中,后续可将缓存空间中的该目标数据写入至写请求指示的LUN中。如图1所示,黑色方块指示目标数据。
接着,存储系统1可以向存储系统2转发该写请求。
存储系统2接收到该写请求后,解析该写请求,然后将该写请求中的目标数据写入到本地的缓存空间,并向存储系统1发送缓存完成消息。
存储系统1接收到该缓存完成消息,确定完成数据同步,进而向外部发送写入成功消息。
参见图2,为相关技术的一种延迟数据同步的示意图。与图1相同,图2中存储系统1与存储系统2通过私有协议互相传输数据,从而实现数据的同步。
存储系统1接收到外部发送的写请求,此时,存储系统1可以检查本地的数据同步模式,并确定数据同步模式为延迟数据同步。在这种情况下,存储系统1可将该写请求中待写入的目标数据写入到本地的缓存空间中,后续可将缓存空间中的该目标数据写入至写请求指示的LUN中。如图2所示,黑色方块指示目标数据。
在延迟数据同步的情况下,存储系统1需等待预设的延迟时机,当达到上述延迟时机后,存储系统1可从本地的缓存空间或LUN中获取上述目标数据,然后为该目标数据生成写请求,并向存储系统2发送上述写请求。
存储系统2接收到该写请求后,解析该写请求,然后将该写请求中的目标数据写入到本地的缓存空间,并向存储系统1发送缓存完成消息。
存储系统1接收到该缓存完成消息,确定完成数据同步,进而向外部发送写入成功消息。
在相关技术中,无论是实时数据同步还是延迟数据同步,存储系统2在处理写请求时,均需解析写请求后在将目标数据缓存至内存空间中,再从内存空间中将目标数据写入至缓存空间。而在延迟数据同步过程中,存储系统1在为目标数据生成写请求时,首先需从LUN或缓存空间将目标数据写入至内存空间,然后为该目标数据生成写请求后转发至存储系统2。
上述涉及内存的数据写入过程,消耗了存储系统的系统资源(CPU的处理资源和内存空间),也增加了数据同步的延时。
为解决上述问题,本申请提出一种数据同步方法,参见图3,为本申请示出的一种数据同步方法的流程图,该方法包括以下步骤:
步骤301:发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址。
其中,上述方法应用于第一存储设备,上述第一存储设备与第二存储设备通过支持直接内存存取的方式连接。
这里,第一存储设备和第二存储设备均为泛指的存储设备,其只是为便于描述进行的命名,并不限定本申请。第一存储设备和第二存储设备属于不同的存储系统中。
上述支持直接内存存取的方式可以包括支持DMA(Direct Memory Access,直接内存存取)的PCI-E(Peripheral Component Interconnect Express,高速外部组件互联标准)连接方式、支持RDMA(Remote Direct Memory Access,远程直接内存存取)的以太网协议(包括Infiniband、RoCE、iWARP)等。
根据第一存储设备上预配置的数据同步模式的差异,第一存储设备向第二存储设备发送上述同步写请求指令的时机是不同的。第一存储设备接收到写请求,可检查本地的数据同步模式。其中,本地的数据同步模式通常是预配置的,可通过该第一存储设备的内存空间中指定的标识位来记录本地的数据同步模式,比如,若标识位中填入1,则为实时数据同步;若标识位中填入0,则为延迟数据同步。
上述写请求来自上层应用程序或与第一存储设备对接的服务器。上述写请求携带LUN标识、数据起始地址(LBA,Logical Block Address)和数据长度,上述LUN标识和数据起始地址确定目标数据待写入的LUN空间。
一种情况下,若数据同步模式为实时数据同步,第一存储设备可以将上述写请求中的目标数据写入本地的缓存空间中,后续可将缓存空间中的上述目标数据写入至写请求指示的LUN中。
具体地,第一存储设备可基于上述写请求中的LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项。其中,上述缓存表包括多条本地缓存表项,各缓存表项包括LUN标识、数据起始地址和缓存地址的映射关系。
需要指出的是,每一缓存表项对应于一个缓存块,因此,一个缓存表项记录的已缓存的数据的长度最多为缓存块可存储的数据长度。第一存储设备在查找本地的缓存表时,实际上要将上述写请求拆分为多个LUN标识和数据起始地址的组合,然后分别查找本地的缓存表。具体可参照现有技术,本申请在此不再赘述。
一方面,若未查找到对应的缓存表项,则说明尚未给上述LUN标识和数据起始地址对应的LUN空间分配缓存地址。在这种情况下,第一存储设备可以从本地的缓存空间中为上述写请求分配缓存地址,然后基于该缓存地址将上述写请求中的目标数据写入到本地的缓存空间中。进一步地,第一存储设备可以在本地的缓存表记录上述LUN标识、数据起始地址和该缓存地址的映射关系。
另一方面,若查找到对应的缓存表项,则说明已经给上述LUN标识和数据起始地址对应的LUN空间分配缓存地址。在这种情况下,第一存储设备可以向上述缓存表项记录的缓存地址中写入上述目标数据。
此外,在将上述目标数据写入至本地的缓存空间的过程中,第一存储设备可以上述写请求中的目标数据生成同步写请求,然后执行发送上述同步写请求的步骤。其中,上述同步写请求携带与上述写请求中相同的LUN标识、数据起始地址和数据长度,且无需携带目标数据。
另一种情况下,若数据同步模式为延迟数据同步,第一存储设备可以将上述写请求中的目标数据写入本地的缓存空间中,后续可将缓存空间中的上述目标数据写入至写请求指示的LUN中。
具体地,将目标数据写入本地的缓存空间的实施方式,与实时数据同步过程中将目标数据写入本地的缓存空间的实施方式相同,在此不再赘述。
进一步地,第一存储设备需等待预设的延迟时机,当达到上述延迟时机后,第一存储设备可以为上述写请求中的目标数据生成同步写请求,然后执行发送上述同步写请求的步骤。其中,上述同步写请求携带与上述写请求中相同的LUN标识、数据起始地址和数据长度。上述延迟时机可基于存储系统的业务而配置,比如,延迟时机可以是在处理完上述写请求以后,或者,延迟时机可以是指定的延迟时长,本申请对此不加以限定。
在本申请实施例中,上述第二存储设备接收到上述同步写请求后,即可为上述同步写请求分配目的缓存地址。
在示出的一种实施方式中,上述第二存储设备可以基于上述同步写请求中的LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项。
一方面,若存在对应的缓存表项,则可将上述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至上述第一存储设备。
另一方面,若不存在对应的缓存表项,则可为上述同步写请求分配缓存地址,然后将该缓存地址作为目的缓存地址发送至上述第一存储设备。此外,上述第二存储设备可基于上述同步写请求中的LUN标识、数据起始地址和该缓存地址建立缓存表项,并将该缓存表项保存在本地的缓存表中。
需要指出的是,为防止数据同步的过程,已分配出去的缓存地址对应的缓存块被第二存储设备新接收的数据占用,第二存储设备将目的缓存地址发送至第一存储设备后,可锁住目的缓存地址对应的缓存块。
步骤302:依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间。
参见图4,为本申请示出的一种实时数据同步的示意图,如图4所示,存储系统1与存储系统2通过支持直接内存存取的方式互相连接。
当存储系统1接收到存储系统2返回的目的缓存地址后,将写请求中的解析得到的位于内存空间中的目标数据通过RDMA或DMA的方式写入至存储系统2的缓存空间。
参见图5,为本申请示出的一种延迟数据同步的示意图,如图5所示,存储系统1与存储系统2通过支持直接内存存取的方式互相连接。
当存储系统1接收到存储系统2返回的目的缓存地址后,将已写入到缓存空间的目标数据通过RDMA或DMA的方式写入至存储系统2的缓存空间。
需要指出的是,由于本申请延迟数据同步过程中,第一存储设备可从本地缓存空间中将目标数据直接写入至第二存储设备的缓存空间内,因此,第一存储空间需确保本地缓存空间中已存在上述目标数据。
而延迟数据同步时,缓存空间中的目标数据可能已经写入至LUN中,此时原本写入目标数据的缓存块已经被释放,缓存空间中不再存储该目标数据。在这种情况下,第一存储设备在将上述目标数据写入至第二存储设备的缓存空间之前,需检查本地的缓存空间中是否存在上述目标数据。
具体地,第一存储设备可以依据已经写入上述目标数据的LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项。如果存在对应的缓存表项,则确定本地的缓存空间中存在上述目标数据;否则,则确定本地的缓存空间中不存在上述目标数据。
一方面,若本地的缓存空间中已存在上述目标数据,则可执行将上述目标数据写入上述第二存储设备的缓存空间的步骤。
另一方面,若本地的缓存空间中不存在上述目标数据,则可从磁盘空间中读取上述目标数据至本地的缓存空间,然后执行将上述目标数据写入上述第二存储设备的缓存空间的步骤。
需要指出的是,为避免数据同步的过程中,本地缓存空间中的目标数据被新接收的数据覆盖,第一存储设备可锁住上述目标数据所在的缓存块,并在数据同步完成后解锁。
步骤303:向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息。
步骤304:接收所述同步确认消息,确定完成数据同步。
第一存储设备将上述目标数据写入至第二存储设备的缓存空间后,可向第二存储设备发送缓存完成消息。
作为一种实施例,上述缓存完成消息可携带写入上述目标数据的目的缓存地址、上述同步写请求中的LUN标识和数据起始地址。
第二存储设备接收到上述缓存完成消息后,可确认上述目标数据已经同步至本地的缓存空间,进一步地,第二存储设备向第一存储设备发送同步确认消息。此外,第二存储设备可对上述目的缓存地址对应的缓存块解锁。
第一存储设备接收到该同步确认消息,确定完成数据同步。
综上所述,在本申请技术方案中,第一存储设备通过支持直接内存存取的方式与第二存储设备连接,当第一存储设备需向第二存储设备同步数据时,可向第二存储设备发送同步写请求,以获得第二存储设备为该同步写请求分配的目的缓存地址,进而根据该目的缓存地址将目标数据直接写入至所述第二存储设备的缓存空间;进一步地,第一存储设备与第二存储设备通过发送缓存完成消息和更新完成消息确认完成数据同步;
整个过程中,第二存储设备无需从同步写请求中解析目标数据到内存空间,然后从内存空间将目标数据写入到缓存空间,极大地降低了对第二存储设备所在的存储系统的系统资源的消耗,减少了数据同步的延时;
此外,对于实时数据同步过程,因减少数据同步的延时,进而减少了响应写请求的时间;对于延迟数据同步过程,第一存储设备无需将目标数据读取到内存空间后再生成写请求,降低了对第一存储设备所在的存储系统的系统资源的消耗。
与前述数据同步方法的实施例相对应,本申请还提供了数据同步装置的实施例。
参见图6,为本申请示出的一种数据同步装置的实施例框图:
如图6所示,该数据同步装置60,包括:
发送单元610,用于发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;
写入单元620,用于依据所述目的缓存地址,将所述同步写请求指示的目标数据,从本地的缓存空间直接写入至所述第二存储设备的缓存空间;
通知单元630,用于向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息;
确定单元640,用于接收所述同步确认消息,确定完成数据同步。
在本例中,所述装置还包括:
接收单元650(图中未示出),用于接收写请求,检查本地的数据同步模式;
所述发送单元610,进一步用于若数据同步模式为实时数据同步,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在本例中,所述装置还包括:
所述发送单元610,进一步用于若数据同步模式为延迟数据同步,在达到预设的延迟时机后,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
在本例中,在将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间时,所述写入单元620,进一步用于:
若数据同步模式为延迟数据同步,从本地的缓存空间将所述目标数据直接写入所述第二存储设备的缓存空间;
所述装置还包括:
检查单元660(图中未示出),用于在将所述目标数据写入至所述第二存储设备的缓存空间之前,检查本地的缓存空间是否存在所述目标数据;
所述写入单元620,进一步用于若是,执行将所述目标数据写入所述第二存储设备的缓存空间的步骤;若否,从磁盘空间中读取所述目标数据至本地的缓存空间,然后执行将所述目标数据写入所述第二存储设备的缓存空间的步骤。
在本例中,所述装置还包括:
接收单元650(图中未示出),用于接收所述第二存储设备发送的同步写请求;
所述确定单元640,进一步用于基于所述同步写请求中LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项;
所述发送单元610,进一步用于若存在对应的缓存表项,将所述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至所述第二存储设备;若不存在对应的缓存表项,为所述同步写请求分配缓存地址,将该缓存地址作为目的缓存地址发送至所述第二存储设备。
本申请数据同步装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请数据同步装置所在存储设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的存储设备通常根据该数据同步装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,应用于第一存储设备,所述第一存储设备与第二存储设备通过支持直接内存存取的方式连接,该方法包括:
发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;
依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间;
向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息;
接收所述同步确认消息,确定完成数据同步。
2.根据权利要求1所述的方法,其特征在于,在发送所述同步写请求之前,所述方法还包括:
接收写请求,检查本地的数据同步模式;
若数据同步模式为实时数据同步,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
3.根据权利要求2所述的方法,其特征在于,在发送所述同步写请求之前,所述方法还包括:
若数据同步模式为延迟数据同步,在达到预设的延迟时机后,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
4.根据权利要求3所述的方法,其特征在于,所述将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间,包括:
若数据同步模式为延迟数据同步,从本地的缓存空间将所述目标数据直接写入所述第二存储设备的缓存空间;
所述方法还包括:
在将所述目标数据写入至所述第二存储设备的缓存空间之前,检查本地的缓存空间是否存在所述目标数据;
若是,执行将所述目标数据写入所述第二存储设备的缓存空间的步骤;
若否,从磁盘空间中读取所述目标数据至本地的缓存空间,然后执行将所述目标数据写入所述第二存储设备的缓存空间的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二存储设备发送的同步写请求;
基于所述同步写请求中LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项;
若存在对应的缓存表项,将所述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至所述第二存储设备;
若不存在对应的缓存表项,为所述同步写请求分配缓存地址,将该缓存地址作为目的缓存地址发送至所述第二存储设备。
6.一种数据同步装置,其特征在于,应用于第一存储设备,所述第一存储设备与第二存储设备通过支持直接内存存取的方式连接,该方法包括:
发送单元,用于发送同步写请求至所述第二存储设备,以由所述第二存储设备返回为所述同步写请求分配的目的缓存地址;
写入单元,用于依据所述目的缓存地址,将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间;
通知单元,用于向所述第二存储设备发送缓存完成消息,以由所述第二存储设备确认缓存完成、并返回同步确认消息;
确定单元,用于接收所述同步确认消息,确定完成数据同步。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收写请求,检查本地的数据同步模式;
所述发送单元,进一步用于若数据同步模式为实时数据同步,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
所述发送单元,进一步用于若数据同步模式为延迟数据同步,在达到预设的延迟时机后,为所述写请求中的目标数据生成同步写请求,并执行发送所述同步写请求的步骤。
9.根据权利要求8所述的装置,其特征在于,在将所述同步写请求指示的目标数据直接写入至所述第二存储设备的缓存空间时,所述写入单元,进一步用于:
若数据同步模式为延迟数据同步,从本地的缓存空间将所述目标数据直接写入所述第二存储设备的缓存空间;
所述装置还包括:
检查单元,用于在将所述目标数据写入至所述第二存储设备的缓存空间之前,检查本地的缓存空间是否存在所述目标数据;
所述写入单元,进一步用于若是,执行将所述目标数据写入所述第二存储设备的缓存空间的步骤;若否,从磁盘空间中读取所述目标数据至本地的缓存空间,然后执行将所述目标数据写入所述第二存储设备的缓存空间的步骤。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收所述第二存储设备发送的同步写请求;
所述确定单元,进一步用于基于所述同步写请求中LUN标识、数据起始地址和数据长度查找本地的缓存表,确定是否存在对应的缓存表项;
所述发送单元,进一步用于若存在对应的缓存表项,将所述缓存表项中的缓存地址作为目的缓存地址,将该目的缓存地址发送至所述第二存储设备;若不存在对应的缓存表项,为所述同步写请求分配缓存地址,将该缓存地址作为目的缓存地址发送至所述第二存储设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540310.7A CN109710183B (zh) | 2018-12-17 | 2018-12-17 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540310.7A CN109710183B (zh) | 2018-12-17 | 2018-12-17 | 一种数据同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710183A true CN109710183A (zh) | 2019-05-03 |
CN109710183B CN109710183B (zh) | 2022-09-06 |
Family
ID=66256695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811540310.7A Active CN109710183B (zh) | 2018-12-17 | 2018-12-17 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710183B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312300A (zh) * | 2021-06-17 | 2021-08-27 | 上海天玑科技股份有限公司 | 一种融合数据传输和存储的非易失内存缓存方法 |
WO2024174477A1 (zh) * | 2023-02-24 | 2024-08-29 | 华为技术有限公司 | 一种存储系统的同步远程复制方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014153A (zh) * | 2010-10-19 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储系统及其数据存储方法 |
CN102098344A (zh) * | 2011-02-21 | 2011-06-15 | 中国科学院计算技术研究所 | 一种缓存管理中同步版本方法和装置及其缓存管理系统 |
US20120210041A1 (en) * | 2007-12-06 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
CN104536702A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种存储阵列系统及数据写请求处理方法 |
CN105573682A (zh) * | 2016-02-25 | 2016-05-11 | 浪潮(北京)电子信息产业有限公司 | 一种san存储系统及其数据读写方法 |
CN105612488A (zh) * | 2014-09-15 | 2016-05-25 | 华为技术有限公司 | 数据写请求处理方法和存储阵列 |
CN105677255A (zh) * | 2016-01-08 | 2016-06-15 | 中国科学院信息工程研究所 | 一种磁盘阵列日志数据旋转分布和同步方法 |
CN105955841A (zh) * | 2016-04-18 | 2016-09-21 | 华中科技大学 | 一种raid双控制器利用磁盘进行写缓存镜像的方法 |
WO2017124948A1 (zh) * | 2016-01-19 | 2017-07-27 | 中兴通讯股份有限公司 | 一种数据备份的方法及装置 |
CN108762984A (zh) * | 2018-05-23 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种连续性数据备份的方法及装置 |
CN108762668A (zh) * | 2018-05-07 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种处理写入冲突的方法及装置 |
US10740300B1 (en) * | 2017-12-07 | 2020-08-11 | Commvault Systems, Inc. | Synchronization of metadata in a distributed storage system |
-
2018
- 2018-12-17 CN CN201811540310.7A patent/CN109710183B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120210041A1 (en) * | 2007-12-06 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
CN102014153A (zh) * | 2010-10-19 | 2011-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种数据存储系统及其数据存储方法 |
CN102098344A (zh) * | 2011-02-21 | 2011-06-15 | 中国科学院计算技术研究所 | 一种缓存管理中同步版本方法和装置及其缓存管理系统 |
CN105612488A (zh) * | 2014-09-15 | 2016-05-25 | 华为技术有限公司 | 数据写请求处理方法和存储阵列 |
CN104536702A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种存储阵列系统及数据写请求处理方法 |
CN105677255A (zh) * | 2016-01-08 | 2016-06-15 | 中国科学院信息工程研究所 | 一种磁盘阵列日志数据旋转分布和同步方法 |
WO2017124948A1 (zh) * | 2016-01-19 | 2017-07-27 | 中兴通讯股份有限公司 | 一种数据备份的方法及装置 |
CN105573682A (zh) * | 2016-02-25 | 2016-05-11 | 浪潮(北京)电子信息产业有限公司 | 一种san存储系统及其数据读写方法 |
CN105955841A (zh) * | 2016-04-18 | 2016-09-21 | 华中科技大学 | 一种raid双控制器利用磁盘进行写缓存镜像的方法 |
US10740300B1 (en) * | 2017-12-07 | 2020-08-11 | Commvault Systems, Inc. | Synchronization of metadata in a distributed storage system |
CN108762668A (zh) * | 2018-05-07 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种处理写入冲突的方法及装置 |
CN108762984A (zh) * | 2018-05-23 | 2018-11-06 | 杭州宏杉科技股份有限公司 | 一种连续性数据备份的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312300A (zh) * | 2021-06-17 | 2021-08-27 | 上海天玑科技股份有限公司 | 一种融合数据传输和存储的非易失内存缓存方法 |
CN113312300B (zh) * | 2021-06-17 | 2024-05-03 | 上海天玑科技股份有限公司 | 一种融合数据传输和存储的非易失内存缓存方法 |
WO2024174477A1 (zh) * | 2023-02-24 | 2024-08-29 | 华为技术有限公司 | 一种存储系统的同步远程复制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109710183B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9032248B1 (en) | Memory write tracking for virtual machines | |
TWI470459B (zh) | 由在遠端複本對之主要磁碟與次要磁碟之間通信而作為遠端複本對運作之儲存控制系統、方法、資料載體及電腦程式產品 | |
US9525592B2 (en) | Client/server network environment setup method and system | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
CN109597818A (zh) | 数据更新方法、装置、存储介质和设备 | |
US20040034763A1 (en) | Method and apparatus for booting with remote configuration data | |
US9699276B2 (en) | Data distribution method and system and data receiving apparatus | |
JPH0962558A (ja) | データベース管理システム及び方法 | |
CN102694860A (zh) | 一种云存储的数据处理方法、设备及系统 | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
CN106815251A (zh) | 分布式数据库系统、数据库访问方法及装置 | |
JP2001519565A (ja) | キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送 | |
JP6405255B2 (ja) | 通信システム、キュー管理サーバ、及び、通信方法 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
US20080047005A1 (en) | Access monitoring method and device for shared memory | |
CN106980556B (zh) | 一种数据备份的方法及装置 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
CN109710183A (zh) | 一种数据同步方法及装置 | |
CN114422537B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
CN111400213B (zh) | 传输数据的方法、装置及系统 | |
CN111831221A (zh) | 一种基于云存储的分布式存储方法及系统 | |
JP2002222107A (ja) | データ同期装置 | |
JPH0677958A (ja) | 電子会議システム | |
US8302154B2 (en) | Automatic and adjustable system and method for synchronizing security mechanisms in database drivers with database servers | |
CN117255101B (zh) | 分布式存储系统的数据处理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |