WO2017113351A1 - 写数据方法和装置以及系统 - Google Patents

写数据方法和装置以及系统 Download PDF

Info

Publication number
WO2017113351A1
WO2017113351A1 PCT/CN2015/100249 CN2015100249W WO2017113351A1 WO 2017113351 A1 WO2017113351 A1 WO 2017113351A1 CN 2015100249 W CN2015100249 W CN 2015100249W WO 2017113351 A1 WO2017113351 A1 WO 2017113351A1
Authority
WO
WIPO (PCT)
Prior art keywords
lock
data
written
write
storage array
Prior art date
Application number
PCT/CN2015/100249
Other languages
English (en)
French (fr)
Inventor
陈雷
黄克骥
Original Assignee
华为技术有限公司
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
Priority to EP19153690.3A priority Critical patent/EP3553647B1/en
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201811620334.3A priority patent/CN110134327B/zh
Priority to BR112017006639-4A priority patent/BR112017006639B1/pt
Priority to PCT/CN2015/100249 priority patent/WO2017113351A1/zh
Priority to CN201580004168.2A priority patent/CN107209733B/zh
Priority to AU2015410318A priority patent/AU2015410318C1/en
Priority to EP15905647.2A priority patent/EP3217248B1/en
Priority to KR1020177010863A priority patent/KR101903536B1/ko
Priority to CA2963365A priority patent/CA2963365C/en
Publication of WO2017113351A1 publication Critical patent/WO2017113351A1/zh
Priority to US15/977,379 priority patent/US10776285B2/en
Priority to US17/003,370 priority patent/US11366768B2/en
Priority to US17/806,659 priority patent/US20220309007A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

一种双活系统,如果写锁权限被第二存储阵列占用被占用,则第一存储阵列把待写数据和锁召回请求一起发给锁服务器;锁服务器发送携带待写数据的锁召回请求给第二锁服务器;第二锁服务器存储所述待写数据后,发送锁召回成功消息给锁服务器;锁服务器给予所述写锁权限给第一存储阵列;第一存储阵列获得所述写锁权限存储所述待写数据。通过该方法,用较少的流程实现了待写数据在两个存储阵列的存储。

Description

