本发明涉及计算机技术领域,更具体的说是涉及一种sas卡固件在线升级可靠性的检测方法。
背景技术
sas(serialattachedscsi,串行连接scsi)是新一代的scsi技术,和现在流行的sata(serialadvancedtechnologyattachment,串行高级技术附件)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。sas是并行scsi接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行ata硬盘的兼容性。作为一种新的存储接口技术,sas不仅在功能上可与fibrechannel媲美,还具有兼容sata的能力,因而被业界公认为取代并行scsi的不二之选。sas的优势主要体现在:灵活性,可以兼容sata,为用户节省投资;扩展性,一个sas域最多可以直连16384个设备。基于sas接口技术的以上优点,sas卡在服务器领域具有非常广泛的应用,sas卡通过背板管理和连接硬盘,为服务器系统提供高容量的存储设备。
在通用服务器存储子系统中,sas卡是整个存储链路的核心,在上行与操作系统、下行与硬盘间的交互起到了重要作用。通常,为了解决客户端出现的掉盘、系统报错等问题,会需要升级sas卡固件来达到消除故障的目的。
一般情况下,为了不影响客户主机业务的运行,需要一种在线升级sas卡固件的方法。检查固件升级后是否成功的标志,一般是在系统下通过命令行工具或软件等获取sas卡固件版本号与所升级的固件版本号是否一致。此方法仅从操作系统端获取sas卡固件版本,而无法确定sas卡中运行的固件与烧录到sas卡中的固件是否完全相同。
技术实现要素:
针对以上问题,本发明的目的在于提供sas卡固件在线升级可靠性的检测方法,将sas卡固件以文件的形式存放在系统下,获取sas卡固件原文件和读取出的固件的校验码,通过比较两固件文件校验码是否相同判断sas卡固件升级的可靠性。
本发明为实现上述目的,通过以下技术方案实现:一种sas卡固件在线升级可靠性的检测方法,其特征在于,包括如下步骤:
步骤1:获取sas卡固件原文件校验码;
步骤2:在线升级sas卡固件;
步骤3:获取sas卡固件文件;
步骤4:获取sas卡固件文件校验码;
步骤5:比较sas卡固件原文件校验码和sas卡固件文件校验码,如果相同,则升级成功;如果不同,则升级失败。
进一步,在步骤1之前还包括:
步骤0:在主板sata接口安装linux操作系统,sas卡接背板并满配硬盘,在linux系统下安装sas卡驱动。
进一步,在所述步骤1之前还包括:创建shell脚本文件test.sh并拷贝至linux系统下任意目录中。
进一步,所述步骤1还包括:利用cksum命令获取sas卡固件原文件校验码。
进一步,所述步骤1还包括:利用md5sum命令获取sas卡固件原文件校验码。
进一步,所述步骤2具体为:利用sas3flsh工具在线升级sas卡固件。
进一步,所述步骤3具体为:利用sas3flsh工具获取sas卡固件文件。
进一步,利用cksum命令或md5sum命令获取sas卡固件文件校验码。
对比现有技术,本发明有益效果在于:本发明提出的一种sas卡固件在线升级可靠性的检测方法,利用linux操作系统下的sas卡命令行工具sas3flsh将sas卡固件在线烧录到sas卡中。不仅如此,此工具还可以将sas卡固件从sas卡中读取出来,以文件形式存放在系统下。然后利用linux系统下shell脚本调用系统命令cksum或md5sum获取sas卡固件原文件和读取出的固件文件的校验码,通过脚本函数比较两文件的校验码是否相同来判断两文件是否一致,从而判断sas卡固件在线升级是否可靠。
本发明,在通用服务器搭配sas卡条件下,具体实现了下列功能:
(1)通过sas卡命令行工具读取sas卡固件,并以文件形式存放系统下。
(2)利用shell脚本调用系统命令cksum或md5sum获取sas卡固件原文件和读取出的固件的校验码。
(3)通过shell脚本比较两固件文件校验码是否相同判断sas卡固件升级的可靠性。
本发明利用linux操作系统实现,灵活易用,适用于多种服务器型号。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
附图1是本发明实施例一的方法流程图。
附图2是本发明实施例二的方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做出说明。
实施例一:
如图1所示的一种sas卡固件在线升级可靠性的检测方法,其特征在于,包括如下步骤:
步骤1:获取sas卡固件原文件校验码。
步骤2:在线升级sas卡固件。
步骤3:获取sas卡固件文件。
步骤4:获取sas卡固件文件校验码。
步骤5:比较sas卡固件原文件校验码和sas卡固件文件校验码,如果相同,则升级成功;如果不同,则升级失败。
本实施例能够将sas卡固件在线烧录到sas卡中。不仅如此,还可以将sas卡固件从sas卡中读取出来,以文件形式存放在系统下。然后获取sas卡固件原文件和读取出的固件文件的校验码,通过比较两文件的校验码是否相同来判断两文件是否一致,从而判断sas卡固件在线升级是否可靠。
实施例二:
如图2所示的一种sas卡固件在线升级可靠性的检测方法,其特征在于,包括如下步骤:
步骤1:在主板sata接口安装linux操作系统,sas卡接背板并满配硬盘,在linux系统下安装sas卡驱动。
通过本步骤,为本发明的实施搭建了有效的测试环境。
步骤2:创建shell脚本文件test.sh并拷贝至linux系统下任意目录中。
步骤3:利用cksum或md5sum命令获取sas卡固件原文件校验码。
具体命令为:cksumfw.bin或md5sumfw.bin。
步骤4:利用sas3flsh工具在线升级sas卡固件。
步骤5:利用sas3flsh工具获取sas卡固件文件。
步骤6:利用cksum或md5sum命令获取sas卡固件文件校验码。
具体命令为:cksumimage.fw或md5sumimage.fw。
步骤7:比较sas卡固件原文件校验码和sas卡固件文件校验码,如果相同,则升级成功;如果不同,则升级失败。
在上述基础上,shell脚本解析如下:
1shell脚本获取sas卡固件原文件校验码:
1)利用cksum命令获取校验码:
cksumfw.bin>$file_dir/fw_original_cksum.txt
original_fw_cksum=$(cat$file_dir/fw_original_cksum.txt|awk-f”'{print$1}')
2)利用md5sum命令获取校验码:
cksumfw.bin>$file_dir/fw_original_md5.txt
original_fw_md5sum=`cat$file_dir/fw_original_md5.txt|awk-f”'{print$1}'`
2shell脚本获取sas卡读取出的固件文件校验码:
1)利用cksum命令获取校验码:
cksumimage.fw>$file_dir/fw_upload_cksum.txt
upload_fw_cksum=$(cat$file_dir/fw_upload_cksum.txt|awk-f”'{print$1}')
2)利用md5sum命令获取校验码:
md5sumimage.fw>$file_dir/fw_original_md5.txt
original_fw_md5sum=`cat$file_dir/fw_original_md5.txt|awk-f”'{print$1}'`
3比较sas卡固件原文件与读取出的固件文件校验码:
1)利用cksum获取的校验码比较:
2)利用md5sum获取的校验码比较:
特别指出的是,以上脚本中利用linux系统命令cksum和md5sum两种方式获取固件文件校验码的方式,任选一种即可。
本实施例提出的一种sas卡固件在线升级可靠性的检测方法,利用linux操作系统下的sas卡命令行工具sas3flsh将sas卡固件在线烧录到sas卡中。不仅如此,此工具还可以将sas卡固件从sas卡中读取出来,以文件形式存放在系统下。然后利用linux系统下shell脚本调用系统命令cksum或md5sum获取sas卡固件原文件和读取出的固件文件的校验码,通过脚本函数比较两文件的校验码是否相同来判断两文件是否一致,从而判断sas卡固件在线升级是否可靠。
结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。