异常空闲存储分析方法、装置及系统与流程

文档序号:16916462发布日期:2019-02-19 19:00阅读:195来源:国知局
异常空闲存储分析方法、装置及系统与流程

本发明涉及计算机存储领域,更具体地说,涉及存储设备的异常空闲存储的分析方法、装置及系统。



背景技术:

异常空闲存储资源(afsr,abnormalfreestorageresources)是指存储端无法直接识别出的已释放的存储资源,造成这一现象最为常见的原因之一是资源占有方(小型机或者数据库等)因某些非正常原因(如强制回收,未回收直接下电等)丢失。异常空闲存储(afsr)可以认为是一种错误、冗余配置,存储端将空间通过网络映射给了一台或者几台服务器,而由于线路缺失、服务器关机、服务器回收、hba(hostbusadapter,主机总线适配器)损坏等等原因造成了存储端的空间没有被及时回收。

图1是一种企业级存储架构的示意图。企业级存储架构的存储区域网路采用网状通道(fiberchannel,简称fc)技术,通过fc交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。为了保证每一台接入san网络的主机都能访问到所有的存储设备以及冗余链路的互备,通常一台主机会建立多个链路,当某一条链路存在问题,另外几条链路会接管存在问题链路的i/o流量,保证链路故障时不影响生产业务。

图2是主机设备与存储设备建立冗余链路的示意图。基于图1所示的架构模式,如图2所示,每台主机设备拥有配置多个hba卡并且通过hba卡对存储设备建立了多条冗余链路,每一个hba卡都会提供一个服务端口。由于多路径软件的存在,主机可以屏蔽底层多条链路信息,并不会刻意区分外挂存储设备与本地存储设备。而对于存储端而言,所能识别的最小粒度为hba卡,并不了解哪台主机占用了哪些存储盘。

具体而言,使用存储资源的设备(以服务器为例),不会记录维护使用了具体哪些存储的资源(例如lun号),并且由于多路径软件的存在,服务器也无法看到真实的lun信息,所以对于服务器而言只能了解哪些hba卡正在使用。从存储端的角度来看,分配存储资源的时候会人工建立一个“存储组”(sg,storagegroup)分配给服务器,存储管理者为sg分配一个“有意义的名称”,通常会以系统名称、设备名称等命名。存储端在分配资源时会了解“服务器-存储”的对应关系,但是存储设备并不会记录这些信息,这些对应关系一般会由第三方资源管理系统或者人工维护的方式进行记录。

由于服务器端与存储端互相不了解对方的完全信息,一旦服务器端异常终止(如掉电、强制回收等)就会造成异常空闲存储情况的出现,即存储端来无法判断这些存储是否继续占用,而且存储里的数据依然存在,更无法判断是否可以回收,尽管一些存储厂商(如emc)能够对失效的链路进行提示,但是并无法准确发现异常空闲存储,只能通过工程师手工进行查询并核对分配记录,人工进行分析。

目前使用的人工分析方法为:当存储管理者排查测试环境所有存储中的空闲存储时,按照以下步骤进行排查(以emcvxn系列为例):登录一台存储系统自带的客户端软件,systemalters中找到报警的选项,收集汇总所有hba卡port报错信息进行分析,判断是hba卡损坏、对方主机不存在或者其他问题等等。

企业级存储针对不同的业务需求,通常会选用多品牌、多层次立体架构方式,产品的异构特性使得维护的成本和维护难度也相对较大,一旦问题出现,需要大量人力进行排查。现有的人工分析方法分析效率低,所需的人力成本较高,而问题的解决完全取决于技术人员的经验,这就造成了潜在的不可控因素。另外,频繁人工分配、回收操作难免会造成疏漏,在存储中会造成许多“历史遗留”问题,再加之存储影响面大,不能轻易修改存储配置,所以除了当初配置者,后续接手的工作者很难将错误、冗余配置进行删除修改,增加了后续工作者解决问题的难度和负担。



技术实现要素:

为解决上述问题,本发明实施例的第一方面提供一种异常空闲存储分析方法,所述方法包括:

接收对存储设备的分析请求,根据所述分析请求获取标准格式存储信息;

根据所述标准格式存储信息发现异常空闲存储,根据已发现的异常空闲存储的存储信息使用布隆过滤器(bloomfilter)排查重复出现的异常空闲存储信息;

当发现重复出现的异常空闲存储信息时,根据所述重复出现的异常空闲存储信息提示环境出现的问题。

