管理元数据读取方法及装置与流程

文档序号:17356807发布日期:2019-04-09 21:45阅读:166来源:国知局
管理元数据读取方法及装置与流程
本申请涉及数据存储
技术领域
,尤其涉及一种管理元数据读取方法及装置。
背景技术
:随着大数据应用的出现,对于海量数据的存储及管理显得尤为重要。通常,存储设备在创建raid(redundantarraysofindependentdrives,磁盘阵列),以及在创建的raid上再创建lun(logicalunitnumber,逻辑单元号)过程中,会产生空间映射表的管理元数据,并且存储设备在通过双活、复制、快照业务实现数据保护机制时,也会产生操作日志、差异数据、快照数据等管理元数据。而如果管理元数据中的空间映射表丢失,将导致前端服务器无法读写存储设备中的数据,如果管理元数据中的操作日志、差异数据、快照数据等丢失,将导致数据保护机制失效。因此对于管理元数据的保护和成功读取成为存储设备实现数据安全性和可靠性的关键问题。技术实现要素:有鉴于此,本申请提供一种管理元数据读取方法及装置,以解决如何实现对管理元数据的保护和成功读取,以提高数据安全性和可靠性的问题。根据本申请实施例的第一方面,提供一种管理元数据读取方法,所述方法包括:在接收到携带读地址段和数据类型的读指令时,若所述数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段,所述备份表包含主地址段和主地址段的数据状态、备份地址段和备份地址段的数据状态;依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段;若所述主地址段的数据状态有效,则从待读主地址段中读取管理元数据;若所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则从待读备份地址段中读取管理元数据;其中,所述主地址段与所述主地址段对应的备份地址段大小相同、位于不同的磁盘阵列raid。根据本申请实施例的第二方面,提供一种管理元数据读取装置,所述装置包括:查找单元,用于在接收到携带读地址段和数据类型的读指令时,若所述数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段,所述备份表包含主地址段和主地址段的数据状态、备份地址段和备份地址段的数据状态;确定单元,用于依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段;第一读取单元,用于在所述主地址段的数据状态有效时,从待读主地址段中读取管理元数据;第二读取单元,用于在所述主地址段的数据状态无效但所述备份地址段的数据状态有效时,从待读备份地址段中读取管理元数据;其中,所述主地址段与所述主地址段对应的备份地址段大小相同、位于不同的磁盘阵列raid。应用本申请实施例,在接收到携带读地址段和数据类型的读指令时,若该数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段,然后依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段,在读取时,如果所述主地址段的数据状态有效,则从待读主地址段中读取管理元数据;如果所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则从待读备份地址段中读取管理元数据。由于备份表中包含了对业务可见的主地址段和对业务不可见的备份地址段,而主地址段与备份地址段位于不同的raid上,因此,各种业务(如lun、复制、快照、双活等)在执行读取管理元数据时,在主地址段所在的raid故障(数据状态无效)时,还可从主地址段对应的备份地址段中读取管理元数据,从而通过备份空间可提高成功读取几率,并且整个读过程对业务无感知,实现简洁高效。另外,通过为主地址段设置相同大小的备份地址段,可以实现对管理元数据的保护,且通过在读命令中携带待读取数据的数据类型可以快速判断是读管理元数据还是用户数据,无需所有的读命令都查找备份表,从而可提高io处理效率。附图说明图1为本申请根据一示例性实施例示出的一种管理元数据读取方法的实施例流程图;图2a为本申请根据一示例性实施例示出的另一种管理元数据读取方法的实施例流程图;图2b为本申请根据图2a所示实施例示出的一种空间分配示意图;图2c为本申请根据图2a所示实施例示出的一种取消空间示意图;图3为本申请根据一示例性实施例示出的一种存储设备的硬件结构图;图4为本申请根据一示例性实施例示出的一种管理元数据读取装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。目前,针对各种使用raid存储空间的业务,如lun、复制、快照、双活等业务,管理元数据是否备份以及备份方案并没有统一的标准和方案。基于此,本申请在接收到携带读地址段和数据类型的读指令时,若该数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段,然后依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段,在读取时,如果所述主地址段的数据状态有效,则从待读主地址段中读取管理元数据;如果所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则从待读备份地址段中读取管理元数据。其中,通过将管理元数据同时存储在主数据区和备份数据区中,并按段为单位维护一张备份表,即管理元数据备份表(mdbp,metadatabackuppair),其可以包含主地址段和主地址段的数据状态、备份地址段和备份地址段的数据状态,主地址段对业务可见,备份地址段对业务不可见,主地址段属于主数据区,备份地址段属于备份数据区,且主地址段与主地址段对应的备份地址段用于存储相同的管理元数据。为了避免raid故障导致主地址段中存储的管理元数据不可访问,主地址段与主地址段对应的备份地址段位于不同的raid上且大小相同,因此备份表还可包含主地址段所在raid的raid标识和备份地址段所在raid的raid标识。本领域技术人员可以理解的是,主地址段或备份地址段可以由起始地址以及结束地址组成,也可以由起始地址以及段大小组成,本申请对此不进行限定。基于上述描述可知,由于备份表中包含了对业务可见的主地址段和对业务不可见的备份地址段,而主地址段与备份地址段位于不同的raid上,因此,各种业务(如lun、复制、快照、双活等)在执行读取管理元数据时,在主地址段所在的raid故障(数据状态无效)时,还可从主地址段对应的备份地址段中读取管理元数据,从而通过备份空间可提高成功读取几率,并且整个读过程对业务无感知,实现简洁高效。另外,通过为主地址段设置相同大小的备份地址段,可以实现对管理元数据的保护,且通过在读命令中携带待读取数据的数据类型可以快速判断是读管理元数据还是用户数据,无需所有的读命令都查找备份表,从而可提高io处理效率。图1为本申请根据一示例性实施例示出的一种管理元数据读取方法的实施例流程图,该管理元数据读取方法可以应用在存储设备上,如图1所示,该管理元数据读取方法包括如下步骤:步骤101:在接收到携带读地址段和数据类型的读指令时,若该数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段。在一实施例中,基于前述可知,备份表包含对业务可见的主地址段和主地址段的数据状态、主地址段所在raid的raid标识、对业务不可见的备份地址段、备份地址段的数据状态和备份地址段所在raid的raid标识。主地址段与主地址段对应的备份地址段用于存储相同的管理元数据,为了避免raid故障导致主地址段中存储的管理元数据不可访问,主地址段与主地址段对应的备份地址段位于不同的raid上且大小相同。数据状态用于表示数据是否有效。例如,可以用“1”表示有效,“0”表示无效。针对备份表的建立过程可以参见下述图2a所示实施例的描述,在此先不详述。需要说明的是,如果读命令携带的数据类型为管理元数据,表示该读指令读取的是管理元数据(md,metadata),需要查找备份表,由于主地址段是对业务可见的,因此查找的是备份表中包含的所有主地址段;如果读命令携带的数据类型为用户数据表示该读指令读取的是用户数据(ud,userdata),可以通过现有技术方案实现对用户数据的读取即可。另外,与读地址段存在交集的主地址段指的是开始地址和结束地址均包含在读地址段中,或者开始地址和结束地址之间的一部分包含在读地址段中。由此可知,在查找备份表时,可能查找到多个与读地址段存在交集的主地址段。步骤102:依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段。在一示例性场景中,假设备份表中有3条记录,记录1的主地址段和备份地址段为:lba1-lba5和lba100-lba104;记录2的主地址段和备份地址段为:lba6-lba10,和lba105-lba110;记录3的主地址段和备份地址段为:lba11-lba15和lba111-lba115。如果读地址段为lba3-lba12,则可以查找到记录1中的主地址段lba1-lba5、记录2中的主地址段lba6-lba10,以及记录3中的主地址段lba11-lba15,依据读地址段lba3-lba12,可以确定待读主地址段为:lba3-lba5、lba6-lba10、lba11-lba12;待读备份地址段为:lba102-lba104、lba105-lba110、lba111-lba112。步骤103:若所述主地址段的数据状态有效,则从待读主地址段中读取管理元数据。步骤104:若所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则从待读备份地址段中读取管理元数据。在一实施例中,对于每对待读主地址段和待读备份地址段,如果该主地址段的数据状态有效,优先从待读主地址段中读取,在数据状态无效情况下,如果该待读备份地址段的数据状态有效,再从待读备份地址段中读取,无论是从该待读主地址段还是从该待读备份地址段中读取,只要读成功就继续处理下一对待读主地址段和待读备份地址段,如果读失败,则不再处理下一对待读主地址段和待读备份地址段,直接返回读操作结果为失败的通知。本申请实施例中,在接收到携带读地址段的读指令时,从预先建立的备份表中查找与所述读地址段存在交集的主地址段,然后依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段,在读取时,如果所述主地址段的数据状态有效,则从待读主地址段中读取管理元数据;如果所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则从待读备份地址段中读取管理元数据。基于上述描述可知,由于备份表中包含了对业务可见的主地址段和对业务不可见的备份地址段,而主地址段与备份地址段位于不同的raid上,因此,各种业务(如lun、复制、快照、双活等)在执行读取管理元数据时,在主地址段所在的raid故障(数据状态无效)时,还可从主地址段对应的备份地址段中读取管理元数据,从而通过备份空间可提高成功读取几率,并且整个读过程对业务无感知。另外,通过为主地址段设置相同大小的备份地址段,可以实现对管理元数据的保护,且通过在读命令中携带待读取数据的数据类型可以快速判断是读管理元数据还是用户数据,无需所有的读命令都查找备份表,从而可提高io处理效率。图2a为本申请根据一示例性实施例示出的另一种管理元数据读取方法的实施例流程图,基于上述图1所示实施例的基础上,本实施例以如何建立备份表为例进行示例性说明。如图2a所示,该管理元数据读取方法涉及的备份表通过如下步骤建立:步骤201:在接收到携带使用标识为管理元数据标识的分配空间指令时,从主数据区中分配所述分配空间指令携带的待分配大小的第一地址段,并从备份数据区中分配待分配大小的第二地址段。在一实施例中,存储设备接收到的分配空间指令中可以携带使用标识和本次需要分配的空间大小,即待分配大小,使用标识用于指示本次分配的空间用于存储的数据类型,如果是管理元数据标识(如md)表示本次分配的空间用于存储管理元数据,如果是用户数据标识(如ud)表示本次分配的空间用于存储用户数据,后续按照现有技术方案进行分配即可。另外,主数据区与备份数据区位于不同的raid,可以保证分配的第一地址段和第二地址段分别在不同的raid上。步骤202:若第二地址段包含多段,则针对每段第二地址段,从第一地址段中划分与该段第二地址段大小相同的第四地址段,并将该段第二地址段和第四地址段分别作为备份地址段和主地址段添加到备份表中,并将主地址段的无效数据状态和备份地址段的无效数据状态添加到备份表中。在一示例性场景中,如图2b所示,假设分配空间指令携带的待分配大小为3gb,从主数据区分配的第一地址段为lbam-lban,大小为3gb,位于raid-a从备份数据区分配的第二地址段包含多段:第一段lbag-lbah大小为1gb,位于raid-b、第二段lbap-lbaq大小1gb,位于raid-b、第三段lbac-lbad大小1gb,位于raid-c。从而,针对第一段,从lbam-lban中划分与lbag-lbah大小相同的第四地址段lbam-lbaj,针对第二段,从lbam-lban中划分与lbap-lbaq大小相同的第四地址段lbaj-lbak,针对第三段,从lbam-lban中划分与lbac-lbad大小相同的第四地址段lbak-lban。据此,可得到表1所示的备份表。主地址段raid标识数据状态备份地址段raid标识数据状态lbam-lbajraid-a0lbag-lbahraid-b0lbaj-lbakraid-a0lbap-lbaqraid-b0lbak-lbanraid-a0lbac-lbadraid-c0表1需要说明的是,在完成分配后,可以将本次分配的第一地址段返回至业务。步骤203:若第一地址段包含多段,则针对每段第一地址段,从第二地址段中划分与该段第一地址段大小相同的第三地址段,并将该段第一地址段和第三地址段分别作为主地址段和备份地址段添加到备份表中,并将备份地址段的无效数据状态和主地址段的无效数据状态添加到备份表中。针对步骤203的划分原理与上述步骤202的划分原理类似,不再详述。需要说明的是,在建立备份表之后,可以向分配的空间中写管理元数据,以供读取。具体的写过程可以是:在接收到携带写地址段、写数据和数据类型的写指令时,若该数据类型为管理元数据,则从备份表中查找与写地址段存在交集的主地址段,然后依据所述写地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待写入主地址段和待写入备份地址段,并依据所述主地址段的数据状态和所述备份地址段的数据状态,将所述写数据分别写入待写入主地址段和待写入备份地址段。其中,如果写指令携带的数据类型为管理元数据(md),表示该写指令要写的是管理元数据,由于主地址段是对业务可见的,因此查找的是备份表中包含的所有主地址段;如果写指令携带的数据类型为用户数据(ud),表示该写指令要写的是用户数据,可以通过现有技术方案实现用户数据的写入即可。确定待写入主地址段和待写入备份地址段的场景原理可以参见上述步骤102所述的待读主地址段和待读备份地址段的确定场景原理。在一实施例中,针对依据所述主地址段的数据状态和所述备份地址段的数据状态,将所述写数据分别写入待写入主地址段和待写入备份地址段的过程,可以分三种情况写入:第一种是所述主地址段的数据状态和所述备份地址段的数据状态均有效或者均无效的情况,是将所述写数据分别写入待写入主地址段和待写入备份地址段,并依据各自的写入结果更新各自的数据状态;第二种是所述主地址段的数据状态有效但所述备份地址段的数据状态无效的情况,是将所述写数据写入待写入主地址段,并保持所述主地址段的数据状态不变;第三种是所述主地址段的数据状态无效但所述备份地址段的数据状态有效的情况,是将所述写数据写入待写入备份地址段,并保持所述备份地址段的数据状态不变。其中,针对依据各自的写入结果更新各自数据状态的过程,针对所述主地址段的数据状态和所述备份地址段的数据状态均有效的情况,若待写入主地址段的写入结果为失败,则将所述主地址段的数据状态更新为无效;若待写入备份地址段的写入结果为失败,则将所述备份地址段的数据状态更新为无效;针对所述主地址段的数据状态和所述备份地址段的数据状态均无效的情况,若待写入主地址段的写入结果为成功,则将所述主地址段的数据状态更新为有效;若待写入备份地址段的写入结果为成功,则将所述备份地址段的数据状态更新为有效。值得说明的是,对于主地址段的数据状态和备份地址段的数据状态均有效的情况,如果待写入主地址段和待写入备份地址段的写入结果均失败,表示主地址段和备份地址段的管理元数据均是最新的,保持各自数据状态不变。对于主地址段的数据状态和备份地址段的数据状态均无效的情况,如果待写入主地址段和待写入备份地址段的写入结果均失败,表示主地址段和备份地址段均未成功写入过管理元数据,保持各自数据状态不变。需要进一步说明的是,在建立备份表之后,还可以取消分配的空间。具体的取消过程可以是:在接收到携带使用标识为管理元数据标识的释放空间指令时,从备份表中查找与释放空间指令携带的待释放地址段存在交集的主地址段,若待释放地址段完全包含查找到的主地址段,则释放所述主地址段和所述主地址段对应的备份地址段各自对应的空间,并从备份表中删除所述主地址段所在的记录;若待释放地址段未完全包含查找到的主地址段,则依据所述主地址段和所述主地址段对应的备份地址段确定与待释放地址段不存在交集的待保留主地址段和待保留备份地址段,并确定存在交集的待释放主地址段和待释放备份地址段;释放所述待释放主地址段和待释放备份地址段,并分别用所述待保留主地址段和待保留备份地址段更新所述备份表中的所述主地址段和所述主地址段对应的备份地址段。在一示例性场景中,如图2c所示,假设备份表中与待释放地址段存在交集的主地址段所处的记录有记录1-记录4,其中,记录1和记录4的其中一部分与待释放地址段存在交集,记录2和记录3完全包含在待释放地址段中,因此,对于记录1和记录4,只释放和删除存在交集部分的空间,保留未存在交集部分,对于记录2和记录3,全部释放和删除。至此,完成上述图2a所示流程,通过图2a所示流程,可以实现备份表的建立。图3为本申请根据一示例性实施例示出的一种存储设备的硬件结构图,该存储设备包括:通信接口301、处理器302、机器可读存储介质303和总线304;其中,通信接口301、处理器302和机器可读存储介质303通过总线304完成相互间的通信。处理器302通过读取并执行机器可读存储介质302中与管理元数据读取方法的控制逻辑对应的机器可执行指令,可执行上文描述的管理元数据读取方法,该方法的具体内容参见上述实施例,此处不再累述。本申请中提到的机器可读存储介质303可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质303可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。图4为本申请根据一示例性实施例示出的一种管理元数据读取装置的实施例结构图,所述管理元数据读取装置应用在存储设备上,如图4所示,所述管理元数据读取装置包括:查找单元410,用于在接收到携带读地址段和数据类型的读指令时,若所述数据类型为管理元数据,则从预先建立的备份表中查找与所述读地址段存在交集的主地址段,所述备份表包含主地址段和主地址段的数据状态、备份地址段和备份地址段的数据状态;确定单元420,用于依据所述读地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待读主地址段和待读备份地址段;第一读取单元430,用于在所述主地址段的数据状态有效时,从待读主地址段中读取管理元数据;第二读取单元440,用于在所述主地址段的数据状态无效但所述备份地址段的数据状态有效时,从待读备份地址段中读取管理元数据;其中,所述主地址段与所述主地址段对应的备份地址段大小相同、位于不同的磁盘阵列raid。在一可选实现方式中,所述装置还包括(图4中未示出):备份表建立单元,用于在接收到携带使用标识为管理元数据标识的分配空间指令时,从主数据区中分配所述分配空间指令携带的待分配大小的第一地址段,并从备份数据区中分配所述待分配大小的第二地址段;若所述第一地址段包含多段,则针对每段第一地址段,从第二地址段中划分与该段第一地址段大小相同的第三地址段,并将该段第一地址段和第三地址段分别作为主地址段和备份地址段添加到所述备份表中,并将主地址段的无效数据状态和备份地址段的无效数据状态添加到所述备份表中;若所述第二地址段包含多段,则针对每段第二地址段,从第一地址段中划分与该段第二地址段大小相同的第四地址段,并将该段第二地址段和第四地址段分别作为备份地址段和主地址段添加到所述备份表中,并将备份地址段的无效数据状态和主地址段的无效数据状态添加到所述备份表中。在一可选实现方式中,所述装置进一步包括(图4中未示出):写数据单元,用于在建立所述备份表之后,在接收到携带写地址段、写数据和数据类型的写指令时,若所述数据类型为管理元数据,则从所述备份表中查找与所述写地址段存在交集的主地址段;依据所述写地址段从查找到的主地址段和所述主地址段对应的备份地址段中确定待写入主地址段和待写入备份地址段;依据所述主地址段的数据状态和所述备份地址段的数据状态,将所述写数据分别写入待写入主地址段和待写入备份地址段。在一可选实现方式中,所述写数据单元,具体用于在依据所述主地址段的数据状态和所述备份地址段的数据状态,将所述写数据分别写入待写入主地址段和待写入备份地址段过程中,若所述主地址段的数据状态和所述备份地址段的数据状态均有效或者均无效,则将所述写数据分别写入待写入主地址段和待写入备份地址段,并依据各自的写入结果更新各自的数据状态;若所述主地址段的数据状态有效但所述备份地址段的数据状态无效,则将所述写数据写入待写入主地址段,并保持主地址段的数据状态不变;若所述主地址段的数据状态无效但所述备份地址段的数据状态有效,则将所述写数据写入待写入备份地址段,并保持所述备份地址段的数据状态不变。在一可选实现方式中,所述写数据单元,具体用于在依据各自的写入结果更新各自的数据状态过程中,针对所述主地址段的数据状态和所述备份地址段的数据状态均有效的情况,若待写入主地址段的写入结果为失败,则将所述主地址段的数据状态更新为无效;若待写入备份地址段的写入结果为失败,则将所述备份地址段的数据状态更新为无效;针对所述主地址段的数据状态和所述备份地址段的数据状态均无效的情况,若待写入主地址段的写入结果为成功,则将所述主地址段的数据状态更新为有效;若待写入备份地址段的写入结果为成功,则将所述备份地址段的数据状态更新为有效。在一可选实现方式中,所述装置还包括(图4中未示出):释放单元,用于在接收到携带使用标识为管理元数据标识的释放空间指令时,从所述备份表中查找与所述释放空间指令携带的待释放地址段存在交集的主地址段;若待释放地址段完全包含查找到的主地址段,则释放所述主地址段和所述主地址段对应的备份地址段各自对应的空间,并从所述备份表中删除所述主地址段所在的记录;若待释放地址段未完全包含查找到的主地址段,则依据所述主地址段和所述主地址段对应的备份地址段确定与待释放地址段不存在交集的待保留主地址段和待保留备份地址段,并确定存在交集的待释放主地址段和待释放备份地址段;释放所述待释放主地址段和待释放备份地址段,并分别用所述待保留主地址段和待保留备份地址段更新所述备份表中的所述主地址段和所述主地址段对应的备份地址段。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1