一种磁盘组乱序验证的方法及装置的制造方法

文档序号:10654406阅读:185来源:国知局
一种磁盘组乱序验证的方法及装置的制造方法
【专利摘要】本发明提供了一种磁盘组乱序验证的方法及装置,该方法包括:将服务器上的至少两个磁盘划分为至少两个磁盘组,每一个所述磁盘组包括至少一个磁盘;针对于每一个所述磁盘组,获取该磁盘组中各个磁盘的第一序列号,形成包括各个所述第一序列号的标准文件;对所述服务器进行重启;针对于每一个所述磁盘组,获取所述服务器重启后该磁盘组中各个磁盘的第二序列号,形成包括各个所述第二序列号的测试文件;判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标准文件不同,如果是,确定所述磁盘组发生乱序,否则确定所述磁盘组未发生乱序。本方案能够实现对包括不连续盘符的磁盘组进行乱序验证。
【专利说明】
-种磁盘组乱序验证的方法及装置
技术领域
[0001] 本发明设及计算机技术领域,特别设及一种磁盘组乱序验证的方法及装置。
【背景技术】
[0002] 随着计算机技术的不断发展与进步,传统信息化服务W及日益强大的云计算服务 对服务器的存储容量需求越来越大,为了满足用户的需求,一台服务器上搭载的磁盘数量 也越来越多。为了满足一些客户的特殊要求,将一台服务器上的各个磁盘划分为多个磁盘 组。针对于包括多个磁盘组的服务器,同一个磁盘组中的磁盘发生乱序时,不会影响服务器 的正常工作,但是当不同磁盘组中的磁盘发生乱序时,一个磁盘组中的磁盘出现在另一个 磁盘组中,运就会导致服务器工作异常,出现重启或岩机的现象。为了保证包括磁盘组的服 务器能够稳定的工作,需要验证磁盘组是否会发生乱序。
[0003] 目前,通过SOd命令实现磁盘组乱序验证。
[0004] 通过SOd命令实现磁盘组乱序验证时,由于30的命令的排序功能,同一个磁盘组 中各个磁盘的盘符必须是连续的,否则验证结果均会判断磁盘组发生乱序。因而,通过SOd 命令实现磁盘组乱序验证的方法存在较大的局限性,仅能够对包括连续盘符的磁盘组进行 乱序验证,无法实现对包括不连续盘符的磁盘组进行乱序验证。

【发明内容】

