数据传输系统、方法及装置与流程

文档序号:12838972阅读:204来源:国知局
数据传输系统、方法及装置与流程

本发明涉及网络技术领域,特别涉及一种数据传输系统、方法及装置。



背景技术:

随着网络技术的发展及网络的普及,产生了大量需要存储的数据,为了确保所存储数据的安全性和稳定性,多采用双活技术将第一站点所存储的数据备份至第二站点中,该双活技术是指在向第一站点任一业务节点写入数据时,需要同时将该数据传输至第二站点中对应的业务节点,以避免第一站点系统发生系统崩溃导致数据丢失。

目前,将数据从第一站点传输至第二站点的具体方法可以由图1进行具体说明,在图1中,业务节点a1~业务节点a6和业务节点b1~业务节点b6分别为第一站点和第二站点的6个业务节点,且业务节点b1~业务节点b6分别为与业务节点a1~业务节点a6对应的业务节点,控制节点a1~控制节点a3和控制节点b1~控制节点b3分别为第一站点和第二站点的3个控制节点,其中每个控制节点分别用于控制图中虚线所连接的两个业务节点的数据传输。当主机要向业务节点a1中写数据时,主机将数据写入控制节点a1,由该控制节点a1将数据同时写入业务节点a1和业务节点b1,在向业务节点b1写入数据时,随机选择一条链路将该数据写入第二站点的控制节点中,如果该控制节点是用于控制业务节点b1的节点,也即是,如果该链路是控制节点a1和控制节点b1之间的链路,控制节点a1将数据写入控制节点b1,由控制节点b1将数据写入业务节点b1;如果该控制节点不是用于控制业务节点b1的节点,如图1所示,也即是,如果该链路是控制节点a1和控制节点b2之间的链路,控制节点a1将数据写入控制节点b2,再由控制节点b2转发至控制节点b1以后,由控制节点b1再将该数据写入业务节点b1。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

在上述数据传输方法中,如果所选择链路对应的控制节点不是用于控制对 应业务节点的节点,需要在该第二站点内部进行控制节点间的数据转发,造成数据传输延时。



技术实现要素:

本发明实施例提供了一种数据传输系统、方法及装置。所述技术方案如下:

第一方面,提供了一种数据传输系统,所述数据传输系统包括:第一站点和第二站点,所述第一站点和所述第二站点均包括业务节点和控制节点,所述第一站点的控制节点中存储有路由表,每个控制节点用于控制至少一个业务节点的数据传输;

所述路由表用于存储所述第一站点和所述第二站点中的业务节点绑定关系以及节点归属关系;

所述第一站点中的第一控制节点用于接收数据写入请求,将数据写入所述第一业务节点;并根据所述第一业务节点,从路由表中查询所述第二站点中的第二控制节点,所述第二控制节点为与所述业务节点绑定的第二业务节点的控制节点,所述路由表用于存储所述第一站点和所述第二站点中的业务节点绑定关系以及节点归属关系;通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据。

通过查询路由表实现选择最佳链路,将该数据写入第二站点中对应第二业务节点,进而能够避免在数据传输过程中,第二站点中控制节点之间的数据转发,降低数据传输延时,提升该第一站点和该第二站点的业务处理性能。

在本发明的第一方面的第一种可能实现方式中,通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,所述第二控制节点接收所述数据;所述第二控制节点将所述数据写入所述第二业务节点。

在本发明的第一方面的第二种可能实现方式中,第一控制节点在接收到对第一业务节点的数据写入请求时,将数据写入所述第一业务节点之前,所述第一站点获取所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息;将所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息对应存储至所述路由表中。

在本发明的第一方面的第三种可能实现方式中,所述路由表还包括所述第 二站点中的故障切换节点的地址信息,所述故障切换节点为当所述第二控制节点崩溃后,用于控制所述第二业务节点的数据传输的控制节点;

