技术简介:
本专利针对多路径管理软件升级需中断业务的问题,提出通过并行处理新旧路径管理驱动(PMD)的方案。在升级过程中,应用服务器继续使用原PMD处理历史请求,同时注册并启用新PMD处理后续请求,待旧请求处理完毕后卸载原PMD,实现无中断升级。该方法通过多路径框架驱动(MFD)协调新旧PMD的切换,确保业务连续性。
关键词:软件升级,多路径管理
软件升级的方法及装置制造方法
【专利摘要】本发明实施例涉及一种软件升级的方法及装置。当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一PMD处理升级之前接收到的第一数据访问请求;获取所述第二PMD;对所述第二PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二PMD;利用所述第二PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;当所述第一数据访问请求处理完毕时,卸载所述第一PMD。从而可以保证在不中断数据访问请求处理的情况下,升级多路径管理软件。
【专利说明】软件升级的方法及装置
【技术领域】
[0001]本发明涉及信息【技术领域】,尤其涉及一种软件升级的方法及装置。
【背景技术】
[0002]在IT领域,在应用服务器与存储阵列组成的应用环境中,为了避免应用服务器与存储阵列之间的一条链路出现故障时应用程序上的业务便中断,并且为了提高数据传输的可靠性,在应用服务器与存储阵列之间一般采用多条链路(称为路径)相连的方式。运行在应用服务器的操作系统内核的多路径管理软件就负责管理多条路径,在一条路径发生故障时可以把业务流切换到其他路径,保证业务不中断,但是多路径管理软件通常需要升级。
[0003]现有技术中,多路径管理软件运行在应用服务器的操作系统的内核态(称为内核驱动程序),而对于内核驱动程序,如果要升级,通常需要中断与待升级内核驱动程序相依赖的业务,对于有的内核驱动程序还需要重启系统才能生效,长期以来多路径管理软件的升级均需重启主机,业务必然会中断一次才能完成多路径管理软件升级。
【发明内容】
[0004]本发明实施例提供了一种软件升级的方法及装置,以实现在不中断数据访问请求处理的情况下,升级多路径管理软件。
[0005]第一方面,提供了一种软件升级的方法,该方法应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述方法用于将所述第一 PMD升级成第二 PMD,该方法包括:
[0006]当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一PMD处理升级之前接收到的第一数据访问请求;
[0007]获取所述第二 PMD ;
[0008]对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD ;
[0009]利用所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;
[0010]当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
[0011]根据第一方面,在第一方面的第一种可能的实现方式中,所述在对所述第二 PMD进行注册之前,所述方法还包括:
[0012]向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据,根据所述全局内存数据对所述第二 PMD进行初始化。
[0013]根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据包括:
[0014]对所述第一PMD、所述MFD和所述第二PMD进行兼容性检查,当符合兼容性要求时,向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据。
[0015]第二方面,提供了一种软件升级的方法,该方法应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述方法用于将所述第一 PMD升级成第二 PMD,该方法包括:
[0016]当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一PMD处理升级之前接收到的第一数据访问请求;
[0017]利用所述MFD处理后续接收到的第二数据访问请求;
[0018]当所述第一数据访问请求处理完毕时,卸载所述第一 PMD ;
[0019]获取所述第二 PMD;
[0020]对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求;
[0021]利用所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
[0022]第三方面,提供了一种软件升级的装置,该装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,该装置包括:第一处理单元、获取单元、注册单元、第二处理单元和卸载单元;
[0023]所述第一处理单元,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;
[0024]所述获取单元,用于获取所述第二 PMD ;
[0025]所述注册单元,用于对所述获取单元获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD ;
[0026]所述第二处理单元,用于利用所述注册单元注册后的所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;
[0027]所述卸载单元,用于当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
[0028]根据第三方面,在第三方面的第一种可能的实现方式中,所述装置还包括:发送单元,用于向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据,根据所述全局内存数据对所述第二 PMD进行初始化。
[0029]根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述发送单元具体用于:[0030]对所述第一PMD、所述MFD和所述第二PMD进行兼容性检查,当符合兼容性要求时,向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据。
[0031]第四方面,提供了一种软件升级的装置,该装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,该装置包括:第一处理单元、第二处理单元、卸载单元、获取单元、注册单元和第三处理单元;
[0032]所述第一处理单元,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;
[0033]所述第二处理单元,用于利用所述MFD处理后续接收到的第二数据访问请求;
[0034]所述卸载单元,当所述第一处理单元处理的第一数据访问请求处理完毕时,卸载所述第一 PMD ;
[0035]所述获取单元,用于获取所述第二 PMD ;
[0036]所述注册单元,用于对所述获取单元获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求;
[0037]所述第三处理单元,利用所述注册单元注册的所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
[0038]本发明实施例提供的软件升级的方法及装置,当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;获取所述第二 PMD ;对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD ;利用所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。这种由第一 PMD处理多路径管理软件升级之前接收到的第一数据访问请求,并且由第二 PMD同时处理后续接收到的第二数据访问请求方式,且在第一数据访问请求处理完毕时,卸载第一 PMD的方式,保证了在将第一 PMD升级为第二 PMD时,即升级多路径管理软件时,不中断数据访问请求的处理。
【专利附图】
【附图说明】
[0039]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本发明提供的多路径管理软件逻辑示意图;
[0041]图2为本发明实施一提供的软件升级的方法流程图;
[0042]图3为本发明实施例一提供的软件升级的方法示意图之一;
[0043]图4为本发明实施例一提供的软件升级的方法示意图之二 ;
[0044]图5为本发明实施例一提供的软件升级的方法示意图之三;[0045]图6为本发明实施例一提供的软件升级的方法示意图之四;
[0046]图7为本发明实施二提供的软件升级的方法流程图;
[0047]图8为本发明实施例二提供的软件升级的方法示意图之一;
[0048]图9为本发明实施例二提供的软件升级的方法示意图之二 ;
[0049]图10为本发明实施例二提供的软件升级的方法示意图之三;
[0050]图11为本发明实施例二提供的软件升级的方法示意图之四;
[0051]图12为本发明实施例三提供的软件升级的装置示意图;
[0052]图13为本发明实施例四提供的软件升级的装置示意图。
【具体实施方式】
[0053]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0054]在实际的应用环境中,通常存储系统包括应用服务器和存储设备,应用服务器和所述存储设备之间通过多条路径进行通信,其中应用服务器中包含多路径管理软件,而多路径管理软件又包括两个驱动:多路径框架驱动(Multipath Framework Driver,MFD)和路径管理驱动(Path Management Driver, PMD),多路径框架驱动与操作系统强依赖但是与多路径业务特性功能无关,这个驱动在多路径管理软件升级过程中维持不变;路径管理驱动一般可以为多个,它与多路径业务功能强相关但是与操作系统不依赖,在多路径管理驱动升级过程中进行更新。
[0055]图1为本发明提供的多路径管理软件逻辑示意图。图1中,多路径管理软件10包括两个驱动:多路径框架驱动101和路径管理驱动102。多路径框架驱动101与操作系统上下驱动层进行IO直接交互,实现与系统设备栈关联的功能,举例为,在应用服务器与存储设备组成的应用环境中,当在存储设备上新增或者删除LUN或者磁盘空间时,多路径框架驱动101即可捕获到该新增或者删除磁盘空间的事件,然后通知路径管理驱动102去新建或删除存储设备与应用服务器之间的物理路径;多路径框架驱动101同时还实现一个很重要的功能,即对多路径管理驱动中所有全局数据的管理,包括内存申请和释放,通过对外提供接口让路径管理驱动102获取全局内存地址和配置数据,但是路径管理驱动102只使用但不负责这些数据的生命周期。
[0056]路径管理驱动102,不与系统具体驱动及设备栈层次直接关联,解除了与系统的耦合,相应地,升级多路径管理软件10时,只需要升级路径管理驱动102。路径管理驱动102是一堆业务功能函数集,实现多路径的业务逻辑功能,包括:路径管理,举例为,物理路径的上报删除,即在接收到多路径框架驱动101发送的管理路径的通知时,新建或删除存储设备与应用服务器之间的物理路径;选路负载,举例为,通过轮询算法、最小队列深度算法或最小任务选路算法去有效利用各条物理路径,以达到负载均衡;错误处理,举例为,通过错误码翻译、I/O重试和I/O倒换等进行错误处理;路径健康管理,周期性对各条物理路径进行检查,对出现故障的路径进行隔离并降级检查,恢复已修复好的路径;IO切换,举例为,在已存在的η条物理路径中,第i条路径出现故障,则将原本通过第i条路径转发的业务流重定向至其他路径进行业务流的转发。
[0057]需要说明的是,在多路径管理软件10中包括多个路径管理驱动102时,各路径管理驱动102通过其提供的对外接口注册关于各路径管理驱动102的信息,在有业务流下发时,多路径框架驱动101根据一定的管理规则(举例为,在某一时刻,调用某个接口)调用不同的接口,以实现对各路径管理驱动102的调用,即在一个多路径管理驱动中可同时运行多个路径管理驱动102,从而为多路径管理软件升级不中断业务提供了基础。
[0058]图2为本发明实施一提供的软件升级的方法流程图,该方法用于将第一路径管理驱动升级成第二路径管理驱动,如图2所示,本实施例具体包括以下步骤:
[0059]步骤210,当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求。
[0060]参见图3所示的本发明实施例一提供的软件升级的方法示意图之一,图3中,多路径管理软件30包括两个驱动:多路径框架驱动MFD301和第一路径管理驱动PMD302,对多路径管理软件30的升级即为对第一路径管理驱动302的升级。具体地,多路径框架驱动301定义一个运行时多路径内存数据管理的数据结构,它通过但不限于虚拟磁盘列表和管理的存储产品信息列表将多路径管理软件30运行时的全局内存数据统一管理起来。这样可以保证在多路径管理软件30包括多个路径管理驱动,且在升级其中一个路径管理驱动时,运行时全局公共内存数据仍然可用,其他路径管理驱动能够获取得到,这种多个路径管理驱动共享的同一套多路径内存数据可实现业务流的并行处理,还可以实现在不影响业务流的下发和返回的情况下实现将旧路径管理驱动升级成新路径管理驱动,此处,对业务流的处理通过对数据访问请求的处理来实现,而通常的数据访问请求即为I/O请求。此外,多路径框架驱动301还需定义一个管理I/O的数据结构,该结构包含指向系统I/O结构体的指针,还包含一个记录I/O处理的路径管理驱动的HOOK指针,该HOOK指针即为路径管理驱动对外提供的函数接口,这样的设计是为了保证在有多个路径管理驱动时,也即可以调用多个路径管理驱动同时处理I/O时,保证I/O的下发和返回都是同一个路径管理驱动处理,满足升级过程中,I/O从升级前的路径管理驱动平滑过渡到升级后的路径管理驱动而业务流的转发不受影响的要求。具体地,当需要对所述多路径管理软件30进行升级时,应用服务器继续利用所述第一路径管理驱动处理升级之前接收到的第一数据访问请求,具体实现为,多路径框架驱动301定义一个管理I/O的数据结构,该数据结构中包含一个记录I/O处理的第一路径管理驱动302的HOOK指针,该HOOK指针即为第一路径管理驱动302对外提供的函数接口,记录为第一接口,通过第一路径管理驱动302对应的第一接口调用第一路径管理驱动302 (该第一接口是由第一路径管理驱动302事先注册到多路径框架驱动301中),然后该第一路径管理驱动302选择相应的物理路径进行第一数据访问请求的处理,其中第一路径管理驱动302为升级前的路径管理驱动。
[0061]需要说明的是,对于多路径管理软件30运行时所需的内存数据,多路径框架驱动301通过定义数据结构的方式对上述内存数据进行管理,可以将上述内存数据分为基本部分和扩展部分,基本部分包含对象基本信息等跨版本的公共成员,足以实现业务流处理过程中最简单的选路,这部分数据一直保持不变;扩展部分包存支撑复杂路径管理功能的,很有可能随版本升级而修改新增成员变量,为各版本路径管理驱动私有部分,由各路径管理驱动自己构造维护,适应变化。
[0062]步骤220,获取所述第二 PMD。
[0063]参见图4所示的本发明实施例一提供的软件升级的方法示意图之二,图4中,应用服务器先获取第二路径管理驱动403。[0064]步骤230,对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD。
[0065]图4中,应用服务器在获取到第二路径管理驱动403之后,检查多路径框架驱动401、第一路径管理驱动402和第二路径管理驱动403的兼容性,当符合兼容性要求时,将第二路径管理驱动403加载到操作系统的内核中,并向第二路径管理驱动403发送初始化指示信息;第二路径管理驱动403接收到上述初始化指示信息之后,通过所述多路径框架驱动401对外提供的接口获取多路径管理软件40运行时所需的全局内存数据,根据上述全局内存数据对自身进行初始化,完成初始化的第二路径管理驱动403就具备了处理数据访问请求的能力,包括I/O的下发和返回;最后对第二路径管理驱动403进行注册,具体地,第二路径管理驱动403向路径框架驱动401发送注册接口请求信息,路径框架驱动401接收到请求信息后,可在其定义的管理I/O的数据结构中新增一个I/O处理的第二路径管理驱动403的HOOK指针(记录为第二接口),之后多路径框架驱动401通过第二路径管理驱动403对应的第二接口,即可实现将后续接收到的第二数据访问请求转发给第二路径管理驱动 403。
[0066]步骤240,利用所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求。
[0067]参见图5所示的本发明实施例一提供的软件升级的方法示意图之三,图5中,在对第二路径管理驱动503进行注册之后,多路径框架驱动501将新注册的第二接口标识为优先使用的状态,以实现当应用服务器接收到后续的第二数据访问请求时,多路径框架驱动501通过标识为优先使用状态的第二接口向第二路径管理驱动503发送第二数据访问请求,由第二路径管理驱动503处理接收到的第二数据访问请求。图5中,第一路径管理驱动502和第二路径管理驱动503同时在处理数据访问请求,因为它们都可以通过多路径框架驱动501对外提供的接口获取全局内存数据。上述这种第一路径管理驱动502和第二路径管理驱动503同时在处理数据访问请求的方式,保证了不中断数据访问请求处理的情况下,升级多路径管理软件。
[0068]需要说明的是,上述过程中,当第二路径管理驱动503向多路径框架驱动501注册第二接口之后,多路径框架驱动501通过修改新注册的第二接口的状态实现后续数据访问请求的处理,多路径框架驱动501还可通过其他的管理规则实现后续数据访问请求的处理,举例为,可以通过设置时间段的方式,即某一时刻调用某个固定的接口。
[0069]步骤250,当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
[0070]参见图6所示的本发明实施例一提供的软件升级的方法示意图之四,图6中,在多路径框架驱动601重定向新业务流之后,即通过新注册的第二接口向第二路径管理驱动603发送第二数据访问请求,并由第二路径管理驱动603处理接收到的第二数据访问请求时,应用服务器向第一路径管理驱动602发送注销命令,由第一路径管理驱动602注销与多路径框架驱动601之间的第一接口。具体地,在第一路径管理驱动602接收到注销命令之后,判断其之前处理的第一数据访问请求是否全部处理完毕,如果没有全部处理完毕,则继续判断;如果全部处理完毕,则表示第一路径管理驱动602处理完成了所有的业务流,然后第一路径管理驱动602注销与多路径框架驱动601之间的第一接口,清理其在多路径框架驱动601中的内部数据,并设置停工标记为已停工。应用服务器定期查询第一路径管理驱动602的停工标记,当该停工标记为已停工时,表示第一数据访问请求已经全部处理完毕,卸载第一路径管理驱动602,整个多路径管理软件升级完成。
[0071]图7为本发明实施二提供的软件升级的方法流程图,该方法用于将第一路径管理驱动升级成第二路径管理驱动,如图7所示,本实施例具体包括以下步骤:
[0072]步骤710,当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求。
[0073]参见图8所示的本发明实施例二提供的软件升级的方法示意图之一,图8中,多路径管理软件80包括两个驱动:多路径框架驱动MFD801和第一路径管理驱动PMD802,对多路径管理软件80的升级即为对第一路径管理驱动802的升级。具体地,多路径框架驱动801定义一个运行时多路径内存数据管理的数据结构,它通过但不限于虚拟磁盘列表和管理的存储产品信息列表将多路径管理软件80运行时的全局内存数据统一管理起来。这样可以保证在多路径管理软件80包括多个路径管理驱动,且在升级其中一个路径管理驱动时,运行时全局公共内存数据仍然可用,其他路径管理驱动能够获取得到,这种多个路径管理驱动共享的同一套多路径内存数据可实现业务流的并行处理,还可以实现在不影响业务流的下发和返回的情况下实现将旧路径管理驱动升级成新路径管理驱动,此处,对业务流的处理通过对数据访问请求的处理来实现,而通常的数据访问请求即为I/O请求。此外,多路径框架驱动301还需定义一个管理I/O的数据结构,该结构包含指向系统I/O结构体的指针,还包含一个记录I/O处理的路径管理驱动的HOOK指针,该HOOK指针即为路径管理驱动对外提供的函数接口,这样的设计是为了保证在有多个路径管理驱动时,也即可以调用多个路径管理驱动同时处理I/O时,保证I/O的下发和返回都是同一个路径管理驱动处理,满足升级过程中,I/O从升级前的路径管理驱动平滑过渡到升级后的路径管理驱动而业务流的转发不受影响的要求。具体地,当需要对所述多路径管理软件80进行升级时,应用服务器继续利用所述第一路径管理驱动处理升级之前接收到的第一数据访问请求,具体实现为,多路径框架驱动801定义一个管理I/O的数据结构,该数据结构中包含一个记录I/O处理的第一路径管理驱动802的HOOK指针,该HOOK指针即为第一路径管理驱动802对外提供的函数接口,记录为第一接口,通过第一路径管理驱动802对应的第一接口调用第一路径管理驱动802 (该第一接口是由第一路径管理驱动802事先注册到多路径框架驱动801中),然后该第一路径管理驱动802选择相应的物理路径进行第一数据访问请求的处理,其中第一路径管理驱动802为升级前的路径管理驱动。
[0074]需要说明的是,对于多路径管理软件80运行时所需的内存数据,多路径框架驱动801通过定义数据结构的方式对上述内存数据进行管理,可以将上述内存数据分为基本部分和扩展部分,基本部分包含对象基本信息等跨版本的公共成员,足以实现业务流处理过程中最简单的选路,这部分数据一直保持不变;扩展部分包存支撑复杂路径管理功能的,很有可能随版本升级而修改新增成员变量,为各版本路径管理驱动私有部分,由各路径管理驱动自己构造维护,适应变化。
[0075]步骤720,利用所述MFD处理后续接收到的第二数据访问请求。
[0076]参见图9所示的本发明实施例二提供的软件升级的方法示意图之二,图9中,应用服务器先检查多路径框架驱动901、第一路径管理驱动902和第二路径管理驱动903的兼容性,当符合兼容性要求时,利用多路径框架驱动901处理后续接收到的第二数据访问请求。具体实现为,多路径框架驱动901管理I/O的数据结构中还包含一个指向系统I/O结构体的指针,通过该指针,多路径框架驱动901可以直接选择相应的物理路径,进行上述I/O的下发和返回。
[0077]步骤730,当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
[0078]图9中,在利用所述多路径框架驱动901处理后续接收到的第二数据访问请求之后,应用服务器向第一路径管理驱动902发送注销命令,由第一路径管理驱动902注销与多路径框架驱动901之间的第一接口。具体地,在第一路径管理驱动902接收到注销命令之后,判断其之前处理的第一数据访问请求是否全部处理完毕,如果没有全部处理完毕,则继续判断;如果全部处理完毕,则表示第一路径管理驱动902处理完成了所有的业务流,然后第一路径管理驱动902注销与多路径框架驱动901之间的第一接口,清理其在多路径框架驱动901中的内部数据,并设置停工标记为已停工。应用服务器定期查询第一路径管理驱动902的停工标记,当该停工标记为已停工时,表示第一数据访问请求已经全部处理完毕,卸载第一路径管理驱动902。
[0079]步骤730,获取所述第二 PMD。
[0080]参见图10所示的本发明实施例二提供的软件升级的方法示意图之三,图10中,应用服务器获取第二路径管理驱动1003。
[0081]步骤740,对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求。
[0082]图10中,应用服务器在获取到第二路径管理驱动1003之后,将第二路径管理驱动1003加载到操作系统的内核中,并向第二路径管理驱动1003发送初始化指示信息;第二路径管理驱动1003接收到上述初始化指示信息之后,通过所述多路径框架驱动1001对外提供的接口获取多路径管理软件100运行时所需的全局内存数据,根据上述全局内存数据对自身进行初始化,完成初始化的第二路径管理驱动1003就具备了处理数据访问请求的能力,包括I/O的下发和返回;最后对第二路径管理驱动1003进行注册,具体地,第二路径管理驱动1003向路径框架驱动1001发送注册接口请求信息,路径框架驱动1001接收到请求信息后,可在其定义的管理I/O的数据结构中新增一个I/O处理的第二路径管理驱动1003的HOOK指针(记录为第二接口),之后多路径框架驱动1001通过第二路径管理驱动1003对应的第二接口,即可实现将第三数据访问请求转发给第二路径管理驱动1003,其中,第三数据访问请求为在对所述第二路径管理驱动1003进行注册之后,应用服务器接收到的数据访问请求。图10中,多路径框架驱动1001和第二路径管理驱动1003同时在处理数据访问请求的方式,保证了不中断业务流转发的情况下,升级多路径管理软件。
[0083]步骤750,利用所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
[0084]参见图11所示的本发明实施例二提供的软件升级的方法示意图之四,图11中,在对第二路径管理驱动1103进行注册之后,多路径框架驱动1101将新注册的第二接口标识为优先使用的状态,以实现当应用服务器接收到后续的第三数据访问请求时,多路径框架驱动1101通过标识为优先使用状态的第二接口向第二路径管理驱动1103发送第三数据访问请求,由第二路径管理驱动1103处理接收到的第三数据访问请求。[0085]需要说明的是,上述过程中,当第二路径管理驱动1103向多路径框架驱动1101注册第二接口之后,多路径框架驱动1101通过修改新注册的第二接口的状态实现后续数据访问请求的处理,多路径框架驱动1101还可通过其他的管理规则实现后续数据访问请求的处理,举例为,可以通过设置时间段的方式,即某一时刻调用某个固定的接口。
[0086]图12为本发明实施例三提供的软件升级的装置示意图,所述装置可以用于执行图2所示的方法。图12中,该装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,所述装置包括:第一处理单元1201、获取单元1202、注册单元1203、第二处理单元1204和卸载单元1205。
[0087]所述第一处理单元1201,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求。
[0088]多路径框架驱动定义一个管理I/O的数据结构,该数据结构中包含一个记录I/O处理的第一路径管理驱动的HOOK指针,该HOOK指针即为第一路径管理驱动对外提供的函数接口,记录为第一接口,通过第一路径管理驱动对应的第一接口调用第一路径管理驱动(该第一接口是由第一路径管理驱动事先注册到多路径框架驱动中),然后该第一路径管理驱动选择相应的物理路径进行第一数据访问请求的处理,其中第一路径管理驱动为升级前的路径管理驱动。
[0089]所述获取单元1202,用于获取所述第二 PMD。
[0090]所述注册单元1203,用于对所述获取单元1202获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD。
[0091]首先,第二路径管理驱动通过所述多路径框架驱动对外提供的接口获取多路径管理软件运行时所需的全局内存数据,根据上述全局内存数据对自身进行初始化,完成初始化的第二路径管理驱动就具备了处理数据访问请求的能力,包括I/o的下发和返回;然后对第二路径管理驱动进行注册,具体地,第二路径管理驱动向路径框架驱动发送注册接口请求信息,路径框架驱动接收到请求信息后,可在其定义的管理I/o的数据结构中新增一个I/O处理的第二路径管理驱动的HOOK指针(记录为第二接口),之后多路径框架驱动通过第二路径管理驱动对应的第二接口,即可实现将后续接收到的第二数据访问请求转发给第二路径管理驱动。
[0092]所述第二处理单元1204,用于利用所述注册单元注册后的所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求。
[0093]在对第二路径管理驱动进行注册之后,多路径框架驱动将新注册的第二接口标识为优先使用的状态,以实现当应用服务器接收到后续的第二数据访问请求时,多路径框架驱动通过标识为优先使用状态的第二接口向第二路径管理驱动发送第二数据访问请求,由第二路径管理驱动处理接收到的第二数据访问请求。
[0094]所述卸载单元1205,用于当所述第一数据访问请求处理完毕时,卸载所述第一PMD。
[0095]可选地,所述装置还包括:发送单元1206,用于向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据,根据所述全局内存数据对所述第二 PMD进行初始化。
[0096]所述发送单元1206具体用于:对所述第一 PMD、所述MFD和所述第二 PMD进行兼容性检查,当符合兼容性要求时,向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据。
[0097]本发明实施例三提供的装置植入了本发明实施例一提供的方法,因此,本发明提供的装置的具体工作过程,在此不复赘述。
[0098]图13为本发明实施例四提供的软件升级的装置示意图,所述装置可以用于执行图7所示的方法。图13中,该装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,所述装置包括:第一处理单元1301、第二处理单元1302、卸载单元1303、获取单元1304、注册单元1305和第三处理单元1306。
[0099]所述第一处理单元1301,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求。
[0100]多路径框架驱动定义一个管理I/O的数据结构,该数据结构中包含一个记录I/O处理的第一路径管理驱动的HOOK指针,该HOOK指针即为第一路径管理驱动对外提供的函数接口,记录为第一接口,通过第一路径管理驱动对应的第一接口调用第一路径管理驱动(该第一接口是由第一路径管理驱动事先注册到多路径框架驱动中),然后该第一路径管理驱动选择相应的物理路径进行第一数据访问请求的处理,其中第一路径管理驱动为升级前的路径管理驱动。
[0101]所述第二处理单元1302,用于利用所述MFD处理后续接收到的第二数据访问请求。
[0102]多路径框架驱动管理I/O的数据结构中还包含一个指向系统I/O结构体的指针,通过该指针,多路径框架驱动可以直接选择相应的物理路径,进行上述I/o的下发和返回。
[0103]所述卸载单元1303,当所述第一处理单元处理的第一数据访问请求处理完毕时,卸载所述第一 PMD。
[0104]所述获取单元1304,用于获取所述第二 PMD。
[0105]所述注册单元1305,用于对所述获取单元1304获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求。
[0106]首先,第二路径管理驱动通过所述多路径框架驱动对外提供的接口获取多路径管理软件运行时所需的全局内存数据,根据上述全局内存数据对自身进行初始化,完成初始化的第二路径管理驱动就具备了处理数据访问请求的能力,包括I/o的下发和返回;然后对第二路径管理驱动进行注册,具体地,第二路径管理驱动向路径框架驱动发送注册接口请求信息,路径框架驱动接收到请求信息后,可在其定义的管理I/o的数据结构中新增一个I/O处理的第二路径管理驱动的HOOK指针(记录为第二接口),之后多路径框架驱动通过第二路径管理驱动对应的第二接口,即可实现将第三数据访问请求转发给第二路径管理驱动,其中,第三数据访问请求为在对所述第二路径管理驱动进行注册之后,应用服务器接收到的数据访问请求。
[0107]所述第三处理单元1306,利用所述注册单元1305注册的所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
[0108]在对第二路径管理驱动进行注册之后,多路径框架驱动将新注册的第二接口标识为优先使用的状态,以实现当应用服务器接收到后续的第三数据访问请求时,多路径框架驱动通过标识为优先使用状态的第二接口向第二路径管理驱动发送第三数据访问请求,由第二路径管理驱动处理接收到的第三数据访问请求。
[0109]可见,本发明实施例提供的软件升级的方法及装置,可以保证在不中断数据访问请求处理的情况下,升级多路径管理软件。
[0110]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0111]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0112]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种软件升级的方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述方法用于将所述第一 PMD升级成第二 PMD,所述方法包括:当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求; 获取所述第二 PMD ;对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD ;利用所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
2.根据权利要求1所述的方法,其特征在于,所述在对所述第二PMD进行注册之前,所述方法还包括:向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据,根据所述全局内存数据对所述第二 PMD进行初始化。
3.根据权利要求2所述的方法,其特征在于,所述向所述第二PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据包括: 对所述第一PMD、所述MFD和所述第二PMD进行兼容性检查,当符合兼容性要求时,向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据。
4.一种软件升级的方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述方法用于将所述第一 PMD升级成第二 PMD,所述方法包括:当需要对所述多路径管理软件进行升级时,所述应用服务器继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;利用所述MFD处理后续接收到的第二数据访问请求;当所述第一数据访问请求处理完毕时,卸载所述第一 PMD ; 获取所述第二 PMD ;对所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求;利用所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
5.一种软件升级的装置,其特征在于,所述装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,所述装置包括--第一处理单元、获取单元、注册单元、第二处理单元和卸载单元;所述第一处理单元,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;所述获取单元,用于获取所述第二 PMD ;所述注册单元,用于对所述获取单元获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将后续接收到第二数据访问请求转发给所述第二 PMD ;所述第二处理单元,用于利用所述注册单元注册后的所述第二 PMD接收所述MFD发送的所述第二数据访问请求,并处理所述第二数据访问请求;所述卸载单元,用于当所述第一数据访问请求处理完毕时,卸载所述第一 PMD。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:发送单元,用于向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据,根据所述全局内存数据对所述第二 PMD进行初始化。
7.根据权利要求6所述的装置,其特征在于,所述发送单元具体用于:对所述第一PMD、所述MFD和所述第二PMD进行兼容性检查,当符合兼容性要求时,向所述第二 PMD发送初始化指示信息,使得所述第二 PMD通过所述MFD获取所述多路径管理软件运行时所需的全局内存数据。
8.一种软件升级的装置,其特征在于,所述装置应用于存储系统中,所述存储系统包括应用服务器和存储设备,所述应用服务器和所述存储设备之间通过多条路径进行通信,其中所述应用服务器中包含多路径管理软件,所述多路径管理软件包含多路径框架驱动MFD和第一路径管理驱动PMD,所述装置用于将所述第一 PMD升级成第二 PMD,所述装置包括:第一处理单元、第二处理单元、卸载单元、获取单元、注册单元和第三处理单元;所述第一处理单元,用于当需要对所述多路径管理软件进行升级时,继续利用所述第一 PMD处理升级之前接收到的第一数据访问请求;所述第二处理单元,用于利用所述MFD处理后续接收到的第二数据访问请求;所述卸载单元,当所述第一处理单元处理的第一数据访问请求处理完毕时,卸载所述第一 PMD ;所述获取单元,用于获取所述第二 PMD ;所述注册单元,用于对所述获取单元获取的所述第二 PMD进行注册,使得所述应用服务器利用所述MFD将第三数据访问请求转发给所述第二 PMD,其中,所述第三数据访问请求为在对所述第二 PMD进行注册之后,所述应用服务器接收到的数据访问请求;所述第三处理单元,利用所述注册单元注册的所述第二 PMD接收所述MFD发送的所述第三数据访问请求,并处理所述第三数据访问请求。
【文档编号】G06F9/445GK103677927SQ201310694593
【公开日】2014年3月26日 申请日期:2013年12月16日 优先权日:2013年12月16日
【发明者】申洪, 蒋培军 申请人:华为技术有限公司