写数据方法和装置以及系统 技术领域
本发明涉及计算机领域,尤其是涉及存储技术。
背景技术
在存储区域网络(Storage Area Network,SAN)技术中,主机采用光纤通道(Fibre Channel,FC)和存储阵列连接,存储系统给主机提供数据存储服务。
为了提高数据的稳定性,存储系统可以采用双存储阵列。参见附图1,存储系统中存在存储阵列121和存储阵列123,两个存储阵列之间通过FC连接。当主机把数据写入存储阵列121,存储阵列121除了在本地存储器中对数据进行存储,还把数据发送给存储阵列123进行存储;同样的,存储阵列123收到的数据也发送给存储阵列121进行存储。这种存储方式下,两个存储阵列都可以对主机提供存储服务,并且两个存储阵列中存储的数据相同,称为双活(Active-Active)存储系统。在双活存储系统中,即使一个存储阵列出现了故障,主机也可以从另外一个存储阵列获得数据,因此提高了数据的安全性。
由于两个存储阵列写入相同的内容,因此他们的逻辑地址段是对应的。为了避免两个存储阵列的数据无法保持一致,在具体实现中,使用全局性的锁来保证写操作的互斥,在同一时间段,只有一个存储阵列可以申请到一个逻辑地址段的写锁,而只有对这个逻辑地址段请到写锁的存储阵列才能写入数据到两个存储阵列中。
假设存储阵列121从锁服务器122中申请到了某个逻辑地址段的写锁,那么存储阵列123将无法获得写锁,因此无法在自己的对应逻辑地址段上写入数据。只有写锁被锁服务器122从存储阵列121召回后,存储阵列123才能获得写锁。
在召回写锁的过程中,这两个存储阵列都需要和锁服务器122通信;召回 写锁后,两个存储阵列之间也需要通信,以便把存储阵列121获得的数据写入到存储阵列123。
而存储阵列121和存储阵列123之间往往相距甚远,例如相距100KM-300KM。因此,在图1的拓扑中,存储阵列121和锁服务器122位置相邻,他们之间的通信时间可以忽略;但是,锁服务器122和存储阵列123之间的通信以及存储阵列121和存储阵列123之间的通信都会占用大量时间,例如每次通信占用几毫秒的时间。如果把锁服务器122的位置靠近存储阵列123,虽然可以减小锁服务器122和存储阵列123之间的通信时间,但存储阵列121和锁服务器122之间的通信时间会相应增加。
因此,在长距离双活系统中,如何尽量缩短锁服务器、两个存储阵列这三者之间的通信总时间是急需解决的问题。
发明内容
本发明第一方面提供一种写数据方法,该方法应用在锁服务器中,所述锁服务器和第一存储阵列、第二存储阵列连接。第一存储阵列、第二存储阵列可以组成双活存储系统。该方法包括:接收第一存储阵列的加锁请求,所述加锁请求携带加锁命令、待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;如果检测到所述写地址的写锁权限已经被第二存储阵列占用,则所述锁服务器向所述第二存储阵列发送锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,用于指示所述第二存储阵列按照所述写地址存储待写数据;收到所述第二存储阵列发送的锁召回成功消息后,发送锁分配消息给所述第一存储阵列,其中,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入,其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。可以双活系统中,
该方法提升了在锁冲突的情况下,第一存储阵列往第二存储阵列写入数据的效率。
第一方面的第一种可能实现方式,所述第二存储阵列在收到所述锁召回请求后,按照所述写地址将所述待写数据存储在本地的存储器,然后发送所述锁召回成功消息;所述第一存储阵列在收到所述锁分配消息后,按照所述写地址将所述待写数据存储在本地的存储器。
该方法提升了在锁冲突的情况下,在第一存储阵列和第二存储阵列在相同位置写入相同数据的效率。
结合第一方面的第一种可能实现方式,可选的,所述第二存储阵列,按照所述写地址将所述待写数据存储在本地的存储器,具体包括:所述第二存储阵列,将另外的待写数据和所述待写数据合并,按照所述写地址将合并后的数据存储在本地的存储器。
该方法进一步提升了第二存储阵列写入数据的效率。
可选的,前述合并操作具体包括:如果所述另外的待写数据和所述待写数据有地址重合的部分,则对于地址重合的部分以所述待写数据进行存储。
该方法为进一步提升了第二存储阵列写入数据的效率提供了一种可行的措施。
第一方面的第二种可能实现方式,所述第一存储阵列以及所述第二存储阵列,均包括存储区域网络SAN存储控制器和与所述SAN存储控制器连接的存储器。
第一方面的第三种可能实现方式,所述第一存储阵列以及所述第二存储阵列均是对象存储阵列,对象存储阵列包括对象存储控制器和存储器。
第一方面的第四种可能实现方式,所述写地址是逻辑单元号LUN ID和LUN内的地址范围。
第二方面,基于上述第一方面以及地一方面的各种可能方式,本发明还提供一种对应锁管理装置,具有想对应的效果。
第三方面,提供一种详细系统,包括锁服务器、第一存储阵列以及第二存储阵列。
第一存储阵列,用于接收写数据请求,所述写数据请求携带待写数据以及 写地址,所述写地址描述用于存储所述待写数据的位置,然后发送加锁请求给所述锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址。所述锁服务器,用于接收所述加锁请求,如果检测到所述写地址的写锁权限已经被第二存储阵列占用,则向所述第二存储阵列发送锁召回请求,所述召回请求用于召回被所述第二存储阵列占用的写锁权限,其中,所述锁召回请求中进一步携带有待写数据以及所述写地址。所述第二存储阵列,用于在收到所述锁召回请求后,按照所述写地址将所述待写数据存储在本地的存储器,然后发送锁召回成功消息给所述锁服务器,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。所述锁服务器,还用于在收到所述锁召回成功消息后,发送锁分配消息给所述第一存储阵列,其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。所述第一存储阵列,还用于在收到所述锁分配消息后,按照所述写地址将所述待写数据存储在本地的存储器。
该方案提供了一种双活系统解决方案,提升了双活系统的效率。换句话说,在锁冲突的情况下,在第一存储阵列和第二存储阵列在相同位置写入相同数据的效率得到提升。
相应的,本发明还另外提供两种写数据方法,分别应用于第一存储阵列的存储控制器、第二存储阵列的存储块存储控制器中,可以执行第一方面以及第一方面各种可能实现方式中,第一存储阵列和第二存储阵列的操作,并具有相应效果。区别在于存储阵列拥有控制器,而对存储控制器而言,存储器可以不在存储控制器的本地。此外,针对这另外提供的两种写数据方法,本发明还提供与之对应的装置。
再者,本发明提供的由第一存储控制器执行的写数据方法以及由第二存储控制器执行的写数据方法可以结合在一起。有两种结合方式,一种是两个方法分别由写数据系统的两个存储控制器执行,以实现对同一个待写数据的在两个存储器的写入。第二种实现方式是,两个方法由同一个存储控制器执行。 这个存储控制器在一个待写数据的写入中,扮演第一存储阵列中的控制器的角色,在另外一个待写数据的写入中,扮演第二存储阵列中的控制器的角色。
相应地,本发明还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明提供的存储设备的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,存储设备的中央处理单元(Center Processing Unit,CPU)执行该计算机指令时,分别使存储设备执行本发明第各方面的各种可能实现方案。
附图说明
图1是本发明提供的一种锁管理系统实施例拓扑图。
图2是本发明提供的一种锁管理系统实施例拓扑图。
图3是本发明提供的一种写数据方法实施例结构图。
图4是本发明提供的一种锁管理装置实施例结构图。
图5是本发明提供的一种锁服务器实施例结构图。
图6是本发明提供的一种写数据装置实施例结构图。
图7是本发明提供的一种存储控制器实施例结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
以包括锁服务器、第一存储阵列、第二存储阵列的存储系统为例。现有技术中,第一存储阵列在收到主机的待写数据后,按照待写入的地址,向锁服务器申请锁权限(具体而言,可以是写锁权限)。如果写锁权限此时被第二存储阵列占用(也就是说存在锁冲突),那么锁服务器向第二存储阵列发送锁召回请求,以便在第二存储阵列写完数据后,及时释放占用的写锁权限。
下面的实施例对写数据的过程进行介绍。需要说明的是,对数据进行修改和也属于写数据的一种。
第二存储阵列写完当前数据后,通知锁服务器释放写锁权限,也就是说锁召回成功。锁服务器发送授权消息的方式授权写锁给第一存储阵列,获得写锁后,第一存储阵列在本地写入待写数据,并且通过第一存储控制器与第二存储阵列的存储控制器之间的传输通道,发送待写数据给第二存储阵列,供第二存储阵列写入。在第一存储阵列和第二存储阵列均完成待写数据的写入后,整个数据写入过程完成。
由此可见,如果把第一存储阵列和锁服务器和集成在一起,需要进行以下三次长距离的消息传输:锁服务器发送锁召回请求给第二存储阵列;第二存储阵列释放锁权限给锁服务器;第一存储阵列发送待写数据给第二存储阵列。
简单来说,本发明实施例可以把其中第三个消息,合并到另外两个消息中去。从而减少了数据传输的次数,节约了整个业务的总时间。此外,本发明实施例第二存储控制器可以将从第一存储阵列收到的待写数据与本地缓存中的数据合并后一起存储到非易失性存储介质中,相较于把这两个数据分别存储到非易失性存储介质中,节约了时间。
进一步的,在锁召回的响应流程中,以及锁服务器给第一存储阵列分配锁的流程汇总,同样可以把写数据的响应消息合并进去,从而产生节约时间的效果。锁召回成功消息除了描述第二存储阵列完成所述写锁权限的使用,运行被锁服务器召回,可以携带第二存储阵列完成所述写锁权限的使用的信息;锁服务器发送给第一存储阵列的锁分配消息,除了给所述第一存储阵列分配其请求的写锁权限外,还用于通知第一存储阵列所述第二存储阵列完成所述待写数据的写入。
可以理解,对于消息的合并,合并后的消息只要携带合并前的消息的信息即可。至于消息的命名,以及以何种形式传输相应的信息(例如可以使用报文头传输,也可以使用净荷传输),本申请不做限制。例如,如前所述,锁召回成功消息中携带了两个信息:信息一,所述写锁权允许被召回;信息二:第二存储阵列完成所述写锁权限的使用的信息。虽然该消息的命名是锁召回成功消息,但并不意味着信息一和信息二的主次关系,也不能由此限制二者 位于整个消息的哪个位置,也不意味着这是对使用何种字段把二者记录在消息中的限制。
参见附图2,是本发明存储系统20的架构图。如图所示,存储系统20包括第一存储阵列21和第二存储阵列23,主机21和第一存储阵列22的存储控制器211、第二存储阵列23的存储控制器231连接。第一存储阵列22中,还包括第一存储器222和第一存储控制器231连接。第二存储阵列3还包括第二存储器232,第二存储器232和第二存储控制器231连接。此外,锁服务器223和第二存储控制器231连接,例如通过光纤通道连接。可选的,主机21可以和第二存储阵列23的第二存储控制器231连接。第一存储阵列22中还可以进一步包括锁服务器223,和第一存储控制器221连接。
两个存储阵列的数据保持一致性,任一存储阵列写入数据时,另一存储阵列也要写入相同的数据,并且写入的位置相同。例如,所有写入第一存储阵列22的数据也会被写入第二存储阵列23,并且写入的地址相同,只有第一存储阵列22和第二存储阵列23都写入完成,整个写入过程才结束。
并且第一存储阵列和第二存储阵列对地址空间的划分和使用是一致的。也就说第一存储阵列和第二出存储阵列拥有相同的LUN数量,LUN ID也一一对应,LUN的大小也一一对应。同一个地址范围用于存储相同的数据。因此使用同样的地址可以从两个存储阵列获得相同的数据。任意存储阵列出现故障后,主机可以从另一存储阵列获得需要的数据。
本发明中的存储阵列可以是基于块(block)的存储阵列,例如SAN;还可以是基于对象(object)的存储阵列。为了方便描述,后文以SAN为例进行介绍。
第一存储阵列和第二存储阵列可以是SAN存储阵列。存储控制器相当于一台计算机,可以接收主机的数据,并发送给存储器进行存储。存储器可以是非易失性的存储介质,例如是硬盘或者固态硬盘,可以持久化的存储数据。
如图2所示,本发明实施例提供一种存储系统20,由第一存储阵列21、第二存储阵列3以及锁服务器23组成,其中锁服务器23可以集成在第存储 阵列21中。在存储系统中,第一存储阵列2和第二存储3之间可以不通信,依靠锁服务器23实现数据的写入,存储系统20中各装置的功能介绍如下。
第一存储阵列2,用于接收写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置,然后发送加锁请求给所述锁服务器23,所述加锁请求携带加锁命令、所述待写数据以及所述写地址。
所述锁服务器23,用于接收所述加锁请求,如果检测到所述写地址的写锁权限已经被第二存储阵列3占用,则向所述第二存储阵列3发送锁召回请求,所述召回请求用于召回被所述第二存储阵列3占用的写锁权限,其中,所述锁召回请求中进一步携带有待写数据以及所述写地址。
所述第二存储阵列3,用于在收到所述锁召回请求后,按照所述写地址将所述待写数据存储在本地的存储器,然后发送锁召回成功消息给所述锁服务器23,所述锁召回成功消息用于描述第二存储阵列3完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。
所述锁服务器23,还用于在收到所述锁召回成功消息后,发送锁分配消息给所述第一存储阵列2,其中,所述锁分配消息用于给所述第一存储阵列2分配其请求的写锁权限,以及还用于描述所述第二存储阵列3完成所述待写数据的写入。所述第一存储阵列2,还用于在收到所述锁分配消息后,按照所述写地址将所述待写数据存储在本地的存储器。
下面介绍使用该架构进行数据存储的方法,参见图3。
步骤S31,第一存储控制器接收来自主机的写请求。写请求中携带有待写数据以及写地址。
写请求指示携带的待写数据需要进行存储。待写数据是需要存储到第一存储器和第二存储器的数据。写地址是存储阵列中用于存储待写数据的地址。写地址可以包括LUN ID以及地址范围(address range)两部分。LUN ID用于标记是哪一个LUN,而地址范围进一步标记LUN中的具体位置。地址范围例如是一段连续的地址段,地址范围可以有两种描述方式,一种是起始地址 和结束地址,例如(0X00001111,0X00011111);另外一种是起始地址和待写数据的长度。
本发明实施例中,以写地址空间作为锁服务器进行权限管理的最小粒度。在其他实施例中,也可以用其他单位作为权限管理的粒度,本实施例不再做详细解释。
步骤S32,第一存储控制器接收到写请求后,向锁服务器发出加锁请求,请求获得对写地址所描述的存储空间的写锁权限。所述加锁请求进一步携带所述待写数据以及所述写地址,所述写地址描述用于存储所述待写数据的位置。加锁请求中还可以携带锁权限信息,用于描述第一存储控制器希望获得的权限,本实施例中锁权限信息描述的是写锁权限。
本实施例中,锁服务器用于管理锁权限,例如执行锁权限的分配、锁冲突检测,以及锁召回等。锁服务器可以是一个独立的服务器;也可以是像图2一样,是位于存储阵列中,和存储控制器通信的硬件或者软件;还可以是集成在存储控制器中的软件或者硬件。和现有技术不同的是,本发明实施例中的锁服务器还用于待写数据的接受和发送,以及相应响应消息的接受和发送。
此外,锁服务器还可以是分布式的架构,也就是由多个锁服务器共同对所有的锁权限进行管理,每个锁服务器管理一部分锁权限。例如,每个存储阵列中拥有一个锁服务器,每个锁服务器拥有一部分地址范围的管理权限。在分布式锁管理的场景下,本发明实施例所说的锁服务器是指拥有所申请地址范围的管理权限的锁服务器。
示例的,如果写请求是对存储阵列中的原数据进行部分更新,那么数据加锁请求可以表示为Lock(LUN ID,range,right,DeltaData)。其中,Lock表示这是一个加锁请求,LUN ID用来标识准备加锁的地址所在的LUN;range用于标识在LUN中用于加锁的地址范围;right描述希望获得的权限(例如可以是写权限);德尔塔数据(DeltaData)是本次申请写权限的待写数据,具体而言,是本次写请求需要更新到存储阵列的数据。加锁请求比写请求多了right这个信息,也就是锁权限信息。
DeltaData可以携带多个数据段,按照包含的数据段的数量,可以把DeltaData划分成多个DeltaItem。每个DeltaItem包括:偏移量(offset)、长度(length)以及内容(content)。其中Content是一段连续的待写数据段,所有content共同组成待写数据;Offset表示Content在Deltadata中的起始位置;长度是DeltaItem中的长度。
可选的,如果待写数据是连续的,加锁请求可以表示为Lock(LUNID,range,right,data)。数据data是一段连续的数据,因此data不用划分成DeltaItem。使用这种加锁请求有两种可能,一种可能是整个待写数据都是新的,在第一存储阵列中没有存储过;第二种可能是部分数据(相当于Dealtadata)是新的,其余部分的数据从存储阵列中读出来,从而组成一个地址连续的数据,地址连续的数据的长度和range描述的长度相同。
步骤S33,锁服务器接收到第一存储控制器的加锁请求后,检查所述写地址是否已经被其他存储控制器加锁。
如果没有,则给第一存储控制器授权,也就是按照加锁请求所请求的地址范围,分配第一存储控制器独占写数据的权限。接着,第一存储控制器在第一存储器写入待写数据;以及把待写数据发送给第二存储控制器,由第二存储控制器存储到第二存储器中。在第一存储阵列在本地写入待写数据成功,以及收到第二存储阵列的待写数据写入成功的响应消息后,整个写入过程完成,结束本流程。
如果有,假设拥有锁权限的是第二存储阵列,则锁服务器向第二存储控制器发送锁召回请求。所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,用于指示所述第二存储阵列按照所述写地址存储待写数据。
在本实施例的锁召回请求中,携带有加锁请求中的写地址和待写数据,是一种增强型的锁召回请求。因此召回请求中实际上携带了两个信息,一个是召回写锁权限的请求信息,还有一个是写地址和待写数据。传统的召回请求中,只携带了召回写锁权限的请求这一信息。
步骤S34,第二存储控制器接收到锁召回请求后,对锁召回请求进行处理。
对锁召回请求的处理包括两部分,第一部分是把锁召回请求中携带的待写数据写入本地的第二存储控制器;第二部分是返回锁召回成功消息以及待写数据写入成功的消息给锁服务器。锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,通知所服务器第二存储阵列不再需要使用写锁权限,写锁权限可以被锁服务器收回。
对于第一部分,第二存储控制器按照写地址把待写数据写入第二存储器。
如果在第二存储器中,除了所述待写数据之外,有其他数据需要写入第二存储器,那么这两个数据可以分别写入,先写入另外的数据,再写入所述待写数据。
由步骤S33可知,第一存储阵列和第二存储阵列对同一个写地址存储写入权限的冲突。因此待写数据和其他数据位于同一个地址范围。因此本申请它们可以进行合并,合并后的数据再写入第二存储器,这样可以进一步提升效率。由于待写数据写入存储系统的时间点,比另外的待写数据写入存储系统的时间点跟更晚,因此前者是更加新的数据。因此,在合并时,如果所述另外的待写数据和所述待写数据有地址重合的部分,则对于地址重合的部分,以属于所述待写数据的内容进行存储;换句话说,对于地址重合的部分,放弃属于另外的待写数据的内容。
对于第二部分,在第二存储控制器完成上述写入操作后,生成锁召回成功消息以及待写数据写入成功的消息,并把这两个消息发送给锁服务器。为了节约流程,这两个消息可以合并在一起进行发送,也就是在锁召回成功的信息中携带待写数据写入成功的信息。新的锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入。
对于存储控制器而言,写数据成功有两种判断方式,第一种是,存储控制器把所有需要写入的数据发送完毕;第二种是,存储器把收到的数据存储完毕,存储控制器收到存储器存储完毕的响应消息。
步骤S35,锁服务器把收到锁召回成功消息转发给第一存储控制器。或者是发送第二存储阵列写完成消息给第一存储控制器,以及发送分配写锁权限的消息给第一存储阵列,分配写锁权限的消息用于给第一存储控制器分配写地址的写锁权限。这两个消息可以合并为一个,也就是在分配写锁权限消息中,携带第二存储阵列写完成消息,合并后的新锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。或者是发送写数据指令给所述第一存储控制器。
步骤S36,第一存储控制器收到步骤S35中锁服务器发送的消息后,按照由LUN ID和range确定的写地址,把待写数据写入第一存储器。然后第一存储控制器向主机发送写入完成的响应消息,以通知主机整个写入待写数据的过程结束,此时,在第一存储阵列的存储器和第二存储阵列的存储器中,都存储了所述待写数据,并且存储位置相同。
需要说明的是,附图2以及上述流程中,锁服务器位于第一存储阵列,在召回请求中额外携带了写地址和待写数据,相当于两个信息一次发送,减少了锁服务器和第二存储阵列的通信次数,相应的响应消息也可以进行了合并;因此节约了时间。此外,也减少了两个存储控制器和锁服务器的通信次数。
由于第一存储阵列和锁服务器之间的消息和响应消息也存在合并。因此,在其他实施例中,如果锁服务器位于两个存储阵列之间,或者锁服务器位于第二存储阵列之间,同样可以节约时间。
参见附图4,本发明实施例还提供一种锁管理装置4,锁管理装置4可以执行上述方法中提及的锁服务器的步骤,可以是锁服务器或者运行在锁服务器中的软件。锁管理装置4和第一存储阵列、第二存储阵列通信。锁管理装置4包括:收发模块41,用于和所述第一存储阵列,第二存储阵列通信;以及锁管理模块42,和所述收发模块41通信,具体用于:在通过所述收发模块41接收到第一存储阵列的加锁请求后,生成锁召回请求并通过所述收发模块41向所述第二存储阵列发送所述锁召回请求,以及在通过所述收发模块41从所述第二存储阵列接收到锁召回成功消息后,生成锁分配消息并通过所 述收发模块41发送所述锁分配消息给所述第一存储阵列。
所述加锁请求携带加锁命令、待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;所述锁召回请求用于召回被所述第二存储阵列占用的写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,所述锁召回请求还用于指示所述第二存储阵列按照所述写地址存储待写数据;所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入;所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。
所述写地址是逻辑单元号LUN ID和LUN内的地址范围。
由于锁管理装置4以及其内部模块的功能,在方法实施例中已经有详细介绍,此处不再详述。
参见图5,本发明另一实施例提供一种锁服务器。锁服务器5包括接口51和处理器52,所述接口51和第一存储阵列、第二存储阵列连接。所服务器5可以执行上述方法中提及的锁服务器的功能。
所述处理器52,和所述接口51通信,用于:在通过所述接口51接收到第一存储阵列的加锁请求后,生成第二存储阵列发送锁召回请求并通过所述接口51向所述第二存储阵列发送锁召回请求,以及在通过所述接口51从第二存储阵列接收锁召回成功消息后,生成锁分配消息并通过所述接口51发送所述锁分配消息给所述第一存储阵列。
参见图6,本发明实施例提供一种写数据装置,是存储控制器或者运行在控制器中的软件,用于前述方法实施例中第一存储阵列中的控制器功能。写数据装置6和存储器、锁服务器通信,写数据装置6包括收发模块61以及处理模块62。
收发模块61,用于接收主机的写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置。
处理模块62,和所述收发模块61通信,用于在所述收发模块61收到所 述写数据请求后,生成加锁请求并通过所述收发模块61发送给锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址。
所述处理模块62还用于,在通过所述收发模块61收到所述锁服务器发送的锁分配消息后,指令所述存储器按照所述写地址存储所述待写数据其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述另一存储控制器按照所述写地址完成所述待写数据的写入。
所述处理模块62还用于,在写入所述存储器完成后,通过所述收发模块61向所述主机发送写数据完成消息。
由于具有前述方法实施例中第一存储阵列中的控制器功能,并可以执行相应步骤,因此可以参考前述方法实施例。此处不再详述。
参见图7,本发明还提供一种存储控制器实施例,和存储器的组合,具有前述方法实施例中第一存储阵列中控制器的功能,并可执行相应步骤。其功能和可以执行的操作参见方法实施例。存储控制器7可以和存储器、锁服务器连接。所述存储控制器7包括接口71和处理器72。
接口71,用于接收主机的写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置。
处理器72,和所述收发模块通信,用于在通过所述收发模块收到所述写数据请求后,生成加锁请求并通过所述接口71发送给锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址。
处理器72还用于,在通过所述接口71收到所述锁服务器发送的锁分配消息后,指令所述存储器按照所述写地址存储所述待写数据其中,所述锁分配消息用于给所述第一存储控制器分配其请求的写锁权限,以及还用于描述另一存储控制器按照所述写地址完成所述待写数据的写入。
处理器72还用于,在写入所述存储器完成后,通过所述接口71向所述主机发送写数据完成消息。
本发明实施例提供另外一种写数据装置,其结构和前一写数据装置的结构相同,因此可以参考附图6。数据装置6是存储控制器或者运行在控制器中 的软件,用于前述方法实施例中第二存储阵列中的控制器功能。实际上,因为在不同的业务中,同一个写数据装置可以既可以作为第一存储控制器的功能,也可以实现第二存储控制器的功能,因此本实施例的写数据装置和前面实施例提到的写数据装置可以是合并形成同一个写数据装置。
本实施例中,写数据装置6占用写锁权限,所述写数据装置和存储器、锁服务器通信,写数据装置6包括:
收发模块61,用于接收锁服务器发送的锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址。处理模块62,用于指令所述存储器按照所述写地址存储所述待写数据,以及生成锁召回成功消息,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。所述收发模块61,还用于发送所述锁召回成功消息给所述锁服务器。
本发明还提供一种存储控制器实施例,其结构和前一存储控制器实施例的结构相同,因此可以同样可以参考附图7。
本实施例中的存储控制器7,和存储器的组合,相当于前述方法实施例中第二存储阵列中的存储控制器,其功能和可以执行的操作参见方法实施例。
存储控制器7占用写锁权限,所述存储控制器和存储器、锁服务器连接。
接口71,用于接收锁服务器发送的锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址。处理器72,和所述接口71连接,用于指令所述存储器按照所述写地址存储所述待写数据,以及生成锁召回成功消息,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。所述接口71,还用于发送锁召回成功消息给所述锁服务器。
锁服务器由处理器和接口组成,接口和第一存储控制器、第二存储控制器连接。上述锁服务器锁执行的操作,具体处理器执行。还可以包括内存,锁 服务器通过由处理器运行内存中的程序,执行上述锁服务器的操作。
本发明上述各实施例中,存储阵列有两种理解。第一种理解是存储控制器和存储器的组合,本地的存储器是由存储控制器管理的存储器;一种是存储控制器而不包括存储器,本地的存储器是由存储控制器管理的存储器。
本发明各实施例还可以用于数据的删除,区别在于不需要发送待写数据,提供删除地址即可。
本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (19)

  1. 一种写数据方法,应用在锁服务器中,其特征在于,所述锁服务器和第一存储阵列、第二存储阵列连接,该方法包括:
    接收第一存储阵列的加锁请求,所述加锁请求携带加锁命令、待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;
    如果检测到所述写地址的写锁权限已经被第二存储阵列占用,则所述锁服务器向所述第二存储阵列发送锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,用于指示所述第二存储阵列按照所述写地址存储待写数据;
    收到所述第二存储阵列发送的锁召回成功消息后,发送锁分配消息给所述第一存储阵列,其中,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入,其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。
  2. 根据权利要求1所述的写数据方法,该方法进一步包括:
    所述第二存储阵列在收到所述锁召回请求后,按照所述写地址将所述待写数据存储在本地的存储器,然后发送所述锁召回成功消息;
    所述第一存储阵列在收到所述锁分配消息后,按照所述写地址将所述待写数据存储在本地的存储器。
  3. 根据权利要求2所述的写数据方法,所述第二存储阵列,按照所述写地址将所述待写数据存储在本地的存储器,具体包括:
    所述第二存储阵列,将另外的待写数据和所述待写数据合并,按照所述写地址将合并后的数据存储在本地的存储器。
  4. 根据权利要求3所述的写数据方法,其中,所述合并具体包括:
    如果所述另外的待写数据和所述待写数据有地址重合的部分,则对于地址重合的部分以所述待写数据进行存储。
  5. 根据权利要求1所述的写数据方法,其中:
    所述第一存储阵列以及所述第二存储阵列,均包括存储区域网络SAN存储控制器和与所述SAN存储控制器连接的存储器。
  6. 根据权利要求1所述的写数据方法,其中:
    所述写地址是逻辑单元号LUN ID和LUN内的地址范围。
  7. 一种锁管理装置,其特征在于,锁管理装置和第一存储阵列、第二存储阵列通信,该装置包括:
    收发模块,用于和所述第一存储阵列,第二存储阵列通信;
    锁管理模块,和所述收发模块通信,具体用于:在通过所述收发模块接收到第一存储阵列的加锁请求后,生成锁召回请求并通过所述收发模块向所述第二存储阵列发送所述锁召回请求,以及在通过所述收发模块从所述第二存储阵列接收到锁召回成功消息后,生成锁分配消息并通过所述收发模块发送所述锁分配消息给所述第一存储阵列,其中:
    所述加锁请求携带加锁命令、待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;
    所述锁召回请求用于召回被所述第二存储阵列占用的写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,所述锁召回请求还用于指示所述第二存储阵列按照所述写地址存储待写数据;
    所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入;
    所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。
  8. 根据权利要求7所述的锁管理装置,其中:
    所述写地址是逻辑单元号LUN ID和LUN内的地址范围。
  9. 根据权利要求7或8所述的锁管理装置,其中:
    所述锁管理装置和所述第一存储阵列集成在一起。
  10. 一种存储系统,其特征在于,包括:
    第一存储阵列,用于接收写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置,然后发送加锁请求给所述锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址;
    所述锁服务器,用于接收所述加锁请求,如果检测到所述写地址的写锁权限已经被第二存储阵列占用,则向所述第二存储阵列发送锁召回请求,所述召回请求用于召回被所述第二存储阵列占用的写锁权限,其中,所述锁召回请求中进一步携带有待写数据以及所述写地址;
    所述第二存储阵列,用于在收到所述锁召回请求后,按照所述写地址将所述待写数据存储在本地的存储器,然后发送锁召回成功消息给所述锁服务器,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息;
    所述锁服务器,还用于在收到所述锁召回成功消息后,发送锁分配消息给所述第一存储阵列,其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入;
    所述第一存储阵列,还用于在收到所述锁分配消息后,按照所述写地址将所述待写数据存储在本地的存储器。
  11. 一种锁服务器,锁服务器包括处理器和接口,所述接口和第一存储阵列、第二存储阵列连接,其特征在于:
    所述处理器,和所述接口通信,用于:在通过所述接口接收到第一存储阵列的加锁请求后,生成第二存储阵列发送锁召回请求并通过所述接口向所述第二存储阵列发送锁召回请求,以及在通过所述接口从第二存储阵列接收锁召回成功消息后,生成锁分配消息并通过所述接口发送所述锁分配消息给所述第一存储阵列,其中:
    所述加锁请求携带加锁命令、待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;
    所述锁召回请求用于召回被所述第二存储阵列占用的写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址,所述锁召回请求还用于指示所述第二存储阵列按照所述写地址存储待写数据;
    所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,以及还用于描述所述第二存储阵列完成所述待写数据的写入;
    所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述所述第二存储阵列完成所述待写数据的写入。
  12. 一种写数据方法,应用于存储控制器,所述存储控制器和存储器、锁服务器连接,其特征在于,该方法包括:
    接收主机的写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置,然后发送加锁请求给所述锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址;
    收到所述锁服务器发送的锁分配消息后,指令所述存储器按照所述写地址存储所述待写数据,其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描述另一存储控制器按照所述写地址完成所述待写数据的写入;
    写入所述存储器完成后,向所述主机发送写数据完成消息。
  13. 一种写数据装置,写数据装置和存储器、锁服务器通信,其特征在于,该写数据装置包括:
    收发模块,用于接收主机的写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;
    处理模块,和所述收发模块通信,用于在所述收发模块收到所述写数据请求后,生成加锁请求并通过所述收发模块发送给锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址;
    所述处理模块还用于,在通过所述收发模块收到所述锁服务器发送的锁分配消息后,指令所述存储器按照所述写地址存储所述待写数据其中,所述锁分配消息用于给所述第一存储阵列分配其请求的写锁权限,以及还用于描 述另一存储控制器按照所述写地址完成所述待写数据的写入;
    所述处理模块还用于,在写入所述存储器完成后,通过所述收发模块向所述主机发送写数据完成消息。
  14. 一种存储控制器,存储控制器和存储器、锁服务器连接,所述存储控制器包括:
    接口,用于接收主机的写数据请求,所述写数据请求携带待写数据以及写地址,所述写地址描述用于存储所述待写数据的位置;
    处理器,和所述收发模块通信,用于在通过所述收发模块收到所述写数据请求后,生成加锁请求并通过所述接口发送给锁服务器,所述加锁请求携带加锁命令、所述待写数据以及所述写地址;
    还用于,在通过所述接口收到所述锁服务器发送的锁分配消息后,指令所述存储器按照所述写地址存储所述待写数据其中,所述锁分配消息用于给所述第一存储控制器分配其请求的写锁权限,以及还用于描述另一存储控制器按照所述写地址完成所述待写数据的写入;
    还用于,在写入所述存储器完成后,通过所述接口向所述主机发送写数据完成消息。
  15. 一种写数据方法,应用于存储控制器,所述存储控制器占用写锁权限,所述存储控制器和存储器、锁服务器连接,其特征在于,该方法包括:
    接收锁服务器发送的锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址;
    指令所述存储器按照所述写地址存储所述待写数据;
    发送锁召回成功消息给所述锁服务器,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。
  16. 根据权利要求15所述的写数据方法,所述存储控制器,指令所述存储器按照所述写地址存储所述待写数据,具体包括:
    将所述存储控制器中另外的待写数据和所述待写数据合并,指令所述存 储器按照所述写地址存储合并后的数据。
  17. 一种写数据装置,写数据装置占用写锁权限,所述写数据装置和存储器、锁服务器通信,其特征在于,该写数据装置包括:
    收发模块,用于接收锁服务器发送的锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址;
    处理模块,用于指令所述存储器按照所述写地址存储所述待写数据,以及生成锁召回成功消息,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。
    所述收发模块,还用于发送所述锁召回成功消息给所述锁服务器。
  18. 一种存储控制器,存储控制器占用写锁权限,所述存储控制器和存储器、锁服务器连接,其特征在于,该存储控制器包括:
    接口,用于接收锁服务器发送的锁召回请求,所述锁召回请求用于召回所述写锁权限,其中,所述锁召回请求进一步携带有待写数据以及所述写地址;
    处理器,和所述接口连接,用于指令所述存储器按照所述写地址存储所述待写数据,以及生成锁召回成功消息,所述锁召回成功消息用于描述第二存储阵列完成所述写锁权限的使用,进一步的,所述锁召回成功的信息中携带待写数据写入成功的信息。
    所述接口,还用于发送锁召回成功消息给所述锁服务器。
  19. 根据权利要求18所述的存储控制器,所述存储控制器用于指令所述存储器按照所述写地址存储所述待写数据,具体包括:
    所述存储控制器,用于将所述存储控制器中另外的待写数据和所述待写数据合并,以及指令所述存储器按照所述写地址存储合并后的数据。