通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,如果所述第二控制节点和所述第一控制节点之间的链路不正常,通过所述故障切换节点和所述第一控制节点之间的链路,向所述故障切换节点发送所述数据。

在本发明的第一方面的第四种可能实现方式中,通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,如果所述第二控制节点和所述第一控制节点之间的链路不正常,重新建立所述第一控制节点和所述第二控制节点之间的链路,通过重新建立的所述第一控制节点与所述第二控制节点之间的链路,向所述第二控制节点发送所述数据。

第二方面,提供了一种数据传输方法,存储系统包括第一站点和第二站点,所述第一站点和第二站点均包括业务节点和控制节点,每个控制节点用于控制至少一个业务节点的数据传输,所述方法包括:

在接收到对第一业务节点的数据写入请求时,第一控制节点将数据写入所述第一业务节点;根据所述第一业务节点,从路由表中查询所述第二站点中的第二控制节点,所述第二控制节点为与所述业务节点绑定的第二业务节点的控制节点,所述路由表用于存储所述第一站点和所述第二站点中的业务节点绑定关系以及节点归属关系;通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据。通过查询路由表实现选择最佳链路,将该数据写入第二站点中对应第二业务节点,进而能够避免在数据传输过程中,第二站点中控制节点之间的数据转发,降低数据传输延时,提升该第一站点和该第二站点的业务处理性能。

在本发明的第二方面的第一种可能实现方式中,通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,所述方法还包括:所述第二控制节点接收所述数据;所述第二控制节点将所述数据写入所述第二业务节点。通过第二控制节点接收数据,并将该数据写入该第二业务节点,实现根据接收到的数据写入请求,将数据同时写入第一站点中的第一业务节点和第二站点中的第二业务节点。

在本发明的第二方面的第二种可能实现方式中,在接收到对第一业务节点的数据写入请求时,将数据写入所述第一业务节点之前,所述方法还包括:获取所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息;将所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息对应存储至所述路由表中。通过创建该路由表,能够实现在将第一站点将数据写入该第一站点中的业务节点时,通过查询该路由表,获取到与该第一站点的业务节点相匹配的第二站点中的业务节点,进而能够实现选取最优链路将该数据写入该第二站点中对应业务节点的目的。

在本发明的第二方面的第三种可能实现方式中,所述路由表还包括所述第二站点中的故障切换节点的地址信息,所述故障切换节点为当所述第二控制节点崩溃后,用于控制所述第二业务节点的数据传输的控制节点;通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,所述方法还包括:如果所述第二控制节点和所述第一控制节点之间的链路不正常,通过所述故障切换节点和所述第一控制节点之间的链路,向所述故障切换节点发送所述数据。通过在所述第二控制节点和所述第一控制节点之间的链路不正常的情况下,通过所述故障切换节点和所述第一控制节点之间的链路,将该数据写入该第二业务节点,能够在第二控制节点宕机的情况下,仍能选择其他最优链路将该数据写入该第二业务节点,也能够避免由于第二站点内控制节点之间的数据转发,造成的数据传输延时的情况。

在本发明的第二方面的第四种可能实现方式中,通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据之后,所述方法还包括:如果所述第二控制节点和所述第一控制节点之间的链路不正常,重新建立所述第一控制节点和所述第二控制节点之间的链路,通过重新建立的所述第一控制节点与所述第二控制节点之间的链路,向所述第二控制节点发送所述数据。通过在如果所述第二控制节点和所述第一控制节点之间的链路不正常的情况下,通过重新建立的所述第一控制节点和所述第二控制节点之间的链路,将该数据写入第二站点中的第二业务节点,能够进一步提高数据传输的成功率。

第三方面,提供了一种数据传输装置,存储系统包括第一站点和第二站点, 所述第一站点和第二站点均包括业务节点和控制节点,每个控制节点用于控制至少一个业务节点的数据传输,所述装置设置于所述第一站点的第一控制节点内,所述第一控制节点用于控制所述第一站点的第一业务节点的数据传输,所述装置包括:

