一种ASM磁盘管理方法及装置与流程

文档序号:25542474发布日期:2021-06-18 20:39阅读:59来源:国知局
本申请涉及数据存储
技术领域
:,特别涉及一种asm磁盘管理方法及装置。
背景技术
::oracle数据库是业界使用最广泛,性能和可靠性最高的关系型数据库之一,而其高性能的特点给存储性能也带来了很大的挑战。原有的传统it架构(例如,裸金属设备(小型机/x86服务器)对接集中式存储的架构)正在逐步向云架构演进。在云架构中存储一般采用分布式存储架构,这样可以根据业务需求而进行无限扩展。在云架构中存储服务的lun(逻辑存储单元)的置备均由业务用户或者管理员在界面进行申请,对于存储设备来说无法感知此lun的上层业务应用,这样会导致oracle的高性能要求让存储在云架构下无法达到最优性能。为了保障oracle数据库高性能高可靠,存储厂家在给客户配置时,会针对oracle数据库应用来配置单独的硬盘池类型(例如,高性能的全ssd硬盘池)达到满足oracle高性能高可靠的要求。但是,在云存储场景下,存储系统的多个磁盘会挂载给不同的业务(如,oracle数据库,web服务等)使用,即存储系统为多个业务提供存储服务,存储系统无法识别哪些磁盘为asm磁盘,也并不关心哪些磁盘挂载在哪个具体业务下,针对各业务io均正常处理,这样,就不能保证oracle数据库的高性能高可靠的要求。技术实现要素:本申请提供了一种asm磁盘管理方法及装置,用以解决现有技术中存在的存储系统无法识别asm磁盘的问题。第一方面,本申请提供了一种asm磁盘管理方法,应用于存储系统,所述存储系统为多个业务应用提供存储服务,所述方法包括:获取各磁盘的元数据信息;基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘,其中,当一个磁盘的元数据信息的第一指定字段的值为特定值时,表征该一个磁盘为asm磁盘;若判定所述各磁盘中任一磁盘为asm磁盘,则将所述任一磁盘标记为asm磁盘。可选地,基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘的步骤包括:获取一个磁盘的元数据信息;提取该磁盘的元数据信息的第一指定字段;将该第一指定字段的值与预设值进行匹配操作,若相匹配,则判定该磁盘为asm磁盘;否则,判定该磁盘不是asm磁盘。可选地,将所述任一磁盘标记为asm磁盘的步骤包括:获取所述任一磁盘的元数据信息的第二指定字段,其中,一个磁盘的元数据信息的第二指定字段至少包括该一个磁盘的磁盘编号,磁盘名称,磁盘组名称,block大小,最后一次挂载时间和分配单元au大小;将该第二指定字段写入object扩展属性。可选地,将该第二指定字段写入object扩展属性的步骤包括:将该第二指定字段写入rbd卷扩展属性,并触发将该第二指定字段从所述rbd卷扩展属性写入object扩展属性的操作。可选地,所述方法还包括:读取各asm的最后一次挂载时间和对应元数据信息的最后一次修改时间;当检测到任一asm磁盘的最后一次挂载时间与该asm磁盘对应元数据信息的最后一次修改时间间隔大于设定时长,则将缓存中缓存的该asm磁盘对应的数据存储至该asm磁盘中。第二方面,本申请提供了一种asm磁盘管理装置,应用于存储系统,所述存储系统为多个业务应用提供存储服务,所述装置包括:获取单元,用于获取各磁盘的元数据信息;判断单元,用于基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘,其中,当一个磁盘的元数据信息的第一指定字段的值为特定值时,表征该一个磁盘为asm磁盘;标记单元,若所述判断单元判定所述各磁盘中任一磁盘为asm磁盘,则所述标记单元用于将所述任一磁盘标记为asm磁盘。可选地,基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘时,所述判断单元具体用于:获取一个磁盘的元数据信息;提取该磁盘的元数据信息的第一指定字段;将该第一指定字段的值与预设值进行匹配操作,若相匹配,则判定该磁盘为asm磁盘;否则,判定该磁盘不是asm磁盘。可选地,将所述任一磁盘标记为asm磁盘时,所述标记单元具体用于:获取所述任一磁盘的元数据信息的第二指定字段,其中,一个磁盘的元数据信息的第二指定字段至少包括该一个磁盘的磁盘编号,磁盘名称,磁盘组名称,block大小,最后一次挂载时间和分配单元au大小;将该第二指定字段写入object扩展属性。可选地,将该第二指定字段写入object扩展属性时,所述标记单元具体用于:将该第二指定字段写入rbd卷扩展属性,并触发将该第二指定字段从所述rbd卷扩展属性写入object扩展属性的操作。可选地,所述装置还包括:读取单元,用于读取各asm的最后一次挂载时间和对应元数据信息的最后一次修改时间;存储单元,当检测到任一asm磁盘的最后一次挂载时间与该asm磁盘对应元数据信息的最后一次修改时间间隔大于设定时长,则所述存储单元用于将缓存中缓存的该asm磁盘对应的数据存储至该asm磁盘中。第三方面,本申请实施例提供一种asm磁盘管理装置,该装置包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。综上可知,本申请实施例提供的asm磁盘管理方法,应用于存储系统,所述存储系统为多个业务应用提供存储服务,所述方法包括:获取各磁盘的元数据信息;基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘,其中,当一个磁盘的元数据信息的第一指定字段的值为特定值时,表征该一个磁盘为asm磁盘;若判定所述各磁盘中任一磁盘为asm磁盘,则将所述任一磁盘标记为asm磁盘。采用本申请实施例提供的asm磁盘管理方法,存储系统能够基于各磁盘的元数据信息中的指定字段,确定该磁盘是否为asm磁盘,当一个磁盘的元数据的指定字段为特定值时,确定该磁盘为asm磁盘,并将该磁盘标记为asm磁盘,这样,存储系统就能感知系统中挂载给oracle数据库使用的磁盘,进而可以针对该asm配置对应的io业务处理规则。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1为本申请实施例提供的一种asm磁盘管理方法的详细流程图;图2为本申请实施例提供的另一种asm磁盘管理方法的详细流程图;图3为本申请实施例提供的一种asm磁盘管理装置的结构示意图;图4为本申请实施例提供的另一种asm磁盘管理装置的结构示意图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。示例性的,参阅图1所示,为本申请实施例提供的一种asm磁盘管理方法的详细流程图,该方法应用于存储系统,所述存储系统为多个业务应用提供存储服务,该方法包括以下步骤:步骤100:获取各磁盘的元数据信息。实际应用中,在云存储环境下,存储系统包括多个磁盘,各磁盘会分配给不同的业务使用,如,一部分磁盘分配给业务1使用,即该磁盘为业务1提供存储服务,而一部分磁盘分配给业务2使用,即该磁盘为业务2提供存储服务。目前,针对存储系统而言,无法区分各磁盘挂在的业务,各磁盘在功能上是一样的,均对外提供存储服务,基于预设的数据处理机制,对各业务io进行处理。然而,oracle数据库是一种业务优先级较高的业务,其持久化存储大都采用oracleasm磁盘技术,以此来保证oracle数据库的高性能和高可用性。那么,如何在存储测识别哪些磁盘是普通磁盘,哪些磁盘是oracle磁盘,以便能够基于磁盘类型进行不同类型磁盘对应的业务io区别处理的前提是,存储系统识别哪些是asm磁盘。实际应用中,asm磁盘有其独特的数据管理方式。每一个asm磁盘都被划分为许多个分配单元(allocationunits,au),(单个au的大小在1mb~64mb)。au是磁盘group的基本分配单元,一个asm磁盘上的可用空间总是整数倍个au。在每一个asm磁盘的头部均有一个表,该表的每一条记录代表该asm磁盘上的一个au。asm元数据是用来描述磁盘组和文件信息的数据,是由asm实例管理,目的在于为其它数据库实例提供有效的文件服务。其中包括路径(directories),间接扩展(indirectextents),以及分配表(allocationtables)和记录了asm磁盘以及partner的状态信息(pst)等。这些元数据存储在磁盘组au的数据块中,每个块大小默认为4k。元数据分为两种,一种是存放在asm磁盘上的固定位置,叫做物理元数据。一般储存在磁盘组的前几个au中,这些物理元数据只和每个磁盘相关,当asm初始化的时候要用到这些信息。另一种是以文件目录的形式存放在磁盘组里,通常被叫做虚拟元数据,这些数据的虚拟地址被存放在文件当中,可以像普通的asm文件那样均匀分布在asm的磁盘上。asm的前255个filenumber是为metadatafile保留的,1号文件为asm的filedirectory,普通的asmfile的filenumber从256开始。本申请实施例,存储系统获取各磁盘的元数据信息,并根据各磁盘的元数据信息来判断该磁盘是否为asm磁盘。步骤110:基于上述各磁盘的元数据信息的第一指定字段,分别判断上述各磁盘是否为asm磁盘,其中,当一个磁盘的元数据信息的第一指定字段的值为特定值时,表征该一个磁盘为asm磁盘。由上可知,asm磁盘的元数据信息中,某些指定字段可用于表征其对应磁盘是否为asm磁盘。那么,本申请实施例中,在获取到一个磁盘的元数据信息后,即可根据该磁盘的元数据信息中的指定字段判断该磁盘是否为asm磁盘。具体地,本申请实施例中,在基于上述各磁盘的元数据信息的第一指定字段,分别判断上述各磁盘是否为asm磁盘时,一种较佳地实现方式为,针对每一磁盘执行以下操作:获取一个磁盘的元数据信息;提取该磁盘的元数据信息的第一指定字段;将该第一指定字段的值与预设值进行匹配操作,若相匹配,则判定该磁盘为asm磁盘;否则,判定该磁盘不是asm磁盘。需要说明的是,该第一指定字段为元数据信息中可以标识对应磁盘是否为asm磁盘的字段。具体地,假设获取到的一个磁盘的元数据信息如下:kfbh.endian:1;0x000:0x01kfbh.hard:130;0x001:0x82kfbh.type:1;0x002:kfbtyp_diskhead--标明是diskheader信息kfbh.datfmt:1;0x003:0x01kfbh.block.blk:0;0x004:t=0numb=0x0kfbh.block.obj:2147483648;0x008:type=0x8numb=0x0kfbh.check:2625524850;0x00c:0x9c7e5472kfbh.fcn.base:2795;0x010:0x00000aebkfbh.fcn.wrap:0;0x014:0x00000000kfbh.spare1:0;0x018:0x00000000kfbh.spare2:0;0x01c:0x00000000kfdhdb.driver.provstr:orcldisk;0x000:length=8kfdhdb.driver.reserved[0]:0;0x008:0x00000000kfdhdb.driver.reserved[1]:0;0x00c:0x00000000kfdhdb.driver.reserved[2]:0;0x010:0x00000000kfdhdb.driver.reserved[3]:0;0x014:0x00000000kfdhdb.driver.reserved[4]:0;0x018:0x00000000kfdhdb.driver.reserved[5]:0;0x01c:0x00000000kfdhdb.compat:186646528;0x020:0x0b200000kfdhdb.dsknum:0;0x024:0x0000kfdhdb.grptyp:2;0x026:kfdgtp_normal--磁盘组冗余方式kfdhdb.hdrsts:3;0x027:kfdhdr_member--磁盘herder状态,3为可用kfdhdb.dskname:data1_0000;0x028:length=9--磁盘名称kfdhdb.grpname:data1;0x048:length=4--磁盘组名称kfdhdb.fgname:data1_0000;0x068:length=9--failgroupnamekfdhdb.capname:;0x088:length=0kfdhdb.crestmp.hi:33006007;0x0a8:hour=0x17days=0xdmnth=0x8year=0x7dekfdhdb.crestmp.lo:811750400;0x0ac:usec=0x0msec=0x95secs=0x6mins=0xckfdhdb.mntstmp.hi:33006676;0x0b0:hour=0x14days=0x2mnth=0x9year=0x7dekfdhdb.mntstmp.lo:1221844992;0x0b4:usec=0x0msec=0xf8secs=0xdmins=0x12kfdhdb.secsize:512;0x0b8:0x0200kfdhdb.blksize:4096;0x0ba:0x1000--块大小,4kbkfdhdb.ausize:1048576;0x0bc:0x00100000--au大小,1mbkfdhdb.mfact:113792;0x0c0:0x0001bc80kfdhdb.dsksize:10240;0x0c4:0x00002800--磁盘大小,10gkfdhdb.pmcnt:2;0x0c8:0x00000002kfdhdb.fstlocn:1;0x0cc:0x00000001kfdhdb.altlocn:2;0x0d0:0x00000002kfdhdb.f1b1locn:2;0x0d4:0x00000002--filedirectory所在au位置。接着,提取上述元数据信息中的第3字节和第33字节,判断提取出来的第3字节的值是否与第一预设值相匹配,并判断提取出来的第33字节的值是否与第二预设值相匹配,若均相匹配,则确定该元数据信息对应的磁盘为asm磁盘;否则,确定该元数据信息对应的磁盘不是asm磁盘。例如,假设第一预设值为kfbtyp_diskhead,第二预设值为orcldisk。提取磁盘1的元数据信息的第3字节,其值为:kfbtyp_diskhead,提取磁盘1的元数据信息的第33字节,其值为:orcldisk,由上可知,均相匹配,则确定磁盘1为asm磁盘。显然,若一个磁盘并非asm磁盘,那么其元数据信息中第3字节和第33字节的值就不会是该特定值,由此可判断该磁盘是普通磁盘,而不是asm磁盘。步骤120:若判定上述各磁盘中任一磁盘为asm磁盘,则将上述任一磁盘标记为asm磁盘。本申请实施例中,在将所述任一磁盘标记为asm磁盘时,一种较佳地实现方式为:获取所述任一磁盘的元数据信息的第二指定字段,其中,一个磁盘的元数据信息的第二指定字段至少包括该一个磁盘的磁盘编号,磁盘名称,磁盘组名称,block(块)大小,最后一次挂载时间和分配单元au大小;将该第二指定字段写入object扩展属性。本申请实施例中,在确定一个磁盘为asm磁盘后,需要将该磁盘标记为asm磁盘,这样,存储系统就能识别该磁盘为asm磁盘,进一步地,需要将该磁盘的磁盘信息写入object扩展属性(object元数据)中,需要说明的是,该磁盘的磁盘信息至少包括:asm磁盘编号(偏移0x024),asm磁盘名称(偏移0x028),asm磁盘组名称(偏移0x048),block大小(0x0ba),最后一次挂载时间(0x0b0)和au大小(偏移0x0c0)。即第二指定字段指的是能囊括上述磁盘信息的字段(如,元数据信息的前200字节)。进一步地,本申请实施例中,在将该第二指定字段写入object扩展属性时,一种较佳地实现方式为,将该第二指定字段写入rbd卷扩展属性,并触发将该第二指定字段从所述rbd卷扩展属性写入object扩展属性的操作。更进一步地,本申请实施例中,读取各asm的最后一次挂载时间和对应元数据信息的最后一次修改时间;当检测到任一asm磁盘的最后一次挂载时间与该asm磁盘对应元数据信息的最后一次修改时间间隔大于设定时长,则将缓存中缓存的该asm磁盘对应的数据存储至该asm磁盘中。也就是说,当一个asm磁盘长时间未使用时,即可将存储系统cache中缓存的该asm磁盘对应的数据刷盘至该asm磁盘中。例如,当asm磁盘长期不被使用时,例如定义1天不使用(读取磁盘的最后一次挂载时间-最后一次修改元数据的时间偏差1天),则将cache数据刷盘到osd中下面结合具体应用场景对本申请实施例提供的asm磁盘管理方法进行详细说明。示例性的,参阅图2所示,为本申请实施例提供的另一种asm磁盘管理方法的详细流程图,该方法包括以下步骤:步骤200:扫描所有rbd磁盘。具体地,扫描存储系统中所有磁盘,获取各磁盘的元数据信息。步骤210:获取第2个偏移和第32个偏移。具体地,提取每一磁盘的元数据信息中的指定字段,并判断提取的字段是否与预设值相匹配,若判断结果为是,则执行步骤220;否则,确定该磁盘不是asm磁盘。步骤220:标记该磁盘为oracleasm磁盘。步骤230:获取元数据信息的前200字节。步骤240:将获取到的元数据信息的前200字节存入rbd扩展属性。步骤250:将获取到的元数据信息的前200字节存入object扩展属性。示例性的,参阅图3所示,为本申请实施例提供的一种asm磁盘管理装置的结构示意图,该装置应用于存储系统,所述存储系统为多个业务应用提供存储服务,所述装置包括:获取单元30,用于获取各磁盘的元数据信息;判断单元31,用于基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘,其中,当一个磁盘的元数据信息的第一指定字段的值为特定值时,表征该一个磁盘为asm磁盘;标记单元32,若所述判断单元判定所述各磁盘中任一磁盘为asm磁盘,则所述标记单元用于将所述任一磁盘标记为asm磁盘。可选地,基于所述各磁盘的元数据信息的第一指定字段,分别判断所述各磁盘是否为asm磁盘时,所述判断单元31具体用于:获取一个磁盘的元数据信息;提取该磁盘的元数据信息的第一指定字段;将该第一指定字段的值与预设值进行匹配操作,若相匹配,则判定该磁盘为asm磁盘;否则,判定该磁盘不是asm磁盘。可选地,将所述任一磁盘标记为asm磁盘时,所述标记单元32具体用于:获取所述任一磁盘的元数据信息的第二指定字段,其中,一个磁盘的元数据信息的第二指定字段至少包括该一个磁盘的磁盘编号,磁盘名称,磁盘组名称,block大小,最后一次挂载时间和分配单元au大小;将该第二指定字段写入object扩展属性。可选地,将该第二指定字段写入object扩展属性时,所述标记单元32具体用于:将该第二指定字段写入rbd卷扩展属性,并触发将该第二指定字段从所述rbd卷扩展属性写入object扩展属性的操作。可选地,所述装置还包括:读取单元,用于读取各asm的最后一次挂载时间和对应元数据信息的最后一次修改时间;存储单元,当检测到任一asm磁盘的最后一次挂载时间与该asm磁盘对应元数据信息的最后一次修改时间间隔大于设定时长,则所述存储单元用于将缓存中缓存的该asm磁盘对应的数据存储至该asm磁盘中。以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。进一步地,本申请实施例提供的asm磁盘管理装置,从硬件层面而言,所述asm磁盘管理装置的硬件架构示意图可以参见图4所示,所述asm磁盘管理装置可以包括:存储器40和处理器41,存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。可选地,本申请还提供一种asm磁盘管理设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1