用于缓存对计算机网络中共享的映像的读取请求的方法和系统的制作方法

文档序号:6553348阅读:180来源:国知局
专利名称:用于缓存对计算机网络中共享的映像的读取请求的方法和系统的制作方法
用于緩存对计算机网络中共享的映像的读取请求的方法和系统 相关申请本申请是2004年10月22日提交的美国申请号10/971,563的延 续。上述申请的全部教义通过引用结合于本文。
背景技术
在客户机-服务器系统中,客户机计算机和服务器计算机通过计 算机网络通信。为了从服务器卸载处理负荷并减少计算机网络上的 .通信量,每个客户机通常具有例如硬盘驱动器(hard disk drive)的永久 性存储器用于存储在客户机计算机本地执行的操作系统和应用程 序。但是,在许多环境中,例如在教室环境中,管理和更新每个客 户机计算机上的操作系统和应用程序的各个副本的成本是高昂的。 减少管理客户机计算机的网络的成本的一种方法是通过使用"瘦" 客户机。取代在本地冲丸行应用程序,瘦客户机将4定击通过计算机网 络传送到在服务器上执行的应用程序,并显示通过计算机网络从服 务器上执行的应用程序所接收的结果。由于许多客户机的处理在服 务器中执行并通过计算机网络传送,这导致严重的性能下降。另一个方法是使用"无盘"客户机。操作系统的副本存储在服 务器计算机。当首先开机时,存储在客户机的非易失性存储器中的 固件中所存储的操作系统加载器使用标准引导协议远程地将存储在 服务器中的操作系统组件加载到客户机的易失性存储器中。在加载 了操作系统之后,客户机如同该操作系统被存储在本地磁盘上一样 访问它。在操作系统运行之后,客户机根据需要请求进一步下载存 储在服务器中的例如应用程序、操作系统或应用数据的其他数据,
以及附加操作系统系统组件,并将该数据保留在易失性存储器中。 因此,每个客户机仅需要足够的永久性(非易失性)存储器来存储 操作系统加载器。发明内容无盘客户机如操作系统存储在本地磁盘上一样来执行它,并请 求对应用程序和数据的访问,也预期在本地将它们存储在磁盘上。 网络计算机系统可以包括数以百计的无盘客户机,它们全部从共享 的映像请求数据。因为对读取映像数据的每个请求都需要计算机网 络带宽,所以在响应来自客户才几读取数据的访问之前的响应时间可 能比对本地存储的读取数据的时间长,具体视正在进行的请求的数 量而定。在一些环境中,大多数客户机可能都需要读取相同的数据。例 如,在教室里,所有学生可能都在启动字处理应用程序,并由都将 需要读取包括应用程序及其配置信息的数据。当接收到对数据的第 一次请求时,由于将数据组播到共享映像的所有客户机,所以用于从服务器上的共享映像访问数据的计算机网络带宽和服务器CPU负荷下降。提供一种在计算机网络中共享映像的方法。在服务器上提供共 享的映像。客户机从服务器上^f呆存的共享的映像文件请求数据。当 从客户机接收到对数据的请求时,服务器将该数据组播到共享该映 像文件的所有客户机。预期将在不久也会需要相同数据,其他客户 机在本地緩存组播数据。这些数据可能来自应用程序、操作系统、应用数据、映像或数 据库。组播的数据被存储在每个客户机的高速緩冲存储器中,从客 户机的其中之一对数据的后续请求可能已经拥有并可以检索存储在 该客户机的本地高速緩存中的组播的数据。随着时间推移,每个客 户机累积被其他相似客户机访问的数据,因为预期它也将会需要该数据。