具体地,根据发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的问题包括:

将当前发现的异常空闲存储的存储信息送入构建好的与所述存储信息对应的布隆过滤器中,判断布隆过滤器中是否存在所述存储信息,若不存在,则将所述存储信息放入所述布隆过滤器中,若存在,则进行所述发现重复出现的存储信息,根据所述重复出现的异常空闲存储信息提示环境出现的问题的处理。

具体地,所述布隆过滤器根据已经发现的异常空闲存储的存储信息分别构建。

可选地,所述异常空闲存储的存储信息包括以下参数的一个或两个:端口地址、存储组名称、控制器名称。

进一步地,所述标准格式存储信息唯一标识一条存储链路,根据所述标准格式存储信息发现异常空闲存储包括:

根据存储组对应的所有存储链路的在线状态来发现异常空闲存储。

本发明实施例的第二方面提供一种异常空闲存储分析装置,包括:

交互组件,接收对存储设备的分析请求,根据所述分析请求获取标准格式存储信息;

分析组件,根据所述标准格式存储信息发现异常空闲存储,根据已发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的异常空闲存储信息;

信息提示组件,当发现重复出现的异常空闲存储信息时,根据所述重复出现的异常空闲存储信息提示环境出现的问题。

具体地,分析组件根据发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的问题包括:

将当前发现的异常空闲存储的存储信息送入构建好的与所述存储信息对应的布隆过滤器中,判断布隆过滤器中是否存在所述存储信息,若不存在,则将所述存储信息放入所述布隆过滤器中,若存在,则进行所述根据所述重复出现的异常空闲存储信息提示环境出现的问题的处理。

具体地,所述布隆过滤器根据已经发现的异常空闲存储的存储信息分别构建。

可选地,所述异常空闲存储的存储信息包括以下参数的一个或两个:端口地址、存储组名称、控制器名称。

进一步地,所述标准格式存储信息唯一标识一条存储链路,根据所述标准格式存储信息发现异常空闲存储包括:

根据存储组对应的所有存储链路的在线状态来发现异常空闲存储。

本发明实施例的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序能够被处理器执行以实现本发明实施例所述的异常空闲存储分析方法的步骤。

本发明实施例的第四方面提供一种异常空闲存储分析系统,所述系统包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被处理器处理以执行本发明实施例所述的异常空闲存储分析方法的步骤。

本发明实施例所述的异常空闲存储分析方法、装置及系统,通过根据已发现的异常空闲存储的存储信息分别构建不同的布隆过滤器,使用布隆过滤器对已发现的异常空闲存储的存储信息进行记录,同时,使用布隆过滤器排查重复出现的异常空闲存储的存储信息,根据排查出的异常空闲存储的存储信息提示环境出现的问题,能够达到以下有益效果:实现存储环境问题的智能自动化分析,减少人工分析排查的人力成本,提高分析效率,快速排查出环境中复现的错误,为存储管理者提供充足的信息提示辅助存储管理者进行积极的预防策略。

附图说明

图1是一种企业级存储架构的示意图;

图2是主机设备与存储设备的存储链路示意图;

图3是根据本发明实施例的异常空闲存储的分析方法的流程图;

图4是根据标准格式存储信息发现异常空闲存储的流程图;

图5是根据本发明实施例的一种异常空闲存储分析装置。

具体实施方式

为了便于理解本发明技术方案的各个方面、特征以及优点,下面结合附图对本发明进行具体描述。应当理解,下述的各种实施方式只用于举例说明,而非限制本发明的保护范围。

图3是根据本发明实施例的异常空闲存储的分析方法的流程图,参照图3,本发明实施例所述的异常空闲存储分析方法包括:

s101:接收对存储设备的分析请求,根据所述分析请求获取标准格式存储信息;

s102:根据所述标准格式存储信息发现异常空闲存储,根据已发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的异常空闲存储信息;

s103:当发现重复出现的异常空闲存储信息时,根据所述异常空闲存储信息提示环境出现的问题。

具体而言,在处理s101中,接收对存储设备的分析请求后,可以对所述对存储设备的分析请求进行解析,获取基本的请求信息,如请求设备的管理地址、管理端口、设备信号等等,然后根据获取的请求信息,调用相关接口向存储设备发出信息请求,获取存储设备的标准格式存储信息。

