專利名稱:網(wǎng)絡(luò)上的固件檢索的制作方法
網(wǎng)絡(luò)上的固件檢索 背景 各種計(jì)算機(jī)、打印機(jī)、網(wǎng)絡(luò)附加存儲(NAS)設(shè)備以及其它類型的設(shè)備是無所不在 的。應(yīng)用計(jì)算機(jī)網(wǎng)絡(luò)正在小型辦公室和家庭環(huán)境中變得流行。NAS設(shè)備包括可由網(wǎng)絡(luò)上的 各臺計(jì)算機(jī)共享的諸如硬盤驅(qū)動器之類的非易失性存儲介質(zhì)。NAS設(shè)備具有在NAS設(shè)備初 始化過程中加載并由NAS設(shè)備中的處理器執(zhí)行以給予NAS設(shè)備的一些或全部功能的代碼 (例如固件)。由于例如固件本身的損壞或存儲固件的硬盤驅(qū)動器的故障,固件可能變得不 可用。如果固件不可用,則NAS設(shè)備基本無用。
附圖簡述 為了詳細(xì)說明本發(fā)明的示例性實(shí)施例,現(xiàn)在參照附圖,在附圖中
圖1示出根據(jù)各個實(shí)施例的系統(tǒng); 圖2示出根據(jù)各個實(shí)施例的網(wǎng)絡(luò)附加存儲設(shè)備的框圖;以及
圖3示出根據(jù)各個實(shí)施例的方法。
注釋和命名 在下面的描述和權(quán)利要求書中使用某些術(shù)語以表示特定的系統(tǒng)組件。如本領(lǐng)域技 術(shù)人員所理解的那樣,計(jì)算機(jī)公司可能用不同名稱來稱呼某一組件。本文獻(xiàn)不打算區(qū)分名 稱不同但非功能不同的組件。在下面的討論和權(quán)利要求書中,術(shù)語"包括"和"包含"以開
放形式使用,從而應(yīng)當(dāng)解釋為表示"包括但不局限于......"。另外,術(shù)語"耦合"或"結(jié)合"
旨在表示間接、直接、光學(xué)或者無線的電連接。因此,如果第一設(shè)備耦合至第二設(shè)備,該連接 可通過直接電連接、通過經(jīng)由其它設(shè)備和連接的間接電連接、通過光電連接或通過無線電 連接。術(shù)語"系統(tǒng)"表示一個或多個組件的組合并包括例如計(jì)算機(jī)、計(jì)算機(jī)中的子系統(tǒng)、網(wǎng) 絡(luò)附加存儲設(shè)備、網(wǎng)絡(luò)附加存儲設(shè)備中的子系統(tǒng)以及一個或多個網(wǎng)絡(luò)設(shè)備的聯(lián)網(wǎng)組合。
詳細(xì)說明 圖1示出根據(jù)各個實(shí)施例的系統(tǒng)10。如圖所示,系統(tǒng)IO包括通過廣域網(wǎng)(WAN) 20 耦合到一起的網(wǎng)絡(luò)附加存儲(NAS)設(shè)備12、一臺或多臺客戶計(jì)算機(jī)14以及一個或多個服 務(wù)器16。 NAS 12包括可由局域網(wǎng)(LAN)15上的任意一臺或多臺客戶計(jì)算機(jī)14共享的非易 失性存儲器。NAS 12在LAN 15上與客戶計(jì)算機(jī)14通信并經(jīng)由WAN 20與服務(wù)器16通信。 在各實(shí)施例中,各客戶計(jì)算機(jī)14包括臺式計(jì)算機(jī)、便攜式計(jì)算機(jī)(例如筆記本電腦、手提電 腦)或其它類型的計(jì)算設(shè)備,例如能將數(shù)據(jù)(例如文件)寫至NAS 12或從NAS 12檢索數(shù) 據(jù)的其它類型的計(jì)算設(shè)備。 本文中描述的實(shí)施例以NAS設(shè)備為背景而給出。然而,本文的理念適用于NAS設(shè) 備之外的其它設(shè)備。公開的原理所適用的這類設(shè)備的示例包括數(shù)字媒體媒體適配器或其它 網(wǎng)絡(luò)設(shè)備。本公開的范圍適用于所有這類設(shè)備,不只是NAS設(shè)備。 圖2示出NAS 12的實(shí)施例。計(jì)算機(jī)14和服務(wù)器16可包括相同或相似的體系結(jié) 構(gòu)。如圖2所示,NAS 12包括耦合至第一非易失性存儲器(NVS)34、第二非易失性存儲器 40、網(wǎng)絡(luò)接口 42和易失性存儲器(VS) 46的處理器32。網(wǎng)絡(luò)接口 42提供與LAN 15和WAN 20中的任一者或兩者的連接。在至少一些實(shí)施例中,第一非易失性存儲器34包括硬盤驅(qū)動
3器。然而在其它實(shí)施例中,非易失性存儲器34可以不是硬盤驅(qū)動器(例如閃存、光盤只讀 存儲器(CD-ROM))。非易失性存儲器34包括固件36。固件36可由處理器32執(zhí)行并給予 NAS 12—些或全部的功能。 第二非易失性存儲器40包括例如閃存或諸如電可擦除可編程R0M(EEPR0M)之類 的任何形式的只讀存儲器(R0M)。第二非易失性存儲器40在一些實(shí)施例中可包括硬盤驅(qū) 動器或CD-R0M。非易失性存儲器40存儲引導(dǎo)加載程序(BL)44和子網(wǎng)值38。引導(dǎo)加載程 序44包括可由處理器32執(zhí)行的代碼。在NAS 12初始化期間,處理器32開始執(zhí)行引導(dǎo)加 載程序44。引導(dǎo)加載程序44執(zhí)行的其中至少一個功能是將固件36從第一非易失性存儲 器34載入易失性存儲器46。在至少一些實(shí)施例中,易失性存儲器46包括隨機(jī)存取存儲器 (RAM)。然后從易失性存儲器46執(zhí)行固件36的副本。 固件36可能損壞或者存儲固件36的非易失性存儲器34變得無法運(yùn)作。在任何 一種情形下,固件36都無法由處理器32執(zhí)行。固件36無法執(zhí)行將使NAS設(shè)備12部分或 完全無法工作。根據(jù)各實(shí)施例,引導(dǎo)加載程序44判斷固件36是否能被執(zhí)行。如果引導(dǎo)加 載程序確定固件36無法被執(zhí)行,則引導(dǎo)加載程序44使處理器確定網(wǎng)絡(luò)上的一個位置以檢 索固件鏡像的副本來替換無法使用的固件36。該進(jìn)程在一些實(shí)施例中是"自動的",這意味 著不需要用戶介入。在一些實(shí)施例中,網(wǎng)絡(luò)上找到替換固件映射副本的位置可以是LAN 15 或WAN20上的位置。圖2的示例示出服務(wù)器16包括能在WAN 20上提供給NAS 12的替換 固件副本18。 引導(dǎo)加載程序44根據(jù)任何合適的技術(shù)來判斷固件36是否可用。在至少一個實(shí)施 例中,引導(dǎo)加載程序44計(jì)算固件36的校驗(yàn)和或散列(hash)并將計(jì)算得到的值與預(yù)存儲的 值(基于固件36的已知良好版本事先計(jì)算出的校驗(yàn)和或散列)。如果這些值不匹配(新計(jì) 算出的校驗(yàn)和/散列與之前預(yù)存儲的值),則確定固件36損壞并因此無法執(zhí)行。作為附加 或選擇,引導(dǎo)加載程序44在訪問非易失性存儲器34時(shí)可能遇到錯誤,這可能指示非易失性 存儲器34本身存在錯誤。再或者,如果非易失性存儲器34是新的(例如用戶用新存儲單 元代替有缺陷的非易失性存儲器34),則新的非易失性存儲器34可能不具有任何固件36。 引導(dǎo)加載程序44檢測到固件36的不存在并因此確定固件36無法執(zhí)行。
在各實(shí)施例中,位于網(wǎng)絡(luò)上的替換固件副本(也稱為"鏡像")可以是與NAS上的 當(dāng)前固件36相同的副本。在其它實(shí)施例中,替換固件副本不相同,但至少足以使NAS設(shè)備 12正確地工作。 一旦確定替換固件副本的位置并將其發(fā)送給NAS設(shè)備12,則將替換固件副 本載入非易失性存儲器34,且NAS設(shè)備重新啟動。重新啟動NAS設(shè)備12使引導(dǎo)加載程序 44加載并開始執(zhí)行新替換的固件。 在一些實(shí)施例中,引導(dǎo)加載程序44用在網(wǎng)絡(luò)上檢索到的替換固件覆蓋可能損壞 的當(dāng)前固件36。在其它實(shí)施例中,非易失性存儲器34可能無法工作,用戶因此移除和更換 非易失性存儲器34。新安裝的非易失性存儲器34可能根本不包含固件鏡像36。在這些實(shí) 施例中,引導(dǎo)加載程序44確定不存在固件36 (即無法執(zhí)行固件)、檢索合適固件的新副本 以在NAS設(shè)備12上執(zhí)行、在新安裝的非易失性存儲器34上存儲所檢索的固件、并重新啟動 NAS 12由此執(zhí)行新加載的固件。 在各實(shí)施例中,引導(dǎo)加載程序44訪問(例如被編碼以或從任何存儲器34、40或46 中檢索) 一標(biāo)識值,該標(biāo)識值標(biāo)識NAS 12或其固件36。該值的示例包括NAS設(shè)備12的序列號、NAS 12的型號、固件36的修正標(biāo)識符等。引導(dǎo)加載程序44使用該標(biāo)識值以在網(wǎng)絡(luò) 上定位合適的替換固件副本。網(wǎng)絡(luò)上的位置(例如網(wǎng)站)存儲一個或多個固件副本并使其 可由NAS設(shè)備12的引導(dǎo)加載程序44獲得。在這些網(wǎng)絡(luò)位置處的每個固件副本也具有與之 關(guān)聯(lián)的標(biāo)識值,該標(biāo)識值指示固件副本所適用的NAS設(shè)備12或NAS設(shè)備固件36。在一些實(shí) 施例中,引導(dǎo)加載程序44將NAS設(shè)備的標(biāo)識值與網(wǎng)絡(luò)上的各固件副本的標(biāo)識值比較并檢索 標(biāo)識值匹配的固件副本。在其它實(shí)施例中,引導(dǎo)加載程序提交適于與NAS設(shè)備標(biāo)識值一起 使用的固件映射的網(wǎng)絡(luò)位置的請求(即NAS設(shè)備的標(biāo)識值是引導(dǎo)加載程序44的請求的一 部分)。網(wǎng)絡(luò)位置(例如服務(wù)器16)將標(biāo)識值與NAS設(shè)備12所提供的標(biāo)識值匹配的固件鏡 像18發(fā)回給NAS設(shè)備12。 由于NAS設(shè)備12的固件36無法執(zhí)行,因此在引導(dǎo)加載程序44試圖確定替換固件 映射在網(wǎng)絡(luò)上的位置時(shí),NAS設(shè)備12可能沒有所分配的互聯(lián)網(wǎng)協(xié)議(IP)地址。沒有IP地 址,在網(wǎng)絡(luò)上的通信是困難的,不然就是不可能的。在一些實(shí)施例中,引導(dǎo)加載程序44使用 動態(tài)主機(jī)配置協(xié)議(DHCP)來將IP地址分配給NAS設(shè)備12。 在其它實(shí)施例中,NAS設(shè)備12包括存儲在非易失性存儲器40中的子網(wǎng)值48。 存儲在非易失性存儲器40中的子網(wǎng)值38包括NAS設(shè)備最后已知的子網(wǎng)值(即在其工 作狀態(tài)下由NAS設(shè)備最后使用的子網(wǎng)值)。例如,如果NAS設(shè)備最近分配的IP地址為 "192. 168.0. 100",則子網(wǎng)值為"198. 168.0."。在該示例中并針對本說明書,尾數(shù)"100"被 視為"擴(kuò)展值"。NAS設(shè)備的IP地址可以是靜態(tài)的,在這種情形下IP地址是不變;或是動態(tài) 的,在這種情形下IP地址隨時(shí)間變化(例如每當(dāng)NAS設(shè)備初始化并連接至網(wǎng)絡(luò)時(shí))。每當(dāng) NAS設(shè)備12的IP地址改變,變化的是擴(kuò)展值而非子網(wǎng)值。例如,下一次將IP地址分配給 NAS設(shè)備12,擴(kuò)展值可能變?yōu)?,從而導(dǎo)致IP地址為"192. 168. 0. 2"。 在各實(shí)施例中,在NAS設(shè)備的引導(dǎo)加載程序44能訪問網(wǎng)絡(luò)(例如WAN 20上的 服務(wù)器16)前,引導(dǎo)加載程序44產(chǎn)生合適的IP地址以供NAS設(shè)備12用于檢索網(wǎng)絡(luò)上的 替換固件鏡像。引導(dǎo)加載程序44所產(chǎn)生的IP地址應(yīng)當(dāng)是尚未由網(wǎng)絡(luò)上的另一設(shè)備使 用的IP地址。在至少一些實(shí)施例中,引導(dǎo)加載程序44檢索子網(wǎng)值38(該子網(wǎng)值38包 括NAS設(shè)備12的合適IP地址的一些、但不是全部),并嘗試不同的擴(kuò)展值,直到發(fā)現(xiàn)一 個擴(kuò)展值產(chǎn)生尚未由另一設(shè)備使用的IP地址。繼續(xù)闡述上述示例,引導(dǎo)加載程序可最初 嘗試將"192. 168. 0. 1 (擴(kuò)展值為"1")"作為IP地址。引導(dǎo)加載程序44將使用該IP地 址廣播"查驗(yàn)(ping)"消息。如果引導(dǎo)加載程序44接收到響應(yīng)一一如果另一設(shè)備已分配 IP地址192. 168. 0. 1則會發(fā)生這種情況,則引導(dǎo)加載程序44確定192. 168. 0. 1不是適合 NAS設(shè)備12使用的IP地址。然后引導(dǎo)加載程序使擴(kuò)展值增加至"2"以產(chǎn)生第二 IP地址 192. 168. 0. 2,并再次使用192. 168. 0. 2作為其IP地址來廣播查驗(yàn)消息。如果引導(dǎo)加載程 序44再次接收到響應(yīng),則引導(dǎo)加載程序44確定192. 168. 0. 2不是適合NAS設(shè)備12使用的 IP地址。引導(dǎo)加載程序44重復(fù)該過程,每次使IP地址擴(kuò)展值增l,直到找到對其沒有接收 到Ping消息的響應(yīng)的IP地址為止。引導(dǎo)加載程序44使用該IP地址以試圖確定來自網(wǎng)絡(luò) 的替換固件鏡像的位置。 圖3示出根據(jù)各實(shí)施例的方法50。圖3中列出的動作可以圖示以外的順序進(jìn)行, 并且其中兩個或更多個動作可同時(shí)進(jìn)行或組合在一起。在52,引導(dǎo)加載程序44確定NAS設(shè) 備的固件36不可用于執(zhí)行。在54,引導(dǎo)加載程序44產(chǎn)生合適的IP地址以供NAS設(shè)備12使用(即尚未由網(wǎng)絡(luò)上的另一設(shè)備使用的IP地址)。在一些實(shí)施例中,引導(dǎo)加載程序44在 確定固件36不可用后產(chǎn)生該IP地址。以上討論了動作43的一種合理實(shí)現(xiàn)。在56,引導(dǎo)加 載程序確定用于訪問提供可能的替換固件鏡像的網(wǎng)絡(luò)的位置。在一些實(shí)施例中,可能的網(wǎng) 絡(luò)位置的IP地址或統(tǒng)一資源定位器(URL)被編碼為引導(dǎo)加載程序44自身中。在其它實(shí)施 例中,IP地址或URL被存儲在NAS設(shè)備12的存儲器34、40或46的任何一個中。在58,方 法50包括所找到的合適的替換固件鏡像(例如使用如上所述的標(biāo)識值),該鏡像取自該網(wǎng) 絡(luò)位置并存儲在NAS設(shè)備12上。在60,在將替換固件鏡像加載到NAS設(shè)備12的非易失性 存儲器34之后,引導(dǎo)加載程序44使NAS設(shè)備12重新啟動以允許新檢索和存儲的替換固件 鏡像被執(zhí)行。 上述說明旨在說明本發(fā)明的原理和各個實(shí)施例。 一旦完全理解了上述公開,本領(lǐng) 域內(nèi)技術(shù)人員就能清楚得出許多變化和修改。所附權(quán)利要求書旨在被解釋為涵蓋所有這些 變化和修改。
權(quán)利要求
一種系統(tǒng)(12),包括處理器(32);以及非易失性存儲器(34),其耦合至所述處理器并包括可由所述處理器執(zhí)行的固件(36);其中所述處理器確定所述固件是否可供執(zhí)行,而且如果所述固件不可執(zhí)行,則所述處理器確定網(wǎng)絡(luò)上的一個位置并從所述位置檢索第二固件鏡像(18)。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述處理器在確定所述固件不可用之后產(chǎn) 生一網(wǎng)際協(xié)議(IP)地址。
3. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述處理器通過從非易失性存儲器檢索網(wǎng) 際協(xié)議(IP)地址而確定所述位置。
4. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述處理器將所述檢索到的第二固件鏡像 加載入非易失性存儲器。
5. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述處理器將關(guān)聯(lián)于所述系統(tǒng)的標(biāo)識符與 關(guān)聯(lián)于所述位置處的所述第二固件鏡像的標(biāo)識符進(jìn)行比較。
6. —種方法,包括(52)確定固件不可用于執(zhí)行; (56)確定網(wǎng)絡(luò)上的一個位置;以及 (58)從所述位置檢索第二固件鏡像。
7. 如權(quán)利要求6所述的方法,其特征在于,還包括在確定所述固件不可用后(54)產(chǎn)生 網(wǎng)際協(xié)議(IP)地址。
8. 如權(quán)利要求6所述的方法,其特征在于,確定所述位置包括從非易失性存儲器檢索 網(wǎng)際協(xié)議(IP)地址。
9. 如權(quán)利要求6所述的方法,其特征在于,還包括將所述檢索到的第二固件鏡像加載 入非易失性存儲器。
10. 如權(quán)利要求6所述的方法,其特征在于,還包括將所述位置處的所述第二固件鏡像 的標(biāo)識符與關(guān)聯(lián)于所述固件不可用的系統(tǒng)的標(biāo)識符進(jìn)行比較。
全文摘要
系統(tǒng)(12)包括處理器(32)和耦合至處理器的非易失性存儲器(34)。該非易失性存儲器包括可由處理器執(zhí)行的固件(36)。處理器確定固件是否可供執(zhí)行。如果固件不可供執(zhí)行,則處理器確定網(wǎng)絡(luò)上的一個位置并從該位置檢索第二固件鏡像(18)。
文檔編號G06F15/16GK101765837SQ200880100967
公開日2010年6月30日 申請日期2008年6月17日 優(yōu)先權(quán)日2007年7月30日
發(fā)明者D·H·哈尼斯 申請人:惠普發(fā)展公司,有限責(zé)任合伙企業(yè)