双控制器上文件服务操作的同步方法 【技术领域】
本发明涉及一种文件服务操作的控制方法,特别是涉及一种双控制器上文件服务操作的同步方法。
背景技术
存储区域网络(SAN)的硬件由两个控制器组成,每个控制器相当于一个完整的系统,可以独立运行和工作。只要有一个控制器处于正常运行状态,SAN就能够正常工作。而且通过两个控制器的配合,用户能够对任何一个控制器进行更换、重启、关闭等操作而不影响SAN的正常工作。但同时也需要处理两个控制器上的信息同步等问题。文件服务作为双控制器上的一个重要应用,也需要保证双控制器上用户操作的同步,用户更新的配置文件要能得到及时更新并在双控制器上进行同步。
目前,对于双控制器上文件服务的失效切换(Fail Over),基本上都是采用(High Availability,HA)(高可用性)集群来实现的。HA的方式连接稳定,但需要一些额外的硬件,例如需要光纤通道等来作为心跳线而连接组成集群的两个控制器,这样的架构存在资源上的冗余和浪费的问题。
因此,有必要提供一种双控制器上文件服务操作的同步方法,以解决上述问题。
【发明内容】
本发明的目的在于提供一种双控制器上文件服务操作的同步方法,用于在第一控制器和第二控制器之间同步文件服务的操作,其通过第一数据库存储与所述第一控制器的文件服务相关的信息,通过第二数据库存储与所述第二控制器的文件服务相关的信息,所述方法包含以下步骤:提供第一数据库储存与第一控制器所提供的服务的相关信息;提供第二数据库储存与第二控制器所提供的服务的相关信息;在第一控制器和第二控制器中各运行心跳(Heart Beat)监控程序,用以相互监控第一控制器与第二控制器的运作状态;选择第一控制器或第二控制器其中之一,将其定义为本地控制器,另一个将其定义为远程控制器;当该本地控制器的设置信息或数据发生异动时通过远程过程调用(RemoteProcedure Call,RPC)对另一远程控制器的数据库进行更新操作;再完成对另一远程控制器的数据库的更新操作后,更新本地控制器的数据库。
根据本发明的双控制器上文件服务操作的同步方法,其进一步包含,当所述第一控制器和所述第二控制器之间的系统配置信息不一致时,执行以下步骤:当发生控制器切换时,通过正在运行的控制器来同步另一个控制器;当两个控制器同时冷启动,则通过位于插槽0的控制器同步另一个控制器,延迟位于插槽1的控制器的启动;以及当位于插槽0的控制器启动失败时,启动位于插槽1的控制器。
本发明所提供的双控制器上文件服务操作的同步方法,能够在给系统带来最小的额外负担的前提下,满足双控制器上文件服务的操作需要。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
【附图说明】
图1为本发明的结构框图;
图2为本发明的方法流程图;
图3为本发明的对两个控制器的系统配置信息进行一致化处理的方法流程图;
图4为本发明的更新Snmp配置文件的方法流程图。
【具体实施方式】
下面结合附图对本发明的结构原理和工作原理作具体的描述:
请参考图1,其为本发明的结构框图。如图1所示,第一控制器110连接有第一数据库111,第二控制器120连接有第二数据库121,其中第一数据库111、第二数据库121可以为各种类型地数据库,尤其是轻量级数据库,如SQLLite。
此外,第一控制器110和第二控制器120通过心跳线130相互连接。在第一控制器110和第二控制器120正常运行的过程中,系统通过软件来实现心跳协议,以相互监控对方的状态。当检测到某一控制器出现异常时,通知相关模块按照用户预先订制的接管策略进行工作状态切换,接管出现异常的控制器的工作。心跳时间间隔0.5秒,并且在控制器出现异常3秒内在另一个控制器确定状态并开始响应。
现在,请参考图2,其为本发明的方法流程图。在此,假设需要在第一控制器110上进行文件服务的操作。下面将描述其具体的实现过程。
首先,提供第一数据库储存与第一控制器所提供的服务的相关信息(步骤210)。提供第二数据库储存与第二控制器所提供的服务的相关信息(步骤220)。在第一控制器和第二控制器中各运行心跳(Heart Beat)监控程序(步骤230),用以相互监控第一控制器与第二控制器的运作状态。选择第一控制器或第二控制器其中之一,将其定义为本地控制器,另一个将其定义为远程控制器(步骤240)。当该本地控制器的设置信息或数据发生异动时通过远程过程调用(Remote Procedure Call,RPC)对另一远程控制器的数据库进行更新操作(步骤250)。再完成对另一远程控制器的数据库的更新操作后,更新本地控制器的数据库(步骤260),从而保证双控制器之间的操作同步。
现在,请参考图3,其为本发明的对两个控制器的系统配置信息进行一致化处理的方法流程图。当因为用户操作的原因而造成两个控制器的系统配置信息不一致时,将通过下述过程来进行检查和一致化处理。
当发生控制器切换时,通过正在运行的控制器来同步另一个控制器(步骤300)。当两个控制器同时冷启动,则通过位于插槽0的控制器同步另一个控制器,并延迟位于插槽1的控制器的启动(步骤302)。而当位于插槽0的控制器启动失败时,则启动位于插槽1的控制器(步骤304)。
现在,请参考图4,其为本发明的更新Snmp配置文件的方法流程图。图4示出了本发明的一种具体应用,下面将描述其实现过程。在此,假设在第一控制器110上执行更新Snmp配置文件的操作。
首先,判断第二控制器120是否为CONTROLLER_STATUS_ACTIVE(步骤400),如果不是,则结束该操作。如果是,通过RPC调用更新第二数据库121中Snmp的信息(步骤402),如果失败则结束该操作。接下来,通过RPC调用在第二控制器120读取第二数据库121中的Snmp信息并生成配置文件,重新启动Snmp服务(步骤404),如果失败则结束该操作。接着,更新第一数据库111中Snmp的信息(步骤406),如果失败则结束该操作。最后,在第一控制器110读取第一数据库111中的Snmp信息并生成配置文件,重新启动Snmp服务(步骤408)。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。