可选地,所述存储设备为异构的,对不同存储设备发出信息请求,获取的不同存储设备相应的存储信息,将所述存储信息交由统一的数据处理引擎进行处理,将不同的存储信息转换为统一的格式标准,获取标准格式存储信息。所述标准格式存储信息唯一标识一条存储链路,参考图2所示的主机设备与存储设备的存储链路示意图,所述标准格式存储信息可以表示为七元组的形式:[wwport,hostname,ip,spname,spport,sgname,loggedin],其对应于[端口地址,主机名称,主机地址,控制器,端口号,存储组名称,是否在线]。

由于存储是按照storagegroup(存储组,简写为sg)为粒度分给服务器进行使用,处于冗余考虑,会为一个sg分配许多条链路,所以一个sg中可以存在多个对应的端口信息。例如:sg对应的wwport的状态分为三类:1、一个sg所有的wwport均不在线(loggedno);2、一个sg所有wwport部分不在线;3、一个sg所有的wwport均在线。其中,对于第1种情况,由于存储端的sg所有的端口(wwport)都没有处于在线(loggedyes)状态,所以在存储端看来这些存储分配给了一个不存在的主机。这种情况下的存储就是本文所述的异常空闲存储。

图4是根据标准格式存储信息发现异常空闲存储的流程图,如图4所示,在处理s102中,根据标准格式存储信息发现异常空闲存储的步骤如下:

201:获取一条标准格式存储信息,所述标准格式存储信息唯一对应一条存储链路;

202:判断所述标准格式存储信息中wwport是否在线,若在线,则该标准格式存储信息对应的存储链路为正常链路,进入处理203;若不在线,则该标准格式存储信息对应的存储链路为非正常状态,进入处理204;

203:在对应的sg中记录该链路为正常状态;

204:判断所对应的sg中所有的存储链路是否都为非正常状态;若否,则进入205;若是,则进入206;

205:所对应的sg的部分存储链路失效;

206:所对应的sg为异常空闲存储。

根据图4所述的实施例,可以实现根据标准格式存储信息发现异常存储。图4所述的方法可以通过存储配置自动化分析工具实现,使得用户能够一键检查并发现异常空闲存储。

随着系统的不断运行,所发现的异常空闲存储也越来越多,当一条链路频繁告警或者一个sg中频繁出现异常空闲存储时,本发明实施例根据已发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的异常空闲存储信息,当发现重复出现的异常空闲存储信息时,根据所述异常空闲存储信息对存储管理者提供充足的提示,提示环境出现的问题,如提示存储管理者注意如是否需要更换hba卡或者存储操作流程、资源分配系统是否存在bug等。

在处理s102中,根据已发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的问题,具体而言,将当前发现的异常空闲存储的存储信息送入构建好的与所述存储信息对应的布隆过滤器中,判断布隆过滤器中是否存在所述存储信息,若不存在,则将所述存储信息放入所述布隆过滤器中记录,若存在,则进行处理s103,发现重复出现的存储信息,根据所述异常空闲存储信息提示环境出现的问题的处理。所述布隆过滤器根据已经发现的异常空闲存储的存储信息分别构建。所述异常空闲存储的存储信息包括以下参数的一个或两个:端口地址、存储组名称、控制器名称。

举例来说,可以根据异常空闲存储的端口地址(wwport标识)构建与所述端口地址对应布隆过滤器,表示曾经出现过异常存储的hba卡端口;根据异常空闲存储的端口地址和存储组名称(wwport+sgname标识)构建与其相对应的布隆过滤器,表示曾经出现过问题的系统(一般sgname以系统名称标识),表示某个系统某个端口重复出现问题;根据异常空闲存储的端口地址和控制器名称(wwport+spname标识),表示某个存储的控制器可能频繁出现问题。

下面以使用wwport为例,详细描述构建布隆过滤器的过程。构建布隆过滤器需要使用一个位数组(bitarray)和k个映射函数(hushfunction),在初始状态时,对于长度为m的位数组bitarray,将所有位都指定为0。对于有n个wwport元素的集合s={s1,s2……sn},通过8个映射函数{f1,f2,……f8},将集合s中的每个元素sj(1<=j<=n)映射为k个值,然后再将位数组bitarray中相对应的bitarray[g1],bitarray[g2]……bitarray[g8]置为1。例如映射函数采用标准的地推hush函数,an=an-1*seed+item(i),其中seed为随机质数种子数(3,5,7,11,17,31,59),item(i)标识元素第i位的ascii码。通过上式从wwport的第一位循环处理就可以得到wwport的第一个映射值gi,在经过8个函数处理并把响应位置的bitarray填充完毕后即完成wwport布隆过滤器添加元素的操作。