PCT/CN2015/100249 2015-12-31 2015-12-31 写数据方法和装置以及系统 WO2017113351A1 (zh)

Priority Applications (12)

Application Number Priority Date Filing Date Title
AU2015410318A AU2015410318C1 (en) 2015-12-31 2015-12-31 Data write method, apparatus, and system
CN201811620334.3A CN110134327B (zh) 2015-12-31 2015-12-31 写数据方法和装置以及系统
BR112017006639-4A BR112017006639B1 (pt) 2015-12-31 2015-12-31 Método, aparelho e sistema de gravação de dados
PCT/CN2015/100249 WO2017113351A1 (zh) 2015-12-31 2015-12-31 写数据方法和装置以及系统
CN201580004168.2A CN107209733B (zh) 2015-12-31 2015-12-31 写数据方法和装置以及系统
EP19153690.3A EP3553647B1 (en) 2015-12-31 2015-12-31 Data write method, apparatus, and system
EP15905647.2A EP3217248B1 (en) 2015-12-31 2015-12-31 Method and system for writing data
KR1020177010863A KR101903536B1 (ko) 2015-12-31 2015-12-31 데이터 기입 방법, 장치, 및 시스템
CA2963365A CA2963365C (en) 2015-12-31 2015-12-31 Data write method, apparatus, and system
US15/977,379 US10776285B2 (en) 2015-12-31 2018-05-11 Data write method, apparatus, and system
US17/003,370 US11366768B2 (en) 2015-12-31 2020-08-26 Data write method, apparatus, and system
US17/806,659 US20220309007A1 (en) 2015-12-31 2022-06-13 Data Write Method, Apparatus, and System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/100249 WO2017113351A1 (zh) 2015-12-31 2015-12-31 写数据方法和装置以及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/977,379 Continuation US10776285B2 (en) 2015-12-31 2018-05-11 Data write method, apparatus, and system