数据写入模块,用于在接收到对第一业务节点的数据写入请求时,将数据写入所述第一业务节点;

查询模块,用于根据所述第一业务节点,从路由表中查询所述第二站点中的第二控制节点,所述第二控制节点为与所述业务节点绑定的第二业务节点的控制节点,所述路由表用于存储所述第一站点和所述第二站点中的业务节点绑定关系以及节点归属关系;

数据传输模块,用于通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据。

通过查询路由表实现选择最佳链路,将该数据写入第二站点中对应第二业务节点,进而能够避免在数据传输过程中,第二站点中控制节点之间的数据转发,降低数据传输延时,提升该第一站点和该第二站点的业务处理性能。

在本发明的第三方面的第一种可能实现方式中,所述装置还包括:

获取模块,用于获取所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息;

存储模块,用于将所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息对应存储至所述路由表中。

通过创建该路由表,能够实现在将第一站点将数据写入该第一站点中的业务节点时,通过查询该路由表,获取到与该第一站点的业务节点相匹配的第二站点中的业务节点,进而能够实现选取最优链路将该数据写入该第二站点中对应业务节点的目的。

在本发明的第三方面的第二种可能实现方式中,所述路由表还包括所述第二站点中的故障切换节点的地址信息,所述故障切换节点为当所述第二控制节点崩溃后,用于控制与所述第二业务节点的数据传输的控制节点;

相应地,所述数据传输模块还用于如果所述第二控制节点和所述第一控制节点之间的链路不正常,通过所述故障切换节点和所述第一控制节点之间的链路,向所述故障切换节点发送所述数据。

通过在所述第二控制节点和所述第一控制节点之间的链路不正常的情况下,通过所述故障切换节点和所述第一控制节点之间的链路,将该数据写入该第二业务节点,能够在第二控制节点宕机的情况下,仍能选择其他最优链路将该数据写入该第二业务节点,也能够避免由于第二站点内控制节点之间的数据转发,造成的数据传输延时的情况。

在本发明的第三方面的第三种可能实现方式中,所述装置还包括:

链路建立模块,用于如果所述第二控制节点和所述第一控制节点之间的链路不正常,重新建立所述第一控制节点和所述第二控制节点之间的链路,通过重新建立的所述第一控制节点与所述第二控制节点之间的链路,向所述第二控制节点发送所述数据。

在如果所述第二控制节点和所述第一控制节点之间的链路不正常的情况下,通过重新建立的所述第一控制节点和所述第二控制节点之间的链路,将该数据写入第二站点中的第二业务节点,能够进一步提高数据传输的成功率。

附图说明

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

图1是本发明实施例提供的一种数据传输示意图;

图2a是本发明实施例提供的一种数据传输系统框图;

图2b是本发明实施例提供的一种链路配置和路由表创建方法流程图;

图3a是本发明实施例提供的一种数据传输方法流程图;

图3b是本发明实施例提供的一种数据传输示意图;

图4是本发明实施例提供的一种数据传输装置框图;

图5是本发明实施例提供的一种数据传输的装置500的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图2a是本发明实施例提供的一种数据传输系统框图,如图2a所示,该数据传输系统包括第一站点和第二站点,该第一站点和第二站点均包括业务节点和控制节点,该第一站点的控制节点中存储有路由表,每个控制节点用于控制至少一个业务节点的数据传输。其中,控制节点控制业务节点的数据传输至少包括:控制节点将数据写入对应业务节点。

需要说明的是,该数据传输系统具有以下两种可能的工作场景,包括:远程复制场景和双活场景;在远程复制场景下,该第一站点用于对外提供主机服务,该第二站点用于备份数据,主机只向该第一站点下发数据写入请求,而不能直接向该第二站点下发数据写入请求;在双活场景下,该第一站点和该第二站点均对外提供主机服务,主机既可以向该第一站点下发数据写入请求,也可以向该第二站点下发数据写入请求。本发明所提供的用于存储系统的数据传输方法适用于上述两种场景中的任一种场景。

