亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

雙控制器磁盤存儲(chǔ)陣列,及其升級(jí)固件方法和控制器的制作方法

文檔序號(hào):6584558閱讀:184來源:國知局
專利名稱:雙控制器磁盤存儲(chǔ)陣列,及其升級(jí)固件方法和控制器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種雙控制器磁盤存儲(chǔ)陣列,及其升 級(jí)固件方法和控制器。
背景技術(shù)
磁盤存儲(chǔ)陣列是把多個(gè)磁盤組成一個(gè)陣列當(dāng)作單一磁盤使用,它將數(shù)據(jù)以條帶 (striping)的方式儲(chǔ)存在不同的磁盤中。存取數(shù)據(jù)時(shí),陣列中的相關(guān)磁盤一起動(dòng)作,大幅減 低數(shù)據(jù)的存取時(shí)間,同時(shí)有更佳的空間利用率。磁盤存儲(chǔ)陣列通常用于作為計(jì)算機(jī)系統(tǒng)中 各種重要數(shù)據(jù)的存放處,要求能夠提供極高的可靠性,保證數(shù)據(jù)的安全和穩(wěn)定,同時(shí),要求 磁盤存儲(chǔ)陣列能夠提供常年全天24小時(shí)的不中斷數(shù)據(jù)服務(wù)。磁盤存儲(chǔ)陣列為了達(dá)到高可靠和不中斷服務(wù)的特性,通常采用了雙控制器架構(gòu)。 圖1為現(xiàn)有技術(shù)的雙控制器磁盤存儲(chǔ)陣列的基本架構(gòu)示意圖。雙控制器磁盤存儲(chǔ)陣列包括 一臺(tái)主機(jī)101,兩臺(tái)交換機(jī)(分別是交換機(jī)102和交換機(jī)103),兩臺(tái)控制器(分別是控制器 104和控制器105,或稱控制器A和控制器B),以及后端的物理磁盤組。兩個(gè)控制器共同管 理物理磁盤組。主機(jī)101中運(yùn)行多路徑輸入輸出(Multipath Input/Output, MP 10)軟件, 可以通過任一臺(tái)交換機(jī)以及控制器訪問物理磁盤組。根據(jù)應(yīng)用需求,物理磁盤組將被劃分 成若干邏輯卷,每一個(gè)邏輯卷相當(dāng)于一個(gè)虛擬磁盤,以邏輯單元號(hào)(Logical Unit Number, LUN)作為標(biāo)識(shí)。交換機(jī)102和交換機(jī)103之間,以及控制器A和控制器B之間都是相互備 份的關(guān)系。主機(jī)101可以通過其中任一個(gè)交換機(jī)以及控制器訪問邏輯卷。在雙控制器架構(gòu)下,當(dāng)其中一個(gè)控制器發(fā)生了軟件或硬件故障,另一控制器能夠 立即接過控制權(quán),在不影響用戶的情況下繼續(xù)對(duì)外提供數(shù)據(jù)應(yīng)用服務(wù),同時(shí)通知系統(tǒng)管理 員處理發(fā)生問題的控制器以解決故障。圖2所示為現(xiàn)有技術(shù)磁盤存儲(chǔ)陣列控制器的硬件結(jié)構(gòu)框圖。控制器A內(nèi)部包括 控制單元A201、固件存儲(chǔ)器A203和基板管理控制器(BaseboardManagement Controller, BMC)A204。其中控制單元201中還包括定時(shí)器A202??刂破鰾的內(nèi)部結(jié)構(gòu)與控制器A相 同,包括控制單元B206、固件存儲(chǔ)器B208和基板管理控制器B209,控制單元B206中還包括 定時(shí)器B207。通訊接口 205實(shí)現(xiàn)控制單元A201和控制單元B206之間的信息交互。固件存 儲(chǔ)器A203用于存儲(chǔ)控制器A的升級(jí)固件,固件存儲(chǔ)器B208用以存儲(chǔ)控制器B的升級(jí)固件。在磁盤存儲(chǔ)陣列需要進(jìn)行固件升級(jí)時(shí),通常情況下不得不暫時(shí)停止服務(wù),停機(jī)進(jìn) 行固件升級(jí),同時(shí)在升級(jí)后,需要進(jìn)行一定時(shí)間的測(cè)試運(yùn)行,以保證固件升級(jí)的成功。這種 情況中斷了磁盤存儲(chǔ)陣列的數(shù)據(jù)服務(wù),使其不能做到常年全天24小時(shí)不中斷服務(wù)。在很多 有極高要求的應(yīng)用場(chǎng)合,如銀行、電視臺(tái)、視頻監(jiān)控中心等,這種服務(wù)中斷是不可接受的。因 此要求磁盤存儲(chǔ)陣列能有一套可靠、高效、無需停止服務(wù)的固件升級(jí)方法。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于,提出一種雙控制器磁盤存儲(chǔ)陣列的固件升級(jí)方法,可以在不停止服務(wù)的情況下實(shí)現(xiàn)固件升級(jí)。所述雙控制器包括主控制器和從控制器,該方 法包括如下步驟A、接收來自外部的固件升級(jí)命令和新固件,將所述新固件保存在主控制器中;B、從控制器接管該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具有主 控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);C、主控制器進(jìn)行硬件重啟,讀取主控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);D、主控制器固件升級(jí)成功后,主控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以 及從控制器上的數(shù)據(jù)應(yīng)用服務(wù),所述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具有主控制器標(biāo)識(shí)的 數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);E、主控制器將新固件寫入從控制器中,并通知從控制器進(jìn)行固件升級(jí);F、從控制器進(jìn)行硬件重啟,讀取從控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);G、從控制器固件升級(jí)成功后,從主控制器接管具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服 務(wù)。較佳地,所述步驟A包括A1、從控制器接收來自外部的固件升級(jí)命令,將所述固件升級(jí)命令轉(zhuǎn)發(fā)至主控制 器;A2、主控制器接收來自外部的新固件,并將所述新固件寫入自身的固件存儲(chǔ)器中。步驟A中,在子步驟A2之后進(jìn)一步包括A3、主控制器向從控制器發(fā)出進(jìn)行固件升 級(jí)的通知,從控制器設(shè)定自身計(jì)時(shí)器的超時(shí)時(shí)間長(zhǎng)度,并使該計(jì)時(shí)器開始計(jì)時(shí);所述步驟C之后且步驟D之前,進(jìn)一步包括從控制器判斷自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,主控制器是否實(shí)現(xiàn) 了硬件重啟,若是,判定主控制器固件升級(jí)成功,轉(zhuǎn)至所述步驟D ;否則,判定主控制器固件 升級(jí)失敗,執(zhí)行如下步驟從控制器將自身存儲(chǔ)的舊固件寫入主控制器;主控制器載入所述舊固件,還原到固件升級(jí)之前的狀態(tài),并接管雙控制器磁盤存 儲(chǔ)陣列的主控制權(quán)以及從控制器上具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。所述步驟E進(jìn)一步包括主控制器設(shè)定從控制器的固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)自 身的計(jì)時(shí)器;所述步驟F之后且步驟G之前,進(jìn)一步包括主控制器判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間長(zhǎng)度之前,從 控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定從控制器固件升級(jí)成功,執(zhí)行所述步驟G ;否則,判 定從控制器固件升級(jí)失敗,轉(zhuǎn)至步驟E。較佳地,所述判定從控制器固件升級(jí)失敗之后,執(zhí)行如下步驟主控制器判斷從控制器固件升級(jí)失敗的次數(shù)是否達(dá)到預(yù)定值,若是則主控制器發(fā) 出固件升級(jí)未完成信號(hào)。否則轉(zhuǎn)至步驟E。本發(fā)明的目的還在于,提出一種用于實(shí)現(xiàn)上述方法的雙控制器磁盤存儲(chǔ)陣列,所 述雙控制器包括主控制器和從控制器,所述主控制器具有該雙控制器磁盤存儲(chǔ)陣列的主控 制權(quán);所述主控制器用于接收來自外部的固件升級(jí)命令和新固件,并保存所述新固件;將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服 務(wù)轉(zhuǎn)交到從控制器后,進(jìn)行硬件重啟,讀取自身存儲(chǔ)的新固件進(jìn)行固件升級(jí);固件升級(jí)成功 后,主控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù),所 述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器 標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù),并將新固件寫入從控制器,通知從控制器進(jìn)行固件升級(jí);在從控制器 固件升級(jí)成功后,將具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給從控制器;
所述從控制器用于在主控制器進(jìn)行固件升級(jí)之前,接管該雙控制器磁盤存儲(chǔ)陣列 的主控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù),在主控制器成功進(jìn)行固 件升級(jí)后,將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給主 控制器,接收來自主控制器的新固件并進(jìn)行固件升級(jí),所述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包 括具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);在從控制器 成功進(jìn)行固件升級(jí)后,從主控制器接管具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。
所述從控制器還用于在收到來自外部的固件升級(jí)命令后,將所述固件升級(jí)命令轉(zhuǎn) 發(fā)至主控制器。較佳地,所述主控制器將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具 有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交到從控制器時(shí),向從控制器發(fā)出進(jìn)行固件升級(jí)的通 知;所述從控制器進(jìn)一步包括定時(shí)器B,在從控制器收到來自主控制器的進(jìn)行固件升 級(jí)的通知后,設(shè)定計(jì)時(shí)器B的超時(shí)時(shí)間長(zhǎng)度,并使計(jì)時(shí)器B開始計(jì)時(shí);從控制器進(jìn)一步用于 判斷自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,主控制器是否實(shí)現(xiàn)了硬件重啟,若是, 判定主控制器固件升級(jí)成功;否則,判定主控制器固件升級(jí)失敗,將自身存儲(chǔ)的舊固件寫入 主控制器;
主控制器進(jìn)一步用于,在固件升級(jí)失敗后,載入來自從控制器的舊固件,還原到固 件升級(jí)之前的狀態(tài),并接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上具有主控制 器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。較佳地,所述主控制器進(jìn)一步包括計(jì)時(shí)器A,在主控制器將新固件寫入從控制器, 通知從控制器進(jìn)行固件升級(jí)后,設(shè)定從控制器的固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)計(jì)時(shí)器A ;主控制器進(jìn)一步用于判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間 長(zhǎng)度之前,從控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定從控制器固件升級(jí)成功;否則,判定從 控制器固件升級(jí)失敗,再次將新固件寫入從控制器,通知從控制器進(jìn)行固件升級(jí)。本發(fā)明實(shí)施例還提出一種雙控制器磁盤存儲(chǔ)陣列中的控制器,所述控制器包括控 制單元、固件存儲(chǔ)器和基板管理控制器;控制器單元具有的功能包括命令的執(zhí)行,數(shù)據(jù)應(yīng)用服務(wù)的執(zhí)行和對(duì)該雙控制器 磁盤存儲(chǔ)陣列進(jìn)行控制;固件存儲(chǔ)器用于存儲(chǔ)本地控制器的固件;基板管理控制器用于實(shí) 現(xiàn)本地控制器的硬件重啟,加載本地固件存儲(chǔ)器中的固件進(jìn)行固件升級(jí);所述控制單元、固件存儲(chǔ)器和基板管理控制器統(tǒng)一接入數(shù)據(jù)總線,且所述數(shù)據(jù)總 線連接該雙控制器磁盤存儲(chǔ)陣列中的對(duì)端控制器;所述控制器作為該雙控制器磁盤存儲(chǔ)陣列的主控制器時(shí),所述控制單元接收來自 外部的固件升級(jí)命令和新固件,并將所述新固件保存在本地固件存儲(chǔ)器中,將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及本控制器的數(shù)據(jù)應(yīng)用服務(wù)通過所述數(shù)據(jù)總線轉(zhuǎn)交到對(duì)端控制 器;在本地基板管理控制器成功實(shí)現(xiàn)固件升級(jí)后,所述控制單元接管雙控制器磁盤存儲(chǔ)陣 列的主控制權(quán)以及對(duì)端控制器上的全部數(shù)據(jù)應(yīng)用服務(wù),并將本地固件存儲(chǔ)器中的新固件通 過所述數(shù)據(jù)總線寫入對(duì)端控制器,通知對(duì)端控制器進(jìn)行固件升級(jí);在對(duì)端控制器固件升級(jí) 成功后,通過所述數(shù)據(jù)總線將屬于對(duì)端控制器的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給對(duì)端控制器。所述控制器進(jìn)一步包括計(jì)時(shí)器,當(dāng)控制單元將本地固件存儲(chǔ)器中的新固件通過所 述數(shù)據(jù)總線寫入對(duì)端控制器,通知對(duì)端控制器進(jìn)行固件升級(jí)后,設(shè)定固件升級(jí)時(shí)間長(zhǎng)度,并 啟動(dòng)所述計(jì)時(shí)器;控制單元進(jìn)一步用于判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間 長(zhǎng)度之前,對(duì)端控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定對(duì)端控制器固件升級(jí)成功;否則,判 定對(duì)端控制器固件升級(jí)失敗,再次將新固件寫入對(duì)端控制器,通知對(duì)端控制器進(jìn)行固件升 級(jí)。若所述基板管理控制器固件升級(jí)失?。粍t所述固件存儲(chǔ)器進(jìn)一步用于通過所述數(shù)據(jù)總線接收來自對(duì)端控制器的舊固件; 所述基板管理控制器進(jìn)一步用于載入所述舊固件,并還原到固件升級(jí)之前的狀態(tài);所述控 制單元用于通過所述數(shù)據(jù)總線從對(duì)端控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及 原屬于本地的數(shù)據(jù)應(yīng)用服務(wù)。本發(fā)明實(shí)施例還提出另一種雙控制器磁盤存儲(chǔ)陣列中的控制器,所述控制器包括 控制單元、固件存儲(chǔ)器和基板管理控制器;控制器單元具有的功能包括命令的執(zhí)行,數(shù)據(jù)應(yīng)用服務(wù)的執(zhí)行和對(duì)該雙控制器 磁盤存儲(chǔ)陣列進(jìn)行控制;固件存儲(chǔ)器用于存儲(chǔ)本地控制器的固件;基板管理控制器用于實(shí) 現(xiàn)本地控制器的硬件重啟,加載本地固件存儲(chǔ)器中的固件進(jìn)行固件升級(jí);所述控制單元、固件存儲(chǔ)器和基板管理控制器統(tǒng)一接入數(shù)據(jù)總線,且所述數(shù)據(jù)總 線連接該雙控制器磁盤存儲(chǔ)陣列中的對(duì)端控制器;所述控制器作為該雙控制器磁盤存儲(chǔ)陣列的從控制器時(shí),所述控制單元用于在對(duì) 端控制器進(jìn)行固件升級(jí)之前,通過所述數(shù)據(jù)總線接管該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán) 以及對(duì)端控制器上的數(shù)據(jù)應(yīng)用服務(wù);在對(duì)端控制器成功進(jìn)行固件升級(jí)后,將雙控制器磁盤 存儲(chǔ)陣列的主控制權(quán)以及本地所有的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給對(duì)端控制器;固件存儲(chǔ)器通過所 述數(shù)據(jù)總線接收并存儲(chǔ)來自對(duì)端控制器的新固件;基板管理控制器進(jìn)行硬件重啟并加載所 述新固件進(jìn)行固件升級(jí);在成功進(jìn)行固件升級(jí)后,所述控制單元通過所述數(shù)據(jù)總線從對(duì)端 控制器接管原屬于本地控制器的數(shù)據(jù)應(yīng)用服務(wù)。所述控制單元進(jìn)一步用于在收到來自外部的固件升級(jí)命令后,將所述固件升級(jí)命 令通過所述數(shù)據(jù)總線轉(zhuǎn)發(fā)至對(duì)端控制器。所述控制單元進(jìn)一步包括計(jì)時(shí)器,所述控制單元收到來自對(duì)端控制器的進(jìn)行固件 升級(jí)的通知后,設(shè)定計(jì)時(shí)器的超時(shí)時(shí)間長(zhǎng)度,并使計(jì)時(shí)器開始計(jì)時(shí);控制單元進(jìn)一步用于判 斷所述計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,對(duì)端控制器是否實(shí)現(xiàn)了硬件重啟,若是, 判定對(duì)端控制器固件升級(jí)成功;否則,判定對(duì)端控制器固件升級(jí)失敗,將本地固件存儲(chǔ)器中 存儲(chǔ)的舊固件通過所述數(shù)據(jù)總線寫入對(duì)端控制器。從以上技術(shù)方案可以看出,在任一控制器進(jìn)行固件升級(jí)之前,將該磁盤存儲(chǔ)陣列的主控制權(quán)以及所有的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交到另一個(gè)控制器,在固件升級(jí)過程中可以通過一 個(gè)控制器繼續(xù)提供數(shù)據(jù)應(yīng)用服務(wù),從而可以實(shí)現(xiàn)不停機(jī)的固件升級(jí)。


