具体实施方式
本发明实施例解决方案主要是:在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息。
如图1所示,本发明第一实施例提出一种分布式存储系统路由方法,包括:
步骤S101,路由管理服务器在监测到主机宕机时,切换系统路由为只读备机状态;
本实施例方法涉及的分布式存储系统的架构如图2所示,该分布式存储系统包括:路由(route)管理服务器、存储服务器以及若干个接入服务器,其中:
接入服务器(proxy):负责业务接入访问,其路由信息是由定时线程去路由管理服务器拉取(定时线程的间隔可以设置默认为1秒)。
路由管理服务器(router):负责管理存储服务器的路由信息,定时去检测每个存储服务器的心跳上报状态;
存储服务器采用一主一备部署方式,包括主机(master)和备机(slave):负责服务数据的具体存储,主机和备机定时上报心跳状态到路由管理服务器。其中,主机为实际对外提供服务的节点,在主机宕机的情况下,备机自动升级为主机,对外提供服务,以保证分布式存储系统数据的一致性。
上述系统路由信息为从存储服务器至接入服务器之间的路径信息。
在本实施例中,路由管理服务器会实时监测主机是否宕机,其中,监测方法在此不做限定,比如可以通过判断主机上报心跳状态是否超时来判断主机是否宕机。
路由管理服务器在监测到主机宕机时,进入主备切换流程,本实施例在切换过程中引入备机只读的有损服务状态,保证主备切换中数据的一致性。
具体地,路由管理服务器在监测到主机宕机时,切换系统路由为只读备机状态,即只允许备机进行数据读取操作,而禁止备机进行数据写入操作,从而可以保证主备切换中数据的一致性。
然后,路由管理服务器等待接收所有接入服务器同步该只读备机状态的系统路由信息成功后的上报信息。
步骤S102,接收接入服务器同步只读备机状态的系统路由信息成功后的上报信息;
各接入服务器从路由管理服务器拉取系统路由信息,当上述只读备机状态的系统路由信息同步成功后,接入服务器向路由管理服务器上报同步成功的信息。
通过上述过程,可以保证系统不会同时存在两个主机的写操作,提高数据传输的准确性和系统性能。
步骤S103,当接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将所述备机设置为主机,并由所有接入服务器同步修改后的系统路由信息。
当路由管理服务器确认接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,路由管理服务器修改系统路由信息,将备机设置为主机。
然后,所有接入服务器同步修改后的系统路由信息,最后完成主机与备机的切换。
本实施例通过上述方案,在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息,由此在主机宕机的情况下,实现主机与备机的自动切换,保证了分布式存储系统主备切换中数据的一致性,提高了系统性能。
如图3所示,本发明第二实施例提出一种分布式存储系统路由方法,在上述图1所示的实施例的基础上,在上述步骤S101:路由管理服务器在监测到主机宕机时,切换系统路由为只读备机状态的步骤之前,还包括:
步骤S100,路由管理服务器监测主机是否宕机;若是,则进入步骤S101,否则,结束流程。
本实施例与上述第一实施例的区别在于,本实施例还包括路由管理服务器监测主机是否宕机的方案。
具体地,如图4a所示,作为一种实施方式,上述步骤S100可以包括:
步骤S1001,所述路由管理服务器定期检查所述主机上报的心跳状态;
步骤S1002,判断主机心跳上报是否超时,若是,则进入步骤S1004;否则,进入步骤S1005;
步骤S1004,判定所述主机宕机。
步骤S1005,判定所述主机未宕机。
在本实施方式中,通过路由管理服务器定期检查所述主机上报的心跳状态;当路由管理服务器检查到主机心跳上报超时时,即判定所述主机宕机,当路由管理服务器检查到主机心跳上报未超时时,表明主机心跳状态正常,即判定主机未宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。
如图4b所示,作为另一种实施方式,上述步骤S100可以包括:
步骤S1001,所述路由管理服务器定期检查所述主机上报的心跳状态;
步骤S1002,判断主机心跳上报是否超时,若是,则进入步骤S1003;否则,进入步骤S1005;
步骤S1003,检查所述备机上报的心跳状态;当检查到所述备机上报的心跳状态正常时,进入步骤S1006;否则,结束流程;
步骤S1006,所述路由管理服务器向所述主机发送探测包,进入步骤S1007;
步骤S1007,判断探测包是否返回;若探测包未返回,则进入步骤S1004;若有探测包返回,则进入步骤S1005;
步骤S1004,判定所述主机宕机。
步骤S1005,判定所述主机未宕机。
在本实施方式中,在上述图4a所示的实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当路由管理服务器检查到所述主机心跳上报超时时,检查备机上报的心跳状态;当路由管理服务器检查到备机上报的心跳状态正常时,路由管理服务器会尝试向主机发送探测包;当探测包未返回时,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,相比图4a所示的实施方式,本实施方式对主机的宕机检查更准确。
如图4c所示,作为另一种实施方式,上述步骤S100可以包括:
步骤S1001,所述路由管理服务器定期检查所述主机上报的心跳状态;
步骤S1002,判断主机心跳上报是否超时,若是,则进入步骤S1003;否则,进入步骤S1005;
步骤S1003,检查所述备机上报的心跳状态;当检查到所述备机上报的心跳状态正常时,进入步骤S1006;否则,进入步骤S1005;
步骤S1006,所述路由管理服务器向所述主机发送探测包,进入步骤S1007;
步骤S1007,判断探测包是否返回;若探测包未返回,则进入步骤S1008;若有探测包返回,则进入步骤S1005;
步骤S1008,从接入层选取若干接入服务器向所述主机发送探测包;若没有探测包返回,则进入步骤S1004;若有探测包返回,则进入步骤S1005;
步骤S1004,判定所述主机宕机。
步骤S1005,判定所述主机未宕机。
在本实施方式中,在上述图4b所示的实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当所述路由管理服务器向所述主机发送探测包,且所述探测包未返回时,路由管理服务器会随机从接入层选取若干接入服务器向主机发送探测包,若没有探测包返回,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,相比图4b所示的实施方式,本实施方式对主机的宕机检查更准确。
本实施例通过上述方案,通过对主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求;此外,在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息,由此在主机宕机的情况下,实现主机与备机的自动切换,保证了分布式存储系统主备切换中数据的一致性,提高了系统性能。
如图5所示,本发明第一实施例提出一种分布式存储系统路由管理服务器,包括:第一切换模块201、信息接收模块202、第二切换模块203,其中:
第一切换模块201,用于在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;
信息接收模块202,用于接收接入服务器同步只读备机状态的路由信息成功后的上报信息;
第二切换模块203,用于当接收到所有接入服务器成功同步所述只读备机状态的路由信息的上报信息时,修改系统路由信息,将所述备机设置为主机,并由所有接入服务器同步修改后的系统路由信息。
本实施例路由管理服务器所在的分布式存储系统的架构如图2所示,该分布式存储系统包括:路由(route)管理服务器、存储服务器以及若干个接入服务器,其中:
接入服务器(proxy):负责业务接入访问,其路由信息是由定时线程去路由管理服务器拉取(定时线程的间隔可以设置默认为1秒)。
路由管理服务器(router):负责管理存储服务器的路由信息,定时去检测每个存储服务器的心跳上报状态;
存储服务器采用一主一备部署方式,包括主机(master)和备机(slave):负责服务数据的具体存储,主机和备机定时上报心跳状态到路由管理服务器。其中,主机为实际对外提供服务的节点,在主机宕机的情况下,备机自动升级为主机,对外提供服务,以保证分布式存储系统数据的一致性。
上述系统路由信息为从存储服务器至接入服务器之间的路径信息。
在本实施例中,路由管理服务器会实时监测主机是否宕机,其中,监测方法在此不做限定,比如可以通过判断主机上报心跳状态是否超时来判断主机是否宕机。
路由管理服务器在监测到主机宕机时,进入主备切换流程,本实施例在切换过程中引入备机只读的有损服务状态,保证主备切换中数据的一致性。
具体地,路由管理服务器在监测到主机宕机时,通过第一切换模块201切换系统路由为只读备机状态,即只允许备机进行数据读取操作,而禁止备机进行数据写入操作,从而可以保证主备切换中数据的一致性。
然后,路由管理服务器等待接收所有接入服务器同步该只读备机状态的系统路由信息成功后的上报信息。
各接入服务器从路由管理服务器拉取系统路由信息,当上述只读备机状态的系统路由信息同步成功后,接入服务器向路由管理服务器上报同步成功的信息。路由管理服务器通过信息接收模块202接收接入服务器同步只读备机状态的路由信息成功后的上报信息。通过上述过程,可以保证系统不会同时存在两个主机的写操作,提高数据传输的准确性和系统性能。
当路由管理服务器确认接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,通过第二切换模块203修改系统路由信息,将备机设置为主机。
然后,所有接入服务器同步修改后的系统路由信息,最后完成主机与备机的切换。
本实施例通过上述方案,在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息,由此在主机宕机的情况下,实现主机与备机的自动切换,保证了分布式存储系统主备切换中数据的一致性,提高了系统性能。
如图6所示,本发明第二实施例提出一种分布式存储系统路由管理服务器,在上述第一实施例的基础上,还包括:
宕机监测模块200,用于监测主机是否宕机。
本实施例与上述第一实施例的区别在于,本实施例还包括路由管理服务器监测主机是否宕机的方案。
具体地,如图7a所示,作为一种实施方式,所述宕机监测模块200可以包括:主机心跳检查单元2001及判断单元2002,其中:
主机心跳检查单元2001,用于定期检查所述主机上报的心跳状态;
判断单元2002,用于当所述主机心跳检查单元检查到主机心跳上报超时时,判定所述主机宕机。
在本实施方式中,通过路由管理服务器定期检查所述主机上报的心跳状态;当路由管理服务器检查到主机心跳上报超时时,即判定所述主机宕机,当路由管理服务器检查到主机心跳上报未超时时,表明主机心跳状态正常,即判定主机未宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。
如图7b所示,作为另一种实施方式,在上述图7a所示的实施方式的基础上,所述宕机监测模块200还可以包括:
备机心跳检查单元2003,用于当所述主机心跳检查单元检查到所述主机心跳上报超时时,检查所述备机上报的心跳状态;
探测包发送单元2004,用于当所述备机心跳检查单元检查到所述备机上报的心跳状态正常时,向所述主机发送探测包;
所述判断单元2002,还用于当所述探测包未返回时,判定所述主机宕机。
在本实施方式中,在上述图4a所示的实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当路由管理服务器检查到所述主机心跳上报超时时,检查备机上报的心跳状态;当路由管理服务器检查到备机上报的心跳状态正常时,路由管理服务器会尝试向主机发送探测包;当探测包未返回时,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,相比图4a所示的实施方式,本实施方式对主机的宕机检查更准确。
如图7c所示,作为再一种实施方式,在上述图7b所示的实施方式的基础上,所述宕机监测模块200还可以包括:
选取单元2005,用于当所述探测包发送单元2004向所述主机发送探测包,且所述探测包未返回时,从接入层选取若干接入服务器向所述主机发送探测包;若没有探测包返回,则由所述判断单元2003判定所述主机宕机。
在本实施方式中,在上述图4b所示的实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当所述路由管理服务器向所述主机发送探测包,且所述探测包未返回时,路由管理服务器会随机从接入层选取若干接入服务器向主机发送探测包,若没有探测包返回,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,相比图4b所示的实施方式,本实施方式对主机的宕机检查更准确。
本实施例通过上述方案,通过对主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求;此外,在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息,由此在主机宕机的情况下,实现主机与备机的自动切换,保证了分布式存储系统主备切换中数据的一致性,提高了系统性能。
此外,本发明较佳实施例还提出一种分布式存储系统,包括:主机、至少一备机、至少一接入服务器,以及路由管理服务器,所述路由管理服务器可以为上述实施例所述的所述路由管理服务器,该路由管理服务器分别与所述主机、所述至少一备机、所述至少一接入服务器通信连接,其中:
所述主机,用于存储服务数据并通过所述路由管理服务器对外提供服务;
所述至少一备机,用于存储服务数据,在所述主机宕机时,由所述路由管理服务器控制切换为主机对外提供服务;
所述至少一接入服务器,用于从所述路由管理服务器获取系统路由信息,处理业务接入访问;以及在所述主机宕机时,同步只读备机状态的系统路由信息并上报所述路由管理服务器,在所述备机切换为主机后,同步修改后的系统路由信息。
进一步地,所述主机还用于定时上报心跳状态至所述路由管理服务器;
所述至少一备机还用于定时上报心跳状态至所述路由管理服务器。
具体地,本实施例路由管理服务器所在的分布式存储系统的架构可以如图2所示,该分布式存储系统包括:路由(route)管理服务器、存储服务器以及若干个接入服务器,其中:
接入服务器(proxy):负责业务接入访问,其路由信息是由定时线程去路由管理服务器拉取(定时线程的间隔可以设置默认为1秒)。
路由管理服务器(router):负责管理存储服务器的路由信息,定时去检测每个存储服务器的心跳上报状态;
存储服务器采用一主一备部署方式,包括主机(master)和备机(slave):负责服务数据的具体存储,主机和备机定时上报心跳状态到路由管理服务器。其中,主机为实际对外提供服务的节点,在主机宕机的情况下,备机自动升级为主机,对外提供服务,以保证分布式存储系统数据的一致性。
上述系统路由信息为从存储服务器至接入服务器之间的路径信息。
在本实施例中,首先,路由管理服务器会实时监测主机是否宕机,可以采用以下方式:
作为一种实施方式,通过路由管理服务器定期检查所述主机上报的心跳状态;当路由管理服务器检查到主机心跳上报超时时,即判定所述主机宕机,当路由管理服务器检查到主机心跳上报未超时时,表明主机心跳状态正常,即判定主机未宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。
作为另一种实施方式,在上述实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当路由管理服务器检查到所述主机心跳上报超时时,检查备机上报的心跳状态;当路由管理服务器检查到备机上报的心跳状态正常时,路由管理服务器会尝试向主机发送探测包;当探测包未返回时,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,上述实施方式,本实施方式对主机的宕机检查更准确。
作为再一种实施方式,在上述实施方式的基础上,在路由管理服务器监测主机是否宕机的过程中,当所述路由管理服务器向所述主机发送探测包,且所述探测包未返回时,路由管理服务器会随机从接入层选取若干接入服务器向主机发送探测包,若没有探测包返回,则判定主机宕机。
由此通过上述方案,实现了主机宕机检查,使得系统可以根据宕机检查结果判断是否进入主备切换流程,从而满足了系统需求。此外,相比上述实施方式,本实施方式对主机的宕机检查更准确。
后续过程中,路由管理服务器在监测到主机宕机时,进入主备切换流程,本实施例在切换过程中引入备机只读的有损服务状态,保证主备切换中数据的一致性。
具体地,路由管理服务器在监测到主机宕机时,切换系统路由为只读备机状态,即只允许备机进行数据读取操作,而禁止备机进行数据写入操作,从而可以保证主备切换中数据的一致性。
然后,路由管理服务器等待接收所有接入服务器同步该只读备机状态的系统路由信息成功后的上报信息。
各接入服务器从路由管理服务器拉取系统路由信息,当上述只读备机状态的系统路由信息同步成功后,接入服务器向路由管理服务器上报同步成功的信息。
通过上述过程,可以保证系统不会同时存在两个主机的写操作,提高数据传输的准确性和系统性能。
当路由管理服务器确认接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,路由管理服务器修改系统路由信息,将备机设置为主机。
然后,所有接入服务器同步修改后的系统路由信息,最后完成主机与备机的切换。
本实施例通过上述方案,在路由管理服务器监测到主机宕机时,切换系统路由为只读备机状态;当路由管理服务器接收到所有接入服务器成功同步所述只读备机状态的系统路由信息的上报信息时,修改系统路由信息,将备机设置为主机,并由所有接入服务器同步修改后的系统路由信息,由此在主机宕机的情况下,实现主机与备机的自动切换,保证了分布式存储系统主备切换中数据的一致性,提高了系统性能。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。具体地,图6、图7所述的分布式存储系统路由管理服务器所对应的程序指令可以存储在路由管理服务器的可读存储介质中,并被其中的至少一个处理器执行,以实现图1至图2所述的分布式存储系统路由方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。