元数据服务器失效接替中精确一次执行语义的方法及系统技术方案

技术编号:12219421 阅读:111 留言:0更新日期:2015-10-21 22:54
本发明专利技术涉及元数据服务器失效接替技术及非幂元数据等操作等领域,特别涉及元数据服务器失效接替中精确一次执行语义的方法及系统,包括:在客户端正常访问元数据服务器时,所述元数据服务器在会话session结构中为每个操作分配slotID、sequenceID以及存放响应结果的缓存空间,并将所述session结构持久写入到元数据磁盘上,并将所述slotID和所述sequenceID复制给备份服务器,所述备份服务器收到后,将所述slotID和所述sequenceID放入所述备份服务器缓存中;所述元数据服务器宕机之后,所述备份服务器从磁盘中读取所述session结构的信息,查找已经持久到磁盘上但并未给客户端发送回复结果的非幂等操作,根据所述session结构中的slot table重新构造所述回复结果并发送给客户端。

【技术实现步骤摘要】

本专利技术涉及元数据服务器失效接替技术及非幂等操作等领域,特别涉及元数据服务器失效接替中精确一次执行语义的方法及系统
技术介绍
在大规模机群文件系统中,元数据与数据服务分离结构已经成为了一种趋势,一方面,数据访问不必通过元数据服务器,而是采用带外方式直接访问存储设备,从而获取较高的数据访问性能;另一方面,元数据服务器专门提供元数据服务,卸载了数据访问负载,从而单台元数据服务器可以支持更高的客户端访问性能,管理更多的存储设备,支持更大的系统规模扩展,然而,随着系统规模的不断扩大,单台元数据服务器逐渐成为制约系统扩展的瓶颈,为了进一步提升机群文件系统的扩展能力,目前通常采用多个元数据服务器构成元数据服务器机群,以分散元数据负载,支持通过增加元数据服务器数量达到集群文件系统的横向扩展。为了保证元数据集群的高可用性,通常为每一台元数据服务器配备一台备份服务器,当元数据服务器发生宕机,将宕机服务器的元数据服务迀移至备份服务器,在备份服务器缓存中恢复出宕机服务器元数据信息,接管宕机服务器的工作,实现高可用。元数据操作,分为非幂等和幂等操作两类。非幂等操作的特点是两次执行就会两次改变系统状态,系统就会处于不一致的状态,因此在失效接替过程中,我们需要精确恢复出非幂等操作在宕机事故发生时所执行到的进度,避免非幂等操作的多次执行,使客户端感受不到宕机事件的发生,实现无缝接替,保证非幂等操作的精确一次执行语义;而幂等操作则正好相反,任意多次执行所产生的影响均与一次执行的影响相同。根据宕机发生时元数据操作在宕机服务器的完成进度,将元数据操作分为以下五类:(I)已经持久到宕机服务器的元数据磁盘上,并且客户端已经接收到返回结果;(2)已经持久到宕机服务器的元数据磁盘上,但客户端在收到返回结果之前,服务器发生了宕机,并且该操作是幂等操作,如读操作;(3)已经持久到宕机服务器的元数据磁盘上,但客户端在收到返回结果之前发生了宕机,并且该操作是非幂等操作,如删除操作;(4)操作还没有持久到宕机服务器的元数据磁盘上,客户端已经收到回复结果;(5)操作既没有持久到宕机服务器的元数据磁盘上,客户端也没收到回复结果。第⑴类操作,不需要备份服务器恢复,也不需要客户端做任何操作;第(5)类操作,也不需要备份服务器恢复,因为客户端在特定时间间隔内没有收到回复时,会重新发起操作请求,并需要备份服务器继续执行返回结果;备份服务器也不需要恢复第(2)类操作,因为客户端会重新发起操作请求,备份服务器会重新执行该操作,而幂等操作的第二次执行不会造成错误;第(4)类操作,备份服务器需要恢复出该操作的参数,并继续执行该操作,将其持久到磁盘上,不需要担心该操作的精确一次执行语义,因为客户端已经接收到回复结果,不会再发起请求,所以该操作只会被持久到磁盘上一次。备份服务器需要保证精确一次执行语义的是第(3)类操作,因为如果客户端在一定时间间隔内没有收到服务器的回复,就会重新发起相同参数的请求,而对于已经持久到磁盘上的非幂等操作,第二次执行就会造成错误,所以就需要保证备份服务器在完成接替后,当收到客户端发来的该类操作的重复请求时,备份服务器只需要返回该操作的回复结果,而不需要在磁盘上再次执行,从而保证了精确一次执行语义。在服务器没有发生宕机的情况下,第(3)类操作的精确一次执行语义可以由PNFS原有的sess1n机制保证,sess1n机制,即PNFS让每个状态请求携带序列号并缓存此类请求的响应,这意味着每个状态请求必须有一个缓存响应的空间,当客户端启动后,通过EXCHANGE_ID获取相应的服务器分配的clientID,紧接着,通过CREATE_SESS1N向服务器确认clientID,并在客户端和服务器分别建立特定的sess1n,在客户端和服务器建立sess1n时,将同时设置最大的缓存空间、请求大小、response大小等参数,sess1n由固定个数的slot组成,每个slot由sequenceID、slotID和缓存空间组成,所有的客户端操作均基于特定sess1n,每个操作通过三元组(sess1n ID, slot ID, sequence ID)标识,服务器在发回响应之前,将响应基本信息或全部信息存于服务器sess1n的对应slot的缓存空间中,若客户端正确收到响应,则该缓存槽才可用于其他操作,如果因为网络等原因,客户端没有正确收到响应,则当客户端重新发起请求时,服务器通过判断请求的sequencelD与当前缓存空间的sequencelD可判断请求是否为同一请求,如果是,则服务器只需要将slot的缓存空间中的响应信息再次发送给客户端,使得一个请求只会被执行一次,从而保证了操作的精确一次执行语义。由于PNFS的sess1n只存在于宕机服务器的缓存中,发生宕机事件后,无法被备份服务器获得,因此在发生宕机失效接替后,原有的保证精确一次执行语义的sess1n机制不再适用。目前,保证在失效接替过程中的非幂等操作的精确一次执行语义的方法,仅有Lustre文件系统基于事务的恢复机制。客户端发送的每个请求都包含有一个xid序列号,直到请求被分配一个事务序列号(transno)。lustre为每个引起服务器状态改变的操作分配一个事务序列号(transno),它由服务器进行管理,并被捎带在请求的回复消息中返回给客户端。在服务器中有一个叫last_rCVd的日志文件,它以异步的方式记录服务器和每个客户端的各种信息,包括客户端的uuid、该客户端最后提交的事务序列号(last_transno)、该客户端最后执行请求和最后提交请求的last_xid等信息。当服务器接收到客户端重传的请求,对于xid〈 = last_xid的请求,说明它们已经在服务器上执行,但回复消息可能丢失,因此服务器只需要构建回复消息,返回给客户端。但是该机制存在两方面的问题,一方面元数据服务器端last_rCVd日志文件的更新与所述引起服务器状态改变操作的执行为两个独立的修改,在异常宕机情况下可能造成磁盘上持久内容不一致,因为无法保证所述两个独立操作的原子性;另一方面,该机制仅支持客户端与元数据服务器之间同时进行一次元数据交互,不支持并发的多个元数据交互,影响了系统交互效率。专利技术专利“一种基于文件级实时同步的ParastorfOO管理节点高可用方法”,该专利技术涉及一种基于文件级实时同步的Parastor200管理节点高可用方法,所述方法通过以下两个方面实现:(1)管理节点存储系统信息的同步;(2)管理节点故障切换。该专利技术通过实现Parastor200管理节点的高可用使Parastor200实现了完全意义上的全冗余设计,系统中任何部件的损坏不影响存储系统的使用。管理节点任何部件的损坏,都可以在数秒内将服务切换到备用节点上。这样既不影响正常使用,又有充足的时间去修复故障,该专利技术提出了一种基于文件级的实现Parastor2000系统全冗余的方法,主要是通过节点信息的实时同步,保证在部件损坏时将服务切换到备用节点上,但仍然可能存在非幂等操作的多次执行,该专利技术不涉及元数据服务器高可用失效接替时非幂等操作精确一次执行保证。专利技术专利“一种基于分布式块设备的ParastorfOO并行存储管理节点高可用方法”,该发本文档来自技高网...
元数据服务器失效接替中精确一次执行语义的方法及系统

【技术保护点】
一种元数据服务器失效接替中精确一次执行语义的方法,其特征在于,包括:步骤1,在客户端正常访问元数据服务器时,所述元数据服务器在session结构中为每个操作分配slotID、sequenceID以及存放响应结果的缓存空间,将所述session结构持久写入到元数据磁盘上,并将所述slotID和所述sequenceID复制给备份服务器,所述备份服务器收到后,将所述slotID和所述sequenceID放入所述备份服务器缓存中;步骤2,所述元数据服务器宕机之后,所述备份服务器从磁盘中读取所述session结构的信息,查找已经持久到磁盘上但并未给客户端发送回复结果的非幂等操作,根据所述session结构中的slot table重新构造所述回复结果并发送给客户端。

【技术特征摘要】

【专利技术属性】
技术研发人员:李月嘉邵冰清刘健董欢庆张军伟刘振军
申请(专利权)人:中国科学院计算技术研究所天津中科蓝鲸信息技术有限公司
类型:发明
国别省市:北京;11

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

1