CN101449268A - 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容 - Google Patents

在硬盘驱动器仿真中维持共同命名的客户端专用文件内容 Download PDF

Info

Publication number
CN101449268A
CN101449268A CNA2007800165375A CN200780016537A CN101449268A CN 101449268 A CN101449268 A CN 101449268A CN A2007800165375 A CNA2007800165375 A CN A2007800165375A CN 200780016537 A CN200780016537 A CN 200780016537A CN 101449268 A CN101449268 A CN 101449268A
Authority
CN
China
Prior art keywords
client
data
terminal
file
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007800165375A
Other languages
English (en)
Other versions
CN101449268B (zh
Inventor
Y·加特诺
J·罗普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN101449268A publication Critical patent/CN101449268A/zh
Application granted granted Critical
Publication of CN101449268B publication Critical patent/CN101449268B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

一种数据处理网络具有虚拟硬盘驱动器仿真器和共享虚拟磁盘映像的客户端终端。支持选定文件或目录的客户端专用读写操作版本。所有客户端使用相同的名字和地址标识符来访问客户端专用版本(例如,对于给定配置文件使用相同文件名),但每个客户端都具有专有版本。文件ID区分相应的客户端。这些文件与其他类型和属性的其他文件一起被保存。选择为客户端专用的文件可以被预定,或者如果客户端对客户端专用文件或区域执行写操作则可以产生客户端专用版本的文件,写入的数据包括由客户端读取的在客户端可用的任何存储区域(RAM、虚拟磁盘驱动器、硬盘驱动器等)中的数据。该技术支持定制同时最大化对操作系统版本的管理控制并且最小化冗余存储。客户端终端的文件访问可以接近具有本地硬驱动器的系统。

Description

在硬盘驱动器仿真中维持共同命名的客户端专用文件内容
技术领域
本发明涉及在具有多个操作实体(称为“客户端”,例如软件进程、终端设备或用户)的数据处理环境中仿真读写存储器操作。所有客户端实体以相同的方式,例如通过目录位置和文件名,来识别给定文件。然而客户端专用版本被建立。这样,所有的客户端可以使用相同的操作程序来以名字调用和操纵相同的文件而进行操作。但是仿真系统实际上为客户端提供专用于该客户端的版本。这使得客户端能够在使用相同操作系统和似乎调用相同文件的同时能够独立运行。
本发明可应用于最初被指定为可共享的存储器内容的子集或存储器的给定目录或卷或其他子集中的全部内容。这些内容可以是例如与独立终端相关的本地存储器,或是在耦合到网络的终端设备或网络可访问文件服务器中的本地存储器。在不同实施例中,客户端专用数据可以是大致永久的或临时的。本发明在被配置为具有最小存储冗余和最小资源分配的诸如客户端终端设备中的非易失性存储器之类的瘦客户端计算机环境中特别有益。
背景技术
在一些情况下保持某些存储数据安全而不被改变是有利的。在一些情况下,由于存储介质是不可变的,因此不可避免地不能变更存储值。一个示例是单次写入多次读出(WORM)光学DVD存储介质。另一个示例是通过标志位指定为只读的存储值,例如存储在硬驱动器存储介质上的具有指定只读文件的属性的文件,所述标志位由软件进程(至少在某个安全级别上)给予(honor)。第三种可能性。
只读数据映像可以是有用的。除了其他原因外,只读文件内容可能被用作从其初始化的干净启动(clean starting)数据映像。在多用户环境中,只读文件内容提供一组共用值,所述公用值不经受由个体用户或进程所做的影响其他用户的变更。
在多个进程共享存储文件及其内容时,数据处理布置是可能的。多个客户端或进程可能在与共享文件的存储介质(如硬盘驱动器)相关的终端上本地运行。客户端或进程还可能通过通信网络远程访问文件。
在存取存储文件时,需要关注寻址存储的存储器内容。对于读写文件的情况,还需要关注仲裁存取,因此一个进程不能重写另一个进程所做的变更。在只读文件的情况下,寻址仍是问题但却没有重写变更的风险。寻址可能包括使用文件名和目录树或路径指定(path designation),该目录树或路径指定引向扇区的唯一可寻址文件名和位置。一个或多个驱动器进程可被用于在操作进程和控制器与相关存储器之间接口。
只读存储器映像可被多个进程共享。所有进程都能够自由地通过读操作来读取内容并且获得相同数据。这样,可以有利地给多个客户端或进程提供对标准化的存储器映像的访问。例如,终端的多个用户可能需要共享对于所有用户都相同的操作系统。多个终端设备可能需要共享操作系统,当每个终端被初始化时该终端可以在原始状态或“干净”状态从服务器下载该操作系统。CD或DVD ROM上的操作系统文件的副本可以被相同地复制并且被分发以供大量用户或进程或终端使用,每个操作系统文件副本都具有相同的配置以便方便管理和服务。
然而,由于映像在其他方面对于所有是完全相同的,提供至少某些值是非常有利的并且出于某些目的是绝对必要的,因此出现了挑战。
例如,网络上的每个终端设备需要拥有其自身的唯一身份,所述身份例如在有效时与唯一的网络地址相关联。终端的每个用户需要清楚地定制权限组、偏好组、密码组等。需要的是以最优方式来获得只读存储器中标准化内容的益处,同时有效地保留管理优选可变的并且针对特定用户或终端或进程专有的变化的方式。
公知技术“文件系统过滤器”可被用作运行在文件级的接口进程,以截取读/写请求并且在读写进程发生时在每客户端(per-client)的基础上定制文件内容。该技术将文件系统过滤器进程施加于客户端操作。允许对客户端透明的并且从客户端的角度看真实仿真该客户端不与其他客户端共享的本地读/写硬盘的操作的定制将是有利的,特别是在具有指定为共享的数据的系统中,在这种系统中通常必须(永久或临时)保护数据以防止重写。这需要最大化对于所有客户端相同的操作系统文件等的共享,同时有效提供使得客户端能够独立操作的客户端专用文件。
共有PCT申请WO2005101202公开了在写覆盖(write overlay)中数据的客户端专用版本的可能性。一旦建立,对于读操作、数据修改步骤和随后的写操作,覆盖副本就被用于替代原始数据文件(或其他增加的数据量)。当预期到数据写操作时,可预先建立覆盖,或者在发生写操作并且写操作被自动截取到覆盖时可以实时建立覆盖。这并没有与如本文所公开的经要求的文件传输(on demand file transfer)一起实现。现有技术是其中覆盖替代原始介质以便提供一种用于在原始介质上的数据写操作不可能或可能只是不方便的情况下支持数据写操作(以及随后对写入数据的访问)的方式的自动功能。因此在以WO2005101202代表的现有技术中。
发明内容
本技术的一个重要目标是仅依靠由仿真硬盘驱动器(虚拟磁盘驱动器,在下文也称为VDD)提供的功能提供客户端专用数据传输能力,使得每个客户端能够处理完全相同的指令组但在该过程中访问它们的专用数据。这使得传输客户端专用数据(通常为客户端专用文件)可用,而不需要除与一个(或多个)仿真硬盘驱动器通信的能力外的任何能力。
本技术的一个方面是平衡提供主要共享的或标准化的或共同可访问的数据映像的观点和提供专用于进程或终端或用户(统称为“客户端”或“操作实体”)的数据值的观点。共享映像具有标准化操作、方便的管理等好处。客户端专用值允许类似于数据映像没有被共享时所期望的独特和独立的操作。
本过程提供一种接口,客户端可以通过该接口发出针对客户端专用数据(例如,相同文件数据,所有客户端使用该文件数据访问该文件中其拥有的功能上可比的数据版本)的读写操作。客户端专用版本优选存储专用于客户端并且可能特有的值。整组的客户端可以运行共享的且不可变的标准操作系统,该标准操作系统同时满足客户端对客户端所特有的某些值的需要,而且除了使用所提供的接口来插入在对应于每个客户端专用数据的存储区域内读或写数据的步骤之外,没有对客户端规定任何特殊的操作规则。整组的客户端还可以运行共享的和不可变的标准操作系统的文件,在该标准操作系统的文件中能够进行写操作(例如使用基于RAM的写覆盖或临时写的高速缓存)。这方面对于通常需要一些可写入空间的现代操作系统而言是有用的。这种可写入空间的位置可能设置使用Microsoft Windows XP内核的操作系统(OS),使得其不频繁地试图将整个注册表(系统、用户等)存储到可写入存储中。注意提供写覆盖不是本技术的一个方面。不过本技术可以与写覆盖技术一起使用。
本发明对于共享一组数据的两个或更多进程是有用的,该组数据包括被指定为初始可共享的数据,其中根据本发明该数据可以是客户端专用数据。客户端专用数据对于在另外的只读操作系统环境中提供个体值是有用的。客户端专用数据还有利于允许实际运行在逻辑上或物理上“受保护”(只读)环境中的进程的逻辑读写行为。
受保护的数据可保存在客户端系统或网络服务器中。该数据(最初)可被存储在固有的只读介质(例如光学DVD)或诸如可写入但写入不太方便的闪速PROM之类的介质中,或者如本文所述该数据可被存储在读写介质上并且仅被指定为受保护。
本发明具有对网络数据处理技术的有利应用,其中多个网络终端或“客户端”被提供了对通过一个或多个共享网络服务器提供给多个客户端的标准化服务和/或共享的编程和数据存储设施的访问。在客户端终端处的硬件要求可以是最小的,特别是在“瘦客户端”应用中,其中终端不需要具有本地硬盘驱动器。客户端终端可以使用一个(或多个)服务器的数据存储容量。
诸如终端设备或在终端设备上的操作进程或为给定用户服务的进程之类的操作实体被布置为例如通过数据映像副本的分配来共享对相同数据映像的访问。这可以是特定文件名、目录、子目录或识别的数据存储块(如扇区)。这种实体配备有建立和维持文件或扇区的专用版本的能力。多个实体共享存储器内容,所述存储器内容被有利地保护以防止写操作,从而仿真了其中每个客户端或其他实体具有私有存储区域的系统,该私有存储区域专用于存储实体在它们拥有的私有存储区域上的内容。
本发明例如可用于瘦客户端计算机网络系统以及受益于最小化数据存储冗余和共享基本相同的存储值副本的其他应用中。瘦客户端系统的特征在于在客户端终端具有相对有限的数据存储容量的分布式客户端终端。瘦客户端网络提供与包括具有大本地硬盘驱动器容量的客户端的网络可比的计算能力和存储容量。但计算能力和/或存储被集中在远离客户端终端的服务器上,并且通过使用终端和服务器之间的网络数据通信进行访问。客户端终端存储器的非易失性部份(portion)可能相当受限于例如足以从服务器引导(boot)的BIOS/固件。相当大的管理和成本节约的优点可以在瘦客户端网络中实现,同时还受益于操作系统的稳定性和安全性。
客户端网络的“瘦(thinness)”可能有些极端并且可以大致广泛应用于具有网络访问的所有终端。重点在于在瘦客户端网络中,可能在终端提供的一些存储或计算能力相反被提供在服务器上,与客户端相反,客户端通过网络与服务器交换来访问该能力。
瘦客户端终端不需要配备有大硬盘驱动器或冗余的可执行代码副本。在一些实施例中,分布式终端可能具有本地闪存以与服务于终端的处理器的本地随机存取存储器一起初始化并开始终端的操作。典型的瘦客户端终端可以没有硬盘驱动器。板上操作系统具有足以调用网络接口设备的启动例程,该网络接口设备采用动态主机配置协议(DHCP)来获得网络地址。建立网络IP(网际协议)设置用于与一个或多个网络服务器的通信。客户端终端可以被配置为通过从服务器下载操作系统(以从该服务器引导)来获得可执行代码。可以在要求时(on demand)从服务器或从与一个(或多个)服务器相关联的存储介质下载应用程序。在可选的和可能更瘦的客户端网络中,客户端终端可能被配置为建立它们的人类操作员和实际执行该例程的远程服务器之间的输入/输出接口设备。在所有这些示例中,终端可以是廉价的,同时相对地可以避免由于更快或更有能力的计算机的发行而遭废弃。通过升级服务器,可以有效地并相对便宜地对硬件和软件进行改进。
虽然瘦客户端终端可能缺少硬驱动器,但如果终端的操作员感觉该终端按照与具有本地硬驱动器的终端相同的方式进行操作的话,那么它就是有利的。优选地,应用程序可以按照与访问本地驱动器基本相同的方式来访问网络驱动器。在典型的LAN或WAN或宽带互联网网络中,通过网络对网络上的远程逻辑磁盘驱动器卷的读/写数据通信比较快。除非存在严重的网络堵塞,从操作员的角度看,网络读/写传输花费的时间与涉及本地硬驱动器的传输大致相同。如果是这样,从操作员立场看,差异主要仅在于传输中的目标卷是在一个服务器还是在另一服务器上寻址。存储介质的位置并不重要。
如所描述的瘦客户端网络的一个优点是任何数量的客户端终端可以从相同的操作系统映像或存储在服务器上的应用程序副本加载或引导。如果管理员安装操作系统或应用程序的修订,则配置为使用该操作系统或程序的所有用户终端都不需要在每个终端升级软件而获益。服务器可能支持各种操作系统,各种不同修订版各种应用程序组。它们中的任何一个都可能在服务器级别上被修订或升级以有益于所有授权用户。
在可从Neoware Inc.得到的瘦客户端计算机网络配置中,系统磁盘可被多个客户端终端使用,从而通过使用相同的虚拟连网系统磁盘来初始化或自引导加载(bootstrap load)。客户端使用网络虚拟磁盘“NVD”协议共享虚拟连网系统磁盘。NVD协议基本是用于对虚拟磁盘进行磁盘读写访问的用户数据报协议(UDP)。典型的操作可以是例如读或写在识别的扇区开始的给定数量的扇区。当启动用户终端时,UDP协议的IP地址。
在该客户端-服务器事务中的客户端的IP地址通常在客户端终端被初始化时实时建立,而不是永久分配给客户端终端。永久IP地址分配是可能的但是效率较低,这是由于不活动的(例如电源关闭)终端显然不需要IP地址。如果客户端IP地址是未知的并且所有的客户端运行相同的虚拟连网系统磁盘映像,则在比客户端终端的初始化之间的时间更长的时段内(当IP地址变成客户端终端在下次关机前的唯一的标识符时)使用IP地址将客户端终端彼此区分开是存在问题的。使用全球唯一的诸如以太网地址的客户端MAC地址(介质访问控制地址)通常比使用客户端的IP地址更为有效。
在一些操作系统中,存在与终端(与当前用户无关)相关联的唯一标识符,其存储在终端上的非易失性寄存器中,例如硬盘(如果终端有硬盘)或ROM或PROM或其他介质。例如,在Windows中,终端被分配“计算机名”。需要该唯一标识符来将该终端与其他终端区分开。
客户端终端的截然不同的且永久的标识可能是或可能不是取决于网络编程的关键数据。例如,如果用户具有唯一的网络用户名并且可以在任何终端登录进入,则由于某些原因用户名可能会被用作截然不同的标识符。
在客户端终端共享磁盘映像的情况下,有必要管理对数据文件的访问,使得不会重写变更和/或使得仅允许给定用户在当前不被另一个客户端变更的文件上进行读操作,可能产生异常结果。在读/写操作的情况下,给定终端可能有必要“打开”文件,使得该文件在关闭之前对其他用户不可用。
各客户端终端(或其他操作实体)可用的操作系统映像和应用程序可能并不是全都一样。有必要区分它们。这样做,有必要。至少,每个终端需要与网络地址关联的唯一标识符以唯一实现与给定终端之间的网络通信。一般每个终端都具有被本地存储在非易失性存储器(例如闪存)中的如计算机名或计算机序号的标识符。在DHCP协议程序中,网络地址可能是动态获得的,但是该地址可以与唯一的标识符相关联。在一些网络中,发给终端唯一的固定TCP/IP地址,该TCP/IP地址可以按照与唯一的计算机名相同的方式起作用。不管是如何获得的,该唯一标识符可以交叉引用与该终端具体相关联的信息。
根据编程细节,与唯一标识的终端相关联的信息可包括多种参数。唯一信息的示例是终端的当前状态、终端在安全等级中的权限和授权、被授权操作终端的用户的标识、已经为该终端获得的软件和媒体许可、终端重启后继续存在的用户选定的选项以及被记录的密码、cookie和历史文件等等。
如所描述的连网系统的一个优点是许多瘦客户端用户终端受益于共用由基于系统的服务器提供的同一软件。在初始化时,所有终端(或终端的子集)可以自引导加载相同的操作系统镜像。各种终端可以下载和运行相同的应用程序。这优选地包括使用相同的约定(convention)进行访问的所有终端,所述相同的约定即相同的文件名和磁盘卷标识符。如果终端也可以共享相同的约定来访问包含对个体终端唯一的或个体终端专用的数据的文件和信息,则也是有利的。然而,需要做出一些规定来将一个终端专用的信息和另一个终端专用的信息区分开。
一种技术是在用户终端存储该终端独有的任何信息。这并不令人完全满意,因为这意味着在没有定制的情况下终端不再是相同的并且不再受系统管理员的管理。而且,客户端终端可能没有配备能够进行读/写非易失性数据存储的硬驱动器或存储设备。有限的非易失性存储寄存器是可行的,但是难以使用闪存来进行存储,这是因为写入闪存很慢而且为了安全和管理方便,可能期望限制允许终端操作系统被变更的限度。
某些操作系统支持闪存,如微软Windows XP嵌入式系统。在这个和相似的操作系统中,在运行时间期间对易失性存储器覆盖或副本而不是对闪存执行任何存储器写操作。在正常关机程序中,可以在闪存上复制该覆盖。这允许将通过写入存储器(即写入覆盖)所做的变更通过写入闪存而变为“永久性的”,但是仅在正常的关机过程中。结果,将要存储在闪存中的对操作系统的操作变更、对用户选项的非易失性变更、如计算机名标识符的永久标识符和类似的永久数据必须通过正常关机而得以维持,以便变为永久的。也就是说,在非易失性存储器中固定值的过程需要经过关机和重启即重新引导终端的循环过程。
虽然本发明是通过瘦客户端网络应用来进行示例说明的,但本发明的优势和益处还可以在其他类型的系统配置中实现,其特征在于高效共享某些存储的数据值同时支持专用于操作实体的至少有限数量的文件和值。例如,可能受益的操作实体可以是共享单个终端的几个用户,如不同轮班的工人。这种用户可以共享大部分的相同可执行软件,受益于具有用户专用的存储信息,如密码、安全授权和偏好等。根据本发明,用户信息可以从用于产生客户端专用(在这种情况下即用户专用)数据的一个或多个可共享的缺省文件中产生和保持。
受益于本发明的其他操作实体可以是操作进程,如隶属于共享特定代码或表格(例如字体)的程序组的软件程序。虽然标准化版本是可得到并可共享的,但可以允许进程借助于本发明来定制该代码或表格,从而产生其他操作实体不可得到的版本(特定字体)。
本发明的一个方面是有效存储。存在存储的数据值的最小副本,因为实体变更该值(或可能管理员为了实体的利益变更这些值),建立该实体专用的版本,就此意义而言,操作实体可以共享副本(受保护的)。另一方面是方便编程。每个操作实体(终端、用户、进程等)可以运行相同的共享系统。HDD仿真系统的方法使得几个客户端能够使用相同的数据寻址同时访问相同的数据内容(通常是在公共的仿真HDD映像中的数据)。我们认为能够被几个客户端同时访问(通常为读取)的数据是可共享的。这导致高等级的系统稳定性。尽管这些益处是由于一致性产生的,但是每个操作实体可以至少为某些指定文件定制一些数据,特别是关于在客户端专用版本中建立的最初可共享文件,这些指定文件可以专属于其相应的客户端,可以在相同的共享文件名下由其客户端访问,但却保存专用于该客户端并且区别于相同的共享文件名下为其他客户端保存的客户端专用文件的内容的那些内容。换言之,客户端专用数据寻址可以由几个客户端同时共享,而每个客户端专用数据集的内容(例如客户端专用文件)彼此不同。优选地,可以产生客户端专用文件,以使实体(客户端)与由客户端以相同名字访问的客户端专用文件内容或副本之间一对一对应。然而,还可能具有一个或多个副本,其将实体分类为子集,在该子集中作为该子集的成员的实体共享作为子集专用文件或表格等的副本。
目的是有效管理多实体系统或过程,其中许多客户端计算机、它们的用户或进程(操作实体)共享地访问相同的数据存储(data store)。这些实体可以是个体实体或其共享数据存储的相关的分类。虽然在读/写过程中打开文件之后数据存储被共享,但每个实体变为耦合到专用于该实体的那个文件版本。该版本。同时这些实体的每一个可以寻址并继续寻址数据存储,就像只存在一个这样的版本。
在服务诸如多个用户的多个操作实体的终端系统中,操作系统优选以定制的方式服务用户。在包括由例如文件服务器的单元提供给多个终端、用户或类似实体的卷、目录、文件或其他存储单元的基于服务器的系统中,基于服务器的共享存储器可以仿真其中每个用户具有完整的存储器映像副本的系统,该存储器映像副本包括共享文件和仅用于该用户/终端的用户或终端专用文件或数据。
在本发明的布置中,对于特定的数据标识(或被认为可共享的卷或目录或其他存储单元),可以不同地处理数据读取和数据写入请求,使得这些单元可以变为客户端专用的。当成为客户端专用时,这些文件(或目录或其他单元)可以由其对应的拥有者(操作实体)使用一直使用的相同文件名、内存/存储地址或目录树或卷标识符来寻址。相同名字和地址还可被其他客户端用于寻址它们自己的客户端专用版本。在另一种情况下,某些文件名可能在特定客户端请求时“存在”。这些技术允许客户端根据相同的软件映像操作同时具有可使得相应客户端的操作彼此独立的客户端专用配置。
与本地客户端终端的内存/存储器接口相关的进程和/或运行在服务器系统上的进程可以处理对共享网络存储器的双向读/写请求,从而满足文件访问请求。一旦有根据我们创新的接口的请求时,进程(驱动器、服务器进程等)将操作实体的存储器访问引导至它们对应的客户端专用文件,以存取客户端专用的那些文件。这可以通过修改寻址或文件名细节以在交叉引用表格中包含或涉及特定客户端的唯一标识。
本发明与在读/写请求过程中在文件级截取和改变数据内容的文件系统过滤器不同,以便需要或依靠运行在客户端侧的文件系统过滤器进程。相反,(在对共享数据的第一次写操作过程中)客户端专用数据区域的产生和(当同一客户端处理读操作时)相同内容的稍后提供对客户端是透明的。根据本发明,标准操作系统的加载/读取顺序或应用数据读/写操作适于指向客户端专用数据。本发明调整了由客户端进行的标准化数据寻址步骤,以建立和使用代替原始寻址数据被插入到数据流中的客户端专用数据区域,而不是像文件系统过滤器中那样定制共享内容。
根据一个方面,本发明可以被实现为现有HDD仿真协议的特征。该现有协议被修改以实现新的“打开”命令。所有客户端使用相同的寻址细节来打开包括在共享区域中的文件。创新的“打开”函数有条件地打开专用于客户端的数据区域而不是仿真HDD对象,并且使用客户端专用文件提供“打开”命令。例如一旦被客户端写入到打开的文件或数据区域之后,客户端专用文件可能已经被事先创建。可选地,客户端专用文件可以在任何写操作之前,例如由管理员或作为客户端配置的部分设置而建立。
优选地有至少四个数据存储的相关分类。第一分类是客户端可以按常规方式得到的(例如在本地HDD上)并且具有允许适当读写访问或只读访问的属性的本地存储数据。第二分类是在几个实体间共享的并且应当被保护以防止(临时或永久)变更的数据,例如共享的虚拟磁盘驱动器。写入该分类的数据区域会产生可能包含变更的覆盖或新版本。覆盖是第三分类。该第三分类可以是临时或永久的或者可以具有某种中间级别的持久性。根据创新的方面,存储数据的第四分类是专用于相应客户端的数据。该第四分类包括多个数据区域,每个数据区域被“拥有”该数据区域的一个(或多个)客户端所拥有并且通常仅可由该一个(或多个)客户端访问,例如最初执行写操作的客户端,分类还可以是临时的或持久的或永久的,如所述的。
所得到的系统的细节依赖于所做的一些选择而经受变化,这些选择是关于各种分类是读写还是只读,以及变更是否持久从而能够在重新引导(reboot)之后继续存在等。在一些实施例中,这些选择可以通过所涉及的存储介质的类型来规定。根据可能的变化,在给定的实施例中存在被允许或排除的得到的动作。例如,在示例性实施例中,可能有原始共享文件、易失性或持久性的覆盖以及该文件的一个或多个客户端专用版本。
在原始数据区域(例如文件)保持不变的实施例中,相对于仅可以由拥有该数据的特定客户端读写的客户端专用的定制数据,可以有两个可被读或写的用于写版本的储存库。覆盖可以是易失性的并且内容在重新初始化时丢失。定制的数据也可以是易失性的但可以有用地使之成为持久性的;本发明可应用于这些情况中的每一种。
如所描述的,可能在试图进行所描述的写操作时通过复制原始文件来建立定制数据。然而,该技术不是完全必要的。最初不需要读从一个(或多个)覆盖或“公共存储区域”(例如共享的HDD映像)读取定制数据或者将该定制数据写入到该一个(或多个)覆盖或“公共存储区域”。定制数据可以以其他方式建立,例如当安装终端或用户或其他客户端时作为管理步骤而建立。
但是根据本发明的创新的加载/读取步骤使得以多种有用方式使用定制数据成为可能。在一个示例中,
● 用于客户端的定制数据可以从储存库读取(并且任选地以某种方式进行处理);
● 定制数据被复制到“逻辑磁盘驱动器”,以便在功能上重写相应的共同共享的非定制数据。这可以包括复制到用于代表逻辑磁盘驱动器的内容的覆盖。
● 软件应用进程)请求读取先前定制的数据时,从逻辑磁盘驱动器给操作实体提供这样的数据(该数据是从储存库中读取的并且被复制到逻辑磁盘驱动器的数据的副本,即在与该对客户端/逻辑磁盘驱动器相关联的覆盖中)。
● 在关机(并且假设定制数据储存库是可写的)时,定制数据从覆盖读出,并且被复制回去以重写储存库中的正确区域。因此,如果数据已经被修改,则这种修改现在被设置并且将在下一次从储存库读出定制数据(例如在下一次初始化这些步骤)时被复制到逻辑磁盘驱动器覆盖中。
根据本发明得到的优点之一是在客户端的引导过程的非常早期就可以支持文件传输,例如在用于执行常规文件传输(CIFS/SMB、FTP、NFS等)所需要的层不可用时。在引导过程的非常早期就具有文件传输能力是特别有益的,因为可以在引导过程的早期使用一些被有利定制以允许客户端专用的独立操作的数据,并且所述定制之后将不需要重新引导;此外,如果变更在每次引导时都丢失,则重新引导可能是低效的。
本发明可以容易和有效地支持使用该文件传输能力的简单脚本或程序。虽然客户端可以设法打开给定文件并且使用相同的命名和寻址约定来这样做,根据本发明的打开文件请求实际上可以为每个客户端打开不同的文件。这种每客户端(per-client)的定制特征通过本发明的过程直接实现。这使得几个客户端能够读取相同共享数据来执行相同的计算,但是由于该定制的一些数据(参数)是客户端专用的,因此所述公共定制为不同客户端产生不同的结果。
根据又一方面,本发明的文件传输系统依赖于HDD仿真原语(primitive),并且为数据区域建立和维持集成的每客户端定制。不是为客户端截取和修改文件,在启动时或进程开始时读取私有数据,将具有可能变更的定制数据写入或复制到数据之后可能被再次读取和使用的存储器位置,并且任选地被配置为在关机时写回定制的数据。特别有创新的方面是使用硬盘驱动器仿真基本处理单元(element),打开每个定制的数据组(例如,定制文件)并且然后使其建立定制的数据组。
最初的读请求是由诸如终端或进程或用户的操作实体做出的,以读取客户端专用数据区域的某个寻址部分。寻址期望的数据可能包括指定卷地址、目录/子目录树、文件名和目录路径等。如果相似的数据组(功能相似)存在于共同(commonly)共享的数据区域中,为了在共同共享的数据区域中逻辑重写对应的数据组,则可以复制响应于该最初的读请求而接收的数据。在该数据的副本将被实际写入的地方,没有必要改写共同共享的数据。当调用写操作时,写操作可以在写覆盖中产生新的副本。该新的副本此后作为写入实体的副本被保持,以用于任何进一步的目的。在任何随后的数据访问操作中,其写操作导致该新的副本的实体访问该专用副本。
在更基础的等级上,生成客户端专用数据的HDD仿真进程可以将数据放置在交叉引用到操作实体的身份的地址,或可能放置在包括寻址串中的请求实体的身份代码的地址。也就是说,可以与其拥有者唯一关联的方式重命名或定位写入的数据,所述拥有者即第一个写入该数据的操作实体。该操作实体的任何进一步的读、写、打开或其他文件访问过程都是针对被建立为专用于该操作实体的数据。
由操作实体写入到客户端专用存储器的数据可以保存在易失性存储器中,但是如果专用于操作实体的至少部分数据被保存在非易失性内存中,可以获得更多的优点。这使得这些数据的变更可以在重新启动后继续存在。根据这一方面,该数据不仅可以用于携带进程或终端或用户的标识码,还可以携带配置信息、安全授权、密码、软件许可历史值等,以及对于至少两个操作实体至少部分不同的其他形式的信息。
根据本发明在用于操作数据处理网络的方法以及在对应的编程网络系统中提供这些和其他目标是通过修改其中多个客户端共享对相同数据组(例如磁盘映像)的访问的硬盘驱动器仿真或其他环境中原本严格共享的磁盘映像以便支持数据的客户端专用版本而实现的,其中所述数据的寻址是可共享的。根据本发明,借助于仿真的HDD通信对客户端可用的存储空间包括通过合并在仿真硬驱动器仿真系统中并且在每个专用客户端的编程中没有特别关注的情况下完成的操作致使其成为客户端专用的至少一些部分。换言之,客户端可以同时访问其内容和寻址共享的一些数据(仿真HDD数据),并且同时可以访问仅寻址共享的客户端专用数据(两个客户端可以使用相同的寻址来访问截然不同的客户端专用数据内容)。在本发明的上下文中,术语“客户端”可以被解释为包含任何操作实体。示例是进程、处理器、终端设备、用户、子网、服务器或这些实体的子集或分类等。
本发明可以在如下配置中提供相当高的效率:其中共享文件包括要运行在许多操作实体上的操作系统或为许多操作实体运行的操作系统,或者可能包括要在初始化时或需要时提供给操作实体的应用。共同共享的文件可以保持原始状态并且不受修改。共同共享的文件只需要存储一次(即只有一个副本)而服务所有的客户端。同时,本发明可以提供相当好的通用性。操作实体(客户端)可以在其最初指定为可共享的文件或目录的客户端专用版本中建立和维持各种定制的值,优选在非易失性存储器中建立和维持,从而当客户端专用数据被变更时在重新引导后能够继续存在。
获得这些优点不需要重写大部分操作系统和应用程序。仅需要将简单的读文件/写文件/复制文件请求,所述请求是用根据本发明描述的系统实施的,运行步骤。此后操作系统和应用程序进程仅使用它们的常规文件名进行读写操作。本发明因此提供了一种为每个客户端有效地定制虚拟硬驱动器的方法,同时最大化对操作系统版本的管理控制并且对除了实施本发明的进程以外的操作实体表现得与具有私有唯一访问硬驱动器的系统没有区别。
本发明的方法可以应用于与诸如硬驱动器、闪存或光学CD ROM的本地存储器接口的一个或多个客户端进程。本方法可应用于区分相同进程的不同用户。本方法可应用于与至少一个网络服务器数据通信或与本地存储器的相同副本接口的一个或多个客户端终端。在每种情况中,可能很多的操作实体(客户端)可以利用相同的共享的应用程序、操作系统、表格或其他数据,支持所有用户的子集的相同或基本不同配置。
如果客户端使用依据本发明的读取方法来读取客户端专用数据,但并不将其逻辑复制到取代相应的共同共享的数据的覆盖,或者并不将其保存在任何位置供进一步使用(例如在RAM缓冲器中)并且需要访问相同数据,则客户端必须再次发出对这些数据的读请求,如果之前发出关闭请求则在对这些数据的读请求之前可能有打开请求。这是保留之前读取的客户端定制数据的本地副本通常有利的原因,除非确定不需要对这些数据的进一步存取。
下面的示例性实施例的说明中讨论多种变化和实施例。然而为了评价本发明的范围,有必要参考所附的权利要求书。
附图说明
结合如本文讨论的和/或在附图中所说明的特定实施例和示例来示例说明本发明,其中:
根据本发明的仿真实施例。
图2是示出连续操作步骤的操作流程图。
图3是示意性地示出运行在终端设备上的本发明实施例的框图。
图4和5是根据本发明的实际应用的顺序数据处理步骤的示意性说明。
具体实施方式
图1示意性地示出了应用到网络硬盘仿真实施例的本发明的实施例。本发明可适用于大致在图3中示出的本地硬盘仿真,或适用于图4和图5示出的本地覆盖布置。
参考图1的网络实施例,在各种位置处提供了与网络35数据通信的多个终端30,一个或多个服务器40耦合到该网络35。终端30和服务器40是使用通信协议以标准方式通过网络进行通信的操作实体,并且在该意义上它们是对等体。然而,在功能上这些终端是至少经由其中一个服务器40的数据存储容量的用户,该服务器40使用硬盘驱动器(HDD)仿真技术给客户端终端提供对通过服务器40可访问的一个或多个硬驱动器42上的数据分组的访问。
图1的网络布置类似于图3的终端实施例,其中操作实体是运行在终端设备上并且同样仿真具有共享数据文件或区域(该共享的数据文件和区域被写保护但可以生成客户端专用版本,该客户端专用版本仅可以由其客户端拥有者访问进行读/写操作)的硬驱动器的进程。对这种数据区域的识别部份(例如数据扇区地址或文件名等)的写操作使得HDD仿真进程产生新的副本,该写操作的内容被复制到或写入该新的副本。新的副本一旦产生便被链接到做出写操作的操作实体。该实体可以使用相同的约定来识别原始的共享数据区域(例如数据扇区地址或文件名等)。然而,HDD仿真系统为任何这种实体做出的数据访问请求提供由该实体产生的新的副本。该新的副本是在原始共享数据区域标识下对该实体可用的所识别的数据的唯一的和专有版本。该新的副本优选被保存在覆盖中。该覆盖可以是持久的(以经过重新引导或初始化而延续)或不持久的(例如存储在易失性存储介质中)。
所有操作实体可以类似地使用HDD仿真系统。假设操作实体是瘦客户端终端,例如所有终端共享HDD仿真数据。对共享区域的写操作生成一组覆盖的数据版本。经过一段时间,某些数据区域可能发展,使得每个客户端在HDD仿真系统中具有定制的覆盖版本。然而HDD仿真系统不需要或不生成客户端读取但从不写入的数据区域的完全或部分冗余的副本,所述数据区域如可执行程序代码和静态表格。
对于不同操作实体HDD仿真方面和数据的定制版本的产生可以应用到各种层次结构,如运行在具有存储器的终端设备的进程、通过网络访问服务器的终端设备、终端上的进程的用户、可以登录访问网络的用户等。假设给定数量的操作实体(例如,共享包含共享数据区域的存储设备的进程、用户和/或终端设备),这些实体能够生成该给定数量的不同副本。为读操作提供共同共享的版本,直到操作实体第一次尝试写操作。在操作实体实现写操作后,(仅)为该操作实体的后续读操作提供之前被该实体写入的可能定制的不同版本。
根据编程选择,数据存储的各个部分可以被指定为可共享(例如,与数据积累文件相对的程序存储文件和区域)。可共享区域可能涉及终端或用户定制文件,但本发明并不限于定制文件和共享相同硬驱动器仿真的操作实体对应用程序或操作系统版本进行操作。对以这种方式做出的变更的承诺(commi tment)可以是临时的,即,仅仅持续存在到操作实体回到共享版本时的下次初始化、重新加载或重新引导为止。可选地,通过写入到非易失性存储设备并且在下次重新加载的初始化时拾取先前写入的可能变更的文件,可以使该变更为大约永久的。
在图1中,客户端终端30和服务器40包括操作计算机,每个操作计算机具有中央处理单元(CPU)31或41,其分别耦合到通常为易失性的读/写随机存取存储器32或42,其中机器指令被存储在寻址存储单元,并且在执行遇到的任何指令时处理器步进或跳转通过随机存取存储器32或42。
在执行指令时,处理器31或41读写它们的RAM32或42。当掉电时,RAM32、42的内容丢失。也提供非易失性存储器33和43。当初始化(例如当从掉电状况重新引导时)时,从非易失性存储器33,43复制或产生可执行指令,并且将其放置到相应的RAM32或42中供处理器执行。
在许多台式计算机中,需要持续存在的数据和软件存储在非易失性硬盘驱动器中。在初始化时或在代码被执行之前的某个时间将可执行代码的最新映像复制到RAM。例如通过设置表明文件为只读的文件属性,或仅仅通过在编程中制止重写文件,能够调节对可执行代码或其他数据自由变更的程度。自由读写通常是部分进程,并且在独立操作中实现终端的许多功能通常是可能的。然而,在涉及与其他终端、用户、进程和/或设备共享数据文件的网络通信的情况中,还存在许多优点。
本发明可应用于通过在网络服务器处提供存储容量来仿真硬驱动器。客户端终端可以通过网络通信来访问存储器存储容量(以及可能还有服务器计算能力),这与仅本地提供给终端的设备不同,例如终端。瘦客户端计算环境通常采用这个共享的概念而不是分配存储器和其他资源。
瘦客户端配置是有效的。终端设备不需要全部装备有大的存储或处理能力,其可以由终端通过网络来得到。在如图1所示的示例性配置中,终端设备缺少任何硬盘驱动器。有必要提供至少足够的非易失性存储器以使得客户端终端能够被初始化(重新引导)。因此客户端终端30配备有非易失性只读存储器33(ROM或PROM),其包含足够的代码以启动进行与一个或多个服务器40通信至少必需的操作。在优选配置中,客户端终端30具有闪存33作为其在重新引导时可用的非易失性存储器。该闪存可以具有大致广泛和大致嵌入式的操作系统,但是至少包括足够的代码以开始与网络服务器40配合的操作。最低限度,非易失性存储器包含终端固件(BIOS)。如果需要网络引导能力、嵌入式网络引导能力(如PXE能力)。
瘦客户端终端设备相对便宜,但是仍然具有额外的益处,因为当更快或更有能力的硬件可用时,他们不会被废弃。可以在由许多终端设备共享的服务器上做出改进。
瘦客户端终端可以具有它们可以被编程的任何功能,但是共享存储器或其他资源的客户端终端很可能彼此相关,例如,作为企业的成员。终端30例如可以是商业销售处理器的零售点、数据库访问终端和游戏终端等。在这种应用中,许多终端设备运行相同的操作系统并且为其操作人员提供相同的应用。为终端共享操作代码和参数是有效的,这些终端为其操作人员运行相同应用。代码由服务器40提供给所有客户端终端30,从而至少形成网络上所有设备中类似配置的设备的子集。当然网络可以支持任何数量的这种子集。
为了某些目的区分这些终端。标识或寻址值需要专用于终端设备以便能够与唯一的终端通信。如果通过终端考虑同时发生的事务,则个体终端的事务必须是可区别的。将终端特有的数据存储在服务器40是可能的,但是为了与终端进行唯一通信,每个终端至少必须通过网络地址分别标识,所述网络地址例如IP地址、或者诸如以太网(MAC)地址或通用唯一标识符(UUID)的硬件地址或标识符。IP地址一般通过初始化过程(DHCP)获得。至少一个唯一的机器代码51对于每个终端设备可用。相同的机器代码或相似代码在重启后对客户端可用。
终端标识符51可能将终端30分类为不同部门的成员,或分类为具有特定配置的终端,或分类为具有一些级别的授权权限的终端。可选地,标识符51可以仅仅是存储的交叉引用到类似的分类信息的序列号。在任何情况下,每个终端具有唯一标识,该标识至少用作通信地址或用作交叉引用到唯一的通信地址的代码。
在具有用于持久(非易失性)储存的闪存的终端应用中,终端标识符51可以存储在闪存中。本地闪存可用于存储专用于终端或其用户的文件和/或表格、要素(factor)或类似信息。该设置信息在终端初始化期间在初始化将要运行的一些应用程序期间是有用的,以解决允许在用户或终端间不同的变量的存储。然而在闪存(写入慢)中变更这种配置是不方便的,允许对每个终端中闪存的每个单元进行改变是缓慢且有可能比较危险。这种配置信息一般在特殊条件下被写入闪存,并且(例如)只有当有必要设置存储器中的参数值使得新参数值在下次终端30重新引导时变为有效时才这样做。本发明还可用于缺少读/写存储器和例如具有ROM的实施例。
在瘦客户端环境中的一个目标可能是按照与全功能(fullycapable)台式个人计算机相同的方式进行操作,即使终端单元可能没有本地硬盘驱动器或闪存(闪盘、紧凑式闪存、模块化磁盘(Disk onModule)等)并且可能用作接口设备。一旦终端设备被初始化并且网络通信被建立,就很容易地能够共享网络上的其他资源,如与远程网络服务器40相关联的硬驱动器空间。如果需要保存在非易失性存储器中的参数值可以被存储在网络服务器40上而不是客户端终端30的闪存33中,这将是有利和方便的,特别是在客户端终端30没有这种闪存时。这避免了写入闪存的额外的复杂性并且还具有其他优点,例如允许对非易失性参数进行变更并且使其变为有效而不需要重新引导终端30和集中管理终端30的定制值或组。没有闪存(或最小的闪存)降低了终端的成本,这是由于在瘦客户端终端中闪存的价格通常仅次于CPU。
分别为每个客户端终端30在服务器40存储磁盘映像是可能的,保存专用于该一个终端30的整个硬驱动器映像的副本。在可能的瘦客户端网络实施例中,可以在服务器上建立存储空间以替代可能已经在要服务的每个终端的本地硬盘驱动器上使用的大量存储空间。可以为每个终端或者甚至为每个终端操作者安装或映射虚拟驱动器或驱动器盘符或分区或子目录。在这类系统中专用于终端的存储空间是冗余的,这是由于可能存在两个或更多终端(用户)可能具有相似的配置或需要,其中基本相同的信息在两个终端的分配的存储空间中被复制。这种冗余对于存储空间的分配是低效的,而且,如果更新被应用于所有终端,则必须为每个副本重复进行更新。
另一种可能性是在客户端终端30上保存所有客户端专用文件和信息。服务器40上的存储器可以限于文件。一个主副本然后被多个终端30共用。可以使该文件为只读的并且仅由管理员保护和控制。
然而由于上述原因在终端上存储定制文件是不方便的。根据创新的方面,对专用的且经受读/写访问的文件的需要与对减少为专用于个体终端或操作者(或至少个体子集)的应用重复存储相同信息的冗余和复杂度的需要之间寻求平衡。
由多个客户端终端使用的没有变更的文件的一个副本被存储在服务器40,在相对于分布式硬驱动器终端系统的系统的瘦客户端系统中,这提供了总的存储器节约。同时,客户端终端30配备有唯一存储的配置信息文件。
在优选的HDD仿真实施例中,使服务器40的存储器容量看起来好像本地硬驱动器对于客户端终端可用。由根据本发明的接口提供的并且在引导或加载过程中由相应步骤调用的打开、读和写操作由本发明进行管理,使得对特定客户端终端30“拥有的”客户端专用数据的客户端终端读/写操作的寻址实际指向私有的客户端专用存储区域60,使用客户端专用代码61对该区域寻址,该客户端专用代码61可以附加到存储这些客户端专用数据的文件名或可以作为所述文件名的前缀,或可以是引用存储这些客户端专用数据的文件的寻址(路径)的一部分。该代码61可以是机器标识代码51或通过服务器存储器中的表格交叉引用到其的另一种代码。
因此,当终端或用户根据本发明完成对客户端专用文件60的第一次写操作时,可以产生终端专用(或用户专用)修订文件。该文件可以是共享的共用配置文件的复制品,其之前由终端从公共的仿真HDD数据中的公共“共享”数据中(例如包含缺省参数值)读取,或从基于覆盖的数据中读取。该文件可以由客户端终端(或由用于改变可用于客户端的设置配置的管理进程)来修订。一个客户端。为了不用每次都重复管理任务,客户端专用文件现在可以被保存为非易失性客户端专用文件60。本发明使用创新的“打开”命令接着使用标准的HDD仿真写命令可以非常容易地保存这个文件。然后根据本发明的相应客户端对相应文件60的读操作可以被调用,并且该客户端可以使所读取的文件的副本进入写覆盖,使得后续读取针对客户端专用版本而不是共用的版本。根据本发明的创新步骤使得可能设置程序或脚本,从而使得定制文件(可能根据客户端/用户而有所不同)在这些文件中的数据在客户端侧被实际读取和使用(处理、在某计算中使用)之前就被自动“抓取”或复制到客户端写覆盖中。然后每个客户端可能具有特定类型的文件,同时这些共用文件是相同的并且客户端写覆盖区域是易失性的(例如在每次启动时被擦除)。当所有客户端处理相同的计算步骤时每个客户端文件中的数据的计算产生不同的(定制)结果。
可以重新设置或擦除以这种方式做出的变更,例如当客户端终端或服务器正常关机时,或按需要紧缩到(retrench to)缺省状况。这通过擦除或重命名客户端覆盖和/或专用文件或存储区域来实现,或通过在一个或多个客户端专用文件上复制共用配置覆盖或文件来实现。
为了在需要时建立特定文件的覆盖的客户端专用版本,如所描述的共享共用文件和调用必要步骤的操作以表格形式在图2中示出。
图4和5示出了如所描述的使用本地的可能易失性的存储设备来保存覆盖的本发明的操作。在这个实施例中,终端设备可以具有各种相关的存储器,但仅需要具有足以建立通过网络接口设备的网络通信的BIOS/固件存储器。自引导加载由网络上的虚拟磁盘驱动器进行。
文件命名或其他用户标识功能有利地对于用户和用户进程是透明的。总是使用常规的名字和地址标识符(即同样由其他用户和进程使用的共用名)以同样的原始方式来寻址文件进行读写操作。使“打开”步骤能够真正打开定制文件并且在其上得到句柄的函数可以统一的与客户端无关的方式来调用。所有的客户端可以使用相同的代码(OpenFileAsVDD(”MyFile”))来打开“它们”的名字为“MyFile”的文件的定制版本。这样就可能包括在所有客户端共享的存储区域中使用本发明的额外步骤。
根据本发明的打开(Open)命令打开文件,“就好像”它是虚拟(仿真)驱动器一样。然后关闭文件、读写定制文件中数据的命令使用与HDD仿真命令相同的命令。因此,根据本发明的特征可以很早地在客户端机器的引导过程中使用,这使得可能方便地定制在引导过程的非常早期加载的组件,例如与安全有关的文件;此外,此类定制不需要考虑重新引导。
额外函数“OpenFileAsVDD”的实施方式通常是必须添加到包括HDD仿真协议的函数组中的唯一函数。而且,该OpenFileAsVDD函数可以简单直接地实施:实施该函数的一个(或多个)进程通常访问作为文件(磁盘驱动器映像文件或逻辑上可以视为文件的设备对象)的虚拟磁盘驱动器数据,因此当HDD仿真函数已经由所述一个(或多个)进程提供时,打开新的“实际上是定制文件的虚拟驱动器”就可以简单实施。
可以认为“用户”泛指在多个终端设备上的被认为是用户的操作软件进程,这种进程包括应用程序和系统程序。用户进程不需要包括直接人类活动,不过可以包括这种活动。如果本发明被应用于作为用户的多个进程,这些进程可以是运行在单个终端设备中的多个进程,但通常为每个终端和/或网络地址。
从用户或终端的角度来说,重点是提供如图3所示的客户端终端30,该客户端终端30基本上仿真硬盘驱动器系统,并且包含依照客户端引用代码61寻址的客户端专用文件60,该客户端终端30具有可能指向实际上通过服务器40而不是本地访问的HDD映像的相同类型的易失性和非易失性存储能力,如明显的系统驱动器(C:\)。通常通过使用我们的创新性文件传输技术将这些客户端专用文件先前复制到适当的写覆盖中。
本发明支持专用于操作实体的操作系统变更,并且与进程配合,所述进程区分在非易失性存储器中持续存在的变更与在终端或服务器建立并且仅持续到系统关机的变更。因此,对于在瘦客户端终端系统中做出的对操作参数的变更,本发明特别有用。本发明还用于建立从本质上只读的操作系统开始的读/写仿真,所述操作系统如存储在光学ROM上的操作系统映像。根据本发明的一些额外的“写”步骤可以被插入到客户端的关机或进程的停止序列中。这些“写”步骤使得保存先前修改的定制文件成为可能。所述定制文件的创建可以通过所述写步骤完成。创新的OpenFileAsVDD函数可以打开定制文件,如果该文件还不存在则可以创建空文件。该文件的句柄使得可能对该文件写入数据。定制文件的创建可以然后通过以下步骤完成:
FileHandleAsVDDHandle=OpenFileAsVDD(<FileName>)
LocalFileHandle=OpenFile(<LocalFilePath>);
AllocateBufferInRam(BufferAddress,SizeOfFile(LocalFileHandle));
ReadFileDataIntoBuffer(LocalFileHandle,BufferAddress,O,SizeOfFile(LocalFileHandle));
WriteBufferToVDD(FileHandleAsVDDHandle,BufferAddress,O,SizeOfFile(LocalFileHandle)));
CloseVDD(FileHandleAsVDDHandle);
在上述示例中,函数ReadfileDataIntoBuffer和WriteBufferToVDD期望整数作为它们的第三参数,该第三参数表示数据必须读取或写入的“文件位置”和“缓冲器位置”(位置=偏移量)。在我们的示例中并且通常无论何时VDD读/写文件或缓冲器)并且要读取/写入的数据大小是定制文件的大小。注意用于实际将数据写入定制文件的函数是WriteBufferToVDD,即用于将“要被写入”的数据从存储缓冲器发送到VDD的那个函数。
可以认为本发明是一种方法、一种包括客户端终端和服务器的编程网络配置和/或一种包含实现前述技术的软件进程的编程数据载体。作为操作数据处理网络的方法,本发明包括将多个客户端终端30和至少一个网络服务器40耦合到数据通信网络35的步骤。通过包括终端30经由网络服务器40可访问的部份55、60、71(任选)、72(任选)的方式来维护数据存储42、43、55和60。服务器40可以具有它自己的处理器41、RAM42以及提供服务器其他功能所需要的一个或多个硬驱动器43(或其他海量介质存储设备)中的磁盘驱动器区域。为了本发明的目的,相关的服务器功能涉及以最小化数据存储中的冗余的方式为客户端终端30仿真硬驱动器的操作,所述最小化是通过在客户端终端中保存和共享那些对多个终端保持相同的数据、文件(或目录或其他数据分组),并且产生或维持终端专用副本60,该终端专用副本60可能被复制到写覆盖70、71或72中用以后续仅供或仅用于那些相应终端访问,由于对客户端专用数据60中的数据的读操作,这些相应终端的文件或其他数据分组可能与共享的共用内容有差别,在客户端启动的写操作之后所述数据然后被复制到当前有效的写覆盖70、71或72。
服务器存储区域43(例如硬驱动器)的至少多个部份在来自客户端终端30的文件读取、文件写入、文件打开和/或文件关闭操作期间是可寻址的。该寻址可以由扇区或到驱动器上的已知位置的逻辑交叉引用来定义,例如通过使用任何(或全部)文件、子目录、目录(可能受确定搜索顺序的初步PATH命令影响的)、映射的驱动器标识符、分区和卷专用的一个或多个数据标识符。
优选地为以一个或多个前述数据分组(文件、子目录、目录、映射的驱动器等)布置的虚拟磁盘映像,允许客户端终端30通过网络35读取其中的文件。多个客户端终端30或所有客户端终端被授权实现对由客户端终端共同享有的至少其中一个所述数据分组的读和写操作。例如,客户端终端被授权为读和写所有文件或仅读写用于相关终端是子集的成员的该终端子集的那些文件。这样,每个终端30均可以适当地关于其类型或功能而连接到操作系统。
所有具有给定类型或功能的终端30都可以共享相同的虚拟磁盘映像。共享的虚拟磁盘映像优选包括由终端30采用的大部分操作例程、表格和参数。客户端终端30使用相同的数据标识符(例如VDD标识符、文件名、目录名、子目录名和树等)来寻址数据存储,从而实现对共享的其中一个数据分组的所述读和写操作。然而,客户端终端30通过服务器40可用的至少某些文件是或者可以仅专用于特定的客户端终端,该特定的客户端终端由与终端30相关联的ID 51标识,终端30使用与客户端专用数据文件60(或子目录或目录或其他数据分组)相关联的专用文件ID 61(或子目录或目录ID等)。
根据示例性技术,对于至少其中一个目标数据分组,这个结果可以通过处理客户端终端30的子集成员试图对数据存储43的读和写操作来实现。目标分组可以是例如包含配置信息的配置文件表或子目录。一个适当的示例是文件注册信息。
通常由客户端终端30用于访问特定文件等的地址或数据标识符(例如目录树或文件名)是以客户端专用的方式处理的。这种操作可以包括修改为写操作寻址的存储区域,从而使这种区域成为本地RAM覆盖70、基于服务器的RAM覆盖71、基于服务器HDD的覆盖72或专用于客户端终端30的覆盖中的一个。使覆盖区域对于给定的尝试至少所述写操作的所述成员保持唯一,以便使用,以访问一个所述数据分组,该数据分组对于该子集的所述客户端成员是唯一的。在随后的对相同地址或数据标识符的读操作中,相应的客户端成员的覆盖区被再次使用。
定制文件在读取时被复制到上述覆盖中的一个,并且通常在它们被读取和写回时从这些覆盖中的一个读取。在对定制文件的写操作期间,客户端发出OpenFileAsVDD命令,指定一个文件名。作为VDD(虚拟磁盘驱动器)打开的该文件的实际地址由服务器进程计算。例如,如果客户端发OpenFileAsDD(“configtable.dat”)请求,服务器实际打开文件“configtable-45789.dat”,其中有区别的ID“45789”位于服务器的存储器中或者在服务器的存储器中交叉引用到客户端终端ID51。
前述方法例如在瘦客户端终端的网络中是有用的,在瘦客户端终端的网络中客户端终端30可以无闪存(flashless)或者耦合到闪存ROM33,并且因此不方便或者甚至不可能写入到非易失性存储器。在闪存的情况下,在任何变更在非易失性存储器中变为永久的之前,通常至少需要正常关机和重新引导。根据本发明,其中客户端终端(或者可能仅仅是某些进程)通过从共享的数据存储下载操作系统文件而被初始化,没有必要重新引导以便实现配置变更,该配置变更可以通过写入非易失性存储器(即服务器40的硬驱动器43)中而立即成为“永久的”。
由客户端终端30共同共享的数据分组(例如虚拟磁盘驱动器映像、文件、子目录等)优选包括选定的配置值,该选定的配置值由客户端终端在初始化步骤过程中获得。还有可能将本发明用于文件类而不是配置文件。例如,特定客户端终端可能被配置为读取并修改表示可执行进程的代码,并且这样做时生成该客户端专用的版本。然而当节约地使用客户端专用文件60时,优选地用于诸如在可以应用于客户端终端的设置可选方案中选择的配置值,本发明是最有效的。
作为登录进入(log-in)过程的一部分由服务器进程提供,该登录进入过程包括对函数OpenFileAsVDD的至少一次调用。作为对接收到创新的请求“OpenFileAsVDD”的答复,当与终端的通信开始时在服务器硬驱动器区域43中为给定的客户端终端ID 51搜索现有的配置文件(或其他客户端专用文件)。接下来的骤通常包括从服务器中读取包含定制文件的数据,和将所述数据复制到对应的覆盖(70、71或72)中。所述数据然后将被用于替换相应客户端的共享文件数据。如果不存在对应于OpenFileAsVDD请求的定制文件,则没有数据被复制到对应的覆盖,并且客户端终端通常自动默认为(default to)共享文件名。在这种情况下,只有当标识的客户端终端对先前通过OpenFileAsVDD请求打开的定制文件进行写入尝试时,才产生客户端专用文件。配置文件名或其他名字可以在服务器40可用的短查找表列表中提供。
如果用于包含有利地将一个客户端终端与另一个区分开的配置值,文件名或文件类型适合用作客户端专用文件或类型。(相同考虑也可应用于客户端专用的子目录、目录、驱动器映像或其他数据分组)。客户端专用文件内容的更长的可能性列表包括对终端和终端用户唯一的寻址信息、终端标识值,终端配置信息、用户标识、安全授权、密码、软件许可信息、媒体许可信息、用户偏好和操作历史值,其对于所述终端和终端用户的其中之一是至少部分唯一的并且被用于根据操作系统或软件应用定制操作。鉴于本讨论,使用客户端专用文件类型的其他可能性应该变得显而易见。
如关于前述实施例所讨论的,为写操作修改数据标识符生成新文件,其中读/写/打开进程可以用不同修改的名字或交叉引用的名字(或目录名等)来区分该文件,从而写该文件产生数据分组(例如文件)的新的不同副本,所述副本对于该子集的所述成员是唯一并且可以由读/写/打开进程区分开。在树条目等的情况中是必要的。虽然进程可以以这种方式区分,但是客户端并不涉及其中,而仅尝试包括最初命名的文件和目录的读和写操作。
在优选布置中,终端的至少一个子集是瘦客户端终端。瘦客户端终端可能从ROM或从闪速PROM或其他PROM中启动。可选地,在客户端可能不那么瘦的布置中,本发明可以被应用于以下的情况:其中客户端可能具有本地存储(硬驱动器、闪速驱动器)或其他方面,但其仅被布置为利用通过共享部分虚拟磁盘映像并且对于所描述的其他部分建立客户端专有复制品或副本所得到的效率。
在示例性实施例中,至少部分从具有受限存储器写访问的非易失性本地存储器(例如仅固件/BIOS)初始化客户端终端。在这种情况下,本地存储器可以包含终端标识代码51或相应终端专有的其他代码以用于存取定制数据。终端标识代码还可以通过其他方式获得,如定义代码的硬连线跳线模式,或根据相关的硬件项确定的ID,所述硬件项诸如调制解调器或同样提供客户端终端30专有代码的网络接口卡的序列号。
在另一实施例中,终端30可以至少部分从具有受限存储器写访问的非易失性本地存储器(例如闪速PROM)初始化,并且特定终端专有的存储在本地存储器中的信息实际上标识并且区分所述特定终端的用户。因此,可以为使用特定终端的不同用户提供不同配置参数。这样,可以允许给定用户通过服务器访问配置文件,该配置文件专用于该用户或者用于获得特定终端和用户专有的信息。
在瘦客户端环境或无磁盘计算机环境中,终端可以在多个阶段自引导加载。第一阶段执行本地存储的软件程序,该软件程序具有开始与服务器的网络通信的例程。第二阶段执行用于开始软件程序操作的例程,情况下,标准化的共同共享文件或其他数据分组以及至少用于常量和配置选择的客户端专用文件两者的可用性促进了系统操作并且减少了存储冗余。
根据本发明的存储并且可变的配置值可以使用终端用户可访问的进程或管理员可访问的进程或两者而被改变。这种可选性可以包括:在用户被授权为该用户操作的终端变更配置值的布置中的授权/允许步骤。同样,可以为所述用户管理的网络上的另一终端定义配置值。
图3以功能的方式图示说明了本发明硬驱动器仿真方面。本发明的方法便于为客户端终端30进行硬盘驱动器系统的网络仿真,该客户端终端耦合以与具有至少一个服务器40的网络35进行数据通信。这通过提供至少一组客户端终端(在图3中示出一个)来实现,所述至少一组客户端终端使用从服务器40获得的预定共用文件55的子集,该服务器40维护虚拟硬盘系统。该共用文件在客户端终端30初始化时或者在该客户端终端需要所述共用文件55时或者以上两种情况时获得。该组中的所有客户端终端使用被该组中所有客户端终端寻址的基本相同的所述共用文件子集来操作,所述文件优选地在虚拟磁盘驱动器映像中分组,并且使用同样的标识符来寻址共用文件。存在具有其自己的共用文件的任意数量的这种客户端终端组,这些共用文件可能被相同的服务器支持。根据本发明,这些文件中的一个或多个可以通过实施OpenFileAsVDD函数的虚拟磁盘服务器进程的写函数的操作临时或者永久地作为客户端专用文件60,通过这种方式服务器40为客户端终端30服务。
文件子集中的至少一个数据部份(data portion)包含应经受客户端终端的操作所做的改变的值。该部份可以是例如包含配置参数值的一个文件。该数据部份是可寻址的,例如可以通过数据部分标识符来区分,该标识符例如文件名(和任选地文件中偏移量)、目录位置、卷标识符或相似地址。
布置,特别是一种瘦客户端或无磁盘计算机网络系统,该系统被配置或编程为执行本方法。该布置包括:至少一个服务器,该至少一个服务器能够访问包含至少一个虚拟磁盘驱动器映像的数据存储,该虚拟磁盘驱动器映像包含操作系统软件的安装实例,所述数据存储由耦合到服务器的终端通过数据通信网络共享;耦合到服务器的多个用户终端,构成耦合到网络的所有终端的至少一个子集,其中用户终端包括非易失性存储器,这些终端从该非易失性存储器被至少初始化到建立与服务器网络通信的点,所述通信在唯一的终端标识代码下进行。虚拟磁盘可以通过终端和服务器的通信进程之间的数据通信网络来操作,该虚拟磁盘通常是包含实际硬盘驱动器的每字节副本(byte per byte copy)的二进制文件,并且其包含运行终端的安装的操作系统,所述虚拟磁盘为多个用户终端提供对相同共享操作系统映像的访问。通信进程提供对终端的访问,该终端从数据存储读取,并且采用存储在由终端共享的虚拟磁盘驱动器映像的操作系统,直到OpenFileAsVDD函数被终端处理并且接着生成由终端发送到服务器的对应请求,基于该请求所述函数使得可能读取终端专用文件中的数据和复制基于“终端专用VDD”的覆盖(70、71或72)中的所述数据,并且给定终端对于给定的识别文件的后续的读和写操作由以下引导:
-到基于客户端RAM的覆盖70的通信驱动器进程或
-到基于服务器RAM的覆盖71的通信“服务器”进程或
-到基于服务器HDD的覆盖的通信“服务器”进程。
本发明对改进在以下情况下出现的困难具有实质优点:当试图布置具有运行基本相同进程的许多计算机或终端的网络数据处理系统时,特别在没有本地持久存储器(例如硬盘驱动器、闪速磁盘驱动器等)可用于所述计算机或终端时。优选地,为了数据存储效率,寻址技术(例如相同文件名和路径等)来寻址存储的数据,特别是客户端专用数据。在这方面,“数据”包括所有形式的存储信息,可执行信息或列表信息或其他信息
在瘦客户端网络的情况下,系统磁盘映像被放置在服务器40,并且有利地用于客户端终端从系统磁盘映像的内容自引导加载。服务器可以仅仅是另一个网络终端,但是如本文所述其装备有持久存储器(HDD,SAN等)、网络接口和操作进程。网络可以是LAN或WAN或因特网。根据一个实施例,虚拟连网系统磁盘由使用Neoware公司NVD协议(网络虚拟磁盘)的客户端共享。
NVD协议基本上是用户数据报上磁盘(Disk-Over-UDP)协议。特别地,其在虚拟磁盘上执行读和写函数。读/写函数可以为读或写指定开始扇区和许多扇区。可选地,读/写函数可以使用其他寻址细节。现有NVD协议具有用于执行某些机制的“打开”和“关闭”函数,所述机制减轻具有访问相同的逻辑磁盘驱动器的多个终端的某些问题。例如,多个客户端终端可以同时使用相同的虚拟硬盘驱动器(HDD),只要它们以“只读”模式“打开”HDD映像文件。当为只读访问打开文件时,文件内容可以以最近写入的内容被读取,但是由于写操作的顺序和时序因此存在一个问题。如果不协调,那么可能存在一个进程重写另一个进程所做变更的风险。为此,很难在不保留文件以防止其他进程访问的情况下保持将会允许多个终端的任何一个写入任何变更的配置文件,并且因此使文件不能由其他进程访问。
实际上写入到闪速PROM是相对慢的操作,例如用于启动瘦客户端终端的自引导加载。在嵌入式操作系统瘦客户端布置中,存储在客户端终端的闪速PROM中的信息被设置为从磁盘读取并且虚拟写入磁盘。然而,当信息被写入时,新的文件信息实际上指向RAM(可以是RAM磁盘)中的覆盖。如果读操作,闪速PROM。这使得客户端终端操作员和终端进程能够从PROM读取并且虚拟写入PROM。这种虚拟写入的信息在下次关机时丢失,或者正常关机进程可以被调用以重新加载和重写PROM。这需要在客户端终端从永久写入闪速PROM的信息初始化之前的至少一个重新引导操作。
网络级虚拟磁盘协议在多个客户端终端中共享非易失性硬驱动器。在这种系统中,写操作还可以将客户端终端的写操作导向到写覆盖区域。如果对相同信息的后续尝试是通过从覆盖而不是闪速PROM读取来处理的,则用虚拟磁盘可以获得与用闪速PROM相同的结果。覆盖的内容在客户端下一次掉电或重新引导时丢失。该技术在网络虚拟磁盘中特别可取。为了保持干净的安装和稳定的操作进程,管理员通常希望在客户端重新引导时擦除所有覆盖文件。因此,在操作会话期间由客户端终端所做出的变更或来自客户端终端的变更通常在客户端重新引导时丢失。
根据本发明,即使是客户端从相同的虚拟磁盘映像引导时,对于有利地对每个客户端不同的或在一些情况下必须对每个客户端不同的或至少对于至少两个客户端不同的数据,作出规定。必须或应当有区别的数据的示例如上描述,例如客户端终端名字、固定IP地址(如果有的话)和许可文件。DHCP一般在初始化时设置IP地址,即使在这种情况下有必要具有至少一个唯一的客户端终端标识符以在DHCP协议下报告。有利地,其他分类可能是唯一的,例如选择和配置参数和记录的密码等。如果通过重新引导循环进行存储,另外的其他分类可能是有帮助的,如临时文件和cookie等,但是也可以适当地省略。如果尝试使用虚拟硬驱动器或基本只读的闪存来存储可变但有利地唯一的客户端终端值,就会产生问题。
本发明的一个实施例包括对Neoware网络虚拟磁盘(NVD)协议的增加。除了NVD消息之外,虚拟磁盘,添加打开文件(与卷相反)的操作。命令(OpenFile或OpenFileAsVDD)可以打开不在虚拟磁盘上的文件。然而服务器(共享虚拟磁盘的服务器模块)可以访问该文件。该布置在图3中示意性示出。
NVD协议中的标准OpenVolume消息作用在代表内部卷的卷ID(序号)(服务器的内部卷ID)上。消息Read(读)、Write(写)和Close(关闭)使用卷ID。相应的操作实际上在相关卷上进行,所述相关卷即虚拟磁盘映像文件,几个客户端终端共用的数据分组。当客户端向卷发出消息时,其使用服务器已经在初始阶段发出的内部卷ID。
OpenFile操作与文件名一起使用。消息OpenFile可以返回可用作卷ID的ID代码(FID),即如上使用的数据分组标识符。如果客户端终端发送OpenFile指令并且服务器进程返回FID,则消息Read(RID)有效并且将读取客户端专用部份,即正确文件。相同情况发生在Write和Close命令。Read(读)、Write(写)和Close(关闭)命令是通常与卷ID而不是文件ID一起使用的相同命令。
按照前述方式,当客户端向服务器发出“OpenFile”时,服务器实际上打开与名字和请求的客户端相对应的文件。因此,同时将请求指向相同文件名(例如OpenFile(“LicenseFile.bin”))的的两个客户端实际上将打开两个不同的文件,即具有由FID修正的注释的(noted)名字的文件。
在图4和5中部分图示说明的示例中,假设客户端A发送OpenFile(“LicenseFile.bin”)。服务器实际上打开/usr/nvdd/clients/ClientA/LicenseFile.bin并且(例如)将文件ID1001返回到客户端A。然后如果另一名为客户端B的客户端发送使用同样的文件名的同样的OpenFile(“LicenseFile.bin”)请求,则服务器实际上打开/usr/nvdd/clients/ClientB/LicenseFile.bin并且将文件ID1002返回到客户端B。客户端B然后尝试文件读操作,例如“Readsector#63 in LicenseFile.bin”。客户端实际上发送“Read sector #63in volume 1001”。同样,如果客户端B发送消息“Read sector #63 inLicenseFile.bin”,则客户端B实际上发送的是“Read sector #63 involume 1002”,并且服务器实际上读取/usr/nvdd/clients/ClientB/LicenseFile.bin中的扇区#63。当然重点在于客户端A的文件LicenseFile.bin的内容可以不同于通过本发明的操作形成为不同文件的具有相同名字的客户端B的文件的内容。
本发明可以与“半易失性”特征一起使用,借此可以选择性地在正常关机时使对客户端专用文件的客户端变更变为永久的或者丢弃该变更并再次回到共同的共享文件中的版本或先前创建的客户端专用文件中的版本。
服务器可以被布置为根据不同的客户端类型“识别”每个客户端。部分识别可以为服务器使用不同信息作为不同种类的客户端终端的客户端ID做准备。任何客户端ID如果对网络中一个终端是唯一的则应该能用,例如MAC地址(例如硬件以太网地址)、唯一的名字(唯一的NetBIOS名字)和唯一的IP地址等。如所讨论的,终端及其用户均可以提供有不同的身份。
本发明还可用于其他HDD仿真系统。例如可以在HDD映像被存储在CD-R或DVD-R时使用本发明。那么负责“选择”正确文件的进程就不是“服务器”(由于在这种情况中没有服务器)而是负责仿真本身的驱动器之一,即实际上读和“写”扇区的驱动器。
已经公开了本发明以及示例说明本发明的示例性实施例及其典型功能。本发明不限于这些示例。应参考所附的权利要求书而不是示例的讨论来确定本发明的范围,其中要求保护独占的权利。

