CN106598768A - 一种处理写请求的方法、装置和数据中心 - Google Patents

一种处理写请求的方法、装置和数据中心 Download PDF

Info

Publication number
CN106598768A
CN106598768A CN201611078548.3A CN201611078548A CN106598768A CN 106598768 A CN106598768 A CN 106598768A CN 201611078548 A CN201611078548 A CN 201611078548A CN 106598768 A CN106598768 A CN 106598768A
Authority
CN
China
Prior art keywords
write
address
difference log
data
requests
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
Application number
CN201611078548.3A
Other languages
English (en)
Other versions
CN106598768B (zh
Inventor
唐松
杨幸坤
花金磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611078548.3A priority Critical patent/CN106598768B/zh
Priority to PCT/CN2017/081336 priority patent/WO2018094961A1/zh
Publication of CN106598768A publication Critical patent/CN106598768A/zh
Application granted granted Critical
Publication of CN106598768B publication Critical patent/CN106598768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

本申请实施例涉及处理写请求的方法、装置和数据中心,其中,该处理写请求的方法由数据中心中的阵列控制器执行,该方法包括:接收主机发送的写I/O请求,根据其中的待写入数据的地址计算该写I/O请求的I/O地址偏移量;判断内存已存在与该I/O地址偏移量对应的差异日志时,将该写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。本申请的实施例中,以I/O地址偏移量为粒度生成相应的差异日志,当收到写I/O请求时,如果在内存中已经存在了相应的差异日志,那么不再往本端的存储设备中写入或删除差异日志,从而减少对存储设备的读写次数,提高了数据中心的性能。

Description

一种处理写请求的方法、装置和数据中心
技术领域
本发明实施例涉及存储技术领域,尤其是一种处理写请求的方法、装置和数据中心。
背景技术
如今社会,商业组织通常会维护一个或多个数据中心,用来存储和管理信息。出于灾备(Disaster Recovery)的目的,一般都会建设2个(或多个)数据中心。一个是主数据中心用于承担用户的业务,一个是备份数据中心用于备份主数据中心的数据、配置、业务等。主备数据中心之间一般有热备、冷备、双活三种备份方式。其中,双活数据中心,是指两个数据中心都处于运行状态,可以同时承担相同业务,提高数据中心的整体服务能力和系统资源利用率。两个数据中心互为备份,当单数据中心故障时,业务能自动切换到另一数据中心,业务不中断。
通常,双活数据中心的每个数据中心包括主机和存储设备。当双活数据中心中的某一数据中心(下述简称本端)的存储设备从主机接收到一个写I/O请求之后,在差异日志上记录本次写请求的偏移量及差异指示,以表明在该偏移量所示的地址范围内的数据是跟本次写请求之前有差异的。当双写成功之后,即,写入本端以及双活数据中心的另一个数据中心之后,将上述差异日志中记录的本次写请求相关的记录删除。由于每个写I/O的处理都会在存储介质上做一次差异日志的记录和删除,导致写I/O时延加长,降低了双活数据中心的性能。
发明内容
有鉴于此,本申请提供了一种处理写请求的方法、装置和数据中心,让多个写请求共享一条或多条差异日志,从而减少对存储设备的读取次数,降低写I/O时延。
第一方面,本申请提供了一种处理写请求的方法,该方法应用于双活数据中心,所述方法由本端数据中心中的阵列控制器执行,其特征在于,所述方法包括:阵列控制器接收主机发送的写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;判断内存已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。
可以理解的是,本发明实施例中是将写入数据的数据中心称为本端数据中心,而将双活数据中心中另外的数据中心称为对端数据中心。“本端”“对端”的概念也适用于数据中心中的设备。比如,对端数据中心中的阵列控制器也可以称为对端阵列控制器。
本发明实施例中,以I/O地址偏移量为粒度生成相应的差异日志,当收到一个写I/O请求的时候,如果在内存中已经存在了相应的差异日志,那么不再往本端的存储设备中写入或删除差异日志,从而减少对存储设备的读写次数,提高了数据中心的性能。
在一种可能的设计中,判断内存已存在与所述I/O地址偏移量相对应的差异日志时,所述方法还包括:将内存中记录的所述差异日志的引用次数加1;相应的,接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存中记录的所述差异日志的引用次数减1。这样一来,当一次双写完成的时候,差异日志的引用次数便恢复到初始值(比如0)。一方面,借此可以判断某个写I/O请求双写是否成功。另一方面,也可以基于此判断差异日志被引用的热度。比如某差异日志的引用次数是否一直为初始值,如果是的话,可以考虑认定该差异日志为无用日志。
在一种可能的是设计中,该方法还包括:判断内存中不存在与所属I/O地址偏移量相对应的差异日志时,在内存中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述本端存储设备中;将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。由此可见,对于首次双写的写I/O请求,将相应的差异日志保存一份在内存中,供后续参考。从而避免了每次写操作都要对存储设备进行读取。
在一种可能的设计中,判断内存中不存在与所属I/O地址偏移量相对应的差异日志时,该方法进一步包括:将创建的差异日志的引用次数加1;接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存中记录的所述差异日志的引用次数减1。
在一种可能的设计中,上述的写I/O请求的地址包括所述写I/O请求的起始地址以及数据长度,那么计算写I/O请求的I/O地址偏移量的过程包括:根据所述起止地址及数据长度计算所述写I/O请求的结束地址,并分别将所述起始地址和结束地址除以指定粒度,对结果取整得到所述I/O地址偏移量。
随着差异日志写入内存中的次数越来越多,在另外一种可能的设计中,判断内存中的第一差异日志的引用次数持续为初始值的时长超过预定时长,将所述内存中以及本端存储设备中存储的第一差异日志删除。也就是说,对于那些不常被引用的差异日志进行清理,提高内存资源的利用率。
第二方面,本申请还提供了一种控制装置。该控制装置位于双活数据中心的某一数据中心内,与该数据中心的主机以及存储设备相通信,并且还与对端数据中心的控制装置相通信。该控制装置包括接收模块、处理模块和内存模块,其中,所述接收模块,用于接收主机发送的写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;所述处理模块,用于根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,判断内存模块中已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求,其中,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;所述的内存模块,用于存储I/O地址偏移量及相应的差异日志。
在一种可能的设计中,所述处理模块,还用于在判断内存模块已存在与所述I/O地址偏移量相对应的差异日志时,将内存模块中存储的所述差异日志的引用次数加1;并在接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存模块中存储的所述差异日志的引用次数减1。
在一种可能的设计中,所述处理模块,还用于在判断内存模块中不存在与所属I/O地址偏移量相对应的差异日志时,在内存模块中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述本端的存储设备中;将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。
在一种可能的设计中,所述处理模块,还用于在判断内存模块中不存在与所属I/O地址偏移量相对应的差异日志时,将所述创建的差异日志的引用次数存为1;接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存模块中存储的所述差异日志的引用次数减1。
在一种可能的设计中,所述处理模块,还用于判断内存模块中的第一差异日志的引用次数持续为初始值的时长超过预定时长,将所述内存模块中以及本端存储设备中存储的所述第一差异日志删除。
第三方面,本申请还提供了一种阵列控制,该阵列控制器包括前端接口、后端接口、处理器和内存,其中,所述前端接口,用于跟主机通信;所述后端接口,用于跟存储设备通信;所述内存,用于缓存差异日志以及差异日志的引用次数,以及存储程序指令,当所述程序指令被所述处理器调用并执行时,执行上述第一方面的方法。
第四方面,本申请还提供了一种数据中心,该数据中心包括:主机,用于向阵列控制器发送写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;存储设备,用于存储数据;以及如上述第二方面的控制装置或第三方面的阵列控制器。
第五方面,本发明实施例提供了一种程序产品,该程序产品包括指令,当该程序产品被计算机执行的时候,使得该计算机执行上述第一方面的方法。本申请的实施例中,以I/O地址偏移量为粒度生成相应的差异日志,当收到一个写I/O请求的时候,如果在内存中已经存在了相应的差异日志,那么不再往本端的存储设备中写入或删除差异日志,从而减少对存储设备的读写次数,提高了数据中心的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1是一种数据中心实施例的结构示意图;
图2是一种写请求处理方法实施例的流程示意图;
图3是一种阵列控制器实施例的结构示意图;
图4是一种控制装置实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例提供的技术方案进行描述。
现有技术的方案中,每个写I/O的处理都会在存储设备上做一次差异日志的记录和一次差异日志的删除,导致写I/O时延加长,降低了双活数据中心的性能。为了改善这种情况,本发明实施例提出了一种处理写请求的方法、装置和数据中心。在本发明的实施例中,尽量让多个写I/O请求,共享一条或多条差异日志,从而减少对存储设备的读取次数。
如图1所示,本发明实施例提供的双活数据中心包括数据中心100和数据中心200。数据中心100和数据中心200都处于运行状态,同时承担业务,当有一个数据中心故障时,业务能够从故障的数据中心切换到非故障的数据中心,使业务不中断。
其中,数据中心100包括主机101、阵列控制器102,和存储设备103。阵列控制器102在主机101与存储设备103之间,可以是一种计算设备,如服务器、台式计算机等等。在阵列控制器上102上安装有操作系统以及其他应用程序。阵列控制器102接收来自主机101的写操作,即,写I/O请求,缓存写I/O请求中携带的数据,根据写I/O请求作一些处理,并在满足一定条件时将其保存的数据写入存储设备103中。阵列控制器102还将该写I/O请求转发到数据中心200的阵列控制器202,实现双写。数据中心200的结构与数据中心100的结构和功能一样。数据中心200包括主机201,阵列控制器202,存储设备203。需要说明书的是,存储设备103和203分别是由一个或多个存储介质组成。存储介质可以是保电内存,Cache,NVDIMM,SSD,HDD等。
下面结合附图2,以数据中心100写入数据为例来阐述本发明实施例的一种写I/O请求处理方法。下文中,为便于描述,也会将数据中心100成为本端数据中心,而且其中的存储设备103称为本端存储设备,主机101称为本端主机;将数据中心200称为对端数据中心。
201,阵列控制器102接收主机101的写I/O请求。
通常来说,写I/O请求携带有需要写入的数据以及写入该数据的地址,该地址通常是以起始地址以及数据长度来表达。
202,阵列控制器102根据接收到的写I/O请求计算该写I/O请求的I/O地址偏移量,并根据计算得到的I/O地址偏移量,判断内存中是否存在与接收到的I/O请求的I/O地址偏移量对应的差异日志。
其中,I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定长度为粒度进行划分后,基于该指定粒度的新地址。
举一具体的例子来说明,假设,I/O请求中的起始地址为5678(扇区),长度为3500扇区,指定粒度为1MB(即2048扇区),则可以通过下述方法计算获得I/O地址偏移量。首先,将I/O请求中的起始地址除以指定粒度,即5678/2048,对结果取整得到2;根据I/O请求的起始地址和数据长度获得I/O请求的结束地址,将I/O请求的结束地址除以指定粒度,即(5678+3500)/2048,对结果取整得到4。由此可见,在指定粒度为1MB情况下,I/O请求中的数据占据了键值为2、3、4的三个地址。也就是说,I/O地址偏移量2、3、4。上述的指定粒度可以为最小I/O请求的任意倍数,也就是4KB的倍数。通常,指定粒度越大,可共享差异日志的I/O请求越多,但是,调用差异日志进行数据恢复时处理的数据量也越大。
203,若阵列控制器102判断内存中不存在与接收到的I/O请求的I/O地址偏移量对应的差异日志,则在内存中创建该偏移量的差异日志,将该差异日志的引用次数加1,并且将该差异日志存储到存储设备103中;若阵列控制器102判断内存中已经存在与接收到的I/O请求的I/O地址偏移量对应的差异日志,则将内存中记录的该差异日志的引用次数加1。
本发明实施例中的差异日志可以以Key-value的方式记录。具体地,在上面的例子中,内存以及存储设备中记录的差异日志如表1所示,包括分别以2、3、4为键值的3条差异日志。Value取值为特定值(此处为1)的时候,表示该偏移量所示的地址范围内的数据是有差异的。
Key Value
2 1
3 1
4 1
表1
204,阵列控制器102将接收到的写I/O请求中的数据写入存储设备103,同时向对端数据中心200中的阵列控制器202发送该写I/O请求。
205-208,对端阵列控制器202接收到该写I/O请求后,将写I/O请求的数据写入对端的存储设备203,写成功后返回写成功响应消息给阵列控制器102。
209,阵列控制器102接收到对端阵列控制器202返回的写成功响应消息后,将内存中记录的该写I/O请求的I/O地址偏移量对应的差异日志的引用次数减1。具体地,在上面的例子中,内存中的引用次数的记录方式可以如表2所示,包括分别以2、3、4为键值的3条差异日志的引用次数,假设差异日志的初始值为0,那么,在双写成功之后,引用次数由之前的1减去1,得到初始值0。可以理解的是,如果差异日志的初始值不为0,那么双写成功后,引用次数恢复到初始值。
表2
由此可见,相比于现有技术中,每次写I/O请求都需要访问存储介质两次,一次是写入差异日志,一次是删除差异日志。本发明的实施例中,大大地减少了对存储介质的访问。以上面的实施例为例,现有技术如果要通过4KB的I/O写请求来写入1MB的数据,需要与存储介质交互512次。而采用上述本发明的上述实施例,在最有利场景中只需要通过对存储介质的两次访问。换言之,如果指定粒度为1MB,那么在连续4KB写I/O请求的场景下,相比现有技术最多可以减少510次对存储介质的访问,大大提高I/O性能。
随着写I/O请求的不停写入,存储在存储介质上的差异日志也会积累得越来越多。为避免差异日志占用过多的存储空间,还可以在上述实施例的基础上引入差异日志淘汰机制。本发明的一个实施例中,结合上述图2相应的实施例,日志淘汰机制具体过程是这样的:
在双活数据中心启动时,阵列控制器102启动日志淘汰任务,直至双活数据中心停止运行,该日志淘汰任务一直处于有效状态。日志淘汰任务可以是由阵列控制器调用某一线程来实现。在日志淘汰任务处于有效时,阵列控制器102通过设置定时器监控内存中的差异日志。如果某一差异日志的引用次数持续为初始值(比如0)的时间超过特定时长(此处以5ms为例),则根据该某一差异日志的键值,在内存中查找到该键值对应的差异日志,将找到的差异日志删除。并且,根据该某一差异日志的键值,将存储介质中存储的与该键值对应的差异日志也删除。可以通过设置定时器的方式来判断某一差异日志的引用次数持续为0的时长。具体地,当首次收到某一个写I/O请求之后,会在内存中创建相应的差异日志。当该写写I/O请求双写成功后,引用次数恢复到初始值时,启动定时器。随着时间推移,若下次收到一个写I/O请求,需要将该差异日志加1,也就是说,根据接收到的写I/O请求计算出的I/O地址偏移量正好与该差异日志对应的I/O地址偏移量一样,此时定时器清零;若一直不需要将该差异日志加1,那么定时器一直会计时,直到超时。
可以理解的是,双写也可能失败,也就是说,阵列控制器102一直没收到对端阵列控制器202返回的成功响应,或者接收到对端阵列控制器202返回的失败响应。这种情况下,数据中心100和数据中心200的双活关系结束。若在这之后,阵列控制器102再收到写I/O请求,阵列控制器102将其中的数据写入本地存储设备中,并且将每个写I/O请求对应的差异日志写入存储设备中(跟前面不同的是,此处的差异日志是对应于I/O请求的,而不是对应于由指定粒度计算出来的I/O地址偏移量的)。待故障恢复后,数据中心100和数据中心200之间恢复双活关系,此时,启动后台拷贝任务,读取存储设备上的差异日志,根据读取出来的差异日志对应的I/O地址和长度读取本端的数据,将读出来的数据拷贝到对端。同理,对端的数据中心也做此处理,这样,两个数据中心的数据再次同步。
数据中心200写入数据的过程以及删除差异日志的过程与上述一样,不再赘述。
接下来,本发明实施例还提供了一种阵列控制器102。参考上述图1,阵列控制器102位于数据中心100内,与主机101、本端的存储设备103、以及对端数据中心的阵列控制器202通信。如图3所示,阵列控制器102包括前端接口1021、后端接口1022、处理器1023和内存1024。前端接口1021用于跟主机101通信。后端接口1022用于和存储设备103通信。处理器1023可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。内存1024可以为动态随机存储器(全称:Dynamic Random-Access Memory,简称:DRAM)、静态随机存储器(全称:Static Random-Access Memory,简称:DRAM)、随机存储器(全称:Random-Access Memory,简称:RAM)等非永久性性存储器。内存1024用于缓存差异日志及差异日志的引用次数;该内存1024还可以用来暂时存放从主机接收的写I/O请求的数据。
在本发明的一个实施例中,内存1024中还存储有程序指令,当这些程序指令被处理器1023调用并执行的时候,执行上述实施例中阵列控制102所执行的步骤。简略地说,包括:接收写I/O请求,计算该写I/O请求的I/O地址偏移量,根据计算结果判断内存中是否已经存在与所接收到的I/O请求的I/O地址对应的差异日志,并根据不同的情况在内存或者存储设备上记录相应的信息。以及,将写I/O请求发送给对端数据中心,待双写成功后处理相应的差异日志以及差异日志的引用次数。内存1024中还可以存着另外一些程序指令,当这些存储指令被处理器1023调用并执行的时候,会执行日志淘汰任务。本实施例中的具体实现可以参考上一个实施例,在此不再赘述。
本发明实施例还提供了一种控制装置,该控制装置可以上述实施例的数据中心100中,如上图1中所示,数据中心100和数据中心200组成了双活数据中心。下文中,也会将数据中心100中的存储设备103称为本端存储设备,而将数据中心100中的主机101称为本端主机;将数据中心200称为对端数据中心。
该控制装置包括接收模块401、处理模块402和内存模块403,其中,接收模块401,用于接收本端主机发送的写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;处理模块402,用于根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,判断内存模块403中已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端存储设备,并向对端数据中心中的阵列控制器202发送所述写I/O请求,其中,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;所述的内存模块403,用于存储I/O地址偏移量及相应的差异日志。
在一种可能的实现中,处理模块402,还用于在判断内存模块403已存在与所述I/O地址偏移量相对应的差异日志时,将内存模块403中存储的所述差异日志的引用次数加1;并在接收到所述对端数据中心的阵列控制器202返回的写入对端存储设备203的成功响应消息之后,将内存模块中存储的所述差异日志的引用次数减1。
在一种可能的实现中,处理模块402,还用于在判断内存模块403中不存在与所属I/O地址偏移量相对应的差异日志时,在内存模块403中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述本端的存储设备103中;将所述写I/O请求中的数据写入本端的存储设备103,并向对端数据中心的阵列控制器202发送所述写I/O请求。
在一种可能的实现中,处理模块402,还用于在判断内存模块403中不存在与所属I/O地址偏移量相对应的差异日志时,将所述创建的差异日志的引用次数存为1;接收到所述对端数据中心的阵列控制器202返回的写入对端存储设备203的成功响应消息之后,将内存模块403中存储的所述差异日志的引用次数减1。
在一种可能的实现中,处理模块402,还用于判断内存模块403中的第一差异日志的引用次数持续为0的时长超过预定时长,将所述第一差异日志删除。
本发明实施例还提供了一种数据中心100,包括主机101,用于向阵列控制器102发送写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;阵列控制器102,用于根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,判断内存模块中已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求,其中,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;存储设备103,用于存储所述写I/O请求中的数据。
在一种可能的实现中,所述阵列控制器102还用于在判断内存中已存在与所述I/O地址偏移量相对应的差异日志时,将内存中存储的所述差异日志的引用次数加1;并在接收到所述对端数据中心的阵列控制器202返回的写入对端存储设备203的成功响应消息之后,将内存中存储的所述差异日志的引用次数减1。
在一种可能的实现中,所述阵列控制器102还用于在判断内存中不存在与所属I/O地址偏移量相对应的差异日志时,在内存中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述存储设备103中;将所述写I/O请求中的数据写入本端的存储设备103,并向对端数据中心的阵列控制器202发送所述写I/O请求。
在一种可能的实现中,所述阵列控制器102还用于在判断内存模块中不存在与所属I/O地址偏移量相对应的差异日志时,将所述创建的差异日志的引用次数存为1;接收到所述对端数据中心的阵列控制器202返回的写入对端存储设备的成功响应消息之后,将内存中存储的所述差异日志的引用次数减1。
在另外一种可能的实现中,所述阵列控制器102还用于判断内存中的第一差异日志的引用次数持续为0的时长超过预定时长,将所述第一差异日志删除。
可以理解的是,双活数据中心是可以有两个上述实施例所描述的数据中心来组成。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。上述本发明实施例的功能也可以是由包括指令的计算机程序产品来实现,当该程序产品被计算机执行的时候,使得该计算机执行上述方法实施例中的部分或者全部步骤。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (13)

1.一种处理写请求的方法,所述方法由数据中心中的阵列控制器执行,其特征在于,所述方法包括:
接收主机发送的写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;
根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;
判断内存已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。
2.如权利要求1所述的方法,其特征在于,判断内存已存在与所述I/O地址偏移量相对应的差异日志时,所述方法进一步包括:
将内存中记录的所述差异日志的引用次数加1;相应的,接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存中记录的所述差异日志的引用次数减1。
3.如权利要求1或2所述的方法,其特征在于,所述的方法进一步包括:
判断内存中不存在与所属I/O地址偏移量相对应的差异日志时,在内存中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述本端存储设备中;
将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。
4.如权利要求3所述的方法,其特征在于,判断内存中不存在与所属I/O地址偏移量相对应的差异日志时,所述的方法进一步包括:
记录所述创建的差异日志的引用次数为1;
接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存中记录的所述差异日志的引用次数减1。
5.如权利要求1-4任意一项所述的方法,其特征在于,所述写I/O请求的地址包括所述写I/O请求的起始地址以及数据长度,所述计算写I/O请求的I/O地址偏移量包括:
根据所述起止地址及数据长度计算所述写I/O请求的结束地址,并分别将所述起始地址和结束地址除以指定粒度,对结果取整得到所述I/O地址偏移量。
6.如权利要求2或4所述的方法,其特征在于,
判断内存中的第一差异日志的引用次数持续为初始值的时长超过预定时长,将所述内存中以及本端存储设备中存储的第一差异日志删除。
7.一种控制装置,该控制装置包括接收模块、处理模块和内存模块,其中,
所述接收模块,用于接收主机发送的写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;
所述处理模块,用于根据所述待写入数据的地址计算所述写I/O请求的I/O地址偏移量,判断内存模块中已存在与所述I/O地址偏移量相对应的差异日志时,将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求,其中,所述I/O地址偏移量是指I/O请求中的数据所占的全部地址以指定粒度划分后,基于该指定粒度的新地址;
所述的内存模块,用于存储I/O地址偏移量及相应的差异日志。
8.如权利要求7所述的控制装置,其特征在于,
所述处理模块,还用于在判断内存模块已存在与所述I/O地址偏移量相对应的差异日志时,将内存模块中存储的所述差异日志的引用次数加1;并在接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存模块中存储的所述差异日志的引用次数减1。
9.如权利要求7或8所述的控制装置,其特征在于,
所述处理模块,还用于在判断内存模块中不存在与所属I/O地址偏移量相对应的差异日志时,在内存模块中创建所述I/O地址偏移量的差异日志,并将所述创建的差异日志存储到所述本端的存储设备中;将所述写I/O请求中的数据写入本端的存储设备,并向对端数据中心的阵列控制器发送所述写I/O请求。
10.如权利要求9所述的控制装置,其特征在于,
所述处理模块,还用于在判断内存模块中不存在与所属I/O地址偏移量相对应的差异日志时,将所述创建的差异日志的引用次数存为1;
接收到所述对端数据中心的阵列控制器返回的写入对端存储设备的成功响应消息之后,将内存模块中存储的所述差异日志的引用次数减1。
11.如权利要求8或10所述的控制装置,其特征在于,所述处理模块,还用于判断内存模块中的第一差异日志的引用次数持续为初始值的时长超过预定时长,将所述内存模块中以及本端存储设备中存储的所述第一差异日志删除。
12.一种阵列控制器,其特征在于,所述阵列控制器包括前端接口、后端接口、处理器和内存,其中,
所述前端接口,用于跟主机通信;
所述后端接口,用于跟存储设备通信;
所述内存,用于缓存差异日志以及差异日志的引用次数,以及存储程序指令,当所述程序指令被所述处理器调用并执行时,执行上述权利要求1-6的方法。
13.一种数据中心,其特征在于,所述数据中心包括:
主机,用于向阵列控制器发送写I/O请求,所述写I/O请求包括待写入数据以及写入所述待写入数据的地址;
存储设备,用于存储数据;
如权利要求7-11所述的控制装置或者如权12所述的阵列控制器。
CN201611078548.3A 2016-11-28 2016-11-28 一种处理写请求的方法、装置和数据中心 Active CN106598768B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611078548.3A CN106598768B (zh) 2016-11-28 2016-11-28 一种处理写请求的方法、装置和数据中心
PCT/CN2017/081336 WO2018094961A1 (zh) 2016-11-28 2017-04-21 一种处理写请求的方法、装置和数据中心

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611078548.3A CN106598768B (zh) 2016-11-28 2016-11-28 一种处理写请求的方法、装置和数据中心

Publications (2)

Publication Number Publication Date
CN106598768A true CN106598768A (zh) 2017-04-26
CN106598768B CN106598768B (zh) 2020-02-14

Family

ID=58595927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611078548.3A Active CN106598768B (zh) 2016-11-28 2016-11-28 一种处理写请求的方法、装置和数据中心

Country Status (2)

Country Link
CN (1) CN106598768B (zh)
WO (1) WO2018094961A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967122A (zh) * 2017-11-22 2018-04-27 郑州云海信息技术有限公司 一种块设备的数据写入方法、装置及介质
WO2018094961A1 (zh) * 2016-11-28 2018-05-31 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN112395245B (zh) * 2019-08-16 2023-04-28 上海寒武纪信息科技有限公司 处理器的访问装置、方法及计算机设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858529B (zh) * 2020-06-29 2024-04-09 广东浪潮大数据研究有限公司 一种日志回放方法、装置、设备及计算机可读存储介质
CN116708571A (zh) * 2023-07-22 2023-09-05 武汉船舶职业技术学院 一种基于5g通信的智能终端服务方法、系统及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299181A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 基于磁盘进行i/o请求缓存的方法和装置以及san存储设备
CN102150142A (zh) * 2008-12-27 2011-08-10 株式会社东芝 存储器系统和控制存储器系统的方法
CN102163175A (zh) * 2011-04-26 2011-08-24 西安交通大学 一种基于局部性分析的混合地址映射方法
CN103649901A (zh) * 2013-07-26 2014-03-19 华为技术有限公司 数据发送方法、数据接收方法和存储设备
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
CN103838521A (zh) * 2014-02-28 2014-06-04 华为技术有限公司 一种数据处理方法及装置
US8880788B1 (en) * 2014-01-08 2014-11-04 Netapp, Inc. Flash optimized, log-structured layer of a file system
CN104536846A (zh) * 2014-12-17 2015-04-22 杭州华为数字技术有限公司 一种备份数据的方法及装置
CN105577776A (zh) * 2015-12-17 2016-05-11 上海爱数信息技术股份有限公司 基于数据仲裁者副本的分布式存储系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598768B (zh) * 2016-11-28 2020-02-14 华为技术有限公司 一种处理写请求的方法、装置和数据中心

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101299181A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 基于磁盘进行i/o请求缓存的方法和装置以及san存储设备
CN102150142A (zh) * 2008-12-27 2011-08-10 株式会社东芝 存储器系统和控制存储器系统的方法
CN102163175A (zh) * 2011-04-26 2011-08-24 西安交通大学 一种基于局部性分析的混合地址映射方法
CN103649901A (zh) * 2013-07-26 2014-03-19 华为技术有限公司 数据发送方法、数据接收方法和存储设备
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
US8880788B1 (en) * 2014-01-08 2014-11-04 Netapp, Inc. Flash optimized, log-structured layer of a file system
CN103838521A (zh) * 2014-02-28 2014-06-04 华为技术有限公司 一种数据处理方法及装置
CN104536846A (zh) * 2014-12-17 2015-04-22 杭州华为数字技术有限公司 一种备份数据的方法及装置
CN105577776A (zh) * 2015-12-17 2016-05-11 上海爱数信息技术股份有限公司 基于数据仲裁者副本的分布式存储系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018094961A1 (zh) * 2016-11-28 2018-05-31 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN107967122A (zh) * 2017-11-22 2018-04-27 郑州云海信息技术有限公司 一种块设备的数据写入方法、装置及介质
CN112395245B (zh) * 2019-08-16 2023-04-28 上海寒武纪信息科技有限公司 处理器的访问装置、方法及计算机设备

Also Published As

Publication number Publication date
WO2018094961A1 (zh) 2018-05-31
CN106598768B (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN106598768A (zh) 一种处理写请求的方法、装置和数据中心
CN101854388B (zh) 一种集群存储中并行访问大量小文件的方法及系统
US8214612B1 (en) Ensuring consistency of replicated volumes
EP3435604A1 (en) Service processing method, device, and system
CN103530388A (zh) 一种云存储系统中提升性能的数据处理方法
CN108989432B (zh) 用户态的文件发送方法、文件接收方法和文件收发装置
CN111383031B (zh) 一种区块链中的智能合约执行方法、系统和电子设备
US10552089B2 (en) Data processing for managing local and distributed storage systems by scheduling information corresponding to data write requests
CN107357680A (zh) 数据处理设备和数据处理的方法
CN104252466A (zh) 流计算处理方法、设备和系统
US20230098190A1 (en) Data processing method, apparatus, device and medium based on distributed storage
CN102523258A (zh) 一种面向云操作系统的数据存储架构及其负载均衡方法
CN110196759B (zh) 分布式事务处理方法和装置、存储介质及电子装置
CN106445409A (zh) 一种分布式块存储的数据写入方法及装置
US20140075122A1 (en) Durable transactions with storage-class memory
CN102014153A (zh) 一种数据存储系统及其数据存储方法
CN110196818A (zh) 缓存数据的方法、缓存设备和存储系统
CN112181723A (zh) 一种金融灾备方法、装置、存储介质及电子设备
US11138178B2 (en) Separation of computation from storage in database for better elasticity
CN107193693A (zh) 一种基于存储系统的在线数据存储优化方法
US20170235781A1 (en) Method, server and computer program stored in computer readable medium for managing log data in database
CN109840051A (zh) 一种存储系统的数据存储方法及装置
CN106980475A (zh) 一种分布式集群系统
CN105446895A (zh) 一种存储系统非同源数据运行时io去重的方法及系统
CN107045426B (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