圖1為現(xiàn)有技術(shù)的雙控制器磁盤存儲(chǔ)陣列的基本架構(gòu)示意圖;圖2為現(xiàn)有技術(shù)雙控制器磁盤存儲(chǔ)陣列控制器的硬件結(jié)構(gòu)框圖;圖3為本發(fā)明實(shí)施例的雙控制器磁盤存儲(chǔ)陣列控制器的硬件結(jié)構(gòu)框圖;圖4為本發(fā)明實(shí)施例的雙控制器磁盤存儲(chǔ)陣列進(jìn)行固件升級(jí)的基本流程圖;圖5為本發(fā)明實(shí)施例的雙控制器磁盤存儲(chǔ)陣列的完整固件升級(jí)流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步 的詳細(xì)闡述。針對(duì)磁盤存儲(chǔ)陣列所要求的高可靠性和高可用性,本發(fā)明提出了一種磁盤存儲(chǔ)陣 列的固件升級(jí)方法,滿足磁盤存儲(chǔ)陣列在進(jìn)行固件升級(jí)時(shí)無需停機(jī),自動(dòng)檢測(cè)升級(jí)成功性, 無需中斷服務(wù)的要求。圖3示出了本發(fā)明實(shí)施例的磁盤存儲(chǔ)陣列控制器的硬件結(jié)構(gòu),包括兩塊控制器 控制器A和控制器B。每個(gè)控制器包括帶有計(jì)時(shí)器的控制單元、固件存儲(chǔ)器A和BMC控制 器。與現(xiàn)有技術(shù)不同的是,控制器A和控制器B之間的通信不是通過控制單元之間的通訊 接口,而是通過連接這兩個(gè)控制器的數(shù)據(jù)總線來實(shí)現(xiàn)。具體地說,控制器A包括控制單元A301、固件存儲(chǔ)器A303和BMC控制器A304???制單元301中包括計(jì)時(shí)器A302。控制器B包括控制單元B305、固件存儲(chǔ)器B307和BMC控 制器B308??刂茊卧?05中包括計(jì)時(shí)器B306。控制器A和控制器B的上述各個(gè)模塊統(tǒng)一 接入數(shù)據(jù)總線309。 在這種情況下,總線309形成跨越控制器A和控制器B的數(shù)據(jù)通路,使得一端控制 器的控制單元能夠操作另一端控制器的固件存儲(chǔ)器和BMC控制器??刂破鲉卧狝301和控制單元B305負(fù)責(zé)命令的執(zhí)行,數(shù)據(jù)應(yīng)用服務(wù)的執(zhí)行,對(duì)該雙 控制器磁盤存儲(chǔ)陣列進(jìn)行控制。計(jì)時(shí)器A302和計(jì)時(shí)器B306為控制單元內(nèi)用于時(shí)間測(cè)量的控制設(shè)備,當(dāng)設(shè)定了計(jì) 時(shí)時(shí)間且時(shí)間運(yùn)行到時(shí),能出發(fā)控制單元執(zhí)行一定操作。在本實(shí)施例中主要負(fù)責(zé)升級(jí)時(shí)間 的計(jì)時(shí)。固件存儲(chǔ)器A303和固件存儲(chǔ)器B307為系統(tǒng)固件存放之處,每塊控制器對(duì)應(yīng)的固 件存儲(chǔ)器分別存儲(chǔ)控制器自身的固件。BMC控制器A304和BMC控制器B308為基板管理控制器,用于控制系統(tǒng)電源加載, 系統(tǒng)重置,硬件監(jiān)控等操作。以下假設(shè)控制器A為主控制器,控制器B為從控制器進(jìn)行描述。控制單元A301接收來自外部的固件升級(jí)命令和新固件,并將所述新固件保存在 固件存儲(chǔ)器A303中,將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及控制器A的數(shù)據(jù)應(yīng)用服務(wù)通 過數(shù)據(jù)總線309轉(zhuǎn)交到控制器B ;在BMC控制器A304成功實(shí)現(xiàn)固件升級(jí)后,控制單元A301接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及控制器B上的全部數(shù)據(jù)應(yīng)用服務(wù),并將固件存 儲(chǔ)器A303中的新固件通過數(shù)據(jù)總線309寫入控制器B,通知控制器B進(jìn)行固件升級(jí);在控 制器B固件升級(jí)成功后,通過數(shù)據(jù)總線309將屬于控制器B的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給控制器 B0其中,當(dāng)控制單元A301將固件存儲(chǔ)器A303中的新固件通過數(shù)據(jù)總線309寫入控 制器B,通知控制器B進(jìn)行固件升級(jí)后,設(shè)定固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)所述計(jì)時(shí)器A302 ;控制單元A301進(jìn)一步用于判斷在計(jì)時(shí)器A302的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí) 時(shí)間長(zhǎng)度之前,控制器B是否實(shí)現(xiàn)硬件重啟,若是,判定控制器B固件升級(jí)成功;否則,判定 控制器B固件升級(jí)失敗,再次將新固件寫入控制器B,通知控制器B進(jìn)行固件升級(jí)。若所述BMC控制器A304固件升級(jí)失敗;則所述固件存儲(chǔ)器303A進(jìn)一步用于通過數(shù)據(jù)總線309接收來自控制器B的舊固 件;所述BMC控制器304A進(jìn)一步用于載入所述舊固件,并還原到固件升級(jí)之前的狀態(tài);控 制單元A301用于通過數(shù)據(jù)總線309從控制器B接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以 及原屬于本地的數(shù)據(jù)應(yīng)用服務(wù)。所述控制單元B305用于在控制器A進(jìn)行固件升級(jí)之前,通過數(shù)據(jù)總線309接管該 雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及控制器A上的數(shù)據(jù)應(yīng)用服務(wù);在控制器A成功進(jìn)行 固件升級(jí)后,將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及本地所有的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給控 制器A ;固件存儲(chǔ)器B307通過數(shù)據(jù)總線309接收并存儲(chǔ)來自控制器A的新固件;BMC控制 器B308進(jìn)行硬件重啟并加載所述新固件進(jìn)行固件升級(jí);在成功進(jìn)行固件升級(jí)后,控制單元 B305通過所述數(shù)據(jù)總線309從控制器A接管原屬于控制器B的數(shù)據(jù)應(yīng)用服務(wù)。所述控制單元B305進(jìn)一步用于在收到來自外部的固件升級(jí)命令后,將所述固件 升級(jí)命令通過所述數(shù)據(jù)總線309轉(zhuǎn)發(fā)至控制器A。較佳地,所述控制單元B305進(jìn)一步包括計(jì)時(shí)器B306,控制單元B305收到來自控制 器A的進(jìn)行固件升級(jí)的通知后,設(shè)定計(jì)時(shí)器B306的超時(shí)時(shí)間長(zhǎng)度,并使計(jì)時(shí)器B306開始計(jì) 時(shí);控制單元B305進(jìn)一步用于判斷所述計(jì)時(shí)器B306的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,控 制器A是否實(shí)現(xiàn)了硬件重啟,若是,判定控制器A固件升級(jí)成功;否則,判定控制器A固件升 級(jí)失敗,將固件存儲(chǔ)器B307中存儲(chǔ)的舊固件通過所述數(shù)據(jù)總線309寫入控制器A。本發(fā)明實(shí)施例提出一種雙控制器磁盤存儲(chǔ)陣列的升級(jí)固件方法,該方法的基本流 程如圖4所示,包括如下步驟步驟401 接收來自外部的固件升級(jí)命令和新固件,將所述新固件保存在主控制 器中;步驟402 從控制器接管該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的 具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);步驟403 主控制器進(jìn)行硬件重啟,讀取主控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);步驟404:主控制器固件升級(jí)成功后,主控制器接管雙控制器磁盤存儲(chǔ)陣列的主 控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù),所述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具有主控制 器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);步驟405 主控制器將新固件寫入從控制器中,并通知從控制器進(jìn)行固件升級(jí);步驟406 從控制器進(jìn)行硬件重啟,讀取從控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);
步驟407 從控制器固件升級(jí)成功后,從主控制器接管具有從控制器標(biāo)識(shí)的數(shù)據(jù) 應(yīng)用服務(wù)。較佳地,所述步驟401包括A1、從控制器接收來自外部的固件升級(jí)命令,將所述固件升級(jí)命令轉(zhuǎn)發(fā)至主控制 器;A2、主控制器接收來自外部的新固件,并將所述新固件寫入自身的固件存儲(chǔ)器中。上述流程中沒有考慮到升級(jí)失敗的情況。如果要對(duì)升級(jí)失敗的情況進(jìn)行處理,則 在步驟401中,在子步驟A2之后還可以進(jìn)一步包括A3、主控制器向從控制器發(fā)出進(jìn)行固件 升級(jí)的通知,從控制器設(shè)定自身計(jì)時(shí)器的超時(shí)時(shí)間長(zhǎng)度,并使該計(jì)時(shí)器開始計(jì)時(shí);所述步驟403之后且步驟404之前,還可以進(jìn)一步包括從控制器判斷自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,主控制器是否實(shí)現(xiàn) 了硬件重啟,若是,判定主控制器固件升級(jí)成功,轉(zhuǎn)至所述步驟404 ;否則,判定主控制器固 件升級(jí)失敗,執(zhí)行如下步驟從控制器將自身存儲(chǔ)的舊固件寫入主控制器;主控制器載入所述舊固件,還原到固件升級(jí)之前的狀態(tài),并接管雙控制器磁盤存 儲(chǔ)陣列的主控制權(quán)以及從控制器上具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。較佳地,所述步驟405還可以進(jìn)一步包括主控制器設(shè)定從控制器的固件升級(jí)時(shí) 間長(zhǎng)度,并啟動(dòng)自身的計(jì)時(shí)器;所述步驟406之后且步驟407之前,進(jìn)一步包括主控制器判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間長(zhǎng)度之前,從 控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定從控制器固件升級(jí)成功,執(zhí)行所述步驟407 ;否則, 判定從控制器固件升級(jí)失敗,轉(zhuǎn)至步驟406。較佳地,所述判定從控制器固件升級(jí)失敗之后,執(zhí)行如下步驟主控制器判斷從控制器固件升級(jí)失敗的次數(shù)是否達(dá)到預(yù)定值,若是則主控制器發(fā) 出固件升級(jí)未完成信號(hào)。否則轉(zhuǎn)至步驟405。假設(shè)控制器A作為系統(tǒng)主控制器,控制器B為系統(tǒng)從控制器,如圖5所示為一個(gè)雙 控制器磁盤存儲(chǔ)陣列的完整固件升級(jí)流程,包括如下步驟步驟501 接收來自外部的固件升級(jí)命令。若升級(jí)命令從控制器B傳入,則控制器 B將其轉(zhuǎn)發(fā)至主控制器即控制器A,確保由系統(tǒng)主控制器接收并執(zhí)行命令。步驟502 控制器A接收外部傳入的新固件,并將新固件寫入自身對(duì)應(yīng)的固件存儲(chǔ) 器A。完成寫入后,通知控制器B進(jìn)行固件升級(jí),并通知控制器B設(shè)定計(jì)時(shí)器的超時(shí)時(shí)間。步驟503 控制器B接管系統(tǒng)主控制權(quán),并接管控制器A上的數(shù)據(jù)應(yīng)用服務(wù),確保 在固件升級(jí)期間能保證提供數(shù)據(jù)應(yīng)用服務(wù)。具體實(shí)現(xiàn)方式可以為控制器B通知主機(jī)端的MPI0軟件使用連接至控制器B的回 路,以不中斷方式接管控制器A上的數(shù)據(jù)應(yīng)用服務(wù)。所述具體實(shí)現(xiàn)方式只是為了使本領(lǐng)域 技術(shù)人員進(jìn)一步了解本發(fā)明方案,并不用以限制本發(fā)明。步驟504 控制器A向本地BMC控制器發(fā)出進(jìn)行硬件重啟的指令,所述BMC控制器 讀取固件存儲(chǔ)器A中的固件進(jìn)行固件升級(jí),若控制器A升級(jí)固件成功,系統(tǒng)開始運(yùn)行,轉(zhuǎn)入 步驟505。若控制器A升級(jí)固件失敗,控制器A無法成功運(yùn)行系統(tǒng),轉(zhuǎn)入步驟514。步驟505 控制器A成功運(yùn)行起升級(jí)后的系統(tǒng),從控制器B處接管系統(tǒng)主控制權(quán),接管控制器B上的數(shù)據(jù)應(yīng)用服務(wù)。步驟506 控制器A將固件存儲(chǔ)器A中的新固件寫入固件存儲(chǔ)器B,在計(jì)時(shí)器A中 設(shè)定控制器B的固件升級(jí)時(shí)間,并發(fā)送升級(jí)命令通知控制器B進(jìn)行固件升級(jí)。步驟507 控制器B接受固件升級(jí)命令,通過BMC控制器進(jìn)行硬件重啟,開始使用 對(duì)應(yīng)的固件存儲(chǔ)器B內(nèi)的新固件進(jìn)行升級(jí)。步驟508 控制器B開始進(jìn)行固件升級(jí),若控制器B升級(jí)固件成功,系統(tǒng)開始運(yùn)行, 轉(zhuǎn)入步驟509。若控制器B升級(jí)固件失敗,無法成功運(yùn)行系統(tǒng),轉(zhuǎn)入步驟511。步驟509 控制器B成功運(yùn)行起系統(tǒng),從控制器A處接管原屬于自身的數(shù)據(jù)應(yīng)用服 務(wù),恢復(fù)升級(jí)前工作狀態(tài)。步驟510 控制器A接受控制器B成功運(yùn)行信號(hào)后,對(duì)外發(fā)送升級(jí)成功完成信號(hào)。步驟511 控制器B無法運(yùn)行系統(tǒng),在控制器A計(jì)時(shí)時(shí)間到后,控制器A判定控制 器B升級(jí)失敗。步驟512 控制器A判定是否控制器B已升級(jí)失敗多次,若次數(shù)已到規(guī)定次數(shù),轉(zhuǎn) 入步驟513,若次數(shù)還未到規(guī)定次數(shù),重新嘗試對(duì)控制器B進(jìn)行升級(jí)操作,轉(zhuǎn)入步驟506。步驟513:控制器B經(jīng)過多次嘗試無法升級(jí)成功,控制器A發(fā)出升級(jí)未成功完成信 號(hào),要求用戶處理。步驟514 控制器A無法運(yùn)行系統(tǒng),在控制器B計(jì)時(shí)時(shí)間到后,控制器B判定控制 器A升級(jí)失敗。步驟515 控制器B將自身的固件存儲(chǔ)器B內(nèi)的舊固件寫入固件存儲(chǔ)器A內(nèi),通過 BMC控制器重置控制器A。步驟516 控制器A載入固件存儲(chǔ)器A內(nèi)的舊固件,還原升級(jí)前狀態(tài),接管系統(tǒng)主 控制權(quán)和原有的數(shù)據(jù)應(yīng)用服務(wù)。步驟517 控制器A發(fā)出未進(jìn)行升級(jí),升級(jí)失敗信號(hào),要求用戶處理。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種雙控制器磁盤存儲(chǔ)陣列的升級(jí)固件方法,所述雙控制器包括主控制器和從控制器,其特征在于,該方法包括如下步驟A、接收來自外部的固件升級(jí)命令和新固件,將所述新固件保存在主控制器中;B、從控制器接管該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);C、主控制器進(jìn)行硬件重啟,讀取主控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);D、主控制器固件升級(jí)成功后,主控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù),所述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);E、主控制器將新固件寫入從控制器中,并通知從控制器進(jìn)行固件升級(jí);F、從控制器進(jìn)行硬件重啟,讀取從控制器中存儲(chǔ)的新固件進(jìn)行固件升級(jí);G、從控制器固件升級(jí)成功后,從主控制器接管具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A包括A1、從控制器接收來自外部的固件升級(jí)命令,將所述固件升級(jí)命令轉(zhuǎn)發(fā)至主控制器;A2、主控制器接收來自外部的新固件,并將所述新固件寫入自身的固件存儲(chǔ)器中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中,在子步驟A2之后進(jìn)一步包括 A3、主控制器向從控制器發(fā)出進(jìn)行固件升級(jí)的通知,從控制器設(shè)定自身計(jì)時(shí)器的超時(shí)時(shí)間 長(zhǎng)度,并使該計(jì)時(shí)器開始計(jì)時(shí);所述步驟C之后且步驟D之前,進(jìn)一步包括從控制器判斷自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,主控制器是否實(shí)現(xiàn)了硬 件重啟,若是,判定主控制器固件升級(jí)成功,轉(zhuǎn)至所述步驟D ;否則,判定主控制器固件升級(jí) 失敗,執(zhí)行如下步驟從控制器將自身存儲(chǔ)的舊固件寫入主控制器;主控制器載入所述舊固件,還原到固件升級(jí)之前的狀態(tài),并接管雙控制器磁盤存儲(chǔ)陣 列的主控制權(quán)以及從控制器上具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述步驟E進(jìn)一步包括主控制器 設(shè)定從控制器的固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)自身的計(jì)時(shí)器;所述步驟F之后且步驟G之前,進(jìn)一步包括主控制器判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間長(zhǎng)度之前,從控制 器是否實(shí)現(xiàn)了硬件重啟,若是,判定從控制器固件升級(jí)成功,執(zhí)行所述步驟G ;否則,判定從 控制器固件升級(jí)失敗,轉(zhuǎn)至步驟E。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述判定從控制器固件升級(jí)失敗之后,執(zhí) 行如下步驟主控制器判斷從控制器固件升級(jí)失敗的次數(shù)是否達(dá)到預(yù)定值,若是則主控制器發(fā)出固 件升級(jí)未完成信號(hào)。否則轉(zhuǎn)至步驟E。
6.一種雙控制器磁盤存儲(chǔ)陣列,所述雙控制器包括主控制器和從控制器,所述主控制 器具有該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán);其特征在于,所述主控制器用于接收來自外部的固件升級(jí)命令和新固件,并保存所述新固件;將雙 控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交到從控制器后,進(jìn)行硬件重啟,讀取自身存儲(chǔ)的新固件進(jìn)行固件升級(jí);固件升級(jí)成功后, 主控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù),所述從 控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí) 的數(shù)據(jù)應(yīng)用服務(wù),并將新固件寫入從控制器,通知從控制器進(jìn)行固件升級(jí);在從控制器固件 升級(jí)成功后,將具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給從控制器;所述從控制器用于在主控制器進(jìn)行固件升級(jí)之前,接管該雙控制器磁盤存儲(chǔ)陣列的主 控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù),在主控制器成功進(jìn)行固件升 級(jí)后,將雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給主控制 器,接收來自主控制器的新固件并進(jìn)行固件升級(jí),所述從控制器上的數(shù)據(jù)應(yīng)用服務(wù)包括具 有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)以及具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù);在從控制器成功 進(jìn)行固件升級(jí)后,從主控制器接管具有從控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。
7.根據(jù)權(quán)利要求6所述的雙控制器磁盤存儲(chǔ)陣列,其特征在于,所述從控制器還用于 在收到來自外部的固件升級(jí)命令后,將所述固件升級(jí)命令轉(zhuǎn)發(fā)至主控制器。
8.根據(jù)權(quán)利要求6所述的雙控制器磁盤存儲(chǔ)陣列,其特征在于,所述主控制器將雙控 制器磁盤存儲(chǔ)陣列的主控制權(quán)以及主控制器上的具有主控制器標(biāo)識(shí)的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交 到從控制器時(shí),向從控制器發(fā)出進(jìn)行固件升級(jí)的通知;所述從控制器進(jìn)一步包括定時(shí)器B,在從控制器收到來自主控制器的進(jìn)行固件升級(jí)的 通知后,設(shè)定計(jì)時(shí)器B的超時(shí)時(shí)間長(zhǎng)度,并使計(jì)時(shí)器B開始計(jì)時(shí);從控制器進(jìn)一步用于判斷 自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí)間長(zhǎng)度之前,主控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定 主控制器固件升級(jí)成功;否則,判定主控制器固件升級(jí)失敗,將自身存儲(chǔ)的舊固件寫入主控 制器;主控制器進(jìn)一步用于,在固件升級(jí)失敗后,載入來自從控制器的舊固件,還原到固件升 級(jí)之前的狀態(tài),并接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及從控制器上具有主控制器標(biāo) 識(shí)的數(shù)據(jù)應(yīng)用服務(wù)。
9.根據(jù)權(quán)利要求6、7或8所述的雙控制器磁盤存儲(chǔ)陣列,其特征在于,所述主控制器進(jìn) 一步包括計(jì)時(shí)器A,在主控制器將新固件寫入從控制器,通知從控制器進(jìn)行固件升級(jí)后,設(shè) 定從控制器的固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)計(jì)時(shí)器A ;主控制器進(jìn)一步用于判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間長(zhǎng)度 之前,從控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定從控制器固件升級(jí)成功;否則,判定從控制 器固件升級(jí)失敗,再次將新固件寫入從控制器,通知從控制器進(jìn)行固件升級(jí)。
10.一種雙控制器磁盤存儲(chǔ)陣列中的控制器,所述控制器包括控制單元、固件存儲(chǔ)器和 基板管理控制器;控制器單元具有的功能包括命令的執(zhí)行,數(shù)據(jù)應(yīng)用服務(wù)的執(zhí)行和對(duì)該雙控制器磁盤 存儲(chǔ)陣列進(jìn)行控制;固件存儲(chǔ)器用于存儲(chǔ)本地控制器的固件;基板管理控制器用于實(shí)現(xiàn)本 地控制器的硬件重啟,加載本地固件存儲(chǔ)器中的固件進(jìn)行固件升級(jí);其特征在于,所述控制單元、固件存儲(chǔ)器和基板管理控制器統(tǒng)一接入數(shù)據(jù)總線,且所述數(shù)據(jù)總線連 接該雙控制器磁盤存儲(chǔ)陣列中的對(duì)端控制器;所述控制器作為該雙控制器磁盤存儲(chǔ)陣列的主控制器時(shí),所述控制單元接收來自外部的固件升級(jí)命令和新固件,并將所述新固件保存在本地固件存儲(chǔ)器中,將雙控制器磁盤存 儲(chǔ)陣列的主控制權(quán)以及本控制器的數(shù)據(jù)應(yīng)用服務(wù)通過所述數(shù)據(jù)總線轉(zhuǎn)交到對(duì)端控制器;在 本地基板管理控制器成功實(shí)現(xiàn)固件升級(jí)后,所述控制單元接管雙控制器磁盤存儲(chǔ)陣列的主 控制權(quán)以及對(duì)端控制器上的全部數(shù)據(jù)應(yīng)用服務(wù),并將本地固件存儲(chǔ)器中的新固件通過所述 數(shù)據(jù)總線寫入對(duì)端控制器,通知對(duì)端控制器進(jìn)行固件升級(jí);在對(duì)端控制器固件升級(jí)成功后, 通過所述數(shù)據(jù)總線將屬于對(duì)端控制器的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給對(duì)端控制器。
11.根據(jù)權(quán)利要求10所述的控制器,其特征在于,所述控制器進(jìn)一步包括計(jì)時(shí)器,當(dāng)控 制單元將本地固件存儲(chǔ)器中的新固件通過所述數(shù)據(jù)總線寫入對(duì)端控制器,通知對(duì)端控制器 進(jìn)行固件升級(jí)后,設(shè)定固件升級(jí)時(shí)間長(zhǎng)度,并啟動(dòng)所述計(jì)時(shí)器;控制單元進(jìn)一步用于判斷在自身計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到所設(shè)定的固件升級(jí)時(shí)間長(zhǎng)度 之前,對(duì)端控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定對(duì)端控制器固件升級(jí)成功;否則,判定對(duì) 端控制器固件升級(jí)失敗,再次將新固件寫入對(duì)端控制器,通知對(duì)端控制器進(jìn)行固件升級(jí)。
12.根據(jù)權(quán)利要求11或12所述的控制器,其特征在于,若所述基板管理控制器固件升 級(jí)失??;則所述固件存儲(chǔ)器進(jìn)一步用于通過所述數(shù)據(jù)總線接收來自對(duì)端控制器的舊固件;所述 基板管理控制器進(jìn)一步用于載入所述舊固件,并還原到固件升級(jí)之前的狀態(tài);所述控制單 元用于通過所述數(shù)據(jù)總線從對(duì)端控制器接管雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及原屬 于本地的數(shù)據(jù)應(yīng)用服務(wù)。
13.—種雙控制器磁盤存儲(chǔ)陣列中的控制器,所述控制器包括控制單元、固件存儲(chǔ)器和 基板管理控制器;控制器單元具有的功能包括命令的執(zhí)行,數(shù)據(jù)應(yīng)用服務(wù)的執(zhí)行和對(duì)該雙控制器磁盤 存儲(chǔ)陣列進(jìn)行控制;固件存儲(chǔ)器用于存儲(chǔ)本地控制器的固件;基板管理控制器用于實(shí)現(xiàn)本 地控制器的硬件重啟,加載本地固件存儲(chǔ)器中的固件進(jìn)行固件升級(jí);其特征在于,所述控制單元、固件存儲(chǔ)器和基板管理控制器統(tǒng)一接入數(shù)據(jù)總線,且所述數(shù)據(jù)總線連 接該雙控制器磁盤存儲(chǔ)陣列中的對(duì)端控制器;所述控制器作為該雙控制器磁盤存儲(chǔ)陣列的從控制器時(shí),所述控制單元用于在對(duì)端控 制器進(jìn)行固件升級(jí)之前,通過所述數(shù)據(jù)總線接管該雙控制器磁盤存儲(chǔ)陣列的主控制權(quán)以及 對(duì)端控制器上的數(shù)據(jù)應(yīng)用服務(wù);在對(duì)端控制器成功進(jìn)行固件升級(jí)后,將雙控制器磁盤存儲(chǔ) 陣列的主控制權(quán)以及本地所有的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交給對(duì)端控制器;固件存儲(chǔ)器通過所述數(shù) 據(jù)總線接收并存儲(chǔ)來自對(duì)端控制器的新固件;基板管理控制器進(jìn)行硬件重啟并加載所述新 固件進(jìn)行固件升級(jí);在成功進(jìn)行固件升級(jí)后,所述控制單元通過所述數(shù)據(jù)總線從對(duì)端控制 器接管原屬于本地控制器的數(shù)據(jù)應(yīng)用服務(wù)。
14.根據(jù)權(quán)利要求13所述的控制器,其特征在于,所述控制單元進(jìn)一步用于在收到來 自外部的固件升級(jí)命令后,將所述固件升級(jí)命令通過所述數(shù)據(jù)總線轉(zhuǎn)發(fā)至對(duì)端控制器。
15.根據(jù)權(quán)利要求13或14所述的控制器,其特征在于,所述控制單元進(jìn)一步包括計(jì)時(shí) 器,所述控制單元收到來自對(duì)端控制器的進(jìn)行固件升級(jí)的通知后,設(shè)定計(jì)時(shí)器的超時(shí)時(shí)間 長(zhǎng)度,并使計(jì)時(shí)器開始計(jì)時(shí);控制單元進(jìn)一步用于判斷所述計(jì)時(shí)器的計(jì)時(shí)長(zhǎng)度達(dá)到超時(shí)時(shí) 間長(zhǎng)度之前,對(duì)端控制器是否實(shí)現(xiàn)了硬件重啟,若是,判定對(duì)端控制器固件升級(jí)成功;否則,判定對(duì)端控制器固件升級(jí)失敗,將本地固件存儲(chǔ)器中存儲(chǔ)的舊固件通過所述數(shù)據(jù)總線寫入 對(duì)端控制器。
全文摘要
本發(fā)明公開了一種雙控制器磁盤存儲(chǔ)陣列的固件升級(jí)方法,在任一控制器進(jìn)行固件升級(jí)之前,將該磁盤存儲(chǔ)陣列的主控制權(quán)以及所有的數(shù)據(jù)應(yīng)用服務(wù)轉(zhuǎn)交到另一個(gè)控制器,在固件升級(jí)過程中可以通過一個(gè)控制器繼續(xù)提供數(shù)據(jù)應(yīng)用服務(wù),從而可以實(shí)現(xiàn)不停機(jī)的固件升級(jí)。本發(fā)明還公開了一種可以實(shí)現(xiàn)上述方法的雙控制器磁盤存儲(chǔ)陣列以及一種控制器。
文檔編號(hào)G06F9/445GK101876910SQ20091023675
公開日2010年11月3日 申請(qǐng)日期2009年10月28日 優(yōu)先權(quán)日2009年10月28日
發(fā)明者黃文俊 申請(qǐng)人:創(chuàng)新科存儲(chǔ)技術(shù)有限公司;創(chuàng)新科軟件技術(shù)(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1