对于该数据传输系统中节点间的链路配置方法及第一站点中路由表创建方法可以用图2b表示,具体包括:对于第一站点中的任一第一业务节点,创建第一站点中该第一业务节点与第二站点中第二业务节点之间的绑定关系,建立该第一站点和该第二站点之间的主链路,通过该主链路获取第二站点中第二控制节点的节点信息和故障切换节点的节点信息,分别建立第一控制节点和该第二控制节点之间的链路,以及该第一控制节点和该故障切换节点之间的链路,将该第一控制节点的地址信息和该故障切换节点的地址信息对应存储至第一站点的路由表中。

其中,该第一控制节点用于控制对应第一业务节点的数据传输,该第二控制节点用于控制对应第二业务节点的数据传输,该故障切换节点是指当该第二控制节点崩溃后,用于控制该第二业务节点的数据传输的控制节点,该节点信息为节点的地址信息。创建第一站点中第一业务节点和第二站点中第二业务节点之间的绑定关系是指创建该第一业务节点和该第二业务节点的双活特性,创 建该第一业务节点和该第二业务节点的双活特性之后,能够实现在将数据写入该第一业务节点的同时,将相同数据写入该第二业务节点。

该第一站点中的路由表用于存储该第一站点和该第二站点中的业务节点绑定关系以及节点归属关系,创建该路由表的具体过程可以为:对于第一站点中任一第一业务节点而言,从第二站点获取第二控制节点的地址信息和该第二站点中与该业务节点匹配的业务节点的地址信息;将该第二控制节点的地址信息和该第二站点中第二业务节点的地址信息对应存储至该路由表中。其中,第一站点获取该第二控制节点的地址信息和该第二站点中第二业务节点的地址信息的方法可以为:通过该第一站点和该第二站点之间的主链路,从该第二站点获取该第二控制节点的地址信息和该第二站点中第二业务节点的地址信息;当然,也可以通过其他方法获取该第二控制节点的地址信息和该第二站点中与该业务节点匹配的业务节点的地址信息,本发明实施例对此不作限定。

也即是,该路由表存储该第一站点和该第二站点中的业务节点匹配关系的方法可以为:将该第一站点中每个第一业务节点的地址信息与该第二站点中对应第二业务节点的地址信息进行对应存储;相应地,该路由表存储该第一站点和该第二站点中的节点归属关系的方法可以为:将该第一站点中每个业务节点的地址信息和用于控制对应业务节点的数据传输的控制节点的地址信息进行对应存储,将该第二站点中每个业务节点的地址信息和用于控制对应业务节点的数据传输的控制节点的地址信息进行对应存储。

当然,将该第一站点和该第二站点中的业务节点匹配关系以及节点归属关系存储至该路由表的过程,也可以采用其他方法实现,本发明实施例对此不作具体限定。需要说明的是,该路由表存储于该第一站点的控制节点中,该第二站点中也可以存储有具有相同功能的路由表,以使得当向第二站点任一业务节点写入数据时,第二站点能够通过查询该第二站点的控制节点中的路由表,获取第一站点中与该业务节点绑定的业务节点和对应控制节点,进而达到同时向该第一站点对应业务节点写入相同数据的目的。

通过创建该路由表,能够实现在第一站点中的控制节点将数据写入该第一站点中的对应业务节点时,通过查询该路由表,获取到与该第一站点的业务节点相匹配的第二站点中的业务节点,进而能够实现选取最优链路将该数据写入该第二站点中对应业务节点的目的。

在本发明又一实施例中,该路由表还包括该第二站点中的故障切换节点的地址信息,该故障切换节点为当该第二控制节点崩溃后,用于控制该第二业务节点的数据传输的控制节点;其中,将该第二站点中的故障切换节点与该第二站点中与该第二业务节点之间的归属关系存储至该路由表中的方法,与上述将该第二控制节点与该第二业务节点之间的归属关系的存储方法同理,此处不作赘述。