[0005] 本发明实施例提供了一种磁盘组乱序验证的方法及装置,能够实现对包括不连续 盘符的磁盘组进行乱序验证。
[0006] 本发明实施例提供了一种磁盘组乱序验证的方法,将服务器上的至少两个磁盘划 分为至少两个磁盘组,每一个所述磁盘组包括至少一个磁盘,还包括:
[0007] 针对于每一个所述磁盘组,获取该磁盘组中各个磁盘的第一序列号,形成包括各 个所述第一序列号的标准文件;
[000引对所述服务器进行重启;
[0009] 针对于每一个所述磁盘组,获取所述服务器重启后该磁盘组中各个磁盘的第二序 列号,形成包括各个所述第二序列号的测试文件;
[0010] 判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标准 文件不同,如果是,确定所述磁盘组发生乱序,否则确定所述磁盘组未发生乱序。
[0011] 优选地,所述判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与 对应的标准文件不同包括:
[0012] 对所述各个磁盘组进行排序,依次对各个所述磁盘组对应的测试文件与标准文件 进行对比;
[0013] 如果任意一个所述磁盘组对应的测试文件包括中至少一个第二序列号与该磁盘 组对应的标准文件中包括的各个第一序列号均不相同,则停止所述依次对各个所述磁盘组 对应的测试文件与标准文件进行对比,并确定所述磁盘组发生乱序;
[0014] 如果任意一个所述磁盘组对应的测试文件包括的各个第二序列号,在与该磁盘组 相对应的标准文件中均包括与之相同的第一序列号,则确定所述磁盘组未发生乱序。
[0015] 优选地,在所述判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件 与对应的标准文件不同之后进一步包括:
[0016] 根据判断结果,如果是,将记录所述磁盘组发生乱序的第一记录信息存储到预先创 建的日志文件中,否则将记录所述磁盘组未发生乱序的第二记录信息存储到所述日志文件中。
[0017] 优选地,在将所述第一记录信息或所述第二记录信息存储到所述日志文件中之后 进一步包括:
[0018] 判断预先设定的重启计数值是否达到预先设定的验证次数,如果否,将所述重启 计数值加1,并执行所述对所述服务器进行重启,其中所述重启计数值的初始值为1。
[0019] 优选地,在所述对所述服务器进行重启之后进一步包括:
[0020] 将所述重启计数值输入到所述日志文件中。
[0021] 本发明实施例提供了一种磁盘组乱序验证的装置,包括:划分单元、第一形成单 元、重启单元、第二形成单元及判断单元;
[0022] 所述划分单元,用于将服务器上的至少两个磁盘划分为至少两个磁盘组,每一个 磁盘组包括至少一个磁盘;
[0023] 所述第一形成单元,用于针对于所述划分单元划分出的每一个磁盘组,获取该磁 盘组中各个磁盘的第一序列号,形成包括各个所述第一序列号的标准文件;
[0024] 所述重启单元,用于对所述服务器进行重启;
[0025] 所述第二形成单元,用于针对于所述划分单元划分出的每一个磁盘组,获取所述 重启单元对服务器重启后该磁盘组中各个磁盘的第二序列号,形成包括各个所述第二序列 号的测试文件;
[00%] 所述判断单元,用于判断各个所述磁盘组中是否存在至少一个磁盘组对应的由第 二形成单元形成的测试文件与对应的由第一形成单元形成的标准文件不同,如果是,确定 所述磁盘组发生乱序,否则确定所述未发生乱序。
[0027]优选地,
[0028] 所述判断单元,用于对所述各个磁盘组进行排序,依次对各个所述磁盘组对应的 测试文件与标准文件进行对比;如果任意一个所述磁盘组对应的测试文件中包括至少一个 第二序列号与该磁盘组对应的标准文件中包括的各个第一序列号均不相同,则停止所述依 次对各个所述磁盘组对应的测试文件与标准文件进行对比,并确定所述磁盘组发生乱序; 如果任意一个所述磁盘组对应的测试文件包括的各个第二序列号,在于该磁盘组相对应的 标准文件中均包括与之相同的第一序列号,则确定所述磁盘组未发生乱序。
[0029] 优选地,该装置进一步包括:记录单元;
[0030] 所述记录单元,用于根据所述判断单元的判断结果,如果是,将记录所述磁盘组发 生乱序的第一记录信息存储到预先创建的日志文件中,否则将记录所述磁盘组未发生乱序 的第二记录文件存储到所述日志文件中。
[0031] 优选地,
[0032] 所述重启单元,进一步用于在所述记录单元将所述第一记录信息或所述第二记录 信息存储到所述日志文件中之后,判断预先设定的重启计数值是否达到预先设定的验证次 数,如果否,将所述重启计数值加1,并执行所述对所述服务器进行重启,其中所述重启计数 值的初始值为1。
[0033] 优选地,
[0034] 所述重启单元,进一步用于在对所述服务器进行重启之后,将所述重启计数值输 入到所述日志文件中。
[0035] 本发明实施例提供了一种磁盘组乱序验证的方法及装置,将服务器上的各个磁盘 划分为至少两个磁盘组,针对于每一个磁盘组,形成包括该磁盘组中各个磁盘的第一序列 号的标准文件,重启服务器后,针对于每一个磁盘组,形成包括该磁盘组中各个磁盘的第二 序列号的测试文件,判断各个磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的 标准文件不同,如果是,确定磁盘组发生乱序,否则确定所述磁盘组未发生乱序。由于序列 号是磁盘的唯一标识,无论磁盘组是否发生乱序,磁盘的序列号不会发生改变,通过对比服 务器重启前后各个磁盘组包括的序列号是否相同,可W判断出磁盘组是否发生乱序,运种 磁盘组乱序验证的方法不受磁盘盘符的影响,可W对磁盘组进行任意划分,因而可W实现 对包括不连续盘符的磁盘组进行乱序验证。
【附图说明】
[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据 运些附图获得其他的附图。
[0037] 图1是本发明一个实施例提供的一种磁盘组乱序验证的方法流程图;
[0038] 图2是本发明另一个实施例提供的一种磁盘组乱序验证的方法流程图;
[0039] 图3是本发明一个实施例中提供的一种磁盘组乱序验证的装置所在设备的示意图;
[0040] 图4是本发明一个实施例提供的一种磁盘组乱序验证的装置示意图;
[0041] 图5是本发明另一个实施例提供的一种磁盘组乱序验证的装置示意图。
【具体实施方式】
[0042] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 如图1所示,本发明实施例提供了一种磁盘组乱序验证的方法,该方法可W包括W 下步骤:
[0044] 步骤101:将服务器上的至少两个磁盘划分为至少两个磁盘组,每一个所述磁盘组 包括至少一个磁盘;
[0045] 步骤102 :针对于每一个所述磁盘组,获取该磁盘组中各个磁盘的第一序列号,形 成包括各个所述第一序列号的标准文件;
[0046] 步骤103:对所述服务器进行重启;
[0047] 步骤104:针对于每一个所述磁盘组,获取所述服务器重启后该磁盘组中各个磁盘 的第二序列号,形成包括各个所述第二序列号的测试文件;
[004引步骤105:判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对 应的标准文件不同,如果是,执行步骤106,否则执行步骤107;
[0049]步骤106:确定所述磁盘组发生乱序,并结束当前流程;
[0化0] 步骤107:确定所述磁盘组未发生乱序。
[0051] 本发明实施例提供了一种磁盘组乱序验证的方法,将服务器上的各个磁盘划分为 至少两个磁盘组,针对于每一个磁盘组,形成包括该磁盘组中各个磁盘的第一序列号的标 准文件,重启服务器后,针对于每一个磁盘组,形成包括该磁盘组中各个磁盘的第二序列号 的测试文件,判断各个磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标准文 件不同,如果是,确定磁盘组发生乱序,否则确定所述磁盘组未发生乱序。由于序列号是磁 盘的唯一标识,无论磁盘组是否发生乱序,磁盘的序列号不会发生改变,通过对比服务器重 启前后各个磁盘组包括的序列号是否相同,可W判断出磁盘组是否发生乱序,运种磁盘组 乱序验证的方法不受磁盘盘符的影响,可W对磁盘组进行任意划分,因而可W实现对包括 不连续盘符的磁盘组进行乱序验证。
[0052] 在本发明一个实施例中,对各个磁盘组进行排序,根据排序结果依次对各个磁盘 组对应的测试文件与标准文件进行对比;针对于任意一个进行对比磁盘组,如果该磁盘组 对应的测试文件中包括至少一个第二序列号与该磁盘组对应的标准文件中包括的各个第 一系列号均不相同,说明该磁盘组中进入原属于其他磁盘组的磁盘,停止对各个磁盘组对 应的测试文件与标准文件进行对比的过程,判断磁盘组发生了乱序;如果对各个磁盘组对 应的测试文件与标准文件进行对比后,任意一个磁盘组对应的测试文件包括的各个第二序 列号,在与该磁盘组相对应的标准文件中均包括与之相同的第一序列号,说明服务器重启 后各个磁盘仍处于原有的磁盘组中,确定磁盘组没有发生乱序。运样,依次对比各个磁盘组 是否发生乱序,当确定一个磁盘组发生乱序后停止对后续其他磁盘组进行对比,可W减少 磁盘组乱序验证所需的时间,提高磁盘组乱序验证的效率。
[0053] 在本发明一个实施例中,预先创建日志文件,在确定磁盘组发生乱序后,将记录磁 盘组发生乱序的第一记录信息存储到日志文件中,在确定磁盘组未发生乱序后,将记录磁 盘组未发生乱序的第二记录信息存储到日志文件中。运样,在对磁盘组进行多次乱序验证 时,通过日志文件便可W确定每一次验证的结果,从而根据日志文件对服务器磁盘组的稳 定性进行判断,为后续判断过程提供参考。
[0054] 在本发明一个实施例中,预先创建一个初始值为1的重启计数值,每次向日志文件 中存储第一记录信息或第二记录信息后,判断重启计数值是否达到预先设定的验证次数, 如果是,说明对服务器进行重启的次数已经达到要求的验证次数,结束对磁盘组进行乱序 验证的过程,如果否,说明对服务器进行重启的次数还没有达到要求的验证次数,需要继续 对服务器进行重启,将重启计数值加1,相应地执行对服务器进行重启的操作。运样,通过统 计服务器已经重启的次数,可W自动对磁盘组已经完成的乱序验证次数进行统计,无需人 工统计已经进行的验证次数,减小测试人员的工作量;并在达到要求的验证次数后结束服 务器的重启,提高了该磁盘组乱序验证的方法的易用性及合理性。
[0055] 在本发明一个实施例中,在每次对服务器进行重启后,将重启计数值存储到日志 文件中,测试人员通过日志文件可W获悉已经对磁盘组进行乱序验证的次数,从而可W确 定每一次服务器重启后磁盘组是否发生乱序,并可W确定磁盘组发生乱序时服务器进行的 重启次数,对磁盘组的稳定性进行评判。
[0056] 为使本发明的目的、技术方案和优点更加清楚,下面WLinux系统服务器为例,对 本发明实施例提供的磁盘组乱序验证的方法作进一步地详细描述。
[0057] 如图2所示,本发明实施例提供了一种磁盘组乱序验证的方法,该方法可W包括W 下步骤:
[005引步骤201:将服务器上的各个磁盘划分为至少两个磁盘组。
[0059] 在本发明一个实施例中,针对于需要进行磁盘组乱序验证的服务器,根据需求将 服务器上的各个磁盘划分为至少两个磁盘组,每个磁盘组包括至少一个磁盘,其中,每个磁 盘组中所包括磁盘的盘符可W是连续的,也可W是不连续的,磁盘组的划分可W根据客户 需求及应用环境任意确定。
[0060] 例如,服务器A上共包括有33个硬盘,其中前26个硬盘的盘符为a至Z,后7个硬盘的 盘符分别为日日、日13、日(3、日(1、日6加及日旨,根据客户的需求,将33个硬盘划分为4个磁盘组,分别 为磁盘组化derl至磁盘组化der4,其中磁盘组化derl包括硬盘a至硬盘g共7个硬盘,磁盘组 化der2包括硬盘h至硬盘n共7个硬盘,磁盘组化der3包括硬盘O、硬盘P、硬盘q、硬盘r、硬盘 S、硬盘t、硬盘aa、硬盘ac、硬盘ae及硬盘ag共10个硬盘,磁盘组0rder4包括硬盘U、硬盘V、硬 盘W、硬盘X、硬盘y、硬盘Z、硬盘ab、硬盘ad、硬盘af共9个硬盘。
[0061 ] 步骤202:针对于每一个磁盘组,获取该磁盘组中各个磁盘的第一序列号,并形成 包括该磁盘组中各个磁盘第一序列号的标准文件。
[0062] 在本发明一个实施例中,对磁盘组划分完成后,针对于每一个被划分出来的磁盘 组,分别获取该磁盘组中包括的每一个磁盘的序列号,将获取到的序列号作为对应磁盘的 第一序列号,获取到该磁盘组中各个磁盘的第一序列号后,将获取到的各个第一序列号存 储到一个文件中,形成对应于该磁盘组的标准文件。采用相同的方法,获取到各个磁盘组对 应的标准文件。
[0063] 例如,通过脚本程序base. Sh,分别形成4个磁盘组对应的标准文件,针对于磁盘组 Orderl,获取硬盘a的序列号作为第一序列号1,获取硬盘b的序列号作为第一序列号2,获取 硬盘C的序列号作为第一序列号3、获取硬盘d的序列号作为第一序列号4、获取硬盘e的序列 号作为第一序列号5,获取硬盘f的序列号作为第一序列号6,获取硬盘g的序列号作为第二 序列号7,将第一序列号1至第一序列号7存储到一个文件中形成对应于磁盘组化derl的标 准文件base_one. txt;相应地,将硬盘h至硬盘n对应的第一序列号8至第一序列号14存储到 一个文件中形成对应于磁盘组化der2的标准文件base_two.txt;将硬盘O至硬盘t对应的第 一序列号15至第一序列号20, W及硬盘aa对应的第一序列号27、硬盘ac对应的第一序列号 29、硬盘ae对应的第一序列号31、硬盘ag对应的第一序列号33存储到一个文件中形成对应 于磁盘组化der3的标准文件base_tbee. txt;将硬盘U至硬盘Z对应的第一序列号21至第一 序列号26, W及硬盘ab对应的第一序列号28、硬盘ad对应的第一序列号30、硬盘af对应的第 一序列号32存储到一个文件中形成对应于磁盘组化der4的标准文件base_fou;r. txt。
[0064] 在本发明实施例中,具体的脚本程序base.S咖下所示,其中W研头的行为注释内容: [00化]#!/bin/bash
[0066] #此处是生成磁盘组化derl的标准文件base_one . txt,里面包括硬盘a之硬盘g的 序列号
[0067] for Orderlin{a,b,c,d,e,f,g}
[00 側 do
[0069] smartctl-a/dev/sd$OrderlIgrep-i"serial number"〉〉/root/order/base_ one.txt
[0070] done
[0071 ] #此处是生成磁盘组化der2的标准文件base_two . txt,里面包括硬盘h至硬盘n的 序列号
[0072] for 0rder2in{h,i,j,k,1,m,n}
[0073] do
[0074] smartctl-a/dev/sd$0rder2Igrep-i"serial number"〉〉/root/order/base_ two.txt
[0075] done
[0076] #此处是生成磁盘组化der3的标准文件base_three . txt,里面包括硬盘O至硬盘X W及硬盘aa、ac、ae及ag的序列号
[0077] for OrderSinjo,p,q,r,s,t,曰曰,曰C,曰e,曰邑}
[007引 do
[0079] smartctl-a/dev/sd$0rder2Igrep-i"serial number"〉〉/root/order/base_ three.txt
[0080] done
[0081 ] #此处是生成磁盘组化der4的标准文件base_fou;r. txt,里面包括硬盘U至硬盘Z W 及硬盘ab、ad及af的序列号
[0082] for 0rder4in{u,v,w,x,y,z,ab,ad,af}
[0083] do
[0084] smartctl-a/dev/sd$0rder2Igrep-i"serial number"〉〉/root/order/base_ four.txt
[0085] done
[0086] 步骤203:对服务器进行重启,将服务器已经重启的次数存储到预设的日志文件 中,并将上一次重启后产生的测试文件删除。
[0087] 在本发明一个实施例中,获取到各个磁盘组对应的标准文件后,对服务器进行重 启。预先设定一个初始值为1的重启计数值,服务器每重启一次重启计数值都会加1,该重启 计数值保存在计数文件中,服务器重启后从计数文件中读取重启计数值,并将读取到的重 启计数值从存储到预先设定的日志文件中。
[0088] 例如,服务器A重启后,通过脚本程序从计数文件中读取重启计数值,将读取到的 重启计数值存储到日志文件log中,并将服务器在上一次重启后形成的4个测试文件temp_ one. txt、temp_two. txt、temp_three . txt及temp_f our. txt删除。具体的脚本程序如下,其 中W #开头的行为注释内容:
[0089] #!/bin/bash
[0090] 下为读取重启计数值
[0091] Times =- cat/root/count -
[0092] sleep 45
[0093] #输出已经重启多少次到日志文件log
[0094] echo'^This is$Times times test!''?/root/order/log [00 巧]cd/root/order/
[0096] #删除上一次重启时生成的temp_xx.txt系列文件
[0097] rm-rf temp_*
[0098] 步骤204:针对于每一个磁盘组,获取该磁盘组中各个磁盘的第二序列号,并形成 包括该磁盘组中各个磁盘第二序列号的测试文件。
[0099] 在本发明一个实施例中,服务器重启后,针对于每一个磁盘组,分别获取该磁盘中 包括的每一个磁盘的序列号,将获取到的序列号作为对应磁盘的第二序列号,获取到该磁 盘中各个磁盘的第二序列号后,将获取到的各个第二序列号存储到一个文件中,形成对应 于该磁盘组的测试文件。采用相同的方法,获取到各个磁盘组对应的测试文件。
[0100] 例如,通过脚本程序,分别形成4个磁盘组对应的测试文件。针对于磁盘组化derl, 获取盘符分别为a至g的7个硬盘的序列号,每个盘符对应的序列号作为该盘符对应硬盘的 第二序列号,共获取到7个第二序列号,将运7个第二序列号存储到一个文件中形成对应于 磁盘组化derl的测试文件temp_one . txt;相应地,获取盘符分别为h至n的7个硬盘对应的7 个第二序列号,将运7个第二序列号存储到一个文件中形成对应于磁盘组化der2的测试文 件temp_two . txt;获取盘符分别为〇至1:^及曰曰、曰(3、曰6、曰旨的10个硬盘对应的10个第二序列 号,将运10个第二序列号存储到一个文件中形成对应于磁盘组化der3的测试文件temp_ three, txt;获取盘符分别为U至Z W及ab、ad、af的9个硬盘对应的9个第二序列号,将运9个 第二序列号存储到一个文件中形成对应于磁盘组化der4的测试文件temp_fou;r. txt。
[0101] 在本发明实施例中,执行本步骤的脚本程序如下所示,其中W#开头的行为注释内 容:
[0102] #此处是生成包括有当前磁盘组化derl中各个硬盘序列号的测试文件temp_ one.txt,里面包括盘符为a至g的7个硬盘的序列号。
[0103] for 0rderlin{a,b,c,d,e,f,g}
[0104] do
[0105] smartctl-a/dev/sd$0rderlIgr邱-!"serial number"|awk'{print$3}'〉〉/root/ order/temp_one.txt
[0106] done
[0107] #此处是生成包括有当前磁盘组化der2中各个硬盘序列号的测试文件temp_ two. txt,里面包括盘符为h至n的7个硬盘的序列号。
[010引 for 0rder2in{h,i,j,k,l,m,n}
[0109] do
[0110] smartctl-a/dev/sd$0rder2Igr邱-!"serial number"|awk'{print$3}'〉〉/root/ order/temp_two.txt
[0111] done
[0112] #此处是生成包括有当前磁盘组化der3中各个硬盘序列号的测试文件temp_ t虹ee. txt,里面包括盘符为〇至1:^及日日、日(3、日日、日旨共10个硬盘的序列号。
[0113] for OrderSinjo,p,q,r,s,t,曰曰,曰C,曰e,曰邑}
[0114] do
[0115] smartctl-a/dev/sd$0rder3Igr邱-!"serial number"|awk'{print$3}'〉〉/root/ order/temp_three.txt
[0116] done
[0117] #此处是生成包括有当前磁盘组化der4中各个硬盘序列号的测试文件temp_ four, txt,里面包括盘符为U至Z W及ab、ad、af共9个硬盘的序列号。
[0118] for 0rder4in{u,v,w,x,y,z,ab,ad,af}
[0119] do
[0120] smartctl-a/dev/sd$0rder4Igr邱-!"serial number"|awk'{print$3}'〉〉/root/ order/temp_four.txt
[0121] done
[0122] 步骤205:判断各个磁盘组中是否存在至少一个磁盘组对应的测试文件与标准文 件不同,如果是,执行步骤206,否则执行步骤207。
[0123] 在本发明一个实施例中,对各个磁盘组进行排序,排序完成后从第一磁盘组开始, 将当前磁盘组对应的测试文件中的各个第二序列号与当前磁盘组对应的标准文件中的各 个第一序列号进行对比,如果当前磁盘组对应的测试文件中存在至少一个第二序列号与当 前磁盘组对应的标准文件中任意一个第一序列号都不相同,说明服务器重启后当前磁盘组 中某一个盘符对应的原有磁盘被其他磁盘组中的磁盘代替,判断当前磁盘组发生乱序,停 止对后续磁盘组对应的测试文件与标准文件进行对比,相应地执行步骤206;如果当前磁盘 组对应的测试文件中每一个第二序列号在当前磁盘组对应的标准文件中都有与之相同的 第一序列号相对应,则根据磁盘组排序对下一个磁盘组对应的测试文件与标准文件进行对 tk,如果最后一个磁盘组对应的测试文件中每一个第二序列号在最后一个磁盘组对应的标 准文件中都与之相同的第一序列号相对应,则说明服务器重启后各个磁盘组中包括的磁盘 没有发生变化,判断磁盘组没有发生乱序,相应地执行步骤207。
[0124] 例如,对4个磁盘组进行排序,排序结果为磁盘组化derl-磁盘组化der2-磁盘组 化der3-磁盘组化der4,通过脚本程序,首先将磁盘组化der 1对应的测试文件temp_one. txt中 的7个第二序列号分别与磁盘组化derl对应的标准文件base_one.txt中的7个第一序列号进 行对比,如果测试文件temp_one. txt中有一个或多个第二序列号与标准文件base_one. txt中 的任意一个第一序列号都不相同,判断磁盘组化derl发生乱序,停止对后续3个磁盘组中测 试文件与标准文件进行对比,相应地执行步骤206;如果测试文件temp_one.txt中每一个第 二序列号在标准文件base_one.txt中都有与之相同的第一序列号相对应,则通过相同的方 法对磁盘组化der2对应的测试文件与标准文件进行对比,如果最后一个磁盘组化der4对应 的测试文件temp_four. txt中每一个第二序列号在标准文件base_four. txt中都有与之相 同的第一序列号相对应,则判断服务器A上的磁盘组没有发生乱序,相应地的执行步骤207。
[0125] 在本发明实施例中,执行上述测试文件与标准文件对比过程的脚本程序如下所 示,其中开头的行为注释内容:
[01%] #对磁盘组化derl对应的测试文件与标准文件进行比对
[0127;
[0128;
[0127;
[0129
[0130] 步骤206:确定磁盘组发生乱序,向日志文件中存储记录磁盘组发生乱序的第一记 录消息,并执行步骤208。
[0131] 在本发明一个实施例中,当判断出服务器上各个磁盘组中包括至少一个磁盘组对 应的测试文件与标准文件不同后,确定磁盘组发生乱序,向日志文件中输出磁盘组已经发 生乱序的第一记录消息,在日志文件中记录本次对磁盘组乱序进行验证的结果为磁盘组发 生乱序,之后执行步骤208。
[0132] 例如,通过步骤205中提供的脚本程序,当判断一个磁盘组发生乱序后,向日志文 件log中输出error信息,并记录具体是哪一个磁盘组发生了乱序,记录完成后执行步骤208 确定是否需要继续对服务器进行重启。
[0133] 步骤207:确定磁盘组未发生乱序,向日志文件中存储记录磁盘组未发生乱序的第 二记录消息。
[0134] 在本发明一个实施例中,当依次判断最后一个磁盘组对应的测试文件中每一个第 二序列号在该磁盘组对应的标准文件中都有与之相同的第一序列号后,确定服务器上的各 个磁盘组没有发生乱序,向日志文件中输出磁盘组未发生乱序的第二记录消息,在日志文 件中记录本次对磁盘组乱序进行验证的结果为磁盘组未发生乱序。
[0135] 例如,通过脚本程序,当判断最后一个磁盘组化der4未发生乱序后,向日志文件 log中输出OK信息,记录该次对服务器A上各个磁盘组进行乱序验证的结果为未发生乱序。
[0136] 在本发明实施例中记录OK信息的脚本程序如下:
[0137] echo''OK''?/root/order/log
[0138] 步骤208:判断重启计数值是否达到预设的验证次数,如果是,结束当前流程,否则 执行步骤209。
[0139] 在本发明一个实施例中,在将第一记录消息或第二记录消息存储到日志文件中之 后,从计数文件中获取重启计数次数,将获取到的重启计数次数与预先设定的验证次数进 行比较,判断重启计数值是否等于或大于验证次数,如果是,说明对磁盘组进行乱序验证的 次数已经达到了要求的次数,相应地结束当前流程,否则说明对磁盘组进行验证的次数还 没有要求的次数,需要继续对磁盘组进行乱序验证,相应地执行步骤209。
[0140] 例如,预先设定的验证次数为500,将获取到的重启计数值与500进行比较,如果重 启计数值等于或大于500,说明对服务器A上磁盘组进行乱序验证的次数已经达到要求的次 数,结束当前流程,结束整个磁盘组乱序验证的过程,如果重启计数值小于500,说明对服务 器A上磁盘组进行乱序验证的次数还没有达到要求的次数,需要继续对服务器A的磁盘组进 行乱序验证,相应地执行步骤209。
[0141] 步骤209:将重启计数值加1,并执行步骤203。
[0142] 在本发明一个实施例中,在判断重启计数值没有达到验证次数后,将重启计数值 加 1后重新存储到计数文件中,并覆盖计数文件中原有的重启计数值,然后执行步骤203开 始下一轮对磁盘组进行乱序验证。
[0143] 例如,通过脚本程序对重启计数值加1后,执行步骤203,重新开始下一轮对服务器 A上磁盘组进行乱序验证,直至验证次数达到500词。其中,对重启计数值加1的脚本程序如 下:
[0144] Times = 'echo$Times+l | bc'
[0145] echo$T imes>/root/count
[0146] reboot
[0147] 需要说明的是,上述发明实施例提供的是在Linux操作系统下对磁盘组进行乱序 验证的方法,在其他操作系统下对磁盘组进行乱序验证的方法与该实施例提供的验证方法 思想一致,仅需对相应地脚本程序进行修改,在此不再进行寶述。
[014引如图3、图4所示,本发明实施例提供了一种磁盘组乱序验证的装置。装置实施例可 W通过软件实现,也可W通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所 示,为本发明实施例提供的磁盘组乱序验证的装置所在设备的一种硬件结构图,除了图3所 示的处理器、内存、网络接口、W及非易失性存储器之外,实施例中装置所在的设备通常还 可W包括其他硬件,如负责处理报文的转发忍片等等。W软件实现为例,如图4所示,作为一 个逻辑意义上的装置,是通过其所在设备的CP闲尋非易失性存储器中对应的计算机程序指 令读取到内存中运行形成的。本实施例提供的磁盘组乱序验证的装置,包括:划分单元401、 第一形成单元402、重启单元403、第二形成单元404及判断单元405;
[0149] 划分单元401,用于将服务器上的至少两个磁盘划分为至少两个磁盘组,每一个磁 盘组包括至少一个磁盘;
[0150] 第一形成单元402,用于针对于划分单元401划分出的每一个磁盘组,获取该磁盘 组中各个磁盘的第一序列号,形成包括各个第一序列号的标准文件;
[0151 ]重启单元403,用于对服务器进行重启;
[0152] 第二形成单元404,用于针对于划分单元401划分出的每一个磁盘组,获取重启单 元403对服务器重启后该磁盘组中各个磁盘的第二序列号,形成包括各个第二序列号的测 试文件;
[0153] 判断单元405,用于判断各个磁盘组中是否存在至少一个磁盘组对应的由第二形 成单元404形成的测试文件与对应的由第一形成单元402形成的标准文件不同,如果是,确 定磁盘组发生乱序,否则确定未发生乱序。
[0154] 在本发明一个实施例中,判断单元405,用于对各个磁盘组进行排序,依次对各个 磁盘组对应的测试文件与标准文件进行对比;如果任意一个磁盘组对应的测试文件中包括 至少一个第二序列号与该磁盘组对应的标准文件中包括的各个第一序列号均不相同,则停 止依次对各个磁盘组对应的测试文件与标准文件进行对比,并确定磁盘组发生乱序;如果 任意一个磁盘组对应的测试文件包括的各个第二序列号,在于该磁盘组相对应的标准文件 中均包括与之相同的第一序列号,则确定磁盘组未发生乱序。
[0155] 在本发明一个实施例中,如图5所述,该装置进一步包括:记录单元406;
[0156] 记录单元406,用于根据判断单元405的判断结果,如果是,将记录磁盘组发生乱序 的第一记录信息存储到预先创建的日志文件中,否则将记录磁盘组未发生乱序的第二记录 文件存储到日志文件中。
[0157] 在本发明一个实施例中,如图5所示,重启单元403,进一步用于在记录单元406将 第一记录信息或第二记录信息存储到日志文件中之后,判断预先设定的重启计数值是否达 到预先设定的验证次数,如果否,将重启计数值加1,并执行对服务器进行重启,其中重启计 数值的初始值为1。
[0158] 在本发明一个实施例中,如图5所示,重启单元403,进一步用于在对服务器进行重 启之后,将重启计数值输入到所述日志文件中。
[0159] 上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施 例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再寶述。
[0160] 本发明提供的各个实施例,至少具有如下有益效果:
[0161] 1、本发明实施例中,将服务器上的各个磁盘划分为至少两个磁盘组,针对于每一 个磁盘组,形成包括该磁盘组中各个磁盘的第一序列号的标准文件,重启服务器后,针对于 每一个磁盘组,形成包括该磁盘组中各个磁盘的第二序列号的测试文件,判断各个磁盘组 中是否存在至少一个磁盘组对应的测试文件与对应的标准文件不同,如果是,确定磁盘组 发生乱序,否则确定所述磁盘组未发生乱序。由于序列号是磁盘的唯一标识,无论磁盘组是 否发生乱序,磁盘的序列号不会发生改变,通过对比服务器重启前后各个磁盘组包括的序 列号是否相同,可W判断出磁盘组是否发生乱序,运种磁盘组乱序验证的方法不受磁盘盘 符的影响,可W对磁盘组进行任意划分,因而可W实现对包括不连续盘符的磁盘组进行乱 序验证。
[0162] 2、本发明实施例中,在判断各个磁盘组对应的测试文件与标准文件是否相同时, 首先对各个磁盘组进行排序,依次判断各个磁盘组对应的测试文件与标准文件是否相同, 当判断出一个磁盘组对应的测试文件与标准文件包括的序列号不同后,直接判断磁盘组发 生了乱序,不再对后面的磁盘组进行判断,运样可W减小磁盘组乱序验证所需的时间,提高 磁盘组乱序验证的效率。
[0163] 3、本发明实施例中,每次对服务器进行重启之前,对重启计数值进行加1,运样通 过重启计数值便可W确定已经对磁盘组进行乱序验证的次数,通过将重启计数值与预设的 验证次数值进行比较,可W判断对磁盘组进行乱序验证的次数是否达到了要求的次数,从 而实现验证次数达到要求后自动停止验证过程,提高了对磁盘组进行乱序验证的易操作 性。
[0164] 4、本发明实施例中,在判断磁盘组发生或未发生乱序后,在日志文件中记录验证 结果,并结束该验证结果对应的验证次数,通过日志文件可W确定对磁盘组进行乱序验证 的每一次验证结果,方便对磁盘组稳定性进行评判W及后续查验。
[0165] 需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体 或者操作与另一个实体或操作区分开来,而不一定要求或者暗示运些实体或操作之间存在 任何运种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵盖非 排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素, 而且还包括没有明确列出的其他要素,或者是还包括为运种过程、方法、物品或者设备所固 有的要素。在没有更多限制的情况下,由语句"包括一个 ....."限定的要素,并不排 除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0166] 本领域普通技术人员可W理解:实现上述方法实施例的全部或部分步骤可W通过 程序指令相关的硬件来完成,前述的程序可W存储在计算机可读取的存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R〇M、RAM、磁碟或者光 盘等各种可W存储程序代码的介质中。
[0167] 最后需要说明的是:W上所述仅为本发明的较佳实施例,仅用于说明本发明的技 术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、 等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1. 一种磁盘组乱序验证的方法,其特征在于,将服务器上的至少两个磁盘划分为至少 两个磁盘组,每一个所述磁盘组包括至少一个磁盘,还包括: 针对于每一个所述磁盘组,获取该磁盘组中各个磁盘的第一序列号,形成包括各个所 述第一序列号的标准文件; 对所述服务器进行重启; 针对于每一个所述磁盘组,获取所述服务器重启后该磁盘组中各个磁盘的第二序列 号,形成包括各个所述第二序列号的测试文件; 判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标准文件 不同,如果是,确定所述磁盘组发生乱序,否则确定所述磁盘组未发生乱序。2. 根据权利要求1所述的方法,其特征在于, 所述判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标准 文件不同包括: 对所述各个磁盘组进行排序,依次对各个所述磁盘组对应的测试文件与标准文件进行 对比; 如果任意一个所述磁盘组对应的测试文件包括中至少一个第二序列号与该磁盘组对 应的标准文件中包括的各个第一序列号均不相同,则停止所述依次对各个所述磁盘组对应 的测试文件与标准文件进行对比,并确定所述磁盘组发生乱序; 如果任意一个所述磁盘组对应的测试文件包括的各个第二序列号,在与该磁盘组相对 应的标准文件中均包括与之相同的第一序列号,则确定所述磁盘组未发生乱序。3. 根据权利要求1所述的方法,其特征在于, 在所述判断各个所述磁盘组中是否存在至少一个磁盘组对应的测试文件与对应的标 准文件不同之后进一步包括: 根据判断结果,如果是,将记录所述磁盘组发生乱序的第一记录信息存储到预先创建 的日志文件中,否则将记录所述磁盘组未发生乱序的第二记录信息存储到所述日志文件 中。4. 根据权利要求3所述的方法,其特征在于, 在将所述第一记录信息或所述第二记录信息存储到所述日志文件中之后进一步包括: 判断预先设定的重启计数值是否达到预先设定的验证次数,如果否,将所述重启计数 值加1,并执行所述对所述服务器进行重启,其中所述重启计数值的初始值为1。5. 根据权利要求4中任一所述的方法,其特征在于, 在所述对所述服务器进行重启之后进一步包括: 将所述重启计数值输入到所述日志文件中。6. -种磁盘组乱序验证的装置,其特征在于,包括:划分单元、第一形成单元、重启单 元、第二形成单元及判断单元; 所述划分单元,用于将服务器上的至少两个磁盘划分为至少两个磁盘组,每一个磁盘 组包括至少一个磁盘; 所述第一形成单元,用于针对于所述划分单元划分出的每一个磁盘组,获取该磁盘组 中各个磁盘的第一序列号,形成包括各个所述第一序列号的标准文件; 所述重启单元,用于对所述服务器进行重启; 所述第二形成单元,用于针对于所述划分单元划分出的每一个磁盘组,获取所述重启 单元对服务器重启后该磁盘组中各个磁盘的第二序列号,形成包括各个所述第二序列号的 测试文件; 所述判断单元,用于判断各个所述磁盘组中是否存在至少一个磁盘组对应的由第二形 成单元形成的测试文件与对应的由第一形成单元形成的标准文件不同,如果是,确定所述 磁盘组发生乱序,否则确定所述未发生乱序。7. 根据权利要求6所述的装置,其特征在于, 所述判断单元,用于对所述各个磁盘组进行排序,依次对各个所述磁盘组对应的测试 文件与标准文件进行对比;如果任意一个所述磁盘组对应的测试文件中包括至少一个第二 序列号与该磁盘组对应的标准文件中包括的各个第一序列号均不相同,则停止所述依次对 各个所述磁盘组对应的测试文件与标准文件进行对比,并确定所述磁盘组发生乱序;如果 任意一个所述磁盘组对应的测试文件包括的各个第二序列号,在于该磁盘组相对应的标准 文件中均包括与之相同的第一序列号,则确定所述磁盘组未发生乱序。8. 根据权利要求6所述的装置,其特征在于,进一步包括:记录单元; 所述记录单元,用于根据所述判断单元的判断结果,如果是,将记录所述磁盘组发生乱 序的第一记录信息存储到预先创建的日志文件中,否则将记录所述磁盘组未发生乱序的第 二记录文件存储到所述日志文件中。9. 根据权利要求8所述的装置,其特征在于, 所述重启单元,进一步用于在所述记录单元将所述第一记录信息或所述第二记录信息 存储到所述日志文件中之后,判断预先设定的重启计数值是否达到预先设定的验证次数, 如果否,将所述重启计数值加1,并执行所述对所述服务器进行重启,其中所述重启计数值 的初始值为1。10. 根据权利要求9所述的装置,其特征在于, 所述重启单元,进一步用于在对所述服务器进行重启之后,将所述重启计数值输入到 所述日志文件中。
【文档编号】G06F11/22GK106021048SQ201610326541
【公开日】2016年10月12日
【申请日】2016年5月17日
【发明人】闫硕
【申请人】浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1