本发明涉及分布式块存储系统领域,尤其涉及一种分布式块存储系统中io数据的读写方法、装置以及系统。
背景技术:
现有技术中,在分布式块存储系统中,通常的结构为一个卷对应一个卷控制器,这样的结构使得卷控制器的管理比较复杂。
技术实现要素:
本发明的实施例提供了一种分布式块存储系统中io数据的读写方法、装置以及系统,能够简化对卷控制器的管理。
为了实现上述目的,本发明采取了如下技术方案。
一种分布式块存储系统中io数据的读写方法,包括:
客户端与分布式块存储系统连接时,所述分布式块存储系统的集群管理器间的主节点从所述客户端接收io数据读写消息,所述io数据读写消息包括待访问卷编号;
所述集群管理器间的主节点根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;
所述集群管理器间的主节点查找所述卷组编号对应的卷组控制器间的主节点的访问地址;
所述集群管理器间的主节点将所述卷组控制器间的主节点的访问地址发送给客户端,使得所述客户端根据所述卷组控制器间的主节点的访问地址,与所述卷组控制器间的主节点连接,以进行io数据的读取。
一种分布式块存储系统中io数据的读写装置,包括:
客户端与分布式块存储系统连接时,从所述客户端接收io数据读写消息,所述io数据读写消息包括待访问卷编号;
根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;
查找所述卷组编号对应的卷组控制器间的主节点的访问地址;
将所述卷组控制器间的主节点的访问地址发送给客户端,使得所述客户端根据所述卷组控制器间的主节点的访问地址,与所述卷组控制器间的主节点连接,以进行io数据的读取。
一种分布式块存储系统中io数据的读写系统,包括:
客户端、一组集群管理器、至少一组卷组控制器;
所述一组集群管理器包括:至少一个集群管理器,其中一个集群管理器作为集群管理器间的主节点;
所述一组卷组控制器包括:至少一个卷组控制器,其中一个卷组控制器作为卷组控制器间的主节点;
所述分布式块存储系统的集群管理器间的主节点用于,客户端与分布式块存储系统连接时,从所述客户端接收io数据读写消息,所述io数据读写消息包括待访问卷编号;根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;查找所述卷组编号对应的卷组控制器间的主节点的访问地址;将所述卷组控制器间的主节点的访问地址发送给客户端,使得所述客户端根据所述卷组控制器间的主节点的访问地址,与所述卷组控制器间的主节点连接,以进行io数据的读取。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,每个卷属于一个卷组,一组卷组由一个卷组控制器管理数据,简化了系统中对卷组控制器的管理。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式块存储系统中io数据的读写方法的处理流程图;
图2为本发明实施例中分布式块存储系统中io数据的读写装置的连接示意图;
图3为本发明实施例中分布式块存储系统中io数据的读写系统的连接示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
如图1所示,为本发明所述的一种分布式块存储系统中io数据的读写方法,包括:
步骤10,在所述分布式块存储系统内的物理节点上创建一组集群管理器、至少一组卷组控制器、至少一个卷组;
其中,所述一组集群管理器包括:至少一个集群管理器,其中一个集群管理器作为集群管理器间的主节点;所述集群管理器用于:保存分布式块存储系统中卷组的总数量、卷组编号与卷组控制器间的主节点的访问地址之间的对应关系,分布式块存储系统的全局信息;用目录结构表达scsi协议的层次结构、nfs协议的目录;
所述一组卷组控制器包括:至少一个卷组控制器,其中一个卷组控制器作为卷组控制器间的主节点;所述卷组控制器用于:保存对应的卷组的各个卷所在的全部节点的地址信息、对应的卷组内的所有卷的各个chunk块的地址信息;可选的,所述卷组控制器具体为:使用paxos协议保存对应的卷组的各个卷所在的全部节点的地址信息、对应的卷组内的所有卷的各个chunk块的地址信息。
所述一个卷组包括:至少一个卷;所述卷的编号与所述卷组的编号为多对一的关系。
上述步骤为分布式块存储系统中创建集群管理器、卷组控制器、卷组的过程。本发明中,一个卷组包括多个卷,一个卷组控制器管理一个卷组,也就是管理多个卷。卷组控制器保存有本卷组内所有卷的元数据信息(卷的容量、chunk的分布等)。集群管理器负责对卷组控制器的管理,也就是说,集群管理器负责查找待访问卷的所在卷组以及相应的卷组控制器。
步骤11,客户端与分布式块存储系统连接时,所述分布式块存储系统的集群管理器间的主节点从所述客户端接收io数据读写消息,所述io数据读写消息包括待访问卷编号;
步骤12,所述集群管理器间的主节点根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;其中,步骤12具体为:所述卷集群管理器间的主节点根据所述待访问卷编号,进行hash运算,获取所述待访问卷编号对应的卷组编号。该步骤中,卷编号与卷组编号之间的对应关系的建立也可以不通过hash函数的计算方法,只要使得卷编号与卷组编号建立多对一的关系即可。
步骤13,所述集群管理器间的主节点查找所述卷组编号对应的卷组控制器间的主节点的访问地址;该步骤中,集群管理器中的主节点与分布式块存储网络系统失去连接时,可以在集群管理器间重新进行选举,选举出一个集群管理器作为集群管理器的主节点。
步骤14,所述集群管理器间的主节点将所述卷组控制器间的主节点的访问地址发送给客户端,使得所述客户端与所述卷组控制器间的主节点连接,以进行io数据的读取。其中,该步骤中所述客户端与所述卷组控制器间的主节点连接,以进行io数据的读取具体为:所述客户端与所述卷组控制器间的主节点连接,根据所述卷组控制器间的主节点保存的卷组的各个卷所在的全部节点的地址信息、卷组内的所有卷的各个chunk块的地址信息,使用paxos协议进行io数据的读取。上述实施例中,根据io数据对卷中数据的读取,卷组控制器相应的更新chunk块的地址信息。每个卷属于一个卷组,一组卷组由一个卷组控制器管理数据,简化了系统中对卷组控制器的管理。
可选的,所述方法还包括:
步骤15,当所述分布式块存储系统中的第一卷组对应的第一卷组控制器间的主节点与所述分布式块存储系统断开连接时,所述第一卷组对应的所有卷组控制器中除所述第一卷组控制器外的其他卷组控制器进行选举,选举出一卷组控制器作为第一卷组对应的卷组控制器间的新的主节点;可选的,步骤15具体为:所述第一卷组对应的所有卷组控制器中除所述第一卷组控制器外的其他卷组控制器使用paxos协议进行选举,选举出一卷组控制器作为第一卷组对应的卷组控制器的新的主节点。
步骤16,将选举的所述卷组控制器间的新的主节点的连接地址发送给所述集群管理器间的主节点,使得所述集群管理器间的主节点更新本地保存的卷组编号与卷组控制器间的主节点的访问地址之间的对应关系。
该步骤中,卷组控制器间的自动选取机制,保证了卷组控制器相对于集群管理器的独立性,不需要集群管理器来指定卷组控制器间的主节点,使得分布式系统维护比较简单。
上述实施例中,一个卷组控制器由运行paxos实例的几个节点选举产生,选举为主节点leader的节点担任卷组控制器的角色,其他节点作为卷组控制的slave从节点,同时这几个节点保存有本卷组内所有卷的元数据信息(卷的容量、chunk的分布),通过paxos协议可以使卷控制器的位置信息无需集群管理器来记录;同时当系统出现脑裂时,也无需集群管理器来裁决,有效降低集群管理器的负担。
如图2所述,本发明还提供一种分布式块存储系统中io数据的读写装置,包括:
接收单元21,客户端与分布式块存储系统连接时,从所述客户端接收io数据读写消息,所述io数据读写消息包括待访问卷编号;
获取单元22,根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;
查找单元23,查找所述卷组编号对应的卷组控制器间的主节点的访问地址;
发送单元24,将所述卷组控制器间的主节点的访问地址发送给客户端,使得所述客户端与所述卷组控制器间的主节点连接,以进行io数据的读取。
本发明所述的分布式块存储系统中io数据的读写装置可以为卷组控制器间的主节点;本发明中的分布式块存储系统可以为超融合系统。
如图3所示,本发明提供一种分布式块存储系统中io数据的读写系统,包括:
客户端31、一组集群管理器33、至少一组卷组控制器33;
所述一组集群管理器包括:至少一个集群管理器,其中一个集群管理器作为集群管理器间的主节点;
所述一组卷组控制器包括:至少一个卷组控制器,其中一个卷组控制器作为卷组控制器间的主节点;
其中,所述客户端与所述分布式块存储系统的集群管理器间的主节点接,给所述分布式块存储系统的集群管理器间的主节点发送io数据读写消息;所述io数据读写消息包括待访问卷编号;
所述分布式块存储系统的集群管理器间的主节点根据所述卷编号与卷组编号之间的对应关系,获取所述待访问卷编号所对应的卷组编号;查找所述卷组编号对应的卷组控制器间的主节点的访问地址;将所述卷组控制器间的主节点的访问地址发送给客户端;
所述客户端根据所述卷组控制器间的主节点的访问地址,与所述卷组控制器间的主节点连接,以进行io数据的读取。
所述卷组控制器还用于:当所述分布式块存储系统中的第一卷组对应的第一卷组控制器间的主节点与所述分布式块存储系统断开连接时,所述第一卷组对应的所有卷组控制器中除所述第一卷组控制器外的其他卷组控制器进行选举,选举出一卷组控制器作为第一卷组对应的卷组控制器间的新的主节点;将选举的所述卷组控制器间的新的主节点的连接地址发送给所述集群管理器间的主节点,使得所述集群管理器间的主节点更新本地保存的卷组编号与卷组控制器间的主节点的访问地址之间的对应关系。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。