Claims (19)

1.一种用于操作数据处理系统的方法,包括:
维持多个操作实体可访问的数据存储,所述多个操作实体能够处理所述数据存储的内容;
将所述数据存储的至少一部分标记为可共享部分;
支持从所述数据存储到所述操作实体的读操作,且支持尝试从所述操作实体到所述数据存储的写操作,其中所述操作实体使用预定方法来选择要从所述数据存储读出和要写入所述数据存储的多个部份,包括所述数据存储的所述可共享部分,所述预定方法包括指定一标识,所述标识包括用于识别所选择的多个部份的名字和地址的至少其中之一;
其中多个所述操作实体使用根据所述预定方法的相同的所述标识来识别要读取和写入的所述数据存储的至少一个选定部分;且,
进一步包括建立所述数据存储的所述选定部分的版本,所述版本专用于给定操作实体并且经受相对于其他版本独立和专有的定制,所述其他版本是为同样使用相同的所述标识的一个或多个其他所述操作实体建立的并且提供给该一个或多个其他所述实体。
2.根据权利要求1所述的方法,包括在所述实体专用版本中存储信息,所述信息为使得所述给定操作实体能够相对于其他所述操作实体进行独立和不同的计算的配置、标识、偏好、授权和状态数据中的至少之一,并且进一步包括为所述数据存储中的所述计算提供代码,其中所述代码由所述操作实体共同执行,并且当共同执行所述代码时,多个所述操作实体的相应的所述实体专用版本中的信息为相应的所述实体定制所述计算。
3.根据权利要求1所述的方法,包括在所述数据存储中提供可共享部分和读写部分,并且在所述读写部分中维持所述实体专用版本。
4.根据权利要求3所述的方法,其中所述数据存储的读写部分的至少一部分位于易失性存储器中,并且所述方法进一步包括在位于非易失性存储器中的数据存储的读写部分中存储专用于每个操作实体的至少一些数据。
5.根据权利要求1所述的方法,其中所述操作实体包括客户端终端、网络终端、运行在所述客户端终端和所述网络终端的至少其中之一上的进程、所述客户端和网络终端之一的用户和由所述用户调用的进程中的至少一个。
6.根据权利要求1所述的方法,包括通过与所述操作实体中的一个对应的操作实体相关联的驱动器进程,访问所述数据存储以进行至少所述读和写操作。
7.根据权利要求1所述的方法,包括通过与响应于所述操作实体之一的服务器相关联的驱动器进程,访问所述数据存储以进行至少所述读和写操作。
8.根据权利要求1所述的方法,包括通过网络通信路径访问所述数据存储以进行至少所述读和写操作,使得所述数据存储远离所述操作实体中的一个对应的操作实体。
9.根据权利要求1所述的方法,其中用于寻址所述内容的约定包括扇区标识、文件名、目录、目录树、映射的驱动器和卷中的至少一个。
10.根据权利要求1所述的方法,其中在一个或多个操作实体专用存储区域中的所述写操作和提供对在该一个或多个操作实体专用存储区域中的数据的所述读操作包括:建立和采用不同的文件地址来区分由所述其中一个操作实体写入并且之后可能由所述其中一个操作实体读取的数据。
11.根据权利要求10所述的方法,其中所述不同的文件地址包含与所述其中一个操作实体相关联的标识符。
12.根据权利要求10所述的方法,进一步包括维持和参考将不同的文件地址与相应的所述操作实体相关联的交叉引用表格。
13.根据权利要求1所述的方法,其中对先前写入所述数据存储的一个实体专用部分的数据的写操作和读操作包含:可用于所述终端或终端用户其中之一并且用于根据操作系统或软件应用定制操作的终端标识值、终端配置信息、用户标识、安全授权、密码、软件许可信息、媒体许可信息、用户偏好和操作历史值中的至少一个。
14.根据权利要求1所述的方法,其中所述数据存储与终端设备相关联。
15.根据权利要求14所述的方法,其中所述终端设备具有构成所述操作实体的多个进程和多个用户中的其中之一。
16.根据权利要求1所述的方法,其中所述数据存储与网络服务器相关联。
17.根据权利要求16所述的方法,其中所述网络服务器与终端设备进行数据通信,所述终端设备具有构成所述操作实体的多个进程和多个用户中的其中之一。
18.根据权利要求17所述的方法,其中所述操作实体通过从与所述网络服务器相关联的数据存储下载数据来启动操作系统和应用程序中的至少一个。
19.根据权利要求1所述的方法,其中所述操作实体中的至少一个通过从与其耦合的存储介质读取数据来启动操作系统或应用程序中的至少一个。
CN2007800165375A 2006-05-09 2007-05-09 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容 Expired - Fee Related CN101449268B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/382,304 2006-05-09
US11/382,304 US8332370B2 (en) 2006-05-09 2006-05-09 Maintaining commonly named client-specific file content in hard disk drive emulation
PCT/US2007/068583 WO2007134116A2 (en) 2006-05-09 2007-05-09 Maintaining commonly named client-specific file content in hard disk drive emulation