在构造完过滤器后,若又发现新的异常空闲存储,则将信息送到已构建好的布隆过滤器中,判断新分析的异常空闲存储之前是否出现过。举例而言,如果要查找某个wwport是否在使用已发现的异常空闲存储wwport构建好的布隆过滤器s中,则通过相同的映射函数{f1,f2……f8}得到8个值{g1,g2,……g8},然后再判断bitarray[g1],bitarray[g2]……bitarray[g8]是否都为1,若全为1,则在s中,该wwport反复出现问题,对存储管理者给出提示,如提示反复出现问题的wwport、对应的hba卡端口等,否则,不在s中,将该wwport加入构建好的布隆过滤器中。使用其他异常空闲存储信息构建布隆过滤器的方法与使用wwport信息构建布隆过滤器的方法基本一致,在此不做赘述。

通过使用布隆过滤器来对反复出现的异常空闲存储进行排查,根据不同的异常空闲存储信息构建对应的布隆过滤器,可以对反复出现的异常空闲存储的不同问题进行分析,如上文所述使用发现的异常空闲存储的wwport信息构建对应的布隆过滤器,使用所述布隆过滤器排查重复出现过异常存储的hba端口,使用根据异常空闲存储的端口地址和存储组名称(wwport+sgname标识)构建与其相对应的布隆过滤器,排查曾经出现过问题的系统(一般sgname以系统名称标识),重复出现问题的某个系统某个端口;根据异常空闲存储的端口地址和控制器名称(wwport+spname标识),排查可能频繁出现问题的某个存储的控制器,从而可以通过构建不同的布隆过滤器来分析排查测试环境中重复出现的问题。

本发明实施例使用布隆过滤器进行分析排查,能够对异常空闲存储实现智能自动化的分析,提高异常空闲存储分析排查的效率,减少人工成本的消耗,减少接收的工作者的处理负担。同时,由于布隆过滤器使用位图技术,假设有1亿条异常空闲存储(实际上不会达到这么多),每个元素拥有8bytes的指纹信息(即{g1,g2,……g8}),如果采用哈希表存储约占用1.6gb内存,使用布隆过滤器的实际开销约为200m内存,在实际生产过程中,布隆过滤器可以一直驻留于内存中并且不会造成内存的过渡消耗问题,使用布隆过滤器能够显著减少内存消耗,其效率也远高于文件读写和数据库读写操作。

图5是根据本发明实施例的一种异常空闲存储分析装置,包括:

交互组件31,接收对存储设备的分析请求,根据所述分析请求获取标准格式存储信息;

分析组件32,根据所述标准格式存储信息发现异常空闲存储,根据已发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的异常空闲存储信息;

信息提示组件33,当发现重复出现的异常空闲存储信息时,根据所述异常空闲存储信息提示环境出现的问题。

具体地,分析组件32根据发现的异常空闲存储的存储信息使用布隆过滤器排查重复出现的问题包括:

将当前发现的异常空闲存储的存储信息送入构建好的与所述存储信息对应的布隆过滤器中,判断布隆过滤器中是否存在所述存储信息,若不存在,则将所述存储信息放入所述布隆过滤器中,若存在,则进行所述发现重复出现的存储信息显示所述存储信息,给出警示的处理。

具体地,所述布隆过滤器根据已经发现的异常空闲存储的存储信息分别构建。

可选地,所述异常空闲存储的存储信息包括以下参数的一个或两个:端口地址、存储组名称、控制器名称。

进一步地,所述标准格式存储信息唯一标识一条存储链路,根据所述标准格式存储信息发现异常空闲存储包括:

根据存储组对应的所有存储链路的在线状态来发现异常空闲存储。

此外,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序能够被处理器执行以实现本发明实施例所述的异常空闲存储分析方法的步骤。

本发明实施例还提供一种异常空闲存储分析系统,所述系统包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被处理器处理以执行本发明实施例所述的异常空闲存储分析方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、模块的具体工作过程,可以参考前述方法实施例中对应的过程,在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本领域技术人员应当理解,以上所公开的仅为本发明的实施方式而已,当然不能以此来限定本发明之权利范围,依本发明实施方式所作的等同变化,仍属本发明权利要求所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1