一种基于ceph的存储交互装置及存储系统的制作方法

文档序号:11154889阅读:273来源:国知局
一种基于ceph的存储交互装置及存储系统的制造方法

本发明涉及数据存储技术领域,特别是涉及一种基于ceph的存储交互装置及存储系统。



背景技术:

Ceph是一种基于优秀的性能、可靠性和可扩展性而设计的统一的、分布式的存储系统,Ceph的底层是RADOS(reliable autonomous distributed object storage,分布式对象存储系统)。RADOS能够将物理存储设备虚拟化整合为RBD(RADOS块设备)池,并依据自定义将RBD池分割成若干个RBD卷进行数据存储。

RBD卷与用户端进行数据交互时,要通过target(靶子)层,以及通过内核模块或librbd作为接口,其中,内核模块处于内核态,而librbd处于用户态。由于librbd不能够使用内核页缓存,故librbd内设置有自己的用户态的缓存,称为“RBD cache”,RBD cache就如一般的硬盘cache(缓存)一样,可以提高librbd的性能。

如图1所示,图1为当前ceph内的存储交互系统的结构示意图;由于librbd为用户态,此时对应使用的target层为tgt-target,客户端1用一根网线连接到集群中的node1节点(这里的节点指服务器),客户端2使用一根网线连接到集群中的node2节点,所有节点中创建target1,通过后端的RBD卷1创建LUN1并通过target1映射到对应的客户端,此时客户端1和客户端2均能通过target1以及LUN1访问RBD卷1。

目前的RBD cache是依据客户端来建立的,这样客户端1对应RBD cache1,客户端2对应RBD cache2,每个客户端分别对应一个RBD cache。此时,客户端1访问RBD卷1的路径为:客户端1→node1中的target1→LUN1→RBD cache1→RBD卷1;客户端2访问RBD卷1的路径为:客户端1→node2中的target1→LUN1→RBD cache2→RBD卷1。这种情况下,如果两个客户端同时访问RBD卷1进行操作(诸如虚拟机迁移、读写等),且客户端1和客户端2发送的数据不一致,就会导致RBD cache1和RBD cache2中的数据不同步,使得RBD卷不知道应该使用哪个RBD cache中的数据,进而导致系统报错。

因此,如何提供一种减少系统报错的基于ceph的存储交互装置及存储系统是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种基于ceph的存储交互装置,避免多个客户端通过不同的RBD cache同时对一个RBD卷访问时数据不同步而报错的问题,可靠性高;本发明的另一目的是提供一种包括上述存储交互装置的存储系统。

为解决上述技术问题,本发明提供了一种基于ceph的存储交互装置,包括若干个RBD卷、分别与若干个客户端一一对应的若干个RBD cache;

所述RBD cache,用于将接收到的所述访问请求同步至其他RBD cache;接收并依据其他RBD cache同步过来的访问请求对自身接收到的访问请求进行相应的调整,依据调整后的访问请求访问相应的RBD卷;将访问RBD卷后得到的数据返回对应的客户端。

优选地,所述RBD cache具体用于:

将接收到的所述访问请求同步至其他RBD cache;接收并依据其他RBD cache同步过来的访问请求对自身接收到的访问请求的访问地址或访问顺序进行相应的调整,依据调整后的访问请求访问相应的RBD卷;将访问RBD卷后得到的数据返回对应的客户端。

为解决上述技术问题,本发明还提供了一种基于ceph的存储系统,包括如以上任一项所述的存储交互装置、分别通过各个所述RBD卷建立的若干个逻辑单元、与所述逻辑单元一一对应的target层以及服务器集群,所述服务器集群内包括若干个服务器;

所述target层,用于分别接收若干个所述客户端发送的访问请求;

所述逻辑单元,用于作为自身对应的所述target层与各个所述RBD cache之间的数据交互接口,将自身对应的所述target层接收到的若干个访问请求分别分配至相应的RBD cache。

优选地,所述target层包括若干个对应于所述逻辑单元的target,所述target设置于所述ceph内的服务器中,且与所述服务器一一对应。

优选地,所述RBD cache设置于相应的服务器内,各个所述RBD cache所位于的服务器之间通过网线两两相连。

优选地,所述客户端与服务器通过网线连接。

本发明提供了一种基于ceph的存储交互装置,各个RBD cache基于客户端设置,当RBD cache接收到访问请求后,首先同步至其他RBD cache,各个RBD cache依据其他RBD cache同步过来的访问请求对自身接收到的访问请求进行调整,然后依据调整后的访问请求进行RBD卷的访问操作。可见,本发明在当不同RBD cache同时接收到访问相同RBD卷但操作内容不同的访问请求时,会通过不同RBD cache之间的相互同步操作调整这些访问请求的先后顺序,或者访问请求对应的访问位置,从而避免该种情况下系统报错,可靠性高。本发明还提供了一种包括上述存储交互装置的存储系统,也具有上述优点,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为当前ceph内的存储交互系统的结构示意图;