通过下文对附图所示的本发明优选实施例的更具体描述,将显 见到本发明的前述和其他目的、特征和优点,在不同附图中相似的 引用字符指代相同的部件。图示本发明的原理时,附图不一定按比 例绘制,而是着重位置摆放。图1是图示根据本发明原理的服务器中存储的共享的映像的框 图,共享的映像包括客户机通过计算机网络访问的数据(例如操作 系统、数据和应用程序)。图2是图示操作系统被加载并执行(运行)之后存储在客户机 中的存储器中的软件组件的框图;图3是图示在客户机中实施用于访问共享的映像中的数据的方 法的流程图;以及图4是图示在服务器中实施的、对共享共享的映像的一个或多 个客户机通过计算机网络访问驻留在服务器中的共享的映像中的数 据的方法的流程图。
具体实施方式
下文描述本发明的优选实施例。图1是图示服务器102中存储 的共享的映像110的框图。共享的映像110包括根据本发明原理、客 户机通过计算机网络访问的数据(例如操作系统、操作系统和应用 数据以及应用程序)。客户机-服务器系统100包括至少一个服务器计算机102和通过 计算机网络106通信的多个客户机计算机104。客户机和服务器使用 本领域技术人员公知的标准通信协议(例如TCP/IP)通过网络106 传输数据,其中通过网络106传送的数据采用分組的形式。在分组 交换网络中,分组是包括表示数据和报头的二进制数字的固定最大 大小的传输单元,其中报头包含标识号和源地址和目的地地址。计算机网络106包括用于在客户机104和服务器102之间转发数据的 一个或多个网络路由器/交换机。客户机与服务器之间的物理链路可 以包括无线或有线链路。每个服务器02和客户机104中的一个或多个网络接口控制器 (NIC)控制通过网络106的数据传输。每个NIC 120、 112将用于 标识网络上数据分组的目的地的唯一的数据链路(第2层)目的地 地址存储在非易失性存储器中。非易失性存储器可以是ROM或闪速 存储器或任何其他非易失性存储器。在一个实施例中,数据链路协 议是以太网。但是,可以使用任何其他数据链路协议。服务器102包括中央处理单元(CPU) 116、存储器118和例如 存储一个或多个共享的映像110的硬盘驱动器或压缩光盘驱动器的永 久性存储装置108。每个共享的映像110包括供一个或多个客户机104 使用的操作系统、驱动程序和应用程序。存储器118可以包括只读存 储器(ROM)和随机存取存储器(RAM)。服务器102还包括通过存储总线126控制对磁盘驱动器108的 访问的磁盘控制器114。在一个实施例中,磁盘控制器114是控制对 耦合到标准SCSI总线的装置的访问的小计算机系统接口 (SCSI)主 机适配器。SCSI主机适配器对于本领域技术人员是公知的。在一个 实施例中,多于一个服务器102可以连接到网络106,并通过网络106 与所有其他服务器和客户机104通信。每个客户机104还包括CPU 124和易失性和非易失性存储器 122。客户机在没有重要的永久性存储器装置、例如硬盘、可引导压 缩光盘或大容量闪速存储器的情况下运行。正如本领域技术人员公知的,硬盘包括多个柱面、磁头和扇区。 磁盘上的物理块由柱面编号、;磁头编号和扇区编号来指定。磁头指 定磁道的柱面内的磁道。扇区指定数据的物理块在所指定的磁道内 的位置。响应对柱面、磁头和扇区写入或读取数据的请求,驱动器 使磁头致动器步进到该柱面位置,并选择适合的磁头。由此,柱面、磁头、扇区(CHS)地址指定驱动器上的物理扇区。物理扇区是磁盘 驱动器上的最小物理存储单元,并且是固定大小的,通常为512字 节。由操作系统将读取数据的请求解释成读取存储在磁盘驱动器上 一个或多个物理扇区中的数据的请求。取代从硬盘直接逐个扇区地访问数据,客户机102执行操作系 统和应用程序,该操作系统和应用程序是按需从服务器上的共享的 映像逐个扇区地读取并在客户^U的易失性存储器122上本地加载的, 如同它们是从本地磁盘读取的 一样。多个客户机可以共享服务器102上的共享的映像110。由客户机 104按需从共享的映像110读取操作系统、驱动程序和应用程序。客 户机10访问存储在其内部存储器122中在本地緩存的来自共享的映 像110的操作系统、驱动程序和应用程序,如同它们是本地存储在其 本地》更盘上一样。服务器的操作系统使用存储器118的一部分作为用于存储从磁 盘驱动器108读取的数据的高速緩冲存储器。因此,可以将共享的 映像110的一些部分存储在服务器102中的高速緩沖存储器中以便提 高从共享的映像将数据下载到 一个或多个客户机的性能。在开机之后,服务器引导存储在其磁盘108中的操作系统,并 等待来自客户机104对存储在共享的映像110中的数据的访问。客户 机104中的存储器122的一部分是非易失性存储器,例如用于存储 在计算机初始开机时执行的BIOS (基本输入/输出系统)的只读存储 器(ROM)或闪速存储器。BIOS包括客户机的CPU 124执行的用 于测试硬件的 一 组软件例行程序,以及用于启动引导加载器以加载 操作系统的 一组软件例行程序。在一个实施例中,客户机中的NIC 120包括预引导执行(PXE) 仿真代码。PXE协议是用于网络引导计算机的国际标准协议。PXE 建立可以被客户机中的BIOS采用来通过网络106引导存储在服务器 104中的操作系统的一组共用且一致的服务。PXE协议使用动态主机 配置和瑣碎文件传输协议(TFTP)来与服务器104通信。动态主机 配置协议(DHCP)是可在因特网www.ietf.org上查阅的因特网工程 任务组(正TF)请求注解(RFC) 2131定义的标准引导协议。或者, 还可以使用拥有静态EP地址且具有BOOTP功能的客户机以替代 DHCP和PXE。 BOOTP是可在www.ietf.org上查阅的因特网工程任务 组(IETF)请求注解(RFC) 951定义的标准协议。当需要从共享的映像110获取扇区中存储的数据,按需将操作 系统加载到客户机104中的存储器122中。将操作系统存储在客户 机的存储器中,并以当直接从本地硬盘逐个扇区地读取时的访问完 全相同的方式来访问该操作系统。为了节省带宽,响应来自一个客 户机的请求将一个或多个扇区的数据组播或广播到共享该共享的映 像110的所有客户机。在引导操作系统并在客户机中的存储器中运行 之后,客户机可以从共享的映像IIO请求其他数据,例如应用程序、 映像、文本文件、视频、数据库或任何其他类型的数据。图2是图示加载操作系统之后存储在客户机104中的存储器中 的软件组件的框图。网络过滤驱动程序200监视所有通过网络106 经由NIC 120接收到的分组以查找专用于访问共享的映像110中的数 据的分组。网络过滤驱动程序200将这些分组传递到存储装置驱动 程序204。存储装置驱动程序204确定读取请求数据是否是客户机发 出的直接请求和/或是否应该将该数据存储在客户机网络高速緩存210 中以供进一步使用。存储装置驱动程序204与包括安装管理器、巻 管理器和分区管理器的操作系统存储管理器206通信。不专用于共 享的映像中的文件的任何分組由操作系统网络管理器202来处理。 例如,任何与电子邮件、Web页面和即时消息传送相关的分组被导 向到操作系统网络管理器202 。在将操作系统加载在客户才几上之后,每个客户机可以启动对共 享的映像中存储的其他数据(例如应用程序)的请求。在一个实施
例中,可能有数以百计的客户才几,它们全部将请求相同数据的下载。 共享共享的映像的每个客户机将发出对相同数据的各自请求。如果该组的一个成员请求计算机程序,则可能共享该共享的映像110的其他客户机将来也会请求相同的计算机程序。因此,为所有 共享共享的映像iio的客户机创建一个组播组。共享共享映像110的客户机是组播组的成员。取代只将数据单播到请求客户机来响应来 自客户机的读取请求,服务器基于其他客户机不久将需要相同数据的假设将读取响应组播到共享服务器102上共享的映像110的组播组 的所有成员。通过将^f皮请求的数据组播到组播组的所有成员,通过计算机网 络从服务器106仅传送被请求的数据的一个副本,并将其送达组播 组的所有成员。这减少了响应来自客户机的单独请求而发送每个副 本的情况中发送相同数据的多个副本所使用的网络带宽。而且,由 于来自客户机对下载相同数据的请求减少,所以增加了服务器中可 用CPU的带宽。
当从客户机计算机上执行的应用程序或操作系统接收到读取请 求时,客户机计算机上的操作系统中的文件系统指示存储装置驱动 程序204定位被请求的数据,并将被请求的数据读取到客户机的存 储器122中,以便可以加载它。其他客户机已经从共享的映像读取的数据已经被存储在该客户 机的网络高速緩存210中,该网络高速緩存210在该客户机的存储 器122中。如果该数据尚未存储在客户机网络高速緩存210中,则 存储装置驱动程序204将从文件系统接口接收到的对读取请求的请 求重定向到网络过滤驱动程序200以便从存储在服务器104中的共 享的映像110请求数据。
图3是图示在客户机中实施的、用于请求访问共享的映像中的 网络可緩存数据的方法的流程图。图3是与图2结合来描述的。在步骤300中,由存储装置驱动程序204从安装管理器206接
收对数据的读取请求。在步骤302中,存储装置驱动程序204检查该数据是否已被存 储在存储器的预分配区(也称为"客户机网络高速緩存")210中。 如果被请求的数据已经被存储在客户机网络高速緩存210中,则处 理继续到步骤308。否则,处理4安步骤304继续。在步骤304中,先前未从共享的映像110中读取该数据,存储 装置驱动程序204经由网络过滤驱动程序200发出读取请求,经由 网络4妄口控制器驱动程序212将读取请求转发到服务器104。网络接 口控制器驱动程序212通过计算机网络106将读取请求转发到服务 器104以从共享的映像IIO检索被请求的数据。在步骤306中,存储装置驱动程序204等待对数据的请求的完 成。被请求的数据经由NIC 112到达,并被网络过滤驱动程序200存 储在客户机网络高速緩存210中。在步骤308中,存储装置驱动程序204通知安装管理器206:被 请求的数据可用,并将被请求的数据存储在客户机网络高速緩存210 中。图4是服务器的流程图,图示了用于通过计算机网络106为共 享共享的映像110的一个或多个客户机从服务器102中的共享的映像 IIO检索数据的方法。在步骤400中,服务器102从客户机104接收检索共享的映像110 中存储的数据的请求。当接收到请求时,不是将应用程序单播到请 求方,而;0艮务器准备将该应用程序发送到共享该共享的映4象110的 所有客户机104。因特网协议(IP)组播是一对多的连接。多个客户机,即组播 组的成员从服务器接收到相同的数据流。将单个IP目的地组地址标 识的单个数据分组发送到组播组,而不是将个体数据分组发送到每 个目的地。此特定组播组的成员是目前正在使用共享的映像110的特定共
享的映像110的用户。组播组的成员随着用户连接服务器104和与服 务器104断开而变化。通常,共享的映像110是预先建立的,并固定 为仅在引导时读取。因此,连接到服务器且使用该共享的映像110的 所有用户都是相同组播组的成员,并仅从该共享的映像110读取数据。在步骤404中,服务器104将被请求的数据组播到IP组播组的 所有成员。通过向多个客户机组播来取代响应来自每个客户机的单 独请求而单播数据的单独副本,减少了将数据从共享的映像发送到 无盘客户机所使用的网络带宽。请求该数据的第一个客户机将不会 觉察到因组播发送操作导致的延迟,因为组播响应与单播响应并没 有明显的恶化。共享该共享的映像110的所有客户机对相同数据的后 续请求将是快速的,因为网络緩存的数据已经存储在每个客户机网 络高速緩存210中。在一个实施例中,服务器102中的NIC 112、 120和客户机104 使用用户数据报协议(UDP)通信。正如本领域技术人员公知的, 开放系统互连(OSI)参考模型定义了用于通过传输媒介通信的七个 网络协议层(Ll-L7)。较上层(L4-L7)表示端到端通信,较下层 (Ll-L3)表示本地通信。UDP是传输层(L3)协议。OSI模型的传输层处理分组的源和目的地之间的端到端传输。 UDP将个体分组传递到IP (OSI模型的第3层)以供传输。但是,本发明并不局限于UDP。通信网络可以使用允许数据被 组播到组播组的多个成员的任4可通信协议。在备选实施例中,通信 协议可以是光纤通道协议。使用客户机的本地处理能力在本地执行存储在客户机网络高速 緩存210中的下载的应用程序。与例如所有处理均在服务器中执行 而导致显著的性能下降的瘦客户机的备选解决方案相比,这使客户 机能够更有效率地工作。本发明已针对从服务器上的共享的映像文件下载应用程序中的
数据的实施例来描述。但是,本发明并不局限于下载应用程序。它还适用于客户机对 存储在共享的映像文件中的任4可数据的任何请求。被请求的数据可 以来自操作系统、数据库、应用程序、映像、视频文本文件或存储 在共享的映像文件中的任何其他类型的数据。虽然本发明是参考其优选实施例来具体地图示和描述的,但是 本领域技术人员将理解在不背离所附权利要求涵盖的本发明范围的 前提下可以在其中进行形式和细节上的多种更改。
权利要求
1. 一种在计算机网络中共享映像的方法,包括 在服务器上提供共享的映像文件;从客户机请求所述服务器上的共享的映像文件中的数据; 当从客户机接收到对数据的请求时,从所述服务器将所述数据 组播到共享所述映像文件的所有客户机。
2. 如权利要求1所述的方法,其特征在于,所述数据来自应用 程序。
3. 如权利要求1所述的方法,其特征在于,所述数据来自操作 系统。
4. 如权利要求1所述的方法,其特征在于,所述数据来自数据库。
5. 如权利要求l所迷的方法,其特征在于,所述数据来自映像。
6. 如权利要求1所述的方法,还包括 将组播的数据存储在每个客户机中。
7. 如权利要求6所述的方法,其特征在于,来自这些客户机的 其中之一对数据的后续请求检索存储在所述客户机中的所述组播的 数据。
8. —种计算机,包括存储共享的映像文件的永久性存储装置;存储在存储器中的例行程序,当通过计算机网络从客户机接收 到对所述共享的映像文件中的数据的请求时,所述例行程序通过计 算机网络将所述数据组播到共享所述映像文件的所有客户机。
9. 如权利要求8所述的方法,其特征在于,所述数据来自应用 程序。
10. 如权利要求8所述的方法,其特征在于,所述数据来自操作 系统。
11. 如权利要求8所述的方法,其特征在于,所述数据来自数据库。
12. 如权利要求8所述的方法,其特征在于,所述数据来自映像。
13. —种系统,包括 客户机计算机,包括在通过计算机网络从客户机接收到对数据的请求时用于存 储来自共享的映像文件的数据的存储器;以及服务器计算机,包括存储共享的映像文件的永久性存储装置;以及存储用于组播来自所述共享的映像的数据的例行程序的存储器,所述例行程序通过计算才几网络将所述数据组播到共享所述映像文件的所有客户机。
14. 如权利要求13所述的系统,其特征在于,所述数据来自应 用程序。
15. 如权利要求13所述的系统,其特征在于,所述数据来自操 作系统。
16. 如权利要求13所述的系统,其特征在于,所述服务器中的 永久性存储装置是硬盘驱动器。
17. 如权利要求13所述的系统,其特征在于,所述组播的数据 被存储在每个客户机中的易失性存储器中。
18. 如权利要求13所述的系统,其特征在于,来自这些客户机 的其中之一对数据的后续请求^r索存储在所述客户机的易失性存储器中的所述组播的数据。
19. 一种在计算机网络中共享映像的系统,包括 用于在服务器上提供共享的映像文件的装置; 客户机上用于从所述服务器上保存的映像文件请求数据的装置;以及当从客户机接收到对数据的请求时,用于从所述服务器将所述数据组播到共享所述映像文件的所有客户机的装置。
全文摘要
多个客户机共享服务器中存储的共享的映像。共享的映像包括可以通过计算机网络下载到每个客户机的数据。下载数据时为了节省网络带宽,在从客户机的其中之一接收到对下载数据的请求时,服务器将该数据组播到共享该共享的映像的所有客户机。
文档编号G06F9/445GK101147129SQ200580043566
公开日2008年3月19日 申请日期2005年10月19日 优先权日2004年10月22日
发明者G·布罗卡斯, J·阿切辛斯基, T·达维斯 申请人:阿登斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1