双控制器磁盘存储阵列,及其升级固件方法和控制器的制作方法

文档序号:6584558阅读:164来源:国知局
专利名称:双控制器磁盘存储阵列,及其升级固件方法和控制器的制作方法
技术领域
本发明涉及计算机存储技术领域,特别涉及一种双控制器磁盘存储阵列,及其升 级固件方法和控制器。
背景技术
磁盘存储阵列是把多个磁盘组成一个阵列当作单一磁盘使用,它将数据以条带 (striping)的方式储存在不同的磁盘中。存取数据时,阵列中的相关磁盘一起动作,大幅减 低数据的存取时间,同时有更佳的空间利用率。磁盘存储阵列通常用于作为计算机系统中 各种重要数据的存放处,要求能够提供极高的可靠性,保证数据的安全和稳定,同时,要求 磁盘存储阵列能够提供常年全天24小时的不中断数据服务。磁盘存储阵列为了达到高可靠和不中断服务的特性,通常采用了双控制器架构。 图1为现有技术的双控制器磁盘存储阵列的基本架构示意图。双控制器磁盘存储阵列包括 一台主机101,两台交换机(分别是交换机102和交换机103),两台控制器(分别是控制器 104和控制器105,或称控制器A和控制器B),以及后端的物理磁盘组。两个控制器共同管 理物理磁盘组。主机101中运行多路径输入输出(Multipath Input/Output, MP 10)软件, 可以通过任一台交换机以及控制器访问物理磁盘组。根据应用需求,物理磁盘组将被划分 成若干逻辑卷,每一个逻辑卷相当于一个虚拟磁盘,以逻辑单元号(Logical Unit Number, LUN)作为标识。交换机102和交换机103之间,以及控制器A和控制器B之间都是相互备 份的关系。主机101可以通过其中任一个交换机以及控制器访问逻辑卷。在双控制器架构下,当其中一个控制器发生了软件或硬件故障,另一控制器能够 立即接过控制权,在不影响用户的情况下继续对外提供数据应用服务,同时通知系统管理 员处理发生问题的控制器以解决故障。图2所示为现有技术磁盘存储阵列控制器的硬件结构框图。控制器A内部包括 控制单元A201、固件存储器A203和基板管理控制器(BaseboardManagement Controller, BMC)A204。其中控制单元201中还包括定时器A202。控制器B的内部结构与控制器A相 同,包括控制单元B206、固件存储器B208和基板管理控制器B209,控制单元B206中还包括 定时器B207。通讯接口 205实现控制单元A201和控制单元B206之间的信息交互。固件存 储器A203用于存储控制器A的升级固件,固件存储器B208用以存储控制器B的升级固件。在磁盘存储阵列需要进行固件升级时,通常情况下不得不暂时停止服务,停机进 行固件升级,同时在升级后,需要进行一定时间的测试运行,以保证固件升级的成功。这种 情况中断了磁盘存储阵列的数据服务,使其不能做到常年全天24小时不中断服务。在很多 有极高要求的应用场合,如银行、电视台、视频监控中心等,这种服务中断是不可接受的。因 此要求磁盘存储阵列能有一套可靠、高效、无需停止服务的固件升级方法。