Publications (1)

Publication Number Publication Date
WO2017113351A1 true WO2017113351A1 (zh) 2017-07-06

Family

ID=59219092

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/100249 WO2017113351A1 (zh) 2015-12-31 2015-12-31 写数据方法和装置以及系统

Country Status (8)

Country Link
US (3) US10776285B2 (zh)
EP (2) EP3217248B1 (zh)
KR (1) KR101903536B1 (zh)
CN (2) CN110134327B (zh)
AU (1) AU2015410318C1 (zh)
BR (1) BR112017006639B1 (zh)
CA (1) CA2963365C (zh)
WO (1) WO2017113351A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958984A (zh) * 2018-08-13 2018-12-07 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102529710B1 (ko) * 2018-02-19 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110968563B (zh) * 2018-09-29 2023-11-17 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
KR102188052B1 (ko) * 2018-11-15 2020-12-07 오스템임플란트 주식회사 정보 잠금 방법 및 이를 수행하는 치과용 업무 통합관리 장치
CN109815227B (zh) * 2018-12-13 2024-04-16 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
CN109739443B (zh) * 2019-01-08 2022-02-18 郑州云海信息技术有限公司 一种ssd混合读写的方法、装置、设备及存储介质
CN110321357B (zh) * 2019-06-14 2021-06-29 北京奇艺世纪科技有限公司 一种读写控制方法、装置及服务器
US20210073050A1 (en) * 2019-09-11 2021-03-11 International Business Machines Corporation Re-dispatching tasks on associated processors to reduce lock contention
CN110888603B (zh) * 2019-11-27 2024-01-16 深圳前海环融联易信息科技服务有限公司 高并发数据写入方法、装置、计算机设备及存储介质
CN111405015B (zh) * 2020-03-09 2022-09-30 中国建设银行股份有限公司 一种数据处理方法、装置、设备及存储介质
US11334293B1 (en) * 2021-01-28 2022-05-17 EMC IP Holding Company LLC Facilitating the implementation of cluster counters on lock value blocks in distributed file systems
CN113703674B (zh) * 2021-07-30 2023-08-11 苏州浪潮智能科技有限公司 一种存储系统的写数据方法及相关装置
CN113885806A (zh) * 2021-10-21 2022-01-04 郑州云海信息技术有限公司 一种盘阵的写入控制方法、装置以及存储介质
CN115951844B (zh) * 2023-03-13 2023-06-06 浪潮电子信息产业股份有限公司 分布式文件系统的文件锁管理方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123068A1 (en) * 2002-12-19 2004-06-24 Akiyoshi Hashimoto Computer systems, disk systems, and method for controlling disk cache
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
CN104954392A (zh) * 2014-03-24 2015-09-30 中国移动通信集团河北有限公司 一种云盘及其实现方法、装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457098B1 (en) * 1998-12-23 2002-09-24 Lsi Logic Corporation Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6499058B1 (en) 1999-09-09 2002-12-24 Motokazu Hozumi File shared apparatus and its method file processing apparatus and its method recording medium in which file shared program is recorded and recording medium in which file processing program is recorded
US20050155011A1 (en) * 2004-01-12 2005-07-14 Stephan Heik Method and system for restricting access in a distributed job environment
US8543781B2 (en) * 2004-02-06 2013-09-24 Vmware, Inc. Hybrid locking using network and on-disk based schemes
US7096325B2 (en) * 2004-03-29 2006-08-22 Hitachi, Ltd. Method and apparatus for multistage volume locking
US7751341B2 (en) * 2004-10-05 2010-07-06 Cisco Technology, Inc. Message distribution across fibre channel fabrics
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
KR100825721B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
US9626859B2 (en) * 2012-04-11 2017-04-18 Digilock Asia Limited Electronic locking systems, methods, and apparatus
US9176902B1 (en) * 2012-06-27 2015-11-03 Emc Corporation Data migration techniques
US10318171B1 (en) * 2012-06-29 2019-06-11 EMC IP Holding Company LLC Accessing fast memory in a data storage array
AU2012398211B2 (en) * 2012-12-28 2016-12-08 Huawei Technologies Co., Ltd. Caching method for distributed storage system, a lock server node, and a lock client node
JP5620614B1 (ja) * 2014-04-21 2014-11-05 株式会社日立製作所 ストレージシステム
US9805056B2 (en) * 2014-06-24 2017-10-31 Panzura, Inc. Synchronizing file updates between two cloud controllers of a distributed filesystem
US9600949B2 (en) * 2014-07-30 2017-03-21 Master Lock Company Llc Wireless key management for authentication
CN104536834A (zh) * 2014-11-26 2015-04-22 华为技术有限公司 一种授权锁权限的方法和分布式锁管理器
CN104636088B (zh) * 2015-02-17 2018-04-10 华为技术有限公司 一种将数据写入数据服务器的方法及存储系统
US9959062B1 (en) * 2016-02-05 2018-05-01 Datadirect Networks, Inc. Low latency and reduced overhead data storage system and method for sharing multiple storage devices by high performance computing architectures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123068A1 (en) * 2002-12-19 2004-06-24 Akiyoshi Hashimoto Computer systems, disk systems, and method for controlling disk cache
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法
CN103827843A (zh) * 2013-11-28 2014-05-28 华为技术有限公司 一种写数据方法、装置和系统
CN104954392A (zh) * 2014-03-24 2015-09-30 中国移动通信集团河北有限公司 一种云盘及其实现方法、装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958984A (zh) * 2018-08-13 2018-12-07 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法

