一种测试磁盘阵列的方法和装置制造方法
【专利摘要】本发明公开了一种测试磁盘阵列的方法和装置,用以解决现有技术中不能检测出磁盘阵列异常运行状态以及不能得到准确测试结果的问题。包括:确定预先设置的访问控制策略组;依次针对访问控制策略组中的每个访问控制策略执行指定操作,直至遍历全部访问控制策略为止;指定操作包括:从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定待访问矩阵元素;根据预先建立的矩阵元素与待测试逻辑单元所包含的各个数据块的对应关系,确定与待访问矩阵元素对应的待访问数据块;并判断针对待访问数据块所指定的写入数据与根据该访问控制策略执行读操作后返回的数据是否匹配;根据判断结果,确定磁盘阵列的运行状态是否异常。
【专利说明】 一种测试磁盘阵列的方法和装置
【技术领域】
[0001]本发明涉及测试【技术领域】,尤其涉及一种测试磁盘阵列的方法和装置。
【背景技术】
[0002]一个磁盘阵列包括控制器和物理磁盘柜,控制器用来运行控制软件和各种算法,用于缓存数据的高速缓冲存储器cache位于控制器中;而物理磁盘柜在控制器的控制下存储数据。正常情况下,磁盘阵列收到客户端的一个IO读请求时,如果请求的数据在高速缓冲存储器cache没有命中,那么要将请求的数据从磁盘阵列的物理磁盘柜读入到cache中,再由cache向客户端返回;当磁盘阵列收到客户端一个IO写请求时,要将待写入数据写到cache中,并向客户端返回成功应答,之后根据算法控制,再在某个时间由cache将该待写入数据写入磁盘阵列中的物理磁盘柜中。根据磁盘阵列这一运行特点,现有的磁盘阵列的测试方法是:单纯的仿真IO读写操作,即:向磁盘阵列发送IO写操作命令,收到磁盘阵列返回的成功应答;再向磁盘阵列发送用于读取写入的数据的IO读操作命令,收到磁盘阵列返回的数据。现有技术中,上述过程中不会验证写入的数据和读出的数据是否一致。
[0003]在实际测试中,为了得到一个更高的测试值,被测磁盘阵列的厂家有可能会改变磁盘阵列的控制软件。比如,对于IO读操作命令,即便cache没有命中,其也不会从磁盘阵列的物理磁盘柜中读数据再向客户端返回,而是直接向客户端返回cache中的其他数据。
[0004]可见,现有的这种测试方法不能有效的检测出磁盘阵列这种异常的运行状态,从而会导致测试的数值虚高,不符合其实际运行情况。
[0005]另外,现有的测试模型实现方式是用生成随机数的方式实现的,如图1所示,为现有技术中使用生成随机数的方式实现测试的示意图。其中,测试模型生成包含100个元素的数组,每个元素代表一种具体的访问控制策略,根据生成的随机数来确定选取相应的元素代表的访问控制策略,并根据确定的访问控制策略对磁盘阵列进行测试。在实际应用中,比如一个联机事务处理OLTP模型,其生成包含从I至100的数组,该数组代表一个访问控制策略组,其中“1-20”代表的访问控制策略为“以随机访问方式读8K字节”,“21-65”代表的访问控制策略为“以随机访问方式读4K字节”,“66-80”代表的访问控制策略为“以随机访问方式写8K字节”,“81-90”代表的访问控制策略为“以顺序访问方式写64K字节”,“91-100”代表的访问控制策略为“以顺序访问方式读64K字节”。可见,在针对该OLTP模型所设置的访问控制策略中,8K字节的随机读操作占20%,4K字节的随机读操作占45%,8K字节的随机写操作占15%,64K字节的顺序读操作占10%,64Κ字节的顺序写操作占10%。
[0006]在实际测试中,只有其依据的不同访问控制策略在访问控制策略组中所占的比例满足规定比例时,才会得到最准确的测试结果。但是,由于没有办法按需求控制生成的随机数而使得测试所依据的访问控制策略达到这样的比例,比如当使用生成随机数的方式在上述OLTP模型中对磁盘阵列进行测试时,生成的100个随机数中若有30个随机数落入[1,20]这一区间,那么“1-20”所对应的访问控制策略就会占30%,从而生成的随机数所指向访问控制策略在访问控制策略组中所占的比例注定不会很精确,因此无法很好地实现在上述 模型中测试磁盘阵列的目的。
【发明内容】
[0007]本发明实施例提供一种测试磁盘阵列的方法和装置,用以解决现有技术中不能检测出磁盘阵列异常运行状态以及不能得到准确的测试结果的问题。
[0008]本发明实施例采用以下技术方案:
[0009]一种测试磁盘阵列的方法,包括:
[0010]确定预先设置的访问控制策略组;依次针对所述访问控制策略组中的每个访问控制策略执行指定操作,直至遍历全部访问控制策略为止;其中,所述指定操作包括:从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定待访问矩阵元素;根据预先建立的矩阵元素与所述待测试逻辑单元所包含的各个数据块的对应关系,确定与所述待访问矩阵元素对应的待访问数据块;并在该访问控制策略所规定的读写IO操作类型为读操作时,判断针对待访问数据块所指定的写入数据与根据该访问控制策略执行读操作后返回的数据是否匹配;根据针对每个访问控制策略执行所述指定操作而得到的判断结果,确定所述磁盘阵列的运行状态是否异常。
[0011]一种测试磁盘阵列的装置,包括:
[0012]访问控制策略组确定单元,用于确定预先设置的访问控制策略组;执行单元,用于依次针对访问控制策略组确定单元确定的所述访问控制策略组中的每个访问控制策略执行指定操作,直至遍历全部访问控制策略为止;其中,所述指定操作包括:从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定待访问矩阵元素;根据预先建立的矩阵元素与所述待测试逻辑单元所包含的各个数据块的对应关系,确定与所述待访问矩阵元素对应的待访问数据块;并在该访问控制策略所规定的读写IO操作类型为读操作时,判断针对待访问数据块所指定的写入数据与根据该访问控制策略执行读操作后返回的数据是否匹配;运行状态确定单元,用于根据针对每个访问控制策略执行所述指定操作而得到的判断结果,确定所述磁盘阵列的运行状态是否异常。
[0013]本发明实施例的有益效果如下:
[0014]本发明实施例提供的方案当从磁盘阵列读出的数据不是指定写入的数据时,通过该判断结果就能确定该磁盘阵列存在异常的运行状态,从而克服了现有技术中不会验证写入的数据和读出的数据是否一致的缺陷,解决了现有技术中不能检测出磁盘阵列异常运行状态的问题;另一方面,通过遍历预先设置的访问控制策略组中的访问控制策略,实现了对每条访问控制策略的读取,使得在实际测试中,能够精确的按照设置的访问控制策略在访问控制策略组中所占的比例进行测试,进而得到准确的测试结果。
【专利附图】
【附图说明】
[0015]图1为现有技术中使用生成随机数的方式实现测试的示意图;
[0016]图2为本发明实施例提供的一种测试磁盘阵列的方法的主要流程图;
[0017]图3为为本发明实施例提供的一种访问控制策略矩阵的示意图;
[0018]图4为本发明实施例提供的一种遍历访问控制策略矩阵的示意图;
[0019]图5为本发明实施例提供的上述方案在实际应用中的一个具体实现示意图;[0020]图6为本发明实施例中存储空间矩阵的实现示意图;
[0021]图7为本发明实施例提供的存储空间矩阵的不同访问方法的示意图;
[0022]图8为本发明实施例提供的一种测试磁盘阵列的装置的结构示意图。
【具体实施方式】
[0023]为了解决现有技术中不能检测出磁盘阵列异常运行状态以及不能得到准确的测试结果的问题,本发明实施例提供了一种测试磁盘阵列的方案。该方案一方面根据每个访问控制策略,从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定带访问矩阵元素,再根据预先建立的矩阵元素与待测试的逻辑单元所包含的各个数据块的对应关系,确定与待访问矩阵元素对应的待访问数据块,进而判断针对待访问数据块所指定的写入数据与根据访问控制策略执行读操作后返回的数据是否匹配,克服了现有技术中不会验证写入的数据和读出的数据是否一致的缺陷,当从磁盘阵列读出的数据不是指定写入的数据时,通过该判断结果就能确定该磁盘阵列存在异常的运行状态,从而解决了现有技术中不能检测出磁盘阵列异常运行状态的问题;另一方面,通过遍历预先设置的访问控制策略组中的访问控制策略,实现了对每条访问控制策略的读取,使得在实际测试中,能够精确的按照设置的访问控制策略在访问控制策略组中所占的比例进行测试,进而得到准确的测试结果。
[0024]下面结合各个附图对本发明实施例技术方案的主要实现原理、【具体实施方式】及其对应能够达到的有益效果进行详细的阐述。
[0025]如图2所示,为本发明实施例提供的一种测试磁盘阵列的方法的主要流程图,该方法包括以下步骤:
[0026]步骤21,确定预先设置的访问控制策略组。
[0027]通常,测试模型包括OLAP和OLTP两个测试场景,每个测试场景包含不同比例、不同访问方式、不同数据量大小的读写IO操作。比如,在OLTP和OLAP场景下分别预先设置的访问控制策略组可以如表I所示。其中,在每个测试模场景中,可以生成一个含100个元素的数组,该数组代表一个访问控制策略组,每个元素代表一种具体的访问控制策略。以表I中的OLTP场景为例,共可以生成5种兀素element,每个element对应一种访问控制策略IOProfile,分别如下:
[0028]a) Element.size=8192, Element, random=100, Element.read=100 ;
[0029]b) Element.size=4096, Element, random=100, Element.read=100 ;
[0030]c) Element.size=8192, Element, random=100, Element.read=0 ;
[0031]d) Element.size=65536, Element.random=0, Element.read=100 ;
[0032]e) Element.size=65536, Element.random=0, Element.read=0 ;
[0033]其中,Element, size表不数据量大小;Element.random表不访问方式,Element,random= 100为随机访问方式,Element.random=0表示顺序访问方式;Element.read表示操作方式,Element.read=100为读操作,Element.read=0为写操作。比如以上述a)为例,其所代表的访问控制策略为以随机访问方式读8192字节(4KB)的数据量。
[0034]根据每种访问控制策略在访问控制策略组中所占的不同比例,决定各元素的数量,并且所有元素的数量之和为100。
【权利要求】
1.一种测试磁盘阵列的方法,其特征在于,包括: 确定预先设置的访问控制策略组; 依次针对所述访问控制策略组中的每个访问控制策略执行指定操作,直至遍历全部访问控制策略为止; 其中,所述指定操作包括:从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定待访问矩阵元素;根据预先建立的矩阵元素与所述待测试逻辑单元所包含的各个数据块的对应关系,确定与所述待访问矩阵元素对应的待访问数据块;并在该访问控制策略所规定的读写IO操作类型为读操作时,判断针对待访问数据块所指定的写入数据与根据该访问控制策略执行读操作后返回的数据是否匹配; 根据针对每个访问控制策略执行所述指定操作而得到的判断结果,确定所述磁盘阵列的运行状态是否异常。
2.如权利要求1所述的方法,其特征在于,预先设置的访问控制策略组为访问控制策略矩阵,且访问控制策略为访问控制策略矩阵中的矩阵元素。
3.如权利要求1所述的方法,其特征在于,针对任意待访问数据块所指定的写入数据为:该待访问数据块所对应的矩阵元素在所述存储空间矩阵中的编号。
4.如权利要求1所述的方法,其特征在于,所述访问控制策略包括IO数据量大小和IO访问方式;则 从所述存储空间矩阵中,确定待访问矩阵元素,具体包括: 根据IO数据量大小和单个数据块的额定数据存储量大小,确定待访问矩阵元素的数量; 根据所述存储空间矩阵的读指针和所述IO访问方式,从所述存储空间矩阵中选取所述数量的待访问矩阵元素。
5.如权利要求4所述的方法,其特征在于,所述预先建立的矩阵元素与所述待测试逻辑单元所包含的各个数据块的对应关系具体包括: 所述存储空间矩阵的每行矩阵元素依照从左至右的排列顺序,依次一一对应所述待测试逻辑单元所包含的、在存储空间地址上连续的多个数据块中的各数据块; 所述IO访问方式包括:顺序访问方式和随机访问方式;则 根据所述存储空间矩阵的读指针和所述IO访问方式,从所述存储空间矩阵中选取所述数量的待访问矩阵元素,具体包括: 当IO访问方式为IO顺序访问方式时,根据所述读指针,从位于所述读指针所指示的矩阵元素右侧的相邻矩阵元素开始,依次从所述存储空间矩阵中选取由左至右排列的所述数量的待访问矩阵元素; 当IO访问方式为IO随机访问方式时,根据所述读指针,从位于所述读指针所指示的矩阵元素下方的相邻矩阵元素开始,依次从所述存储空间矩阵中选取由左至右排列的所述数量的待访问矩阵元素。
6.一种测试磁盘阵列的装置,其特征在于,包括: 访问控制策略组确定单元,用于确定预先设置的访问控制策略组; 执行单元,用于依次针对访问控制策略组确定单元确定的所述访问控制策略组中的每个访问控制策略执行指定操作,直至遍历全部访问控制策略为止;其中,所述指定操作包括:从针对磁盘阵列的待测试逻辑单元所对应设置的存储空间矩阵中,确定待访问矩阵元素;根据预先建立的矩阵元素与所述待测试逻辑单元所包含的各个数据块的对应关系,确定与所述待访问矩阵元素对应的待访问数据块;并在该访问控制策略所规定的读写IO操作类型为读操作时,判断针对待访问数据块所指定的写入数据与根据该访问控制策略执行读操作后返回的数据是否匹配; 运行状态确定单元,用于根据针对每个访问控制策略执行所述指定操作而得到的判断结果,确定所述磁盘阵列的运行状态是否异常。
7.如权利要求6所述的装置,其特征在于,访问控制策略组确定单元确定的预先设置的访问控制策略组为访问控制策略矩阵,且访问控制策略为访问控制策略矩阵中的矩阵元素。
8.如权利要求6所述的装置,其特征在于,所述执行单元中针对任意待访问数据块所指定的写入数据为:该待访问数据块所对应的矩阵元素在所述存储空间矩阵中的编号。
9.如权利要求6所述的装置,其特征在于,所述访问控制策略包括IO数据量大小和IO访问方式;则 执行单元具体包括: 数量确定模块,用于根据IO数据量大小和单个数据块的额定数据存储量大小,确定待访问矩阵元素的数量; 选取模块,用于根据所述存储空间矩阵的读指针和所述IO访问方式,从所述存储空间矩阵中选取数量确定模块确定的数量的待访问矩阵元素。
10.如权利要求9所述的装置,其特征在于,所述IO访问方式包括:顺序访问方式和随机访问方式;以及 所述执行单元中的所述对应关系具体包括: 所述存储空间矩阵的每行矩阵元素依照从左至右的排列顺序,依次一一对应所述待测试逻辑单元所包含的、在存储空间地址上连续的多个数据块中的各数据块;则 所述执行单元具体用于: 当1O访问方式为1O顺序访问方式时,根据所述读指针,从位于所述读指针所指示的矩阵元素右侧的相邻矩阵元素开始,依次从所述存储空间矩阵中选取由左至右排列的所述数量的待访问矩阵元素; 当IO访问方式为1O随机访问方式时,根据所述读指针,从位于所述读指针所指示的矩阵元素下方的相邻矩阵元素开始,依次从所述存储空间矩阵中选取由左至右排列的所述数量的待访问矩阵元素。
【文档编号】G06F11/22GK103810065SQ201210460783
【公开日】2014年5月21日 申请日期:2012年11月15日 优先权日:2012年11月15日
【发明者】朱瑞平 申请人:中国移动通信集团公司