Publications (2)

Publication Number Publication Date
CN101449268A true CN101449268A (zh) 2009-06-03
CN101449268B CN101449268B (zh) 2011-12-14

Family

ID=38686335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800165375A Expired - Fee Related CN101449268B (zh) 2006-05-09 2007-05-09 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容

Country Status (5)

Country Link
US (1) US8332370B2 (zh)
EP (1) EP2016515A4 (zh)
KR (1) KR101313511B1 (zh)
CN (1) CN101449268B (zh)
WO (1) WO2007134116A2 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103809998A (zh) * 2012-11-05 2014-05-21 Lsi公司 从操作系统安装映像的快照启动多台服务器的系统和方法
CN103886006A (zh) * 2012-12-21 2014-06-25 国际商业机器公司 基于用户分开管理介质中的文件的方法及其存储系统
CN104331375A (zh) * 2014-10-29 2015-02-04 中国建设银行股份有限公司 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置
WO2015067074A1 (zh) * 2013-11-07 2015-05-14 华为技术有限公司 一种数据读取的方法及装置
CN107592340A (zh) * 2017-08-16 2018-01-16 联想(北京)有限公司 远程操作管理服务器的方法和设备
CN108287662A (zh) * 2017-12-08 2018-07-17 五八有限公司 获取设备唯一标识的方法、设备及计算机可读存储介质
CN108377308A (zh) * 2017-01-30 2018-08-07 佳能株式会社 图像处理装置及其控制方法和存储介质
CN108431797A (zh) * 2015-12-28 2018-08-21 微软技术许可有限责任公司 电子文档的存储器节约的版本控制
CN109379405A (zh) * 2018-09-14 2019-02-22 深圳市京华科讯科技有限公司 虚拟磁盘构建方法、虚拟磁盘系统及网盘
CN112154417A (zh) * 2018-05-21 2020-12-29 微软技术许可有限责任公司 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库
CN113721837A (zh) * 2021-07-14 2021-11-30 中国科学院信息工程研究所 基于bios的存储介质信息消除方法和装置
CN114207607A (zh) * 2020-06-30 2022-03-18 斯诺弗雷克公司 支持非结构化、半结构化和结构化文件

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312267B2 (en) 2004-07-20 2012-11-13 Time Warner Cable Inc. Technique for securely communicating programming content
US8266429B2 (en) 2004-07-20 2012-09-11 Time Warner Cable, Inc. Technique for securely communicating and storing programming material in a trusted domain
US8909746B2 (en) * 2006-07-25 2014-12-09 Nvidia Corporation System and method for operating system installation on a diskless computing platform
US9003000B2 (en) * 2006-07-25 2015-04-07 Nvidia Corporation System and method for operating system installation on a diskless computing platform
US20080028034A1 (en) * 2006-07-25 2008-01-31 Andrew Currid Method for mapping an iscsi target name to a storage resource based on an initiator hardware class identifier
US8520850B2 (en) 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US8732854B2 (en) 2006-11-01 2014-05-20 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
US8239674B2 (en) * 2006-11-21 2012-08-07 Kabushiki Kaisha Toshiba System and method of protecting files from unauthorized modification or deletion
JP4930010B2 (ja) * 2006-11-24 2012-05-09 株式会社日立製作所 シンクライアントシステムへの移行方法
US8621540B2 (en) 2007-01-24 2013-12-31 Time Warner Cable Enterprises Llc Apparatus and methods for provisioning in a download-enabled system
JP5290287B2 (ja) * 2008-05-29 2013-09-18 株式会社シー・オー・コンヴ ネットワークブートシステム
KR100988111B1 (ko) * 2008-11-03 2010-10-18 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 많은 사용자가하나의 리소스 공유로 어플리케이션 실행이 불가능한 경우리소스 가상화를 통해 이를 실행하는 장치 및 그 방법
US20100146039A1 (en) * 2008-12-08 2010-06-10 Dell Products L.P. System and Method for Providing Access to a Shared System Image
US20100174894A1 (en) * 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
US8285821B2 (en) * 2009-02-10 2012-10-09 Lenovo (Singapore) Pte. Ltd. Method, apparatus, and system of forward caching for a managed client
US9524396B2 (en) * 2009-04-16 2016-12-20 International Business Machines Corporation System that maintains objects created and modified within designated directories on a per-client basis in a network filesystem
US8069217B2 (en) * 2009-04-16 2011-11-29 Dell Products L.P. System and method for providing access to a shared system image
US9805041B2 (en) * 2009-05-04 2017-10-31 Open Invention Network, Llc Policy based layered filesystem management
DE112009004772T5 (de) * 2009-05-13 2012-10-04 Hewlett-Packard Development Co., L.P. System für eine steuerung der version von virtuellen platten
US9602864B2 (en) 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US9866609B2 (en) 2009-06-08 2018-01-09 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
KR101307342B1 (ko) * 2009-12-21 2013-09-11 한국전자통신연구원 가상머신 간의 데이터 공유 시스템 및 그 방법
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
KR101008554B1 (ko) 2010-07-15 2011-01-14 엑스투씨앤씨(주) 클라우드 방식의 파일 복사 및 광역 통신망을 통한 디스크 복제 시스템 및 그 방법
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US8775575B2 (en) * 2010-11-03 2014-07-08 International Business Machines Corporation Differentiating image files in a networked computing environment
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US8725782B2 (en) 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519496B2 (en) * 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US9858149B2 (en) * 2012-01-03 2018-01-02 Microsoft Technology Licensing, Llc Accessing overlay media over a network connection
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US9565472B2 (en) 2012-12-10 2017-02-07 Time Warner Cable Enterprises Llc Apparatus and methods for content transfer protection
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US10368255B2 (en) 2017-07-25 2019-07-30 Time Warner Cable Enterprises Llc Methods and apparatus for client-based dynamic control of connections to co-existing radio access networks
US9066153B2 (en) 2013-03-15 2015-06-23 Time Warner Cable Enterprises Llc Apparatus and methods for multicast delivery of content in a content delivery network
US9313568B2 (en) 2013-07-23 2016-04-12 Chicago Custom Acoustics, Inc. Custom earphone with dome in the canal
WO2015033388A1 (ja) * 2013-09-03 2015-03-12 株式会社東芝 情報処理システム、サーバ装置、情報処理方法及びプログラム
US9621940B2 (en) 2014-05-29 2017-04-11 Time Warner Cable Enterprises Llc Apparatus and methods for recording, accessing, and delivering packetized content
US11540148B2 (en) 2014-06-11 2022-12-27 Time Warner Cable Enterprises Llc Methods and apparatus for access point location
US9632700B2 (en) 2014-07-02 2017-04-25 International Business Machines Corporation Managing a shared storage system using hardware identifiers to deter data/file corruption
US9807164B2 (en) * 2014-07-25 2017-10-31 Facebook, Inc. Halo based file system replication
US9935833B2 (en) 2014-11-05 2018-04-03 Time Warner Cable Enterprises Llc Methods and apparatus for determining an optimized wireless interface installation configuration
US9767118B2 (en) * 2014-12-01 2017-09-19 Dell Products, Lp Optimized UEFI file system with network file system compound statements
US9940258B2 (en) * 2015-11-09 2018-04-10 International Business Machines Corporation Implementing hardware accelerator for storage write cache management for merging data with existing data on fast writes to storage write cache
US9986578B2 (en) 2015-12-04 2018-05-29 Time Warner Cable Enterprises Llc Apparatus and methods for selective data network access
US9918345B2 (en) 2016-01-20 2018-03-13 Time Warner Cable Enterprises Llc Apparatus and method for wireless network services in moving vehicles
US10492034B2 (en) 2016-03-07 2019-11-26 Time Warner Cable Enterprises Llc Apparatus and methods for dynamic open-access networks
US10164858B2 (en) 2016-06-15 2018-12-25 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and diagnosing a wireless network
US10474629B2 (en) * 2016-09-28 2019-11-12 Elastifile Ltd. File systems with global and local naming
KR102340637B1 (ko) * 2017-05-12 2021-12-20 엔에이치엔 주식회사 모바일 클라우드 시스템 및 그 동작 방법
US10645547B2 (en) 2017-06-02 2020-05-05 Charter Communications Operating, Llc Apparatus and methods for providing wireless service in a venue
US10638361B2 (en) 2017-06-06 2020-04-28 Charter Communications Operating, Llc Methods and apparatus for dynamic control of connections to co-existing radio access networks
CN109934754B (zh) * 2019-03-18 2021-09-14 重庆替比网络科技有限公司 一种用于行业监管与服务的信息发布系统
US20230055285A1 (en) * 2021-08-19 2023-02-23 Lenovo (Singapore) Pte. Ltd. Secure erase of user data using storage regions

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727504B2 (ja) * 1990-12-10 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション ネットワークの構成を定義するシステム、ネットワークのための構成パラメータを生成する方法及びネットワークを構成するためのシステム
US6175363B1 (en) * 1998-05-29 2001-01-16 Hewlett-Packard Company Method and system to provide functionality access based on user approach to network and system management tasks
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US6553408B1 (en) * 1999-03-25 2003-04-22 Dell Products L.P. Virtual device architecture having memory for storing lists of driver modules
US6538669B1 (en) * 1999-07-15 2003-03-25 Dell Products L.P. Graphical user interface for configuration of a storage system
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
US6968350B2 (en) * 2001-04-07 2005-11-22 Microsoft Corporation Method for establishing a virtual hard drive for an emulated computer system running on a host computer system
US6999913B2 (en) * 2002-12-10 2006-02-14 John Alan Hensley Emulated read-write disk drive using a protected medium
FR2867869B1 (fr) 2004-03-16 2006-06-30 Qualystem Technology Procede pour l'emulation logicielle de disques durs d'une plate forme informatique au niveau du systeme d'exploitation avec gestion parametrable a la volee des requetes d'ecriture et de lecture

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103809998A (zh) * 2012-11-05 2014-05-21 Lsi公司 从操作系统安装映像的快照启动多台服务器的系统和方法
CN103886006A (zh) * 2012-12-21 2014-06-25 国际商业机器公司 基于用户分开管理介质中的文件的方法及其存储系统
CN103886006B (zh) * 2012-12-21 2017-08-29 国际商业机器公司 基于用户分开管理介质中的文件的方法及其存储系统
WO2015067074A1 (zh) * 2013-11-07 2015-05-14 华为技术有限公司 一种数据读取的方法及装置
CN104331375A (zh) * 2014-10-29 2015-02-04 中国建设银行股份有限公司 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置
CN108431797A (zh) * 2015-12-28 2018-08-21 微软技术许可有限责任公司 电子文档的存储器节约的版本控制
CN108431797B (zh) * 2015-12-28 2021-10-08 微软技术许可有限责任公司 电子文档的存储器节约的版本控制
CN108377308A (zh) * 2017-01-30 2018-08-07 佳能株式会社 图像处理装置及其控制方法和存储介质
US11600090B2 (en) 2017-01-30 2023-03-07 Canon Kabushiki Kaisha Image processing apparatus, control method therefor, and storage medium
CN107592340A (zh) * 2017-08-16 2018-01-16 联想(北京)有限公司 远程操作管理服务器的方法和设备
CN107592340B (zh) * 2017-08-16 2020-12-18 联想(北京)有限公司 远程操作管理服务器的方法和设备
CN108287662A (zh) * 2017-12-08 2018-07-17 五八有限公司 获取设备唯一标识的方法、设备及计算机可读存储介质
CN112154417A (zh) * 2018-05-21 2020-12-29 微软技术许可有限责任公司 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库
CN109379405A (zh) * 2018-09-14 2019-02-22 深圳市京华科讯科技有限公司 虚拟磁盘构建方法、虚拟磁盘系统及网盘
CN114207607A (zh) * 2020-06-30 2022-03-18 斯诺弗雷克公司 支持非结构化、半结构化和结构化文件
CN114207607B (zh) * 2020-06-30 2023-03-31 斯诺弗雷克公司 支持非结构化、半结构化和结构化文件
CN113721837A (zh) * 2021-07-14 2021-11-30 中国科学院信息工程研究所 基于bios的存储介质信息消除方法和装置