Also Published As

Publication number Publication date
US20200394142A1 (en) 2020-12-17
EP3217248A4 (en) 2017-12-27
BR112017006639B1 (pt) 2022-12-13
CN110134327A (zh) 2019-08-16
EP3553647B1 (en) 2023-10-25
EP3217248A1 (en) 2017-09-13
EP3217248B1 (en) 2019-04-03
CA2963365A1 (en) 2017-06-30
CN107209733B (zh) 2019-01-18
US10776285B2 (en) 2020-09-15
AU2015410318B2 (en) 2018-11-08
US11366768B2 (en) 2022-06-21
US20220309007A1 (en) 2022-09-29
AU2015410318C1 (en) 2019-01-31
KR20170095184A (ko) 2017-08-22
CN107209733A (zh) 2017-09-26
BR112017006639A2 (pt) 2017-12-19
AU2015410318A1 (en) 2017-07-20
US20180260340A1 (en) 2018-09-13
EP3553647A1 (en) 2019-10-16
KR101903536B1 (ko) 2018-10-02
CN110134327B (zh) 2022-03-29
CA2963365C (en) 2019-02-05

Similar Documents

Publication Publication Date Title
WO2017113351A1 (zh) 写数据方法和装置以及系统
CN106133676B (zh) 存储系统
KR102209452B1 (ko) 데이터 전송 방법, 장치 및 시스템
US20190312877A1 (en) Block chain mining method, device, and node apparatus
US11734137B2 (en) System, and control method and program for input/output requests for storage systems
US20130282887A1 (en) Computer system and virtual server migration control method for computer system
WO2017114262A1 (zh) 一种管理分布式存储系统的方法及分布式存储系统
JP5273737B2 (ja) ストレージ管理システム、ストレージ管理方法およびプログラム
CN107466456B (zh) 加锁请求的处理方法及服务器
WO2015085826A1 (zh) 一种访问共享资源的方法及装置
CN104252375A (zh) 用于位于不同主机的多个虚拟机共享USB Key的方法和系统
US8600999B2 (en) System and method for efficient resource management
US8782292B2 (en) Methods and structure for performing a rebuild of a logical volume with a serial attached SCSI expander
US20140041053A1 (en) Data block access control
KR101059058B1 (ko) 위치 기반 서비스 접근 제어 장치, 방법 및 시스템
US7240167B2 (en) Storage apparatus
WO2016172862A1 (zh) 一种内存管理方法、设备和系统
WO2015118630A1 (ja) ストレージシステムおよびストレージシステム用キャッシュ制御装置
US20120271925A1 (en) Virtual Address for Virtual Port
WO2016127807A1 (zh) 多副本写入存储设备的方法及存储设备
US10678701B2 (en) Direct read control in a data storage system
CN105591749A (zh) 一种授权处理方法、装置以及系统
US7979634B2 (en) Apparatus and method for preventing double allocation, and medium for recording its allocation program
WO2015097991A1 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2963365

Country of ref document: CA

REEP Request for entry into the european phase

Ref document number: 2015905647

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20177010863

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2015410318

Country of ref document: AU

Date of ref document: 20151231

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112017006639

Country of ref document: BR

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15905647

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 112017006639

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20170330

NENP Non-entry into the national phase

Ref country code: DE