网络上的固件检索的制作方法

文档序号:6477926阅读:83来源:国知局
专利名称:网络上的固件检索的制作方法
网络上的固件检索 背景 各种计算机、打印机、网络附加存储(NAS)设备以及其它类型的设备是无所不在 的。应用计算机网络正在小型办公室和家庭环境中变得流行。NAS设备包括可由网络上的 各台计算机共享的诸如硬盘驱动器之类的非易失性存储介质。NAS设备具有在NAS设备初 始化过程中加载并由NAS设备中的处理器执行以给予NAS设备的一些或全部功能的代码 (例如固件)。由于例如固件本身的损坏或存储固件的硬盘驱动器的故障,固件可能变得不 可用。如果固件不可用,则NAS设备基本无用。
附图简述 为了详细说明本发明的示例性实施例,现在参照附图,在附图中


图1示出根据各个实施例的系统; 图2示出根据各个实施例的网络附加存储设备的框图;以及
图3示出根据各个实施例的方法。
注释和命名 在下面的描述和权利要求书中使用某些术语以表示特定的系统组件。如本领域技 术人员所理解的那样,计算机公司可能用不同名称来称呼某一组件。本文献不打算区分名 称不同但非功能不同的组件。在下面的讨论和权利要求书中,术语"包括"和"包含"以开
放形式使用,从而应当解释为表示"包括但不局限于......"。另外,术语"耦合"或"结合"
旨在表示间接、直接、光学或者无线的电连接。因此,如果第一设备耦合至第二设备,该连接 可通过直接电连接、通过经由其它设备和连接的间接电连接、通过光电连接或通过无线电 连接。术语"系统"表示一个或多个组件的组合并包括例如计算机、计算机中的子系统、网 络附加存储设备、网络附加存储设备中的子系统以及一个或多个网络设备的联网组合。
详细说明 图1示出根据各个实施例的系统10。如图所示,系统IO包括通过广域网(WAN) 20 耦合到一起的网络附加存储(NAS)设备12、一台或多台客户计算机14以及一个或多个服 务器16。 NAS 12包括可由局域网(LAN)15上的任意一台或多台客户计算机14共享的非易 失性存储器。NAS 12在LAN 15上与客户计算机14通信并经由WAN 20与服务器16通信。 在各实施例中,各客户计算机14包括台式计算机、便携式计算机(例如笔记本电脑、手提电 脑)或其它类型的计算设备,例如能将数据(例如文件)写至NAS 12或从NAS 12检索数 据的其它类型的计算设备。 本文中描述的实施例以NAS设备为背景而给出。然而,本文的理念适用于NAS设 备之外的其它设备。公开的原理所适用的这类设备的示例包括数字媒体媒体适配器或其它 网络设备。本公开的范围适用于所有这类设备,不只是NAS设备。 图2示出NAS 12的实施例。计算机14和服务器16可包括相同或相似的体系结 构。如图2所示,NAS 12包括耦合至第一非易失性存储器(NVS)34、第二非易失性存储器 40、网络接口 42和易失性存储器(VS) 46的处理器32。网络接口 42提供与LAN 15和WAN 20中的任一者或两者的连接。在至少一些实施例中,第一非易失性存储器34包括硬盘驱动
3器。然而在其它实施例中,非易失性存储器34可以不是硬盘驱动器(例如闪存、光盘只读 存储器(CD-ROM))。非易失性存储器34包括固件36。固件36可由处理器32执行并给予 NAS 12—些或全部的功能。 第二非易失性存储器40包括例如闪存或诸如电可擦除可编程R0M(EEPR0M)之类 的任何形式的只读存储器(R0M)。第二非易失性存储器40在一些实施例中可包括硬盘驱 动器或CD-R0M。非易失性存储器40存储引导加载程序(BL)44和子网值38。引导加载程 序44包括可由处理器32执行的代码。在NAS 12初始化期间,处理器32开始执行引导加 载程序44。引导加载程序44执行的其中至少一个功能是将固件36从第一非易失性存储 器34载入易失性存储器46。在至少一些实施例中,易失性存储器46包括随机存取存储器 (RAM)。然后从易失性存储器46执行固件36的副本。 固件36可能损坏或者存储固件36的非易失性存储器34变得无法运作。在任何 一种情形下,固件36都无法由处理器32执行。固件36无法执行将使NAS设备12部分或 完全无法工作。根据各实施例,引导加载程序44判断固件36是否能被执行。如果引导加 载程序确定固件36无法被执行,则引导加载程序44使处理器确定网络上的一个位置以检 索固件镜像的副本来替换无法使用的固件36。该进程在一些实施例中是"自动的",这意味 着不需要用户介入。在一些实施例中,网络上找到替换固件映射副本的位置可以是LAN 15 或WAN20上的位置。图2的示例示出服务器16包括能在WAN 20上提供给NAS 12的替换 固件副本18。 引导加载程序44根据任何合适的技术来判断固件36是否可用。在至少一个实施 例中,引导加载程序44计算固件36的校验和或散列(hash)并将计算得到的值与预存储的 值(基于固件36的已知良好版本事先计算出的校验和或散列)。如果这些值不匹配(新计 算出的校验和/散列与之前预存储的值),则确定固件36损坏并因此无法执行。作为附加 或选择,引导加载程序44在访问非易失性存储器34时可能遇到错误,这可能指示非易失性 存储器34本身存在错误。再或者,如果非易失性存储器34是新的(例如用户用新存储单 元代替有缺陷的非易失性存储器34),则新的非易失性存储器34可能不具有任何固件36。 引导加载程序44检测到固件36的不存在并因此确定固件36无法执行。
在各实施例中,位于网络上的替换固件副本(也称为"镜像")可以是与NAS上的 当前固件36相同的副本。在其它实施例中,替换固件副本不相同,但至少足以使NAS设备 12正确地工作。 一旦确定替换固件副本的位置并将其发送给NAS设备12,则将替换固件副 本载入非易失性存储器34,且NAS设备重新启动。重新启动NAS设备12使引导加载程序 44加载并开始执行新替换的固件。 在一些实施例中,引导加载程序44用在网络上检索到的替换固件覆盖可能损坏 的当前固件36。在其它实施例中,非易失性存储器34可能无法工作,用户因此移除和更换 非易失性存储器34。新安装的非易失性存储器34可能根本不包含固件镜像36。在这些实 施例中,引导加载程序44确定不存在固件36 (即无法执行固件)、检索合适固件的新副本 以在NAS设备12上执行、在新安装的非易失性存储器34上存储所检索的固件、并重新启动 NAS 12由此执行新加载的固件。 在各实施例中,引导加载程序44访问(例如被编码以或从任何存储器34、40或46 中检索) 一标识值,该标识值标识NAS 12或其固件36。该值的示例包括NAS设备12的序列号、NAS 12的型号、固件36的修正标识符等。引导加载程序44使用该标识值以在网络 上定位合适的替换固件副本。网络上的位置(例如网站)存储一个或多个固件副本并使其 可由NAS设备12的引导加载程序44获得。在这些网络位置处的每个固件副本也具有与之 关联的标识值,该标识值指示固件副本所适用的NAS设备12或NAS设备固件36。在一些实 施例中,引导加载程序44将NAS设备的标识值与网络上的各固件副本的标识值比较并检索 标识值匹配的固件副本。在其它实施例中,引导加载程序提交适于与NAS设备标识值一起 使用的固件映射的网络位置的请求(即NAS设备的标识值是引导加载程序44的请求的一 部分)。网络位置(例如服务器16)将标识值与NAS设备12所提供的标识值匹配的固件镜 像18发回给NAS设备12。 由于NAS设备12的固件36无法执行,因此在引导加载程序44试图确定替换固件 映射在网络上的位置时,NAS设备12可能没有所分配的互联网协议(IP)地址。没有IP地 址,在网络上的通信是困难的,不然就是不可能的。在一些实施例中,引导加载程序44使用 动态主机配置协议(DHCP)来将IP地址分配给NAS设备12。 在其它实施例中,NAS设备12包括存储在非易失性存储器40中的子网值48。 存储在非易失性存储器40中的子网值38包括NAS设备最后已知的子网值(即在其工 作状态下由NAS设备最后使用的子网值)。例如,如果NAS设备最近分配的IP地址为 "192. 168.0. 100",则子网值为"198. 168.0."。在该示例中并针对本说明书,尾数"100"被 视为"扩展值"。NAS设备的IP地址可以是静态的,在这种情形下IP地址是不变;或是动态 的,在这种情形下IP地址随时间变化(例如每当NAS设备初始化并连接至网络时)。每当 NAS设备12的IP地址改变,变化的是扩展值而非子网值。例如,下一次将IP地址分配给 NAS设备12,扩展值可能变为2,从而导致IP地址为"192. 168. 0. 2"。 在各实施例中,在NAS设备的引导加载程序44能访问网络(例如WAN 20上的 服务器16)前,引导加载程序44产生合适的IP地址以供NAS设备12用于检索网络上的 替换固件镜像。引导加载程序44所产生的IP地址应当是尚未由网络上的另一设备使 用的IP地址。在至少一些实施例中,引导加载程序44检索子网值38(该子网值38包 括NAS设备12的合适IP地址的一些、但不是全部),并尝试不同的扩展值,直到发现一 个扩展值产生尚未由另一设备使用的IP地址。继续阐述上述示例,引导加载程序可最初 尝试将"192. 168. 0. 1 (扩展值为"1")"作为IP地址。引导加载程序44将使用该IP地 址广播"查验(ping)"消息。如果引导加载程序44接收到响应一一如果另一设备已分配 IP地址192. 168. 0. 1则会发生这种情况,则引导加载程序44确定192. 168. 0. 1不是适合 NAS设备12使用的IP地址。然后引导加载程序使扩展值增加至"2"以产生第二 IP地址 192. 168. 0. 2,并再次使用192. 168. 0. 2作为其IP地址来广播查验消息。如果引导加载程 序44再次接收到响应,则引导加载程序44确定192. 168. 0. 2不是适合NAS设备12使用的 IP地址。引导加载程序44重复该过程,每次使IP地址扩展值增l,直到找到对其没有接收 到Ping消息的响应的IP地址为止。引导加载程序44使用该IP地址以试图确定来自网络 的替换固件镜像的位置。 图3示出根据各实施例的方法50。图3中列出的动作可以图示以外的顺序进行, 并且其中两个或更多个动作可同时进行或组合在一起。在52,引导加载程序44确定NAS设 备的固件36不可用于执行。在54,引导加载程序44产生合适的IP地址以供NAS设备12使用(即尚未由网络上的另一设备使用的IP地址)。在一些实施例中,引导加载程序44在 确定固件36不可用后产生该IP地址。以上讨论了动作43的一种合理实现。在56,引导加 载程序确定用于访问提供可能的替换固件镜像的网络的位置。在一些实施例中,可能的网 络位置的IP地址或统一资源定位器(URL)被编码为引导加载程序44自身中。在其它实施 例中,IP地址或URL被存储在NAS设备12的存储器34、40或46的任何一个中。在58,方 法50包括所找到的合适的替换固件镜像(例如使用如上所述的标识值),该镜像取自该网 络位置并存储在NAS设备12上。在60,在将替换固件镜像加载到NAS设备12的非易失性 存储器34之后,引导加载程序44使NAS设备12重新启动以允许新检索和存储的替换固件 镜像被执行。 上述说明旨在说明本发明的原理和各个实施例。 一旦完全理解了上述公开,本领 域内技术人员就能清楚得出许多变化和修改。所附权利要求书旨在被解释为涵盖所有这些 变化和修改。
权利要求
一种系统(12),包括处理器(32);以及非易失性存储器(34),其耦合至所述处理器并包括可由所述处理器执行的固件(36);其中所述处理器确定所述固件是否可供执行,而且如果所述固件不可执行,则所述处理器确定网络上的一个位置并从所述位置检索第二固件镜像(18)。
2. 如权利要求1所述的系统,其特征在于,所述处理器在确定所述固件不可用之后产 生一网际协议(IP)地址。
3. 如权利要求1所述的系统,其特征在于,所述处理器通过从非易失性存储器检索网 际协议(IP)地址而确定所述位置。
4. 如权利要求1所述的系统,其特征在于,所述处理器将所述检索到的第二固件镜像 加载入非易失性存储器。
5. 如权利要求1所述的系统,其特征在于,所述处理器将关联于所述系统的标识符与 关联于所述位置处的所述第二固件镜像的标识符进行比较。
6. —种方法,包括(52)确定固件不可用于执行; (56)确定网络上的一个位置;以及 (58)从所述位置检索第二固件镜像。
7. 如权利要求6所述的方法,其特征在于,还包括在确定所述固件不可用后(54)产生 网际协议(IP)地址。
8. 如权利要求6所述的方法,其特征在于,确定所述位置包括从非易失性存储器检索 网际协议(IP)地址。
9. 如权利要求6所述的方法,其特征在于,还包括将所述检索到的第二固件镜像加载 入非易失性存储器。
10. 如权利要求6所述的方法,其特征在于,还包括将所述位置处的所述第二固件镜像 的标识符与关联于所述固件不可用的系统的标识符进行比较。
全文摘要
系统(12)包括处理器(32)和耦合至处理器的非易失性存储器(34)。该非易失性存储器包括可由处理器执行的固件(36)。处理器确定固件是否可供执行。如果固件不可供执行,则处理器确定网络上的一个位置并从该位置检索第二固件镜像(18)。
文档编号G06F15/16GK101765837SQ200880100967
公开日2010年6月30日 申请日期2008年6月17日 优先权日2007年7月30日
发明者D·H·哈尼斯 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1