通过将该第二站点中的故障切换节点的地址信息存储至该路由表中,能够在该第二控制节点崩溃后,选择该第一控制节点和该故障切换节点之间的链路,继续完成数据传输。

图3a是本发明实施例提供的一种数据传输方法流程图,参见图3a,该方法包括:

301、在接收到对业务节点的数据写入请求时,第一控制节点将数据写入该业务节点。

该数据写入请求至少包括所要写入的数据和将数据写入的业务节点的节点信息,该业务节点信息为对应业务节点的地址信息;该数据写入请求也可以包括其他信息,本发明实施例对此也不作具体限定。

302、根据该第一业务节点,从路由表中查询该第二站点中的第二控制节点,该第二控制节点为与该业务节点绑定的第二业务节点的控制节点,该路由表用于存储该第一站点和该第二站点中的业务节点绑定关系以及节点归属关系。

该业务节点绑定关系是指该第一站点中与该第二站点中具有双活特性的业务节点之间的关系,该节点归属关系是指该第一站点和该第二站点中每个业务节点和用于控制对应业务节点的控制节点之间的关系。

在将第一站点将数据写入该第一站点中的业务节点时,通过查询该路由表,获取到与该第一站点的业务节点具有绑定关系的第二站点中的业务节点,进而能够实现选取最优链路以传输数据的目的。

303、通过该第二控制节点和该第一控制节点之间的链路,第一控制节点向该第二控制节点发送该数据。

根据第一站点从路由表中查询到的该第二站点中的第二控制节点,选择该第二控制节点和该第一控制节点之间的链路,并通过该链路,该第一控制节点 向该第二控制节点发送该数据,以使得该第二控制节点接收到该数据后,将该数据写入该第二站点中与第一站点中该业务节点匹配的业务节点中。需要说明的是,该第二控制节点除了控制该第一业务节点的数据传输以外,还可以控制第一站点中其他业务节点的数据传输。

需要说明的是,上述步骤301与步骤302和步骤303可以同时执行,也即是,在第一控制节点将数据写入该业务节点的同时,从路由表中查询该第二站点中的第二控制节点,并通过该第二控制节点和该第一控制节点之间的链路,将该数据发送至该第二控制节点。当然,也可以按时间先后顺序依次执行步骤301、步骤302和步骤303;本发明实施例对此不作限定。

例如,在图3b中,业务节点a1~业务节点a6和业务节点b1~业务节点b6分别为第一站点和第二站点的6个业务节点,且业务节点b1~业务节点b6分别为与业务节点a1~业务节点a6对应的业务节点,控制节点a1~控制节点a3和控制节点b1~控制节点b3分别为第一站点和第二站点的3个控制节点,其中每个控制节点分别用于控制图中虚线所连接的两个业务节点的数据传输。当主机要向业务节点a1中写数据时,主机将数据写入控制节点a1,由该控制节点a1将数据同时写入业务节点a1和业务节点b1,在向业务节点b1写入数据时,通过查询路由表,获取控制节点b1,通过控制节点a1和控制节点b1之间的链路,控制节点a1向控制节点b1发送该数据,由控制节点b1再将该数据写入业务节点b1,避免了在第二站点中控制节点之间的数据传输,减小数据传输时延。

通过从路由表中查询第二站点中与该业务节点绑定的第二业务节点的第二控制节点,并通过该第二控制节点和该第一控制节点之间的链路,向该第二控制节点发送该数据,以使得该第二控制节点接收到该数据后,将该数据写入第二站点中该第二业务节点中,从而能够实现选择最佳链路,将该数据写入第二站点中对应第二业务节点的目的,进而能够避免在数据传输过程中,第二站点中控制节点之间的数据转发,降低数据传输延时,提升该第一站点和该第二站点的业务处理性能。

