本发明涉及计算机技术领域,尤其涉及一种故障恢复方法及装置。
背景技术:
为了支持未来各种各样的网络业务,目前通过在网卡芯片内部的专用集成电路中集成很多小的处理核使得网卡芯片逐步软化。这些小的处理核,配合各种硬件加速引擎即可完成对不同的网络业务的处理。
由于这种小的处理核资源少,存储空间小,只能跑少量代码,没有安装操作系统(Operating System,简称OS)。因此,无法像中央处理器(Central Processing Unit,简称CPU)那样通过一个庞大的OS和相关复杂的内存管理机制来实现故障的隔离和保护。
由于软件引起的故障要比纯硬件引起的故障的概率大很多,而且软件引起的故障基本可以通过复位恢复。目前,在网卡芯片中的一个或多个处理核出现软件故障时,通常采用将网卡芯片下电复位的方式恢复网卡芯片的功能。在物理主机中包括多个虚拟机时,采用这种方式会对网卡芯片所属的整个物理主机上全部的虚拟机的业务造成影响。
技术实现要素:
本发明的实施例提供了一种故障恢复方法及装置,用以解决在物理主机中包括多个虚拟机时,采用将网卡芯片下电复位的方式恢复网卡芯片的功能会对网卡芯片所属的整个物理主机上全部的虚拟机的业务造成影响的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种故障恢复方法,应用于虚拟化接口设备,虚拟化接口设备包括多个处理核,该方法包括:确定目标处理核,目标处理核为多个处理核中的发生故障的处理核;确定目标虚拟接口,目标虚拟接口为向目标处理核发送目标业务报文的虚拟接口或者接收目标处理核发送的目标业务报文的虚拟接口,目标业务报文为目标处理核发生故障时正在处理的业务报文;释放虚拟化接口设备上的与目标虚拟接口相关联的资源;对目标虚拟接口和目标处理核进行复位。
第一方面提供的方法,在一个处理核发生故障时,可以确定向该故障的处理核发送目标业务报文的虚拟接口或者接收目标业务报文的虚拟接口,通过释放虚拟化接口设备上的与目标虚拟接口相关联的资源,并对该虚拟接口和该处理核进行复位使得该虚拟接口和该处理核恢复正常。由于一个虚拟接口为一个虚拟机服务,因此,通过采用本发明实施例提供的故障恢复的方法,仅会对物理主机上的一个虚拟机上的业务产生影响,不会对物理主机上的其他虚拟机上运行的业务产生影响(即不会对整个物理主机上的业务造成影响)。在虚拟化接口设备为虚拟化网卡的情况下,无需将整个物理主机的网络中断即可实现虚拟化接口设备故障的恢复。
在一种可能的设计中,确定目标处理核,包括:将多个处理核中的处理当前业务报文的时长超过预设时长的处理核确定为目标处理核。
在一种可能的设计中,对目标虚拟接口进行复位,包括:释放目标虚拟接口的驱动软件的资源,并重新申请目标虚拟接口的驱动软件的资源;或者,删除目标虚拟接口的驱动软件,并重新添加目标虚拟接口的驱动软件。
在一种可能的设计中,在确定目标虚拟接口之后,该方法还包括:控制目标虚拟接口停止收发业务报文。
由于在一个处理核故障之后,向该处理核发送业务报文或接收该处理核发送的业务报文的虚拟接口对应的状态信息可能已经出错。因此,该种可能的设计,在确定目标虚拟接口之后,可以使得目标虚拟接口停止收发业务报文,从而防止引起除目标处理核之外的其他处理核故障。
在一种可能的设计中,在释放虚拟化接口设备上的与目标虚拟接口相关联的资源之前,该方法还包括:将目标虚拟接口的标识ID对应的资源,确定为与目标虚拟接口相关联的资源。
在一种可能的设计中,确定目标虚拟接口,包括:在存储器中获取目标虚拟接口的ID,根据目标虚拟接口的ID确定目标虚拟接口。
在一种可能的设计中,若虚拟化接口设备中已被分配的资源在预设时间段内未被访问,该方法还包括:回收已被分配的资源。
第二方面,提供了一种故障恢复装置,该装置具有实现第一方面提供的任意一种方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。
第三方面,提供了一种故障恢复装置,应用于虚拟化接口设备,虚拟化接口设备包括多个处理核,该装置包括:存储器、处理器和总线;存储器用于存储计算机执行指令,处理器与存储器通过总线连接,处理器执行存储器存储的计算机执行指令,以使该装置实现第一方面提供的任意一种方法。
第二方面和第三方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本发明实施例提供的一种应用场景的架构示意图;
图2为本发明实施例提供的一种故障恢复方法的流程图;
图3为本发明实施例提供的又一种应用场景的架构示意图;
图4为本发明实施例提供的又一种故障恢复方法的流程图;
图5为本发明实施例提供的一种故障恢复装置的组成示意图;
图6为本发明实施例提供的又一种故障恢复装置的组成示意图;
图7为本发明实施例提供的又一种故障恢复装置的组成示意图。
具体实施方式
本发明实施例提供的方法可以应用于虚拟化接口设备中,虚拟化接口设备具体可以为虚拟化网卡、虚拟化显卡、虚拟化存储卡等。虚拟化接口设备支持虚拟化技术。例如,虚拟化网卡具体可以为支持单根I/O虚拟化(Single-Root I/O Virtualization,简称SR-IOV)的网卡。本发明实施例中以虚拟化接口设备为虚拟化快捷外围部件互连标准(Peripheral Component Interconnect Express,简称PCIE)设备为例进行说明。
在典型的虚拟机应用架构中,如图1所示,一台物理主机上可以运行多个虚拟机(Virtual Machine,简称VM)。一般物理主机的硬件主要包括:一部分跟运行虚拟机相关的硬件,例如CPU、内存、硬盘等;以及一部分不直接用于运行虚拟机,而用于执行一些特定业务、且功能相对独立的硬件,例如,物理主机内的PCIE设备(例如,网卡或显卡等)。物理主机中的CPU、内存和硬盘组成的系统侧可以称为主机侧,PCIE设备通过PCIE设备内的PCIE接口与主机侧连接。
如图1所示,为了支持未来各种各样的网络业务,目前通过在PCIE设备内部的专用集成电路中集成很多处理核使得PCIE设备逐步软化。通过虚拟化技术可以将PCIE接口虚拟化成多个虚拟接口,例如,当虚拟化技术为SR-IOV技术时,虚拟接口可以为物理功能(Physical Function,简称PF)或虚拟功能(Virtual Function,简称VF)。每个处理核至少与一个虚拟接口连接。每个VM对应一个或多个虚拟接口,一个虚拟接口通常只为一个VM服务,VM通过虚拟接口的驱动软件访问虚拟接口。
另外,在PCIE设备中还包括各种资源,例如,存储资源、定时器资源等,还可以包括管理模块,管理模块可以对多个处理核进行管理。本发明实施例中的“多个”是指两个或两个以上。
本发明实施例提供了一种故障恢复方法,应用于虚拟化接口设备,虚拟化接口设备包括多个处理核,如图2所示,该方法包括:
201、确定目标处理核,目标处理核为多个处理核中的发生故障的处理核。
本发明实施例的执行主体可以为虚拟化接口设备中的管理模块,还可以为物理主机中的CPU。下文中均以本发明实施例的执行主体为虚拟化接口设备中的管理模块为例对本发明实施例提供的方法做示例性说明。
可选的,步骤201在具体实现时可以包括:将多个处理核中的处理当前业务报文的时长超过预设时长的处理核确定为目标处理核。
其中,预设时长可以预先进行设置。可以一个业务对应一个预设时长,也可以多个业务对应一个预设时长,还可以全部业务对应一个预设时长,本发明实施例对此不作具体限定。具体的,预设时长应当大于处理核处理业务报文所需的时长。
具体的,管理模块可以获知处理核接收到业务报文的时间。例如,处理核可以在接收到业务报文时向管理模块上报。
一种情况下,一个处理核在处理完一个业务报文时可以向管理模块上报报文处理完成的信息。该情况下,若管理模块超过预设时长还未接收到该处理核上报的报文处理完成的信息,则确定该处理核发生故障,此时,该处理核即目标处理核。
另一种情况下,管理模块可以在业务报文抵达一个处理核后的预设时长后查询业务报文的处理状态,根据业务报文的处理状态判断该业务报文是否处理完毕,若该业务报文还未处理完毕,则确定该处理核发生故障,此时,该处理核即目标处理核。
202、确定目标虚拟接口,目标虚拟接口为向目标处理核发送目标业务报文的虚拟接口或者接收目标处理核发送的目标业务报文的虚拟接口,目标业务报文为目标处理核发生故障时正在处理的业务报文。
203、释放虚拟化接口设备上的与目标虚拟接口相关联的资源。
其中,与目标虚拟接口相关联的资源是指虚拟化接口设备上的、且与实现目标虚拟接口相关的功能有关的资源。可以理解的是,该资源包含用于存储与目标业务报文相关的信息的资源。
204、对目标虚拟接口和目标处理核进行复位。
步骤204在具体实现时,可以先对目标虚拟接口进行复位,也可以先对目标处理核进行复位,本发明实施例对此不作具体限定。另外,步骤203和步骤204的执行顺序不分先后。
需要说明的是,处理核可以处理有状态的网络业务,也可以处理无状态的网络业务。其中,有状态的网络业务是指业务报文之间存在状态依赖关系的网络业务,存在状态依赖关系是指一个业务报文的处理需要依赖另一个业务报文的某些状态信息(例如,上下文信息)。
若目标业务报文为无状态的网络业务的业务报文,由于无状态的网络业务的各个业务报文之间不存在状态依赖关系。因此,可以仅通过对目标处理核进行复位实现故障恢复,当然,也可以通过本发明实施例提供的方法实现故障恢复。
以下均以状态信息为上下文信息为例对本发明实施例提供的方法进行示例性说明。
一个有状态的网络业务可以有多个连接(本发明实施例中的“连接”也可以称为“会话”),由于一个业务是由一个VM发起的,一个虚拟接口为一个VM服务,因此,一个连接的所有业务报文都是从一个虚拟接口发送到对应的处理业务报文的处理核的。一个连接的所有业务报文具有一份同样的上下文信息,该份上下文信息与发送具有该份上下文信息的业务报文的虚拟接口存在对应关系。该份上下文信息可以存储在虚拟化接口设备中,处理具备该份上下文信息的所有业务报文的处理核依据的均是该份上下文信息。当一个处理核对一个业务报文处理完毕后,会对该份上下文信息进行修改,若该处理核在处理该业务报文的过程中发生了故障,则会使得该份上下文信息出错,进而使得其他依据该份上下文信息处理业务报文的处理核同样处理出错。该情况下,在一个处理核故障之后,仅通过复位故障的处理核并不能使得故障恢复。而由于该份上下文信息与虚拟接口存在对应关系,因此,本发明实施例还通过将该份上下文信息对应的虚拟接口进行复位并释放虚拟化接口设备上的与目标虚拟接口相关联的资源,由于这些资源中包括用于存储上下文信息的资源,从而使得故障恢复。
本发明实施例提供的方法,在一个处理核发生故障时,可以确定向该故障的处理核发送目标业务报文的虚拟接口或者接收目标业务报文的虚拟接口,通过释放虚拟化接口设备上的与目标虚拟接口相关联的资源,并对该虚拟接口和该处理核进行复位使得该虚拟接口和该处理核恢复正常。由于一个虚拟接口为一个虚拟机服务,因此,通过采用本发明实施例提供的故障恢复的方法,仅会对物理主机上的一个虚拟机上的业务产生影响,不会对物理主机上的其他虚拟机上运行的业务产生影响(即不会对整个物理主机上的业务造成影响)。在虚拟化接口设备为虚拟化网卡的情况下,无需将整个物理主机的网络中断即可实现虚拟化接口设备故障的恢复。
可选的,步骤202在具体实现时可以包括:在存储器中获取目标虚拟接口的ID(标识),根据目标虚拟接口的ID确定目标虚拟接口。
其中,存储器具体可以为目标处理核中的随机存取存储器(random access memory,简称RAM)、变量区或寄存器等,存储器还可以为虚拟化接口设备中的存储器。存储器中存储的目标虚拟接口的ID可以为目标处理核在接收目标业务报文的过程中获取到的。
一个虚拟接口的ID对应一个虚拟接口,并用于唯一确定该虚拟接口。
具体的,当处理核接收到的业务报文来自主机侧时,处理核可以直接根据发送该业务报文的虚拟接口确定虚拟接口的ID,并将该虚拟接口的ID保存在存储器中。
当虚拟化接口设备为虚拟化网卡时,如图3所示,虚拟化网卡中还可以包括以太介质访问控制(Media Access Control,简称MAC)(虚拟化网卡中的一个部件),用于与网络侧连接,网络侧是指物理主机所连接的外部网络侧。该情况下,处理核接收到的业务报文还可以来自网络侧。处理核在接收到业务报文后,可以通过查询芯片内部存储的目的MAC地址表得到业务报文的目的虚拟接口(目的虚拟接口为接收该业务报文的虚拟接口)的ID,并将该目的虚拟接口的ID保存在存储器中。其中,目的MAC地址表用于记录业务报文的目的MAC地址与目的虚拟接口的ID的对应关系。另外,当主机侧或虚拟化接口设备在创建一个业务的一个连接的所有业务报文的上下文信息时,可以在该上下文信息中添加虚拟接口的ID。该情况下,处理核还可以在业务报文的上下文信息中获取目的虚拟接口的ID。
可选的,在步骤202之后,该方法还可以包括:控制目标虚拟接口停止收发业务报文。
具体的,管理模块可以通过控制目标虚拟接口使得目标虚拟接口停止收发业务报文;也可以通过控制其他模块使得目标虚拟接口停止收发业务报文。例如,当虚拟化接口设备为虚拟化网卡时,管理模块可以通过阻断目标虚拟接口与主机侧之间的直接内存访问(Direct Memory Access,简称DMA)读写和PCIE读写使得目标虚拟接口停止与主机侧的业务报文的收发,管理模块还可以通过丢弃网络侧发送的报文使得目标处理核停止接收业务报文,从而使得目标虚拟接口停止与网络侧的业务报文的收发。
由于在一个处理核故障之后,向该处理核发送业务报文或接收该处理核发送的业务报文的虚拟接口对应的状态信息可能已经出错。因此,在确定目标虚拟接口之后,可以使得目标虚拟接口停止收发业务报文,从而防止引起除目标处理核之外的其他处理核故障。
可选的,在步骤204中,对目标虚拟接口进行复位具体可以通过以下方式中的任意一种方式实现:
方式一、释放目标虚拟接口的驱动软件的资源,并重新申请目标虚拟接口的驱动软件的资源。
具体的,可以通过执行目标虚拟接口的驱动软件的down操作释放目标虚拟接口的驱动软件的资源,通过执行目标虚拟接口的驱动软件的up操作重新申请目标虚拟接口的驱动软件的资源。
方式一在具体实现时,管理模块可以控制驱动软件执行down和up操作。
方式二、删除目标虚拟接口的驱动软件,并重新添加目标虚拟接口的驱动软件。
与目标虚拟接口相关联的资源可以为以下资源中的一种或多种:存储业务报文的上下文的资源、缓存(buffer)资源、定时器资源等。
方式一和方式二,通过释放资源,可以防止资源泄露。
可选的,在步骤203之前,该方法还可以包括:将目标虚拟接口的标识ID对应的资源,确定为与目标虚拟接口相关联的资源。
具体的,在分配资源时可以按照虚拟接口的粒度进行资源分配,即为每个虚拟接口分配一定的资源,该情况下,资源与虚拟接口之间存在对应关系,在获知了虚拟接口的ID之后,即可确定虚拟接口对应的资源。
在资源被多个虚拟接口共享时,一种情况下,可以在与虚拟接口相关联的资源上存储的信息中添加虚拟接口的ID。该情况下,当在存储器中查询到该信息时,即可得知虚拟接口的ID,从而确定存储该信息的资源为与该虚拟接口相关联的资源。示例性的,若该信息为业务报文的上下文信息,主机侧或虚拟化接口设备可以在创建该业务报文的上下文信息时添加虚拟接口的ID。
另一种情况下,可以在用于指示与虚拟接口相关联的资源的信息中添加虚拟接口的ID。该情况下,当获取到用于指示该资源的信息时,即可得知虚拟接口的ID,从而确定该资源为与该虚拟接口相关联的资源。示例性的,若该资源为缓存资源,每个业务报文在进入到虚拟机接口设备时会有一个报文描述符,报文描述符指明了对应报文的缓存资源,虚拟接口可以在该报文描述符中添加虚拟接口的ID。
可选的,若虚拟化接口设备中已被分配的资源在预设时间段内未被访问,该方法还可以包括:回收虚拟化接口设备中已被分配的资源。
该可选的方法,通过回收资源,可以防止资源泄露。
在本发明实施例中提供的上述步骤中,管理模块可以执行上述步骤,也可以控制虚拟机接口设备中的其他模块执行上述步骤,本发明实施例对此不做具体限定。
以下以虚拟接口为VF,本发明实施例提供的方法应用在虚拟化网卡、且虚拟化网卡中的处理核执行TCP卸载引擎(TCP Offload Engine,简称TOE)业务为例对本发明实施例提供的方法做示例性说明,该情况下,与虚拟接口相关联的资源包括定时器资源、存储TOE业务报文的上下文信息的资源、共享的接收队列、共享的接收缓存等。
如图4所示,当虚拟化网卡中的一个处理核发生故障时,上述方法包括:
401、确定目标处理核,目标处理核为发生故障的处理核。
402、获取向目标处理核发送目标TOE业务报文或者接收目标TOE业务报文的VF的VF ID。
目标TOE业务报文为目标处理核发生故障时正在处理的TOE业务报文。
当一个TOE业务报文来自网络侧时,处理核可以通过查询目的MAC地址表查询得到目的VF ID,将该目的VF ID记录在处理核的存储器中,然后查询该TOE业务报文的上下文信息,对该TOE业务报文进行处理,处理完毕后,上送到主机侧的接收队列或其他处理核。
当一个TOE业务报文来自主机侧时,虚拟化网卡可以通过发送该TOE业务报文的VF确定VF ID,处理核将该VF ID记录在处理核的存储器中,处理核根据该TOE业务报文中携带的上下文索引取得该TOE业务报文的上下文信息,对该TOE业务报文进行处理,处理完毕后发送到网络侧。
该情况下,步骤402在具体实现时,可以在目标处理核的存储器中获取VF ID。
403、确定该VF ID对应的VF为目标VF。
404、停止针对目标VF的DMA读写和PCIE读写,丢弃网络侧接收的发往目标VF的报文。
该情况下,可以停止目标VF的TOE业务报文的收发。
405、释放虚拟化网卡上的与目标VF相关联的资源。
与目标VF相关的资源包括:定时器资源、存储TOE业务报文的上下文信息的资源、共享的接收队列、共享的接收缓存等。
406、删除目标VF的驱动软件,并重新添加目标VF的驱动软件
407、复位目标处理核。
关于该示例性的实施例的有益效果可以参见上述实施例的有益效果,在此不再赘述。
可以理解的是,为了实现上述方法,用于实现上述故障恢复方法的故障恢复装置包含了执行上述各个功能相应的硬件结构和/或软件单元。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对故障恢复装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元或管理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图5示出了一种可能的故障恢复装置50的组成示意图,该装置50包括:
确定单元501,用于确定目标处理核,所述目标处理核为所述多个处理核中的发生故障的处理核;
所述确定单元501,还用于确定目标虚拟接口,所述目标虚拟接口为向所述目标处理核发送目标业务报文的虚拟接口或者接收所述目标处理核发送的目标业务报文的虚拟接口,所述目标业务报文为所述目标处理核发生故障时正在处理的业务报文;
释放单元502,用于释放所述虚拟化接口设备上的与所述目标虚拟接口相关联的资源;
复位单元503,用于对所述目标虚拟接口和所述目标处理核进行复位。
可选的,所述复位单元503,具体用于释放所述目标虚拟接口的驱动软件的资源,并重新申请所述目标虚拟接口的驱动软件的资源;或者,删除所述目标虚拟接口的驱动软件,并重新添加所述目标虚拟接口的驱动软件。
可选的,如图6所示,该装置50还包括控制单元504,用于控制所述目标虚拟接口停止收发业务报文。
可选的,所述确定单元501,还用于将所述目标虚拟接口的标识ID对应的资源,确定为与所述目标虚拟接口相关联的资源。
可选的,所述确定单元501,具体用于在存储器中获取所述目标虚拟接口的ID,根据所述目标虚拟接口的ID确定所述目标虚拟接口。
可选的,如图6所示,该装置50还包括回收单元505,用于在所述虚拟化接口设备中已被分配的资源在预设时间段内未被访问时,回收所述已被分配的资源。
该装置50中的各个单元用于执行上述方法,因此,该装置50的有益效果可以参见上述方法的有益效果,在此不再赘述。
示例性的,图7示出了另一种可能的故障恢复装置70的组成示意图,应用于虚拟化接口设备,虚拟化接口设备包括多个处理核,该装置70包括:存储器701、处理器702和总线703。
其中,存储器701和处理器702通过总线703连接。总线703可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器701可以是RAM、闪存、只读存储器(read only memory,简称ROM)、可擦除可编程只读存储器(erasable programmable ROM,简称EPROM)、电可擦可编程只读存储器(electrically EPROM,简称EEPROM)等等。
处理器702可以是CPU,通用处理器,数字信号处理器(digital signal processor,简称DSP),专用集成电路(application-specific integrated circuit,简称ASIC),现场可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,单元和电路。处理器702也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
存储器701用于存储计算机执行指令,处理器702可以通过执行存储器701存储的计算机执行指令实现上述故障恢复方法。
该装置70中的各个器件用于执行上述方法,因此,该装置70的有益效果可以参见上述方法的有益效果,在此不再赘述。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。