发明内容
有鉴于此,本发明的目的在于,提出一种双控制器磁盘存储阵列的固件升级方法,可以在不停止服务的情况下实现固件升级。所述双控制器包括主控制器和从控制器,该方 法包括如下步骤A、接收来自外部的固件升级命令和新固件,将所述新固件保存在主控制器中;B、从控制器接管该双控制器磁盘存储阵列的主控制权以及主控制器上的具有主 控制器标识的数据应用服务;C、主控制器进行硬件重启,读取主控制器中存储的新固件进行固件升级;D、主控制器固件升级成功后,主控制器接管双控制器磁盘存储阵列的主控制权以 及从控制器上的数据应用服务,所述从控制器上的数据应用服务包括具有主控制器标识的 数据应用服务以及具有从控制器标识的数据应用服务;E、主控制器将新固件写入从控制器中,并通知从控制器进行固件升级;F、从控制器进行硬件重启,读取从控制器中存储的新固件进行固件升级;G、从控制器固件升级成功后,从主控制器接管具有从控制器标识的数据应用服 务。较佳地,所述步骤A包括A1、从控制器接收来自外部的固件升级命令,将所述固件升级命令转发至主控制 器;A2、主控制器接收来自外部的新固件,并将所述新固件写入自身的固件存储器中。步骤A中,在子步骤A2之后进一步包括A3、主控制器向从控制器发出进行固件升 级的通知,从控制器设定自身计时器的超时时间长度,并使该计时器开始计时;所述步骤C之后且步骤D之前,进一步包括从控制器判断自身计时器的计时长度达到超时时间长度之前,主控制器是否实现 了硬件重启,若是,判定主控制器固件升级成功,转至所述步骤D ;否则,判定主控制器固件 升级失败,执行如下步骤从控制器将自身存储的旧固件写入主控制器;主控制器载入所述旧固件,还原到固件升级之前的状态,并接管双控制器磁盘存 储阵列的主控制权以及从控制器上具有主控制器标识的数据应用服务。所述步骤E进一步包括主控制器设定从控制器的固件升级时间长度,并启动自 身的计时器;所述步骤F之后且步骤G之前,进一步包括主控制器判断在自身计时器的计时长度达到所设定的固件升级时间长度之前,从 控制器是否实现了硬件重启,若是,判定从控制器固件升级成功,执行所述步骤G ;否则,判 定从控制器固件升级失败,转至步骤E。较佳地,所述判定从控制器固件升级失败之后,执行如下步骤主控制器判断从控制器固件升级失败的次数是否达到预定值,若是则主控制器发 出固件升级未完成信号。否则转至步骤E。本发明的目的还在于,提出一种用于实现上述方法的双控制器磁盘存储阵列,所 述双控制器包括主控制器和从控制器,所述主控制器具有该双控制器磁盘存储阵列的主控 制权;所述主控制器用于接收来自外部的固件升级命令和新固件,并保存所述新固件;将双控制器磁盘存储阵列的主控制权以及主控制器上的具有主控制器标识的数据应用服 务转交到从控制器后,进行硬件重启,读取自身存储的新固件进行固件升级;固件升级成功 后,主控制器接管双控制器磁盘存储阵列的主控制权以及从控制器上的数据应用服务,所 述从控制器上的数据应用服务包括具有主控制器标识的数据应用服务以及具有从控制器 标识的数据应用服务,并将新固件写入从控制器,通知从控制器进行固件升级;在从控制器 固件升级成功后,将具有从控制器标识的数据应用服务转交给从控制器;
所述从控制器用于在主控制器进行固件升级之前,接管该双控制器磁盘存储阵列 的主控制权以及主控制器上的具有主控制器标识的数据应用服务,在主控制器成功进行固 件升级后,将双控制器磁盘存储阵列的主控制权以及从控制器上的数据应用服务转交给主 控制器,接收来自主控制器的新固件并进行固件升级,所述从控制器上的数据应用服务包 括具有主控制器标识的数据应用服务以及具有从控制器标识的数据应用服务;在从控制器 成功进行固件升级后,从主控制器接管具有从控制器标识的数据应用服务。
所述从控制器还用于在收到来自外部的固件升级命令后,将所述固件升级命令转 发至主控制器。较佳地,所述主控制器将双控制器磁盘存储阵列的主控制权以及主控制器上的具 有主控制器标识的数据应用服务转交到从控制器时,向从控制器发出进行固件升级的通 知;所述从控制器进一步包括定时器B,在从控制器收到来自主控制器的进行固件升 级的通知后,设定计时器B的超时时间长度,并使计时器B开始计时;从控制器进一步用于 判断自身计时器的计时长度达到超时时间长度之前,主控制器是否实现了硬件重启,若是, 判定主控制器固件升级成功;否则,判定主控制器固件升级失败,将自身存储的旧固件写入 主控制器;
主控制器进一步用于,在固件升级失败后,载入来自从控制器的旧固件,还原到固 件升级之前的状态,并接管双控制器磁盘存储阵列的主控制权以及从控制器上具有主控制 器标识的数据应用服务。较佳地,所述主控制器进一步包括计时器A,在主控制器将新固件写入从控制器, 通知从控制器进行固件升级后,设定从控制器的固件升级时间长度,并启动计时器A ;主控制器进一步用于判断在自身计时器的计时长度达到所设定的固件升级时间 长度之前,从控制器是否实现了硬件重启,若是,判定从控制器固件升级成功;否则,判定从 控制器固件升级失败,再次将新固件写入从控制器,通知从控制器进行固件升级。本发明实施例还提出一种双控制器磁盘存储阵列中的控制器,所述控制器包括控 制单元、固件存储器和基板管理控制器;控制器单元具有的功能包括命令的执行,数据应用服务的执行和对该双控制器 磁盘存储阵列进行控制;固件存储器用于存储本地控制器的固件;基板管理控制器用于实 现本地控制器的硬件重启,加载本地固件存储器中的固件进行固件升级;所述控制单元、固件存储器和基板管理控制器统一接入数据总线,且所述数据总 线连接该双控制器磁盘存储阵列中的对端控制器;所述控制器作为该双控制器磁盘存储阵列的主控制器时,所述控制单元接收来自 外部的固件升级命令和新固件,并将所述新固件保存在本地固件存储器中,将双控制器磁盘存储阵列的主控制权以及本控制器的数据应用服务通过所述数据总线转交到对端控制 器;在本地基板管理控制器成功实现固件升级后,所述控制单元接管双控制器磁盘存储阵 列的主控制权以及对端控制器上的全部数据应用服务,并将本地固件存储器中的新固件通 过所述数据总线写入对端控制器,通知对端控制器进行固件升级;在对端控制器固件升级 成功后,通过所述数据总线将属于对端控制器的数据应用服务转交给对端控制器。所述控制器进一步包括计时器,当控制单元将本地固件存储器中的新固件通过所 述数据总线写入对端控制器,通知对端控制器进行固件升级后,设定固件升级时间长度,并 启动所述计时器;控制单元进一步用于判断在自身计时器的计时长度达到所设定的固件升级时间 长度之前,对端控制器是否实现了硬件重启,若是,判定对端控制器固件升级成功;否则,判 定对端控制器固件升级失败,再次将新固件写入对端控制器,通知对端控制器进行固件升 级。若所述基板管理控制器固件升级失败;则所述固件存储器进一步用于通过所述数据总线接收来自对端控制器的旧固件; 所述基板管理控制器进一步用于载入所述旧固件,并还原到固件升级之前的状态;所述控 制单元用于通过所述数据总线从对端控制器接管双控制器磁盘存储阵列的主控制权以及 原属于本地的数据应用服务。本发明实施例还提出另一种双控制器磁盘存储阵列中的控制器,所述控制器包括 控制单元、固件存储器和基板管理控制器;控制器单元具有的功能包括命令的执行,数据应用服务的执行和对该双控制器 磁盘存储阵列进行控制;固件存储器用于存储本地控制器的固件;基板管理控制器用于实 现本地控制器的硬件重启,加载本地固件存储器中的固件进行固件升级;所述控制单元、固件存储器和基板管理控制器统一接入数据总线,且所述数据总 线连接该双控制器磁盘存储阵列中的对端控制器;所述控制器作为该双控制器磁盘存储阵列的从控制器时,所述控制单元用于在对 端控制器进行固件升级之前,通过所述数据总线接管该双控制器磁盘存储阵列的主控制权 以及对端控制器上的数据应用服务;在对端控制器成功进行固件升级后,将双控制器磁盘 存储阵列的主控制权以及本地所有的数据应用服务转交给对端控制器;固件存储器通过所 述数据总线接收并存储来自对端控制器的新固件;基板管理控制器进行硬件重启并加载所 述新固件进行固件升级;在成功进行固件升级后,所述控制单元通过所述数据总线从对端 控制器接管原属于本地控制器的数据应用服务。所述控制单元进一步用于在收到来自外部的固件升级命令后,将所述固件升级命 令通过所述数据总线转发至对端控制器。所述控制单元进一步包括计时器,所述控制单元收到来自对端控制器的进行固件 升级的通知后,设定计时器的超时时间长度,并使计时器开始计时;控制单元进一步用于判 断所述计时器的计时长度达到超时时间长度之前,对端控制器是否实现了硬件重启,若是, 判定对端控制器固件升级成功;否则,判定对端控制器固件升级失败,将本地固件存储器中 存储的旧固件通过所述数据总线写入对端控制器。从以上技术方案可以看出,在任一控制器进行固件升级之前,将该磁盘存储阵列的主控制权以及所有的数据应用服务转交到另一个控制器,在固件升级过程中可以通过一 个控制器继续提供数据应用服务,从而可以实现不停机的固件升级。