在本发明另一实施例中,如果该路由表还包括该第二站点中的故障切换节点的地址信息,在该第一控制节点向该第二控制节点发送该数据后,如果接收到该第二站点返回的错误消息,执行重新发送该数据的步骤;其中,该错误消息用于指示该第一控制节点向该第二控制节点发送的数据发送失败,重新发送 该数据的方法可以为以下三种:

第一种、第一站点从路由表中查询该第二站点的故障切换节点,根据该故障切换节点,通过该第一控制节点和该故障切换节点之间的链路,该第一控制节点向该故障切换节点发送该数据,以使得该故障切换节点将该数据写入该第二站点中第二业务节点中。

第二种、第一站点通过该第一站点和该第二站点之间的主链路,向第一站点发送该数据。例如,第一站点的主服务器向该第二站点的主服务器发送该数据,再由主服务器查询该第二站点中与该业务节点相匹配的业务节点,并将该数据写入该第二站点中第二业务节点中。

第三种、第一站点重新建立该第一控制节点和该第二控制节点之间的链路,建立完成后,通过该链路,向该第二控制节点发送该数据,再由该第二控制节点将该数据写入该第二站点中第二业务节点中。

当通过该第一控制节点和该第二控制节点之间的链路,向该第二控制节点发送该数据失败后,可以采用上述三中方法中的任一种重新向该第二站点发送该数据,也可以采用其他方法向该第二站点重新发送该数据,本发明实施例对此不作限定。

当通过该第一控制节点和该第二控制节点之间的链路,向该第二控制节点发送该数据失败后,通过选择其他链路重新向该第二站点发送该数据,能够确保该数据成功写入第二站点,进而能够确保当第一站点崩溃时,由于第二站点存储有相同数据,从而保证了第一站点数据的安全性。

在本公开又一实施例中,还可以在每次传输数据之前,检查该第一站点和该第二站点中各节点之间的链路是否正常,并根据检测结果选择链路向该第二站点发送该数据,该方法包括下述步骤303a至步骤303d:

步骤303a、检测该第二控制节点和该第一控制节点之间的链路是否正常;如果该第二控制节点和该第一控制节点之间的链路正常,执行通过该第二控制节点和该第一控制节点之间的链路,向该第二控制节点发送该数据的步骤;如果该第二控制节点和该第一控制节点之间的链路不正常,当该路由表中存储有该第二业务节点的故障切换节点的节点信息时,执行步骤303b。当该路由表中未存储有该第二业务节点的故障切换节点的节点信息时,执行步骤303c中检测该第一站点和该第二站点之间的主链路是否正常的步骤。

步骤303b、如果该第二控制节点和该第一控制节点之间的链路不正常,根据该路由表,检测该故障切换节点和该第一控制节点之间的链路是否正常;如果该故障切换节点和该第一控制节点之间的链路正常,通过该故障切换节点和该第一控制节点之间的链路,向该故障切换节点发送该数据;如果该故障切换节点和该第一控制节点之间的链路不正常,执行步骤303c。

步骤303c、如果该故障切换节点和该第一控制节点之间的链路不正常,检测该第一站点与该第二站点之间的主链路是否正常;如果该第一站点与该第二站点之间的主链路正常,通过该第一站点与该第二站点之间的主链路,向该第二站点发送该数据;如果该第一站点与该第二站点之间的主链路不正常,执行步骤303d。

步骤303d、如果该第一站点与该第二站点之间的主链路不正常,重新建立该第一站点与该第二站点之间的主链路,通过重新建立的该第一站点与该第二站点之间的主链路,向该第二站点发送该数据。

在本公开又一实施例中,如果该第一站点与该第二站点之间的主链路正常,通过该第一站点与该第二站点之间的主链路,向该第二站点发送该数据之后,如果接收到该第二站点返回的错误信息,重新建立该第一站点与该第二站点之间的主链路,通过重新建立的该第一站点与该第二站点之间的主链路,向该第二站点发送该数据,该错误信息用于指示该数据发送失败。