图2为本发明提供的一种基于ceph的存储系统的结构示意图。

具体实施方式

本发明的核心是提供一种基于ceph的存储交互装置,避免多个客户端通过不同的RBD cache同时对一个RBD卷访问时数据不同步而报错的问题,可靠性高;本发明的另一核心是提供一种包括上述存储交互装置的基于ceph的存储系统。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种基于ceph的存储交互装置,包括若干个RBD卷、分别与若干个客户端一一对应的若干个RBD cache;

RBD cache,用于将接收到的访问请求同步至其他RBD cache;接收并依据其他RBD cache同步过来的访问请求对自身接收到的访问请求进行相应的调整,依据调整后的访问请求访问相应的RBD卷;将访问RBD卷后得到的数据返回对应的客户端。

作为优选地,RBD cache具体用于:

将接收到的访问请求同步至其他RBD cache;接收并依据其他RBD cache同步过来的访问请求对自身接收到的访问请求的访问地址或访问顺序进行相应的调整,依据调整后的访问请求访问相应的RBD卷;将访问RBD卷后得到的数据通过相应的逻辑单元和target层返回对应的客户端。

可以理解的是,一般仅在多个的RBD cache收到的访问请求有冲突时才会进行调整,若没有冲突的话,则可按照接收到的访问请求依次进行访问操作。另外,RBD cache需要根据访问请求的类型对其进行调整,例如,当两个RBD cache均接收到写操作,且待写入的RBD卷中的地址相同但写入内容不同时,这种情况下若进行RBD cache同步就会出现报错,此时会调整两个访问请求内的写入地址或调整写入顺序等。当然,当出现其他类型的访问冲突时可进行其他类型的调整,具体如何调整同步可根据实际情况编写算法,本发明对此不作限定。

当然,这里的RBD cache不仅能够对访问地址和访问请求的顺序进行调整,具体调整哪些内容可根据实际需要而定,本发明不作限定。

本发明提供了一种基于ceph的存储交互装置,各个RBD cache基于客户端设置,当RBD cache接收到访问请求后,首先同步至其他RBD cache,各个RBD cache依据其他RBD cache同步过来的访问请求对自身接收到的访问请求进行调整,然后依据调整后的访问请求进行RBD卷的访问操作。可见,本发明在当不同RBD cache同时接收到访问相同RBD卷但操作内容不同的访问请求时,会通过不同RBD cache之间的相互同步操作调整这些访问请求的先后顺序,或者访问请求对应的访问位置,从而避免该种情况下系统报错,可靠性高。

本发明还提供了一种基于ceph的存储系统,参见图2所示,图2为本发明提供的一种基于ceph的存储系统的结构示意图。图2中,LUN1为基于RBD卷1建立的逻辑单元,Tgt-target1为对应于LUN1的target;Node1、Node2、Node3为服务器;RBD cache1对应客户端1,RBD cache2对应客户端2。

该系统包括以上的存储交互装置、分别通过各个RBD卷建立的若干个逻辑单元、与逻辑单元一一对应的target层以及服务器集群,服务器集群内包括若干个服务器;

target层,用于分别接收若干个客户端发送的访问请求;

逻辑单元,用于作为自身对应的target层与各个RBD cache之间的数据交互接口,将自身对应的target层接收到的若干个访问请求分别分配至相应的RBD cache。

其中,target层包括若干个对应于逻辑单元的target,target设置于ceph内的服务器中,且与服务器一一对应。target即为靶子,客户端需要先找寻到靶子,才能知道将访问请求发送到哪里。

可以理解的是,这里的逻辑单元通过RBD卷建立,即逻辑单元与RBD卷一一对应,进一步的,target层与逻辑单元对应设置,即可以理解为target层与RBD卷一一对应。故客户端发送的访问请求通过对应于哪个RBD卷的target层与逻辑单元,该访问请求即会对哪个RBD卷进行访问操作;当然,中间通过的RBD cache视发出访问请求的客户端而定。例如,假设第一target层对应于第一逻辑单元,第一逻辑单元通过第一RBD卷设置,则客户端发送的访问请求若通过第一target层和第一逻辑单元,则RBD cache会依据该访问请求访问第一RBD卷。

其中,RBD cache设置于相应的服务器内,各个RBD cache所位于的服务器之间通过网线两两相连。若RBD cache的数量过多,两两相连会造成线路过于复杂的话,可以通过修改RBD cache内的算法,使其具有将其他RBD cache同步过来的访问请求转发至与自身相连的其他RBD cache的功能,当然,本发明对此不做限定。

具体的,客户端与服务器通过网线连接。由于target一一对应的设置于服务器中,客户端可通过网线将访问请求发送至对应的target中。另外,客户端与服务器为无线连接。以上仅为优选方案,本发明不限定客户端与服务器间的连接方式。

另外,该存储系统中,每个客户端均可连接多个服务器,每个服务器也可以连接多个客户端,本发明对此不作限定。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1