Also Published As

Publication number Publication date
US20070266027A1 (en) 2007-11-15
EP2016515A2 (en) 2009-01-21
KR20090057942A (ko) 2009-06-08
KR101313511B1 (ko) 2013-10-01
CN101449268B (zh) 2011-12-14
WO2007134116A3 (en) 2008-08-28
EP2016515A4 (en) 2011-04-20
WO2007134116A9 (en) 2008-12-24
WO2007134116A2 (en) 2007-11-22
US8332370B2 (en) 2012-12-11

Similar Documents

Publication Publication Date Title
CN101449268B (zh) 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容
EP1449105B1 (en) Localized read-only storage device for distrubuting files over a network
US7257584B2 (en) Server file management
US8060542B2 (en) Template-based development of servers
US8010513B2 (en) Use of server instances and processing elements to define a server
US20060173912A1 (en) Automated deployment of operating system and data space to a server
US8543797B1 (en) Managed desktop system
US6606651B1 (en) Apparatus and method for providing direct local access to file level data in client disk images within storage area networks
US20020029348A1 (en) Smart card security information configuration and recovery system
US20020059471A1 (en) Method and apparatus for handling policies in an enterprise
JP2003177947A (ja) ファイル空間管理の方法とシステム
US20080120403A1 (en) Systems and Methods for Provisioning Homogeneous Servers
TW202004514A (zh) 雲端服務之權限管理方法及其系統
US8838947B2 (en) Manufacturing information handling systems
US7844833B2 (en) Method and system for user protected media pool
US11385919B1 (en) Machine image launch system
US7069351B2 (en) Computer storage device having network interface
US20090063620A1 (en) Novel method and system for controlling access to features of a software program
US7890575B1 (en) Dynamic persistent user management in delegated environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111214

Termination date: 20190509