专利名称:将分开的文件存储位置作为统一文件存储的方法和系统的制作方法
将分开的文件存储位置作为统一文件存储的方法和系统
些旦 NT豕
由于家庭网络变得愈加盛行,也更加需要在家中对数据的集中式存储。家庭 网络附连的存储设备是借助于家庭网络耦合到家中的所有计算机系统的独立设备, 并且网络附连的存储设备在家中提供集中式数据存储。家庭网络附连的存储设备的 集中式存储容量虽然很大,但也是有限的,并且由于需要附加的存储空间,家庭用 户可能受委托购买和安装第二个家庭网络附连设备;然而,具有两个(或更多)家 庭网络附连的存储设备迫使家庭用户知晓哪个"集中式数据存储"设备存储特定数 据,并且可能进一步迫使家庭用户手动地迁移数据以在同一存储设备上保持相关数 据。
附图简述
对于本发明的示例性实施例的详细描述,现将对附图进行参考,附图中
图1示出根据至少一些实施例的计算机系统;
图2示出根据至少一些实施例的家庭网络服务器;
图3示出根据至少一些实施例的方法;
图4示出根据至少一些实施例的方法;以及
图5示出根据至少一些实施例的方法。
记法和术语
某些术语在以下的说明书和权利要求书中被通篇用以指示特定系统组件。如 本领域技术人员将理解的,计算机公司可以按不同名称来称呼组件。本文不旨在区 分名称不同但功能相同的组件。在以下讨论和权利要求书中,术语"包括"和"包 含"是以开放方式使用的,并且因而应被解释为意味着"包括但不限于……"。
另外,术语"耦合"旨在意味着间接、直接、光学或无线的电子连接。因此, 如果第一设备耦合到第二设备,则该连接可以通过直接电连接、通过经由其它设备
4和连接的间接电连接、通过光学电连接、或通过无线电连接。
详细描述
以下讨论涉及各个实施例。虽然这些实施例中的一个或多个可以是优选的, 但所公开的各实施例不应被解释为或以其它方式用于限制本公开的范围和权利要 求书的范围。另外,本领域技术人员将理解,以下描述具有广泛应用,并且对任一 实施例的讨论仅意味着是该实施例的示例,而并非旨在表示本公开的范围和权利要 求书的范围被限于该实施例。
图1图解根据至少一些实施例的家庭组网系统100。具体而言,家庭组网系统
100包括借助于网络11耦合到因特网12的例示说明性台式计算机系统10。网络 11包括用于互连计算机系统的电缆和设备(例如,路由器14)。家庭网络系统100 还包括第二计算机系统,其在这种情况下是借助于网络11耦合到因特网12的便携 式计算机16。在图1所示的各实施例中,台式计算机IO通过硬连线连接18(例如, 以太网连接)耦合到网络11的示例性路由器14,而示例性便携式计算机16无线 地(例如,IEEE 802.11、蓝牙)耦合到网络11的示例性路由器14。然而,计算机 系统可以在不考虑其便携性的情况下使用硬连线方式或无线地耦合到网络。此外, 虽然图1的系统100仅示出一台台式计算机IO和一台便携式计算机16,但任何数 目的计算机可使用任何组网功能耦合到路由器。
图1的家庭组网系统100还包括多个家庭网络服务器设备20A和20B,家庭 网络服务器20各自独立地耦合到网络11(在图1的具体情形中,耦合到路由器14)。 尽管在图1中仅示出2个家庭网络服务器,但是任何数目的家庭网络服务器20可 驻留在家庭组网系统100内。根据至少一些实施例,每一个家庭网络服务器20是 可为家庭组网系统100的任何计算机系统(例如,台式计算机10或便携式计算机 16)所用的存储设备和/或服务器。每一个家庭网络服务器20可以是例如由家庭组 网系统100的各计算机生成的数据的贮藏室。由每一个家庭网络服务器20所实现 的存储可被家庭组网系统的其它计算机系统(例如,台式计算机10、便携式计算 机16、或另一个家庭网络服务器)借助于任何合适的、目前可用的组网通信协议 (例如,网际协议(IP)、传输控制协议/网际协议(TCP/IP))、或任何后开发 的组网协议来访问。
因为每一个家庭网络服务器20被设计成用作家庭组网系统100的服务器,且 可能为了降低成本,所以根据至少一些实施例,至少一个家庭网络服务器20不支持显示设备和/或键盘的直接耦合。因此,在某些实施例中,至少一个家庭网络服 务器20不包括可耦合到显示器的图形控制器,而且也不包括可耦合到诸如键盘和
鼠标等I/0设备的输入/输出(I/O)控制器。对于在每一个家庭网络服务器20上执 行管理的而言,可以使用家庭组网系统100中的计算机系统(例如,台式计算机 10或便携式计算机16)远程地进行管理。
图2更详细地示出家庭网络服务器20。具体而言,每一个家庭网络服务器包 括通过集成主桥28 (有时因其在计算机系统示图中的位置而被称为"北桥")耦 合到主存储器阵列26和各种其它组件的处理器24。处理器24借助于主机总线30 耦合到主桥28,或者主桥28可以集成到处理器24中。处理器24可以是许多可用 或后开发处理器中的一个,且因此网络附连的存储设备20还可以实现作为图2中 所示那些的补充或代替的总线配置或总线桥。
主存储器阵列26通过存储器总线32耦合到主桥28。主桥28包括存储器控制 单元,其通过发出用于存储器访问的控制信号来控制至主存储器26的事务。主存 储器阵列26用作处理器24的工作存储器并包括其中存储程序、指令以及数据的存 储器设备或存储器设备阵列。主存储器阵列26可包括任何合适类型的存储器,诸 如动态随机存取存储器(DRAM)或任何各种类型的DRAM设备,诸如同步DRAM (SDRAM )、扩展数据输出DRAM( EDODRAM )、或存储器总线DRAM( RDRAM)。
仍参考图2,家庭网络服务器还包括将一级扩展总线36桥接到诸如外围组件 互联(PCI)总线38等各种二级扩展总线的第二桥34。第二桥34有时因其在计算 机系统示图中的位置而被称为"南桥"。只读存储器(ROM) 42诸如通过低管脚 数(LPC)总线44耦合到南桥34。 ROM 42包含可由处理器24执行以允许系统 20作为家庭网络服务器来工作的软件程序。
家庭网络服务器20还包括借助于示例性PCI总线38耦合到南桥34的驱动控 制器46。在替换实施例中,该驱动控制器可以耦合到一级扩展总线36、或任何其 它当前可用或后开发的扩展总线。驱动控制器46控制长期存储设备的非易失性存 储器48,诸如硬盘驱动器或光驱。属于非易失性存储器可被替换地称为文件存储 位置、存储空间或存储容量。在一些实施例中,家庭网络服务器20实现其中家庭 网络的计算机系统可以存储并检索数据和程序的单个长期存储设备。在替换实施例 中,家庭网络服务器实现独立(或经济型)驱动(RAID)系统的冗余阵列,其中 写入家庭网络服务器20的数据和指令在多个非易失性存储器设备之间被复制以实 现容错。还耦合到示例性PCI总线38的是网络接口 (NI) 50。网络接口50使得家庭 网络服务器20能(通过路由器14)与家庭组网系统100上的(图1中的两个)计 算机系统通信,以使得家庭网络服务器20可充当家庭网络系统的数据和程序的贮 藏室。如以下将更完整地讨论的,网络接口 50还使得家庭网络服务器能与其它家 庭网络服务器通信(例如,使得家庭网络服务器20A能与家庭网络服务器20B通 信)。在替换实施例中,网络接口 50的功能与桥28和34—起被集成到主板上。
返回图1。出于解释的目的,考虑基本上如图1中所示的家庭组网系统100, 但仅存在一个家庭网络服务器20A。家庭网络服务器20A可具有数千兆字节或更 大存储容量,且因此家庭组网系统100可与单个家庭网络服务器20A —起工作若 干年。然而,当家庭网络服务器20A的存储容量满了或基本满了、且用户不能内 部地扩展家庭网络服务器20A的存储容量时,则用户可购买并安装第二家庭网络 服务器20B。根据各实施例,由一个家庭网络服务器(例如,服务器20A)的非易 失性存储器48提供的存储空间、以及由另一个家庭网络服务器(例如,服务器20B) 的非易失性存储器提供的文件存储对于其它计算机系统(例如,台式计算机10或 便携式计算机16)呈现为统一存储位置。进一步根据各实施例,该统一存储位置 可通过仅与家庭网络服务器20之一通信来访问以进行文件操作。
根据各实施例,家庭网络服务器20A和20B被配置成确定家庭组网系统100 中何时已新安装了家庭网络服务器,并且该确定可釆取多种形式。在一些实施例中, 至少一个家庭网络服务器20被配置成周期性地扫描本地耦合的设备(即,耦合到 网络11的设备)以发现先前未标识的家庭网络服务器的存在性。在其它实施例中, 每一个家庭网络服务器20作为初始安装的一部分被配置成在被新安装时在网络11 内发送一条或多条标识其自身的网络消息。
不管家庭网络服务器20A和20B在家庭组网系统100内标识彼此的确切机制 如何,每一个家庭网络服务器20还被配置成在家庭组网系统中的家庭网络服务器 之间选择主服务器。主服务器变成供家庭组网系统中的计算机系统进行文件操作的 单个接触点。选择主服务器同样可以采取多种形式。在一些实施例中,向家庭网络 服务器的用户呈现用于手动地选择家庭网络服务器之一作为主服务器的选项。在其 它实施例中,主服务器的选择是在没有用户输入的情况下完成的。选择主服务器的 一些示例性示例为每一个服务器生成一伪随机数,并且具有最大数字的服务器变
成主服务器;将每一个服务器的一些或所有序列号进行比较,其中具有最低序列号 的服务器变成主服务器;或者家庭组网系统内现有的服务器被选为主服务器,而增加的服务器被指定为辅助服务器。此外,被选为主服务器的家庭网络服务器无需保 持不变,且事实上主服务器可周期性地(或者自动地、或者基于用户选择)或在主 服务器故障时改变。
根据各实施例,主服务器是供家庭网络系统中的计算机系统进行文件操作的 主要接触点。术语"文件操作"涵盖所有文件操作(例如,文件读取、文件写入、 文件移动、以及文件删除) ,然而,说明书的其余部分针对文件读取和文件写入操 作,因为这些操作是家庭网络服务器实现的主要操作。首先考虑家庭组网系统100
的计算机系统IO、 16之一要将文件写入非易失性存储器的请求。根据各实施例, 所请求的用于存储该文件的位置(例如,F:\server\dadfiles\myfirstfile.doc)以及该 文件在网络11上被发送给主服务器,并在主服务器的网络接口 50上被接收到。主 服务器具有两个选择将该文件存储在其本地非易失性存储器48上或将该文件存 储在辅助服务器的非易失性存储器上。在主服务器的非易失性存储器48上有充足 存储容量和/或主服务器选择本地地存储该文件的情况下,该文件被写入非易失性 存储器48。如果非易失性存储器48上没有充足存储容量、和/或主服务器选择将该 文件存储在辅助服务器上,则主服务器(例如,在数据库或表中)关于文件的位置 作出标记并且使用其网络接口 50在网络11上将该文件转发给辅助服务器。辅助服 务器在网络11上通过其网络接口 50接收到该文件,并将该文件存储在辅助服务器 的非易失性存储器上。因此,家庭组网系统100将同一网络11既作为从计算机系 统10、 16向家庭网络服务器20发送文件操作请求的机制,也作为借其在家庭网络 服务器20之间传送存储命令的网络。
请求方计算机系统无需指示所存储文件的实际名称和位置。对于存储在主服
务器的非易失性存储器中的文件,该文件可实际上位于所请求的目录中并具有所请 求的名称,或者该文件可以任何名称被存储在该非易失性存储器的任何便捷位置中 (在数据库或表中具有将所请求的名称与实际名称相关的标记)。同样,对于辅助 服务器的非易失性存储器上的文件存储,该文件可以所请求的名称位于所请求的目 录中,或者该文件可以任何名称被存储在该非易失性存储器中的任何便捷位置中。 在存储在辅助服务器上的情形中,主服务器的数据库或表中的该标记可以是二进制 跟踪机制,且因此在一些实施例中,辅助服务器将该文件存储在主服务器所请求的 位置而无需知晓请求方计算机系统所请求的位置或名称。在其中辅助服务器可接管 作为主服务器的实施例中,将文件名与实际存储位置相关的数据库或表可被维持在 主服务器和辅助服务器两者中。
8现在考虑要向家庭组网系统100的计算机系统10、 16之一提供存储在家庭网 络服务器20之一上的文件的请求。根据各实施例,所请求的文件的位置/名称(例 如,F:\server\dadfiles\myfirstfile.doc)被发送给主服务器。主服务器在其非易失性 存储器上可能存储了或可能没有存储该文件,且因此主服务器确定所请求的文件是 否存储在其非易失性存储器中。在一些实施例中,该确定是通过检査所请求位置(在 该示例中为F:\server\dadfiles\)的非易失性存储器来作出的。在其它实施例中,主 服务器咨询数据库或表来确定所请求的文件是否被本地存储。在该文件被本地存储 的情形中,主服务器随后将该文件发送给请求方计算机系统。
在(例如,通过咨询数据库或表确定)所请求的文件并非被存储在主服务器 的非易失性存储器上而是替代地被存储在辅助服务器上的情形中,主服务器随后向 辅助服务器发送提供该文件的请求。辅助服务器提供该文件可采取多种形式。在一 些实施例中,辅助服务器将所请求的文件转发给主服务器,并且主服务器进而将所 请求的文件转发给请求方计算机系统。在又一些实施例中,当主服务器向辅助服务 器发送提供该文件的命令时,主服务器还发送对请求方计算机系统的指示。由此, 在一些实施例中,辅助服务器将该文件直接转发给请求方计算机系统。
利用所描述的系统提供了向家庭网络系统100增加存储容量而不关心文件的 实际位置的无缝机制。文件可能看似驻留在相同的驱动和目录内,但事实上文件位 置可能跨越了不同的家庭网络服务器。例如,考虑主服务器具有有限的附加非易失 性存储器,但主服务器存储文件F:\server\dadfiles\myfirstfile.doc。现在考虑计算机 系统10、 16之一的用户希望在相同的目录中存储第二文件,诸如 F:\server\dadfiles\mysecondfile.doc 。由于主服务器的有限存储容量,该 "mysecondfile.doc"可被存储在辅助服务器上,但从计算机系统10、 16的观点而 言,这些文件位于相同的驱动和目录中。
以上所讨论的各实施例的实现可采取多种形式。在一些实施例中,履行所讨 论的文件操作可作为在每一个家庭网络服务器20上执行的操作系统的一部分来实 现。即,家庭网络服务器20接收到的文件操作请求可被传递给操作系统的一部分。 操作系统进而充当主服务器或辅助服务器来如上所讨论地履行这些文件操作。在其 它实施例中,如上所讨论地履行文件操作请求由在家庭网络服务器内操作的用户级 程序来完成,而不是作为操作系统的一部分。用户级程序作出关于文件存储位置的 确定,并仅将文件级操作传递给操作系统。
图3示出根据至少一些实施例的方法(例如软件)。具体而言,方法开始(框300),并前进至将第二家庭网络存储设备添加至家庭组网系统(框302)。根据 各实施例,第二家庭网络存储设备直接耦合到网络,并且从硬件的观点而言其可以 是家庭组网系统内已耦合的家庭网络服务器的本质复制。在将第二家庭网络服务器 耦合到网络之后,家庭网络服务器之一被选择为主服务器(框304)。主服务器的 选择可手动地执行(例如,由家庭组网系统的计算机系统之一的用户),或者这两 个家庭网络服务器可在它们之间进行仲裁以选择主服务器。在安装和选择主服务器 之后,主服务器接收来自计算机系统10、 16的文件操作请求(框306)。文件操 作请求的接收可借助于操作系统程序,或者该接收可借助于在主服务器的操作系统 顶上执行的"服务器应用"。主服务器履行文件操作(框30S),即使该文件操作 是针对辅助服务器上的文件存储位置的。在一些方面,所示方法结束(框310)并 且服务器20执行其它功能;然而,主服务器也可等待下一个文件操作请求(框309), 并且当下一个文件操作请求抵达时,所例示的方法返回至接收该文件操作请求(框 306)。
图4示出根据进一步实施例的方法(例如软件)。具体而言,图4示出关于 文件写入操作的流程图。具体而言,方法开始(框400),并前进至接收要存储文 件的请求(框402)。接收到要存储文件的请求是文件操作请求的具体示例(如图 3中所讨论的,框306)。响应于要存储文件的该请求,主服务器关于是将该文件 存储在主服务器的非易失性存储器上还是将该文件存储在辅助服务器的非易失性 存储器上作出确定(框404)。该确定可基于许多准则。例如,如果该文件的先前 版本已存在于主服务器上,则存储该文件的该特定请求可覆写主服务器的非易失性 存储器上的先前版本。同样,如果主服务器的非易失性存储器具有充足的文件存储 容量,则该文件可被存储在主服务器的非易失性存储器上而不管先前版本的存在 性。类似地,如果该文件的先前版本已存在于辅助服务器上,或者如果主服务器没 有充足的文件存储容量来存储该文件,则主服务器可选择将该文件存储在辅助服务 器的非易失性存储器上。如果主服务器选择本地地存储该文件,则该例示方法将该 文件写入主服务器的非易失性存储器中(框406),并且该方法结束(框408)。 同样,如果主服务器选择将该文件存储在辅助服务器上,则该例示方法将该文件提 供给辅助服务器进行存储(框410),并且该方法结束(框40S)。
图5示出根据进一步实施例的方法(例如软件)。具体而言,图5示出关于 来自计算机系统10、 16的提供存储在家庭网络服务器之一上的文件的请求的流程 图。具体而言,方法开始(框500),并前进至接收提供文件的请求(框502)。接收到提供文件的请求是文件操作请求的具体示例(如图3中所讨论的,框306)。
响应于提供文件的请求,主服务器关于该文件的位置作出确定(框504)。关于该 文件的位置作出确定可采取许多形式。在一些实施例中,主服务器针对该文件搜索 其非易失性存储器,并且如果未找到该文件,则主服务器检査辅助服务器上该文件 的存在性。在其它实施例中,主服务器咨询将文件名与文件的位置相关的数据库或 表。在其它实施例中,主服务器可搜索其非易失性存储器,并且如果未找到该文件, 则主服务器可随后咨询数据库或表。不管用于确定文件位置的确切机制如何,如果 该文件位于主服务器的非易失性存储器上,则主服务器将该文件提供给请求方计算 机系统(框506),并且该过程结束(框508)。然而,如果所请求的文件驻留在 辅助服务器上,则主服务器将对文件的请求转发给辅助服务器(框510)。辅助服 务器提供该文件(框512),并且该过程结束(框508)。在一些实施例中,辅助 服务器将该文件转发给主服务器,后者随后将该文件转发给请求方计算机系统(例 如,在其中请求方计算机系统实现阻止未证实接触的防火墙的情形中),以及在其 它实施例中,辅助服务器将所请求的文件直接发送给请求方计算机系统。
根据本文中所提供的描述,本领域技术人员能够容易地将所述创建的软件与 适当的通用或专用计算机软件进行组合以创建根据各实施例的计算机系统和/或计 算机子组件、创建用于执行各实施例的方法的计算机系统和/或计算机子组件、和/ 或创建用于存储实现各实施例的方法方面的软件程序(例如,操作系统)的计算机 可读介质。
权利要求
1.一种服务器(20),包括处理器(24);耦合到所述处理器(24)的非易失性存储设备(48);耦合到所述处理器(24)的网络接口(50);其中所述服务器(20)被配置成通过所述网络接口(50)接收来自远程计算机系统(10、16)的对文件操作的请求;以及其中所述服务器(20)被配置成从所述非易失性存储设备(48)执行所述对文件操作的请求,并且所述服务器(20)被配置成从通过所述网络接口(50)耦合到所述服务器(20)的远程服务器(20)上的存储设备执行所述对文件操作的请求。
2. 如权利要求1所述的服务器(20),其特征在于,所述服务器(20)被配 置成接收来自所述远程计算机系统(10、 16)的存储文件的请求,并且其中所述服 务器(20)被配置成选择性地将所述文件写入所述非易失性存储设备(48)或将所 述文件写入所述远程服务器(20)上的所述存储设备。
3. 如权利要求l所述的服务器(20),其特征在于,还包括 其中所述服务器(20)被配置成接收提供文件的请求;以及 其中所述服务器(20)被配置成确定所述文件是存储在所述非易失性存储设备(48)上还是存储在所述远程服务器(20)上的所述存储设备上,并且所述服务 器(20)被进一步配置成将所述文件提供给所述远程计算机系统(10、 16)。
4. 如权利要求l所述的服务器(20),其特征在于,还包括 其中所述服务器(20)被配置成接收提供文件的请求;以及 其中所述服务器(20)被配置成确定所述文件是存储在所述非易失性存储设备(48)上还是存储在所述远程服务器(20)上的存储设备上;以及其中所述服务器(20)被配置成执行选自包括以下的组中的至少之一如果 所述文件存储在所述非易失性存储设备(48)上则将所述文件发送给所述计算机系 统(10、 16);以及如果所述文件存储在所述远程服务器(20)上的所述存储设备 上则指示所述远程服务器(20)将所述文件发送给所述计算机系统(10、 16)。
5. —种方法,包括在网络(11)上向主服务器(20)发送对文件操作的请求;由所述主服务器(20)确定(504)所述文件操作是针对通过所述网络(11) 耦合到所述主服务器(20)的辅助服务器(20)的非易失性存储器的; 由所述主服务器(20)履行(512)所述对为文件操作的请求。
6. 如权利要求5所述的方法,其特征在于,履行所述请求还包括由所述主服 务器(20)向所述辅助服务器(20)发送(410)将文件写入所述辅助服务器(20) 的所述非易失性存储器的命令。
7. 如权利要求5所述的方法,其特征在于,确定还包括检査存储在所述主服 务器(20)上的数据库。
8. 如权利要求5所述的方法,其特征在于,还包括 其中发送所述请求还包括发送提供文件的请求;以及 其中履行所述请求还包括指示(510 )所述辅助服务器(20 )将所述文件发送给所述主服务器(20 );以及由所述主服务器(20)将所述文件转发(512)给请求方计算机(10、16)。
9. 如权利要求5所述的方法,其特征在于,还包括其中发送所述请求还包括发送提供文件的请求;以及其中履行所述请求还包括指示所述辅助服务器将所述文件发送给请求方计算机。
全文摘要
将分开的文件存储位置作为统一文件存储的方法和系统。例示实施例中的至少一些是包括处理器(24)、耦合到处理器(24)的非易失性存储设备(48)、以及耦合到处理器(24)的网络接口(50)的服务器。服务器(20)被配置成通过网络接口(50)接收来自远程计算机系统(10、16)的对文件操作的请求。服务器(20)被配置成从非易失性存储设备(48)执行对文件操作的请求,并且服务器(20)被配置成从通过网络接口(50)耦合到服务器(20)的远程服务器(20)上的存储设备执行对文件操作的请求。
文档编号G06F15/16GK101669109SQ200880013640
公开日2010年3月10日 申请日期2008年4月24日 优先权日2007年4月27日
发明者A·J·埃尔南德斯, C·M·麦科吉顿, D·H·哈尼斯 申请人:惠普发展公司,有限责任合伙企业