通过检查该第一站点和该第二站点中各节点之间的链路是否正常,并根据检测结果选择链路向该第二站点发送该数据,能够在该第一站点向该第二站点发送数据时,最大可能保证一次发送成功,进而提高数据发送效率。

304、根据该路由表,周期性检测该第一站点和该第二站点中各节点之间的链路是否正常,当检测到任一链路不正常时,对链路进行重建并根据重建的链路更新该路由表。

该检测周期可以由开发人员自行设置,本发明实施例对此不作具体限定。以该路由表既包括第一站点和第二站点中的业务节点匹配关系以及节点归属关系,还包括故障切换节点与对应业务节点的归属关系为例,对于该第一站点中任一业务节点而言,检测该第一站点和该第二站点中各节点之间的链路是否正常的方法进行具体说明,该方法包括步骤304a至步骤304f:

步骤304a、依次检测该第一站点和该第二站点中各节点之间的每条链路是 否正常,如果该第一站点和该第二站点中各节点之间的链路均正常,执行步骤304b;如果该第一站点和该第二站点中各节点之间的链路中存在不正常链路,执行步骤304c。

需要说明的是,该第一站点和该第二站点中各节点之间的链路至少包括:第一站点中第一控制节点与第二站点中与第二控制节点之间的链路,第一控制节点与故障切换节点之间的链路,第一站点和第二站点之间的主链路;当然,还可以包括其他链路,本发明实施例对此不作限定。

以检测第一站点中第一节点和第二站点中第二节点之间的链路是否正常为例,对链路检测的具体方法进行说明,该方法包括:该第一节点向该第二节点发送心跳包,如果在预设时长内接收到该第二节点返回的响应信息,则确定该链路正常,如果在预设时长内未接收到该第二节点返回的响应文信息,则确定该链路不正常。其中,该预设时长可由开发人员自行设置,本发明实施例对此不作限定。当然,也可以通过其他方法检测该第一站点和该第二站点之间已建立的各节点之间的链路是否正常,本发明实施例对此也不作具体限定。

步骤304b、如果该第一站点和该第二站点中各节点之间的链路均正常,第一站点从第二站点获取第二控制节点的地址信息和故障切换节点的地址信息,检测该获取到的第二控制节点的地址信息和故障切换节点的地址信息与该路由表中的对应信息是否一致,如果不一致,执行步骤304d;如果一致,执行步骤304f。

步骤304c、如果该第一站点和该第二站点中各节点之间的链路中存在不正常链路,检测该第一站点和该第二站点之间的主链路是否正常,如果该第一站点和该第二站点之间的主链路正常,从第二站点获取第二控制节点的地址信息和故障切换节点的地址信息后,执行步骤304d;如果该第一站点和该第二站点之间的主链路不正常,执行步骤304e。

步骤304d、删除已建立的该第一控制节点与该第二控制节点之间的链路和该第一控制节点与该故障切换节点之间的链路,并根据所获取到的该第二控制节点的地址信息和该故障切换节点的地址信息,分别重新建立该第一控制节点与该第二控制节点之间的链路和该第一控制节点与该故障切换节点之间的链路;需要说明的是,由于当该第二控制节点出现宕机或者开发人员为该第二控制分配新的地址时,会导致该第二控制节点和该第一控制节点之间的链路出现 异常,因此需删除已建立的链路,重新获取该第二控制节点的地址信息和该故障节点的地址信息,并将所获取到的该第二控制节点的地址信息和该故障切换节点的地址信息存储至该路由表的对应存储空间,以达到更新该路由表的目的。