图1为现有技术的双控制器磁盘存储阵列的基本架构示意图;图2为现有技术双控制器磁盘存储阵列控制器的硬件结构框图;图3为本发明实施例的双控制器磁盘存储阵列控制器的硬件结构框图;图4为本发明实施例的双控制器磁盘存储阵列进行固件升级的基本流程图;图5为本发明实施例的双控制器磁盘存储阵列的完整固件升级流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细阐述。针对磁盘存储阵列所要求的高可靠性和高可用性,本发明提出了一种磁盘存储阵 列的固件升级方法,满足磁盘存储阵列在进行固件升级时无需停机,自动检测升级成功性, 无需中断服务的要求。图3示出了本发明实施例的磁盘存储阵列控制器的硬件结构,包括两块控制器 控制器A和控制器B。每个控制器包括带有计时器的控制单元、固件存储器A和BMC控制 器。与现有技术不同的是,控制器A和控制器B之间的通信不是通过控制单元之间的通讯 接口,而是通过连接这两个控制器的数据总线来实现。具体地说,控制器A包括控制单元A301、固件存储器A303和BMC控制器A304。控 制单元301中包括计时器A302。控制器B包括控制单元B305、固件存储器B307和BMC控 制器B308。控制单元305中包括计时器B306。控制器A和控制器B的上述各个模块统一 接入数据总线309。 在这种情况下,总线309形成跨越控制器A和控制器B的数据通路,使得一端控制 器的控制单元能够操作另一端控制器的固件存储器和BMC控制器。控制器单元A301和控制单元B305负责命令的执行,数据应用服务的执行,对该双 控制器磁盘存储阵列进行控制。计时器A302和计时器B306为控制单元内用于时间测量的控制设备,当设定了计 时时间且时间运行到时,能出发控制单元执行一定操作。在本实施例中主要负责升级时间 的计时。固件存储器A303和固件存储器B307为系统固件存放之处,每块控制器对应的固 件存储器分别存储控制器自身的固件。BMC控制器A304和BMC控制器B308为基板管理控制器,用于控制系统电源加载, 系统重置,硬件监控等操作。以下假设控制器A为主控制器,控制器B为从控制器进行描述。控制单元A301接收来自外部的固件升级命令和新固件,并将所述新固件保存在 固件存储器A303中,将双控制器磁盘存储阵列的主控制权以及控制器A的数据应用服务通 过数据总线309转交到控制器B ;在BMC控制器A304成功实现固件升级后,控制单元A301接管双控制器磁盘存储阵列的主控制权以及控制器B上的全部数据应用服务,并将固件存 储器A303中的新固件通过数据总线309写入控制器B,通知控制器B进行固件升级;在控 制器B固件升级成功后,通过数据总线309将属于控制器B的数据应用服务转交给控制器 B0其中,当控制单元A301将固件存储器A303中的新固件通过数据总线309写入控 制器B,通知控制器B进行固件升级后,设定固件升级时间长度,并启动所述计时器A302 ;控制单元A301进一步用于判断在计时器A302的计时长度达到所设定的固件升级 时间长度之前,控制器B是否实现硬件重启,若是,判定控制器B固件升级成功;否则,判定 控制器B固件升级失败,再次将新固件写入控制器B,通知控制器B进行固件升级。若所述BMC控制器A304固件升级失败;则所述固件存储器303A进一步用于通过数据总线309接收来自控制器B的旧固 件;所述BMC控制器304A进一步用于载入所述旧固件,并还原到固件升级之前的状态;控 制单元A301用于通过数据总线309从控制器B接管双控制器磁盘存储阵列的主控制权以 及原属于本地的数据应用服务。所述控制单元B305用于在控制器A进行固件升级之前,通过数据总线309接管该 双控制器磁盘存储阵列的主控制权以及控制器A上的数据应用服务;在控制器A成功进行 固件升级后,将双控制器磁盘存储阵列的主控制权以及本地所有的数据应用服务转交给控 制器A ;固件存储器B307通过数据总线309接收并存储来自控制器A的新固件;BMC控制 器B308进行硬件重启并加载所述新固件进行固件升级;在成功进行固件升级后,控制单元 B305通过所述数据总线309从控制器A接管原属于控制器B的数据应用服务。所述控制单元B305进一步用于在收到来自外部的固件升级命令后,将所述固件 升级命令通过所述数据总线309转发至控制器A。较佳地,所述控制单元B305进一步包括计时器B306,控制单元B305收到来自控制 器A的进行固件升级的通知后,设定计时器B306的超时时间长度,并使计时器B306开始计 时;控制单元B305进一步用于判断所述计时器B306的计时长度达到超时时间长度之前,控 制器A是否实现了硬件重启,若是,判定控制器A固件升级成功;否则,判定控制器A固件升 级失败,将固件存储器B307中存储的旧固件通过所述数据总线309写入控制器A。本发明实施例提出一种双控制器磁盘存储阵列的升级固件方法,该方法的基本流 程如图4所示,包括如下步骤步骤401 接收来自外部的固件升级命令和新固件,将所述新固件保存在主控制 器中;步骤402 从控制器接管该双控制器磁盘存储阵列的主控制权以及主控制器上的 具有主控制器标识的数据应用服务;步骤403 主控制器进行硬件重启,读取主控制器中存储的新固件进行固件升级;步骤404:主控制器固件升级成功后,主控制器接管双控制器磁盘存储阵列的主 控制权以及从控制器上的数据应用服务,所述从控制器上的数据应用服务包括具有主控制 器标识的数据应用服务以及具有从控制器标识的数据应用服务;步骤405 主控制器将新固件写入从控制器中,并通知从控制器进行固件升级;步骤406 从控制器进行硬件重启,读取从控制器中存储的新固件进行固件升级;
步骤407 从控制器固件升级成功后,从主控制器接管具有从控制器标识的数据 应用服务。较佳地,所述步骤401包括A1、从控制器接收来自外部的固件升级命令,将所述固件升级命令转发至主控制 器;A2、主控制器接收来自外部的新固件,并将所述新固件写入自身的固件存储器中。上述流程中没有考虑到升级失败的情况。如果要对升级失败的情况进行处理,则 在步骤401中,在子步骤A2之后还可以进一步包括A3、主控制器向从控制器发出进行固件 升级的通知,从控制器设定自身计时器的超时时间长度,并使该计时器开始计时;所述步骤403之后且步骤404之前,还可以进一步包括从控制器判断自身计时器的计时长度达到超时时间长度之前,主控制器是否实现 了硬件重启,若是,判定主控制器固件升级成功,转至所述步骤404 ;否则,判定主控制器固 件升级失败,执行如下步骤从控制器将自身存储的旧固件写入主控制器;主控制器载入所述旧固件,还原到固件升级之前的状态,并接管双控制器磁盘存 储阵列的主控制权以及从控制器上具有主控制器标识的数据应用服务。较佳地,所述步骤405还可以进一步包括主控制器设定从控制器的固件升级时 间长度,并启动自身的计时器;所述步骤406之后且步骤407之前,进一步包括主控制器判断在自身计时器的计时长度达到所设定的固件升级时间长度之前,从 控制器是否实现了硬件重启,若是,判定从控制器固件升级成功,执行所述步骤407 ;否则, 判定从控制器固件升级失败,转至步骤406。较佳地,所述判定从控制器固件升级失败之后,执行如下步骤主控制器判断从控制器固件升级失败的次数是否达到预定值,若是则主控制器发 出固件升级未完成信号。否则转至步骤405。假设控制器A作为系统主控制器,控制器B为系统从控制器,如图5所示为一个双 控制器磁盘存储阵列的完整固件升级流程,包括如下步骤步骤501 接收来自外部的固件升级命令。若升级命令从控制器B传入,则控制器 B将其转发至主控制器即控制器A,确保由系统主控制器接收并执行命令。步骤502 控制器A接收外部传入的新固件,并将新固件写入自身对应的固件存储 器A。完成写入后,通知控制器B进行固件升级,并通知控制器B设定计时器的超时时间。步骤503 控制器B接管系统主控制权,并接管控制器A上的数据应用服务,确保 在固件升级期间能保证提供数据应用服务。具体实现方式可以为控制器B通知主机端的MPI0软件使用连接至控制器B的回 路,以不中断方式接管控制器A上的数据应用服务。所述具体实现方式只是为了使本领域 技术人员进一步了解本发明方案,并不用以限制本发明。步骤504 控制器A向本地BMC控制器发出进行硬件重启的指令,所述BMC控制器 读取固件存储器A中的固件进行固件升级,若控制器A升级固件成功,系统开始运行,转入 步骤505。若控制器A升级固件失败,控制器A无法成功运行系统,转入步骤514。步骤505 控制器A成功运行起升级后的系统,从控制器B处接管系统主控制权,接管控制器B上的数据应用服务。步骤506 控制器A将固件存储器A中的新固件写入固件存储器B,在计时器A中 设定控制器B的固件升级时间,并发送升级命令通知控制器B进行固件升级。步骤507 控制器B接受固件升级命令,通过BMC控制器进行硬件重启,开始使用 对应的固件存储器B内的新固件进行升级。步骤508 控制器B开始进行固件升级,若控制器B升级固件成功,系统开始运行, 转入步骤509。若控制器B升级固件失败,无法成功运行系统,转入步骤511。步骤509 控制器B成功运行起系统,从控制器A处接管原属于自身的数据应用服 务,恢复升级前工作状态。步骤510 控制器A接受控制器B成功运行信号后,对外发送升级成功完成信号。步骤511 控制器B无法运行系统,在控制器A计时时间到后,控制器A判定控制 器B升级失败。步骤512 控制器A判定是否控制器B已升级失败多次,若次数已到规定次数,转 入步骤513,若次数还未到规定次数,重新尝试对控制器B进行升级操作,转入步骤506。步骤513:控制器B经过多次尝试无法升级成功,控制器A发出升级未成功完成信 号,要求用户处理。步骤514 控制器A无法运行系统,在控制器B计时时间到后,控制器B判定控制 器A升级失败。步骤515 控制器B将自身的固件存储器B内的旧固件写入固件存储器A内,通过 BMC控制器重置控制器A。步骤516 控制器A载入固件存储器A内的旧固件,还原升级前状态,接管系统主 控制权和原有的数据应用服务。步骤517 控制器A发出未进行升级,升级失败信号,要求用户处理。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种双控制器磁盘存储阵列的升级固件方法,所述双控制器包括主控制器和从控制器,其特征在于,该方法包括如下步骤A、接收来自外部的固件升级命令和新固件,将所述新固件保存在主控制器中;B、从控制器接管该双控制器磁盘存储阵列的主控制权以及主控制器上的具有主控制器标识的数据应用服务;C、主控制器进行硬件重启,读取主控制器中存储的新固件进行固件升级;D、主控制器固件升级成功后,主控制器接管双控制器磁盘存储阵列的主控制权以及从控制器上的数据应用服务,所述从控制器上的数据应用服务包括具有主控制器标识的数据应用服务以及具有从控制器标识的数据应用服务;E、主控制器将新固件写入从控制器中,并通知从控制器进行固件升级;F、从控制器进行硬件重启,读取从控制器中存储的新固件进行固件升级;G、从控制器固件升级成功后,从主控制器接管具有从控制器标识的数据应用服务。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括A1、从控制器接收来自外部的固件升级命令,将所述固件升级命令转发至主控制器;A2、主控制器接收来自外部的新固件,并将所述新固件写入自身的固件存储器中。
3.根据权利要求1所述的方法,其特征在于,步骤A中,在子步骤A2之后进一步包括 A3、主控制器向从控制器发出进行固件升级的通知,从控制器设定自身计时器的超时时间 长度,并使该计时器开始计时;所述步骤C之后且步骤D之前,进一步包括从控制器判断自身计时器的计时长度达到超时时间长度之前,主控制器是否实现了硬 件重启,若是,判定主控制器固件升级成功,转至所述步骤D ;否则,判定主控制器固件升级 失败,执行如下步骤从控制器将自身存储的旧固件写入主控制器;主控制器载入所述旧固件,还原到固件升级之前的状态,并接管双控制器磁盘存储阵 列的主控制权以及从控制器上具有主控制器标识的数据应用服务。
4.根据权利要求1、2或3所述的方法,其特征在于,所述步骤E进一步包括主控制器 设定从控制器的固件升级时间长度,并启动自身的计时器;所述步骤F之后且步骤G之前,进一步包括主控制器判断在自身计时器的计时长度达到所设定的固件升级时间长度之前,从控制 器是否实现了硬件重启,若是,判定从控制器固件升级成功,执行所述步骤G ;否则,判定从 控制器固件升级失败,转至步骤E。
5.根据权利要求4所述的方法,其特征在于,所述判定从控制器固件升级失败之后,执 行如下步骤主控制器判断从控制器固件升级失败的次数是否达到预定值,若是则主控制器发出固 件升级未完成信号。否则转至步骤E。
6.一种双控制器磁盘存储阵列,所述双控制器包括主控制器和从控制器,所述主控制 器具有该双控制器磁盘存储阵列的主控制权;其特征在于,所述主控制器用于接收来自外部的固件升级命令和新固件,并保存所述新固件;将双 控制器磁盘存储阵列的主控制权以及主控制器上的具有主控制器标识的数据应用服务转交到从控制器后,进行硬件重启,读取自身存储的新固件进行固件升级;固件升级成功后, 主控制器接管双控制器磁盘存储阵列的主控制权以及从控制器上的数据应用服务,所述从 控制器上的数据应用服务包括具有主控制器标识的数据应用服务以及具有从控制器标识 的数据应用服务,并将新固件写入从控制器,通知从控制器进行固件升级;在从控制器固件 升级成功后,将具有从控制器标识的数据应用服务转交给从控制器;所述从控制器用于在主控制器进行固件升级之前,接管该双控制器磁盘存储阵列的主 控制权以及主控制器上的具有主控制器标识的数据应用服务,在主控制器成功进行固件升 级后,将双控制器磁盘存储阵列的主控制权以及从控制器上的数据应用服务转交给主控制 器,接收来自主控制器的新固件并进行固件升级,所述从控制器上的数据应用服务包括具 有主控制器标识的数据应用服务以及具有从控制器标识的数据应用服务;在从控制器成功 进行固件升级后,从主控制器接管具有从控制器标识的数据应用服务。
7.根据权利要求6所述的双控制器磁盘存储阵列,其特征在于,所述从控制器还用于 在收到来自外部的固件升级命令后,将所述固件升级命令转发至主控制器。
8.根据权利要求6所述的双控制器磁盘存储阵列,其特征在于,所述主控制器将双控 制器磁盘存储阵列的主控制权以及主控制器上的具有主控制器标识的数据应用服务转交 到从控制器时,向从控制器发出进行固件升级的通知;所述从控制器进一步包括定时器B,在从控制器收到来自主控制器的进行固件升级的 通知后,设定计时器B的超时时间长度,并使计时器B开始计时;从控制器进一步用于判断 自身计时器的计时长度达到超时时间长度之前,主控制器是否实现了硬件重启,若是,判定 主控制器固件升级成功;否则,判定主控制器固件升级失败,将自身存储的旧固件写入主控 制器;主控制器进一步用于,在固件升级失败后,载入来自从控制器的旧固件,还原到固件升 级之前的状态,并接管双控制器磁盘存储阵列的主控制权以及从控制器上具有主控制器标 识的数据应用服务。
9.根据权利要求6、7或8所述的双控制器磁盘存储阵列,其特征在于,所述主控制器进 一步包括计时器A,在主控制器将新固件写入从控制器,通知从控制器进行固件升级后,设 定从控制器的固件升级时间长度,并启动计时器A ;主控制器进一步用于判断在自身计时器的计时长度达到所设定的固件升级时间长度 之前,从控制器是否实现了硬件重启,若是,判定从控制器固件升级成功;否则,判定从控制 器固件升级失败,再次将新固件写入从控制器,通知从控制器进行固件升级。
10.一种双控制器磁盘存储阵列中的控制器,所述控制器包括控制单元、固件存储器和 基板管理控制器;控制器单元具有的功能包括命令的执行,数据应用服务的执行和对该双控制器磁盘 存储阵列进行控制;固件存储器用于存储本地控制器的固件;基板管理控制器用于实现本 地控制器的硬件重启,加载本地固件存储器中的固件进行固件升级;其特征在于,所述控制单元、固件存储器和基板管理控制器统一接入数据总线,且所述数据总线连 接该双控制器磁盘存储阵列中的对端控制器;所述控制器作为该双控制器磁盘存储阵列的主控制器时,所述控制单元接收来自外部的固件升级命令和新固件,并将所述新固件保存在本地固件存储器中,将双控制器磁盘存 储阵列的主控制权以及本控制器的数据应用服务通过所述数据总线转交到对端控制器;在 本地基板管理控制器成功实现固件升级后,所述控制单元接管双控制器磁盘存储阵列的主 控制权以及对端控制器上的全部数据应用服务,并将本地固件存储器中的新固件通过所述 数据总线写入对端控制器,通知对端控制器进行固件升级;在对端控制器固件升级成功后, 通过所述数据总线将属于对端控制器的数据应用服务转交给对端控制器。
11.根据权利要求10所述的控制器,其特征在于,所述控制器进一步包括计时器,当控 制单元将本地固件存储器中的新固件通过所述数据总线写入对端控制器,通知对端控制器 进行固件升级后,设定固件升级时间长度,并启动所述计时器;控制单元进一步用于判断在自身计时器的计时长度达到所设定的固件升级时间长度 之前,对端控制器是否实现了硬件重启,若是,判定对端控制器固件升级成功;否则,判定对 端控制器固件升级失败,再次将新固件写入对端控制器,通知对端控制器进行固件升级。
12.根据权利要求11或12所述的控制器,其特征在于,若所述基板管理控制器固件升 级失败;则所述固件存储器进一步用于通过所述数据总线接收来自对端控制器的旧固件;所述 基板管理控制器进一步用于载入所述旧固件,并还原到固件升级之前的状态;所述控制单 元用于通过所述数据总线从对端控制器接管双控制器磁盘存储阵列的主控制权以及原属 于本地的数据应用服务。
13.—种双控制器磁盘存储阵列中的控制器,所述控制器包括控制单元、固件存储器和 基板管理控制器;控制器单元具有的功能包括命令的执行,数据应用服务的执行和对该双控制器磁盘 存储阵列进行控制;固件存储器用于存储本地控制器的固件;基板管理控制器用于实现本 地控制器的硬件重启,加载本地固件存储器中的固件进行固件升级;其特征在于,所述控制单元、固件存储器和基板管理控制器统一接入数据总线,且所述数据总线连 接该双控制器磁盘存储阵列中的对端控制器;所述控制器作为该双控制器磁盘存储阵列的从控制器时,所述控制单元用于在对端控 制器进行固件升级之前,通过所述数据总线接管该双控制器磁盘存储阵列的主控制权以及 对端控制器上的数据应用服务;在对端控制器成功进行固件升级后,将双控制器磁盘存储 阵列的主控制权以及本地所有的数据应用服务转交给对端控制器;固件存储器通过所述数 据总线接收并存储来自对端控制器的新固件;基板管理控制器进行硬件重启并加载所述新 固件进行固件升级;在成功进行固件升级后,所述控制单元通过所述数据总线从对端控制 器接管原属于本地控制器的数据应用服务。
14.根据权利要求13所述的控制器,其特征在于,所述控制单元进一步用于在收到来 自外部的固件升级命令后,将所述固件升级命令通过所述数据总线转发至对端控制器。
15.根据权利要求13或14所述的控制器,其特征在于,所述控制单元进一步包括计时 器,所述控制单元收到来自对端控制器的进行固件升级的通知后,设定计时器的超时时间 长度,并使计时器开始计时;控制单元进一步用于判断所述计时器的计时长度达到超时时 间长度之前,对端控制器是否实现了硬件重启,若是,判定对端控制器固件升级成功;否则,判定对端控制器固件升级失败,将本地固件存储器中存储的旧固件通过所述数据总线写入 对端控制器。
全文摘要
本发明公开了一种双控制器磁盘存储阵列的固件升级方法,在任一控制器进行固件升级之前,将该磁盘存储阵列的主控制权以及所有的数据应用服务转交到另一个控制器,在固件升级过程中可以通过一个控制器继续提供数据应用服务,从而可以实现不停机的固件升级。本发明还公开了一种可以实现上述方法的双控制器磁盘存储阵列以及一种控制器。
文档编号G06F9/445GK101876910SQ20091023675
公开日2010年11月3日 申请日期2009年10月28日 优先权日2009年10月28日
发明者黄文俊 申请人:创新科存储技术有限公司;创新科软件技术(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1