步骤304e、删除该第一站点和该第二站点之间的主链路,查询该第二站点的站点信息,根据该第二站点的站点信息,重新建立该第一站点和该第二站点之间的主链路,并分别检测该第一控制节点与该第二控制节点之间的链路和该第一控制节点与该故障切换节点之间的链路是否正常,如果该第一控制节点与该第二控制节点之间的链路和该第一控制节点与该故障切换节点之间的链路中,至少存在一个链路不正常,删除不正常的链路,并从第二站点获取该不正常的链路对应第二站点中的控制节点的地址信息以后,重新建立对应链路,并将获取到的控制节点的地址信息存储至该路由表对应存储空间中;如果该第一控制节点与该第二控制节点之间的链路和该第一控制节点与该故障切换节点之间的链路均正常,将该第二站点的站点信息存储至该路由表的对应存储空间,以更新该路由表。

步骤304f、进入下一周期的链路检测。

通过上述方法检测该第一站点和该第二站点中各节点之间的链路是否正常,能够及时发现不正常的链路,并进行相应处理,以保证链路正常,降低第二站点中控制节点之间数据转发造成时延的可能性,进而能够提高该第一站点和该第二站点之间数据传输的效率和成功率;进一步地,通过更新该路由表,能够进一步提高该第一站点和该第二站点之间数据传输的效率和成功率,进而能够进一步降低第二站点中控制节点之间数据转发造成时延的可能性。

下面对本发明的装置实施例进行介绍。本发明装置实施例可以应用上述方法。为了描述的简便,装置部分不再详细介绍,具体可以参照上述方法。

图4是本发明实施例提供的一种数据传输装置框图。存储系统包括第一站点和第二站点,所述第一站点和第二站点均包括业务节点和控制节点,每个控制节点用于控制至少一个业务节点的数据传输,该装置设置于所述第一站点的第一控制节点内,所述第一控制节点用于控制所述第一站点的第一业务节点的数据传输,参照图4,该装置包括数据写入模块401,查询模块402和数据传输模块403。

数据写入模块401,用于在接收到对第一业务节点的数据写入请求时,第一控制节点将数据写入所述第一业务节点;

查询模块402,用于根据所述第一业务节点,从路由表中查询所述第二站点中的第二控制节点,所述第二控制节点为与所述业务节点绑定的第二业务节点的控制节点,所述路由表用于存储所述第一站点和所述第二站点中的业务节点绑定关系以及节点归属关系;

数据传输模块403,用于通过所述第二控制节点和所述第一控制节点之间的链路,向所述第二控制节点发送所述数据。

在本发明提供的第一种可能实现方式中,所述装置还包括:

获取模块,用于获取所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息;

存储模块,用于将所述第二控制节点的地址信息和所述第二站点中所述第二业务节点的地址信息对应存储至所述路由表中。

在本发明提供的第二种可能实现方式中,所述路由表还包括所述第二站点中的故障切换节点的地址信息,所述故障切换节点为当所述第二控制节点崩溃后,用于控制与所述第二业务节点的数据传输的控制节点;

相应地,所述数据传输模块403还用于如果所述第二控制节点和所述第一控制节点之间的链路不正常,通过所述故障切换节点和所述第一控制节点之间的链路,向所述故障切换节点发送所述数据。

在本发明提供的第三种可能实现方式中,所述装置还包括:

链路建立模块,用于如果接收到所述第二站点返回的错误信息,重新建立所述第一控制节点和所述第二控制节点之间的链路;

所述数据传输模块403还用于通过重新建立的所述第一控制节点与所述第二控制节点之间的链路,向所述第二控制节点发送所述数据,所述错误信息用于指示所述数据发送失败。

需要说明的是:上述实施例提供的用于存储系统的数据传输的装置在用于存储系统的数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于存储系统的数据传输装置与用于存储系统的数据传输方法 实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图5是本发明实施例提供的一种数据传输的装置500的框图。例如,装置500可以被提供为一服务器。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理部件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述方法。

装置500还可以包括一个电源组件526被配置为执行装置500的电源管理,一个有线或无线网络接口550被配置为将装置500连接到网络,和一个输入输出(i/o)接口558。装置500可以操作基于存储在存储器532的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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