CN103733187A - 基于令牌的文件操作 - Google Patents

基于令牌的文件操作 Download PDF

Info

Publication number
CN103733187A
CN103733187A CN201280039140.9A CN201280039140A CN103733187A CN 103733187 A CN103733187 A CN 103733187A CN 201280039140 A CN201280039140 A CN 201280039140A CN 103733187 A CN103733187 A CN 103733187A
Authority
CN
China
Prior art keywords
file
data
token
request
response
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.)
Pending
Application number
CN201280039140.9A
Other languages
English (en)
Inventor
N·R·克里斯滕森
D·L·格林
J·T·平克顿
R·纳加
B·S·马修
J·K·艾塔尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN103733187A publication Critical patent/CN103733187A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

描述了允许基于令牌的文件操作的各实施例。客户机可以请求根据文件访问协议格式化的特定卸载文件操作。文件操作可以是卸载读出操作或卸载写入操作。在卸载读出操作中,客户机请求将数据从所存储的文件或其部分中逻辑地读出。作为响应,文件服务器提供响应,该响应包括表示逻辑地读出的数据的令牌。在某些实施例中,如果出于某种原因,文件服务器无法提供表示所请求的全部数据的令牌,则它可以返回具有表示少于该全部的数据的令牌的响应。该令牌随后可被客户机在后续的卸载写入操作中使用。在各实施例中,令牌表示可以跨各服务器和客户机可靠和安全地使用的不可变数据。

Description

基于令牌的文件操作
背景
在复制大量数据的传统方式中,将数据从源文件读出到本地RAM中,并随后将这些相同的字节从RAM写回到目的地文件。这个过程需要数据行进包括本地RAM在内的路线,即使该复制的完成没有固有地要求该数据曾经处于本地RAM中。当在最终的源和最终的目的地之间存在该数据可采用的可信的较快速路线时,通过本地RAM的弯路不是必须的。这个问题在可信的较快速路线与经由本地RAM的路线之间的速度差异较大时更为严重。当前,某些文件服务器(诸如,服务器消息块(SMB)文件服务器)允许客户机将源文件的各范围复制到目的地文件的各范围中。然而,存在大量限制,诸如关于在文件服务器上打开的各文件之间复制数据的限制。同样,SMB文件服务器仅允许客户机发出指定源范围和目的地范围两者的单个命令。通常,客户机代码结构将被设置为单独地使用读出和写入来实现复制,这与SMB文件服务器提供的用于复制数据范围的当前方式不一致。
各实施例正是对于这些和其它考虑事项而作出的。而且,尽管讨论了相对具体的问题,但是应当理解,各实施例不应被限于解决本背景技术中所标识的具体问题。
概述
提供本概述来以简化形式介绍将在以下详细描述部分中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
描述了允许基于令牌的文件操作的各实施例。这些实施例供客户机与文件服务器建立会话。该会话可以使用任何文件访问协议来建立,一个示例包括服务器消息块(SMB)协议。在建立了会话之后,客户机可以请求根据该文件访问协议来格式化的专用卸载文件操作。该文件操作可以是读出操作或写入操作。在卸载读出操作中,客户机请求将从文件中读出的文件数据存储在该文件服务器可访问的文件存储系统中。回过来,文件服务器将提供包括表示该文件数据的令牌的响应。在某些实施例中,在出于某些原因文件服务器无法提供表示全部文件数据的令牌的情况下,它可以返回具有表示少于全部文件数据的令牌的响应。令牌随后可被客户机用在后续的卸载写入操作或(例如,随后获取该令牌所表示的数据应变得必要的)其他相关操作中。在各实施例中,这些令牌表示可以跨各服务器和客户机可靠并安全地使用的不可变数据。
各实施例可被实现为计算机进程、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。
附图简述
参考以下附图描述非限制性和非穷尽的实施例。
图1示出了可用于实现各实施例的系统。
图2示出了根据某些实施例的使用文件访问协议来参与基于令牌的文件操作的各客户机和服务器的框图。
图3示出了根据某些实施例的用于处理卸载文件操作的操作流程。
图4示出了根据某些实施例的用于处理卸载读出请求的操作流程。
图5示出了根据某些实施例的用于处理卸载写入请求的操作流程。
图6示出了根据某些实施例的用于请求卸载文件操作的操作流程。
图7示出了适于实现各实施例的计算环境的框图。
详细描述
以下将参考形成本发明一部分并示出各具体示例性实施例的附图更详尽地描述各个实施例。然而,各实施例可以以许多不同的形式来实现,并且不应将其解释为限制此处所阐述的各实施例;相反地,提供这些实施例以使得本公开变得透彻和完整,并且将这些实施例的范围完全传达给本领域普通技术人员。各实施例可按照方法、系统或设备来实施。因此,这些实施例可采用硬件实现形式、全软件实现形式或者结合软件和硬件方面的实现形式。因此,以下详细描述并非是限制性的。
图1示出了可用于实现某些实施例的系统100。系统100包括客户机102和104以及服务器106。客户机102和104通过网络108与服务器106通信。服务器106存储通过客户机102和104上的应用来访问的信息。客户机102和104建立与服务器106的会话以访问该服务器106上的信息。尽管在图1中,仅有客户机102和104被示为与服务器106通信,但是在其他实施例中,可以存在两个以上客户机访问来自服务器106的信息。
在各实施例中,客户机102和104上的各应用请求来自文件系统的对该应用透明的文件信息。这些文件信息是从服务器106上的文件系统中获取的。在一实施例中,服务器106上的这样的文件系统是远程文件系统。在另一实施例中,服务器106上的文件系统是分布式文件系统。根据此处所公开的各实施例可以使用多种类型的文件系统,而不背离本公开的精神和范围。此外,虽然未被示出,但在某些实施例中,取代单个服务器106,该服务器可以是例如多个服务器中作为服务器群集的一部分的一个服务器。在其他实施例中,该服务器可以是多个服务器中不作为服务器群集的一部分的一个服务器。多个文件服务器在这样的实施例中为客户机102和104提供信息(例如文件信息)的冗余性和高可靠性。
在一个实施例中,客户机102和104可以发送要存储在服务器106上的远程文件系统中的各文件执行的多个文件操作。客户机102和104使用文件访问协议来格式化对要对这些文件执行的文件操作的请求。文件访问协议可以是任何合适的协议,诸如网络文件系统(NFS)或服务器消息块(SMB)协议的一个版本。根据某些实施例,客户机除了发送常规的读出文件操作和写入文件操作之外,还可以请求卸载读出操作和卸载写入操作,这些操作是基于令牌的操作。如以下更详细描述的,卸载文件操作允许大量数据被客户机102和104移动,而无需通过网络将实际的数据转移到客户机102或104任一上的本地RAM中。
为了示出一个实施例,客户机102可以发送建立与服务器106的会话的请求。例如,客户机102可以使用服务器消息块(SMB)协议的一个版本建立与服务器106的会话以访问存储在服务器106上的文件系统。会话的建立可以涉及对在客户机102和服务器106之间传输的多个协商请求和响应的交换。在SMB协议的各版本中,存在专门定义的协商分组,该专门定义的协商分组被用来协商会话期间将要使用的协议的确切版本以及就客户机(例如,102)和服务器(例如,106)二者的能力对彼此作广告。在一个实施例中,协商分组可以包括服务器106可以处理基于令牌的文件操作(即,卸载读出和卸载写入命令)的指示。这允许客户机知道它可以在需要的情况下请求来自服务器的卸载文件操作。继续以上的示例,在建立了会话之后,客户机102可以将根据SMB协议格式化的消息发送给服务器106,以便在服务器106上的文件系统中打开文件。该服务器可以用针对该文件打开的句柄来作出响应。客户机102可以随后请求根据SMB协议格式化的卸载读出操作,以请求来自该文件的文件数据。在一实施例中,客户机以卸载读出操作来请求来自该文件的一部分的数据。该卸载读出操作请求是基于令牌的读出操作。
响应于来自客户机102的请求,服务器106发送根据SMB协议来格式化的、具有表示客户机102所请求的文件数据的令牌的响应。在某些实施例中,服务器106可以负责生成该令牌,并确保该令牌跨来自其他客户机(诸如,可能请求同一文件数据的客户机104)的任何请求一致地表示该文件数据。在其他实施例中,文件服务器可以将来自客户机的任何请求传递到底层的文件存储系统。在这些实施例中,底层的文件存储系统负责生成表示客户机102所请求的文件数据的令牌。在任一实施例中,服务器106将向客户机102发送具有令牌的响应。在生成令牌时,各实施例假设例如即使在用于生成令牌的源文件的范围不连续的情况下,也可以创建令牌。在这样的实施例中,来自这样的源范围的数据在逻辑上被连接成该令牌所表示的数据的单个逻辑范围。在某些实施例中,各实现可以在本质上使令牌与各特定源范围关联,其中这样的源范围可以不彼此连续。
该令牌表示不可变数据,即客户机102所表示的文件数据。因此,客户机102可以使用服务器106所返回的令牌来执行其他文件操作。例如,在稍后的时间点,客户机102可以使用该令牌来将数据写入到另一文件中。在这个示例中,客户机102可以请求根据SMB协议来格式化的卸载写入操作,其中卸载写入操作也是基于令牌的文件操作。卸载写入操作可以包括之前向客户机102提供的令牌。卸载写入操作可以请求将该令牌所表示的文件数据写入到服务器106上的另一文件中。在一实施例中,响应于接收到该请求,服务器106将随后通过将该令牌所表示的文件数据写入到服务器106上的其他文件中来处理该请求。在另一实施例中,响应于接收到该请求,服务器106将首先使接收到的令牌生效,并且如果令牌有效,服务器106将随后将该令牌所表示的文件数据写入到服务器106上的其他文件中。如上所述,在这些令牌由底层的文件存储系统或较低层生成的那些实施例中,服务器106将仅将卸载文件请求传递到底层的文件存储系统,该底层的文件存储系统随后将处理该请求并将文件数据写入到其他文件中。服务器106将随后向客户机102发送指示卸载写入是否成功的响应。尽管提及了“文件”数据,但其他实施例规定令牌表示任何类型的数据。例如,各实施例规定令牌已从任何存储容器(诸如,文件、卷、盘、卷快照、盘快照、团块存储等)中被获取。术语“文件数据”在此出于说明的目的被使用,而非旨在进行限制。此外,尽管前面讨论的实施例规定卸载写入操作请求将该令牌所表示的文件数据写入到服务器106上的另一文件中,但另一实施例规定卸载写入操作请求将该令牌所表示的文件数据的一部分写入到服务器106上的另一文件中。
此外,尽管前面讨论的各实施例规定卸载写入操作包括之前向客户机102提供的令牌,其他实施例规定客户机102将公知的令牌用作具有卸载写入操作的令牌。例如,诸如零令牌之类的公知令牌可用于在没有任何在前的相应卸载读出的情况下写入数据(诸如,零)。
在某些实施例中,文件服务器106可能能够为客户机所请求的所有文件数据创建令牌。这可以例如在另一客户机(诸如,客户机104)在客户机102所请求的文件数据范围的某一部分上具有锁的情况下发生。在这些实施例中,服务器106可以发送经截短的响应。即,包括表示客户机102所请求的文件数据的仅一部分的令牌的响应。在各实施例中,该响应因此指示该令牌表示少于卸载读出请求中所请求的所有第一数据。在某些实施例中,该令牌可表示不连续的数据范围。然而,在其他实施例中,令牌可以表示连续的数据范围,但该令牌可能少于客户机102在卸载读出请求中所请求的文件数据。在这些实施例中,服务器响应将包括使该令牌所表示的文件数据的部分在经截短的响应中发送的指示。
尽管某些实施例规定了经截短的卸载读出响应,但本公开的各实施例还规定了经截短的卸载写入。如上所述,卸载写入操作可以请求将相关联的令牌所表示的数据写入到服务器(例如,服务器106)上的另一文件中。响应于接收到该请求,服务器106将随后通过将该令牌所表示的文件数据写入到服务器106上的其他文件中来处理该请求。在各实施例中,服务器106无法将该令牌所表示的所有数据写入到该其他文件中。结果,在各实施例中,卸载写入可以被截短,其中例如“LengthWritten(所写入的长度)”小于请求写入的长度。例如,尺寸限制可以限制将令牌所表示的所有数据写入到其他文件中的能力。在另一实施例中,在要被写入的文件的一部分上的锁可以防止文件的该部分被写入。处理错误或其他类型的错误也可以导致令牌所表示的数据的各部分没有被写入到其他文件中。此外,该令牌可能被部分破坏或者是部分无效的,在该令牌中,服务器106无法将该数据的被破坏的/无效的部分成功地写入到其他文件中。根据此处所公开的各实施例,其他理由可以防止将令牌所表示的所有数据写入到其他文件中,而不背离本公开的精神和范围。在涉及经截短的卸载写入的各实施例中,可以将指示数据的一部分未被写入到其他文件中的经截短的卸载写入响应从服务器106发送到客户机102。在各实施例中,这样的指示可以通过对例如标志或其他指示符的使用而出现。此外,在各实施例中,经截短的卸载写入响应指示实际上写入了多少数据。
前述描述仅仅是图1所示的实施例可以如何操作的一个示例。如以下将更详细地描述的,各实施例可以包括不同的步骤或操作。这些实施例可以使用任何合适的软件或硬件组件来实现。
现在转到图2,图2示出了软件环境200的框图,软件环境200具有客户机202、客户机204、服务器206和服务器208。还示出了存储文件信息的文件存储210。
如图2中所示,客户机202和客户机204各自包括可以请求文件信息的应用。该应用可以是例如文字处理应用、电子表格应用、浏览器应用或者请求对文件的访问的任何其他应用。在图2中所示的实施例中,这些文件位于存储在文件存储210中的文件系统中。尽管根据此处所公开的一个实施例,图2示出文件存储210为服务器206和208提供共享的存储能力,其他实施例具有其他存储装置。例如,根据各实施例,服务器206和208可各自具有它们自己的存储装置(分离的或者是附连的)。在又一些实施例中,服务器206和服务器208可各自具有它们自己的存储装置,并且通过对文件存储210的使用而具有共享存储能力。根据此处所公开的各实施例可以使用多种类型的存储,而不背离本公开的精神和范围。客户机202和客户机204各自还包括把对文件的请求从这些应用重定向到文件服务器的重定向器,该文件服务器提供对远程文件系统的访问。重定向器使用文件访问协议与文件服务器通信。在一些实施例中,文件访问协议可以是NFS或SMB协议的一个版本。出于说明的目的,将在假设客户机202和客户机204中的重定向器使用SMB协议的一个版本(诸如,SMB2.0)与各文件服务器通信的情况下描述图2。然而,各实施例并不限于使用SMB协议。
服务器206和208在图2中被示为各自包括文件服务器。如上所述,文件服务器可以使用SMB协议的一个版本来与客户机202和客户机204上的重定向器通信。服务器206和208中的每一个还包括生成表示文件数据的各令牌的令牌生成器模块。此外,文件存储210也包括用于生成表示文件数据的各令牌的令牌生成器模块。
使用SMB协议在客户机和服务器之间建立会话开始于重定向器(诸如客户机202上的重定向器)向文件服务器(诸如服务器206)发送协商请求。重定向器和文件服务器交换协商分组以协商将用于该会话的SMB的版本。此外,在协商期间,还可以交换能力。在一个实施例中,服务器206可以在从文件服务器发送到客户即的协商响应分组中包括能力标志,以向客户机指示该文件服务器支持对卸载文件操作的使用。在其他实施例中,客户机202和服务器206可以简单地协商SMB协议的版本,应理解,该版本包括对卸载文件操作的使用的支持。在又一些实施例中,该协议的版本支持各卸载文件操作的判定在一卸载文件操作被尝试时发生。例如,客户机202可请求卸载读出(或卸载写入)操作。如果服务器206支持卸载文件操作,则服务器206将继续处理该请求。如果服务器206不支持卸载文件操作,则服务器206将向客户机202发送指示所请求的卸载文件操作无法被执行的响应。例如,在一实施例中,如果服务器206不支持卸载文件操作,则服务器206用错误消息和/或指示此错误消息的标志来响应于客户机202。
一旦完成该协商,客户机202上的重定向器和文件服务器206就建立会话。客户机重定向器随后可以向文件服务器发送文件访问请求。在一个实施例中,客户机202上的重定向器请求对文件的打开。服务器206向响应提供针对该打开的句柄。客户机202随后可以使用该句柄来请求卸载读出操作。在各实施例中,卸载读出操作是根据SMB协议来格式化的。在某些实施例中,通过将卸载读出操作和卸载写入操作以与其他文件系统控制命令(FSCTL)相同的方式封装在SMB2输入/输出控制(IOCTL)请求中来使用SMB协议连接发送这些命令。以下是在某些实施例中可用于请求卸载读出操作的结构的示例。
如以上所指示的,客户机用来请求卸载读出操作的结构可包括多个字段。在各实施例中,它可包括服务器的存活时间建议。换言之,该字段可以指示该服务器将发送的令牌的建议寿命。它还包括客户机所请求的文件数据的文件偏移和复制长度。
响应于该请求,服务器206将发送回一响应。以下是可用于对卸载读出操作作出响应的结构的示例。
Figure BDA0000464757040000091
如上所示出的,在各实施例中,该响应将包括表示客户机202所请求的文件数据的令牌。在各实施例中,该令牌将还包括该令牌所表示的文件数据的长度。
在某些实施例中,服务器206可以用失败或该卸载读出请求被处理成较小的程度的指示来对该读出请求作出响应。以下是可以由服务器设置在卸载读出响应中的三个标志,以向客户机指示附加信息。
#define
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE(1)
#define OFFLOAD_READ_FLAG_FILE_TOO_SMALL(2)
#define
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE(4)
以上列出的第二个标志指示由于文件太小该请求失败了。可能存在小文件的文件数据有效载荷被直接存储在文件记录中,而非被存储在各分开的群集中的情况。对于这样的文件,从相应的小型卸载读出中将获得很小的效率,因此不是处理对这样的文件的小型卸载读出,而是源文件系统可以使该卸载读出失败,并且响应可以包括以上定义的第二个标志,该第二个标志指示由于文件数据太小该请求失败了。以上所定义的第一个标志指示超过卸载读出响应所指示的传输长度的剩余数据包括全零。最后,第三个标志可以在其中服务器判定超过卸载读出响应所指示的传输长度的各卸载读出请求将不成功的那些场合中使用。第三个标志指示服务器将无法为超过当前卸载读出响应所指示的范围的、客户机所请求的数据提供令牌。虽然未示出,但卸载读出响应还可以提供诸如所返回的子部分表示非连续数据(而非只是从偏移0开始的连续字节计数)的指示之类的信息。在各实施例中,卸载读出响应还可以包含关于针对其卸载读出可以成功的下一后续源偏移的提示。尽管以上提供的三个标志包括针对这些标志的数值,但这些数值是出于说明的目的而被提供的。根据各实施例,可以使用其他数值或常用的值,而不背离本公开的精神和范围。
一旦客户机202通过先前的卸载读出请求或通过某些其他方式接收到了令牌,客户机202就可以向服务器206发出卸载写入请求。以下是在各实施例中可供客户机用来发送卸载写入请求的结构的示例。
Figure BDA0000464757040000101
如在以上示例中所指示的,卸载写入的结构包括要复制到的目的地文件的偏移、要复制的数据的长度以及从其开始复制的位置在令牌所表示的数据内的偏移。还包括有该令牌,该令牌可能已从服务器处或者被其他装置接收。
响应于该卸载写入请求,服务器206发出卸载写入响应。以下提供了供服务器206在卸载写入响应中使用的结构的示例。
Figure BDA0000464757040000102
在某些实施例中,服务器206可以用失败来响应于卸载写入请求。例如,在所请求的文件是例如低于所定义的尺寸阈值的小型文件的情况下,卸载写入操作可能失败。以下是可由服务器设置在卸载写入响应中的、用于指示该请求由于文件信息太小而失败的标志的示例。如前所述,小型文件可以与较大文件不同地存储它们的数据,并且使得向这样的小型文件发出的卸载请求失败可能更合适,因为使用令牌而非实际的文件数据将获得非常小的效率。在另一实施例中,在卸载写入操作的接收方和数据源之间的链路较慢的情况下,该卸载写入可能失败。在这样的实施例中,文件系统可以在判定是否对卸载写人请求作出响应时执行链路状态检查。在这样的示例情况下,服务器206可能使卸载写入请求失败。在又一些实施例中,服务器206可能由于无效的令牌而使该请求失败。例如,在令牌期满的情况下,该令牌可能是无效的。在该服务器由于无效/期满的令牌而使请求失败的情况下,服务器206可以用失败来对卸载写入请求作出响应,其中一标志(如以下被示为示例标志)可被服务器设置在卸载写入响应中,以指示由于令牌是例如无效或期满的,因此该请求失败。这种类型的标志可以充当给客户机的如下暗示:写入操作的简单重试不会起作用,而必需重新读来生成新的令牌(即,该失败不是由链路的临时慢速引起的,而是由例如该令牌为无效引起的)。在替换实施例中,可以返回具体状态以指示给定令牌不再有效。因此,各实施例规定返回状态被用于指示令牌不再有效,而其他实施例规定标志被用于提供这样的指示。又一些实施例规定标志和返回状态两者被用于提供这样的指示。例如,对于由例如令牌期满而非错误代码引起的各截短,操作可以向FSCTL的调用者返回具有经截短的值的成功以及指示使用相同的令牌来重试卸载写入的其余部分是没用的标志(例如,OFFLOAD_WRITE_FLAG_TOKEN_INVALID)。根据此处所公开的各实施例,多个其他类型的条件可以导致卸载写入失败,而不背离本公开的精神和范围。
#define OFFLOAD_WRITE_FLAG_FILE_TOO_SMALL(1)
#define OFFLOAD_WRITE_FLAG_TOKEN_INVALID(2)
尽管以上提供的各标志包括这些标志的数值,但这些数值是出于说明的目的而提供的。根据各实施例,可使用其他数值或常用的值,而不背离本公开的精神和范围。
此外,如上所述,某些实施例规定卸载写入要被截短,其中例如LengthWritten(所写入的长度)小于请求写入的长度。在这样的实施例中,服务器用经截短的卸载写入响应来对卸载写入请求作出响应,以指示实际上仅写入了请求写入的数据的一部分。
在各实施例中,卸载读出和写入操作中使用的令牌被格式化为与标准一致。例如,根据一实施例,小型计算机系统接口(SCSI)标准可以提供可以使用的令牌格式的某些定义。根据此处所公开的各实施例,可使用包括高速计算机接口规范和/或标准等在内的多种类型的标准,而不背离本公开的精神和范围。SCSI标准是作为示例而提供的。标准格式的使用允许令牌与使用不同数据访问协议的其他服务器互操作。
在各实施例中,即使在不存在(来自服务器或来自任何源的)在前的卸载读出时,服务器206也识别并使用卸载写入命令中指定的公知令牌值。例如,服务器206可以返回表示包含零的范围的公知令牌。客户机202将把此解释成指示源文件的底层范围为零,并且与该令牌相关联的数据全部为零。在另一实施例中,诸如在文件系统若被正常地读取则将返回零的情况下,可响应于卸载读出请求而返回零令牌。这样的情况可以在例如文件的稀疏范围被读出的情况下发生。在其他实施例中,服务器206还可以接受诸如解除令牌之类的其他公知令牌。
在服务器206上的令牌生成器用于生成令牌的那些实施例中,从卸载读出请求返回的令牌是请求来自服务器206的信息的任何客户机可使用的。因此,客户机204可以从客户机202接收令牌,并且可使用那个令牌来请求来自服务器206的卸载写入操作。在各令牌在各客户机之间传递的各实施例中,这些客户机可以经由它们选择的任何协议或传输来传递这样的令牌。在各客户机之间传递这些令牌的模式对这些令牌本身没有意义。因此,这些令牌跨与服务器206的不同连接可使用,这些不同的连接可能是由不同的客户机建立的。通过这种方式,服务器206可以提供卸载读出请求以及某些卸载写入请求,而不管文件存储210是否支持卸载读出和写入操作。由客户机提供在到服务器206的卸载写入中的令牌无需已从该客户机具有针对其的当前打开句柄的文件中被获取,并且无需已从该客户机具有访问权的文件中被获取。客户机可以经由至少在该令牌被获取的时刻对从其获取该令牌的文件具有访问权的另一客户机来间接地获取该令牌。由客户机通过一个连接经由从一个共享(例如,文件共享)的卸载读出获取的令牌可以被成功地用在该客户机向不同的共享或不同的连接发出的卸载写入中。
在各实施例中,这些令牌可能是跨多个服务器可使用的。即,即使令牌最初并非来自某服务器,也可以在该服务器上使用该令牌。换言之,在令牌在服务器206、服务器208、或文件存储210处生成的情况下,这样的令牌可以在决定尊重(honor)该令牌的任何服务器上使用。例如,在以上实施例中,客户机202所发送的卸载读出请求可以被传递给文件存储210,该文件存储210为该卸载读出请求生成令牌。如果在稍后的时刻,客户机202连接到服务器208,则它可以使用之前通过它与服务器206的连接提供的令牌来执行其他操作,诸如卸载写入操作。在这个示例中,服务器208将把任何卸载写入操作传递到最初创建该令牌的文件存储210。通过这种方式,令牌可能是跨多个服务器可使用的。可以在例如使用共享存储的服务器群集被用于向客户机提供文件服务的情况下使用这个实施例。
应理解,对环境200的以上描述并非旨在限制在此描述的各实施例。图2及其描述仅旨在说明某些实施例的实现。在其他实施例中,卸载操作可以涉及一个或多个文件以及一个或多个令牌。由此,各实施例并不受限于图2中示出并描述了什么。例如,卸载读出可以规定用包括单个令牌或多个令牌的卸载读出响应来读出单个文件的多个片段或多个文件。类似地,在某些实施例中,卸载写入操作可以标识与一个或多个文件相关联的一个或多个令牌。
图、4、5和6示出了根据各实施例的操作流程300和400。操作流程300和400可以在任何合适的计算环境中执行。例如,这些操作流程可以由诸如图1和图2所示的系统和环境来执行。因此,对操作流程300和400的描述可参考图1和2中的各组件中的至少一个。然而,对图1和图2的各组件的任何这样的参考只是为了描述的目的,并且应当理解,图1和图2的实现并非操作流程300和400的限制性环境。
此外,尽管以特定次序顺序地示出并描述了操作流程300和400,但在其它实施例中,各个操作能以不同的次序、多次和/或并行执行。此外,在某些实施例中,一个或多个操作可被省略或组合。
在各实施例中,图3中示出的流程300可以至少部分地由在例如服务器206(图2)的服务器上运行的文件服务器来执行。流程300始于操作302,在操作302,接收连接到文件服务器的请求。在操作302接收到的请求是建立与文件服务器的会话以便访问存储在远程文件系统上的可通过该文件服务器访问的文件信息的请求。该请求可以被例如客户机202和204(图2)的客户机发送。在操作302以后,流程300传递到操作304,在操作304,发送指示已经建立了会话的响应。在某些实施例中,在操作302和304处发送的请求和响应可以是在客户机和服务器之间交换的用于协商会话的多个消息的一部分。消息的交换可以包括各能力的交换,各能力包括文件服务器提供卸载文件操作的能力。
操作流程300从操作304传递到操作306,在操作306,接收打开文件的第二请求。该请求是客户机为了访问文件内的信息而发送的。流程从操作306传递到操作308,在操作308,向客户机发送授予对文件的访问权的响应。该响应可包括由文件服务器在该响应中提供的文件标识符。
流程300随后转到操作310,在操作310,接收对卸载操作的请求。卸载操作可以是卸载读出操作或卸载写入操作,卸载读出操作请求由令牌表示的文件数据,卸载写入操作包括表示要写入到目的地文件中的文件数据的令牌。如果该操作是卸载读出操作,则流程传递到A,其在图4中继续。
如图4所示,流程300传递到决策312,在决策312处,作出在卸载读出操作中请求的数据是否全部可以由一个令牌来表示的判定。在各实施例中,这个决策312可以涉及多个不同的判定。例如,可以作出卸载读出操作中请求的数据的任何部分是否被加锁以供另一客户机独占地使用的判定。在这些情况下,服务器可能无法提供表示所请求的全部数据的令牌。如果在决策312处作出了所请求的数据不可能全部由一个令牌来表示的判定,则流程使否传递到操作314,在操作314处,发送具有令牌的经截短的响应。该经截短的响应指示正在该响应中提供的令牌并不表示卸载读出请求中所请求的全部数据。该响应还可以指示该响应中的令牌表示什么数据范围。在操作314之后,流程在316处结束。
如果决策312处作出了所请求的全部数据可以由一个令牌来表示的判定,则在操作318处发送包括表示卸载读出请求中所请求的全部文件数据的令牌的响应。流程300随后在316处结束。
在某些实施例中,服务器可能不是令牌提供方。在这些实施例中,代替决策312、操作314和/或操作318,可以执行以虚线示出的各替换操作。在那些实施例中,执行虚线中的各操作,其中令牌的生成发生在较低层(例如,底层的文件存储层)处。在这些实施例中,流程300将传递到查询320而非决策213。在查询320处,判定卸载读出操作是否将被截短。如果卸载读出将被截短,例如其中对所请求的数据的长度的调整将被执行,则过程300使是前进到调整或截短322。如果服务器不将作出任何调整,则过程300使“否”前进到使该请求保持未经修改321。接着,过程300前进到操作323,在操作323处,将卸载读出请求从服务器传递到较低层,诸如负责生成令牌的文件存储组件或其他模块。
在操作323之后,流程300传递到查询324,在查询324处,判定文件存储(或负责生成令牌的其他组件)是否将执行经截短的读出操作。如果没有截短发生,则过程300使否前进到由较低层处理请求325。包括令牌的响应随后被服务器接收326,其中操作326处接收到的响应包括表示在卸载读出操作中请求的文件数据的至少一部分的令牌。令牌可以根据文件存储所使用的任何合适的格式来格式化。在一个实施例中,令牌根据预定义的SCSI格式来格式化。根据一实施例,具有令牌的响应随后被服务器发送329到客户机处。在另一实施例中,具有令牌的响应被例如直接从文件存储或其他较低层发送到客户机处。
返回到查询324,如上所述,判定负责生成令牌的文件存储或其他组件是否将提供包括所请求的全部数据的响应。例如,在一实施例中,文件存储可能无法提供在卸载读出请求中请求的全部数据。如上所述,多个原因可导致经截短的卸载读出响应,这些原因包括存储容器上的锁防止完整的读出等。如果文件存储仅提供所请求的数据的一部分,则过程300使是前进到操作327,在操作327处,较低层(例如,文件存储)处理该请求并提供经截短的响应。在一实施例中,具有令牌的经截短的响应随后在服务器处被接收328,以发送329给客户机。在其他实施例中,将具有令牌的响应直接从负责生成令牌的文件存储或其他组件传递到客户机处。在各实施例中,接收到的经截短响应328指示请求被一个或多个层截短了。例如,该响应指示该令牌表示少于在卸载读出请求中请求的全部数据。在其他实施例中,经截短的响应328不提供该请求被截短的指示。流程300随后在操作316处结束。在另一实施例(未示出)中,服务器在从文件存储接收到响应中的数据后,可以判定进一步截短该数据,即便该服务器判定该数据已被文件存储截短过了。在这样的实施例中,这样的截短可以发生在操作326和328之后,以及将具有令牌的经截短响应传递到客户机的操作329之前。应当理解,操作320-329在服务器仅充当到较低层令牌提供方的传递方时执行。在图4中示出的实施例中,令牌提供方是文件存储系统。在某些实施例中,文件存储系统可以进而将卸载请求传递到更低层的令牌提供方。在各实施例中,任何层在将该请求向下发送到下面的层之前或之后都可以进行截短。例如,各实施例规定服务器将请求传递到较低层(例如,文件存储),从该较低层接收响应,以及随后在向客户机发送具有令牌的响应之前,判定该服务器是否将执行进一步的截短。然而,在某些实施例中,在将请求发送到下面的层之前截短该请求可能更高效。如所讨论的,流程300仅是可根据各实施例来执行的操作流程的一个示例。各实施例并不限于参考图3-5提供的特定描述,并且可包括附加的操作。例如,所描绘的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
再次参考图3,如果在操作310处,该操作是卸载写入操作,则流程传递到B,B在图5中继续。应当理解,卸载写入操作将包括表示数据的令牌。根据此处所公开的各实施例,令牌可以从多种类型的存储容器中获得,而不背离本公开的精神和范围。例如,令牌可以从文件、卷、盘、卷快照、盘快照、团块存储等中获得。在一实施例中,令牌是通过将来自源文件的数据复制到该令牌中来创建的。在其他实施例中,令牌是通过将来自源文件的数据复制在与该令牌相关联的保持区域中来创建的。所创建的令牌因此独立于源文件,并且在逻辑上是它自己的只读数据容器。如图5中所示出的,流程从操作310传递到操作330,在操作330处,标识出卸载写入操作中与该令牌相关联的数据。
当在操作330处标识出了数据之后,流程传递到查询331,在查询331处,判定所请求的数据是否全部可以被例如服务器写入到目的地文件中。如果所请求数据全部可以被写入,则过程300使“是”前进到将该令牌所表示的数据写入到目的地文件332中。即,该令牌所表示的数据的所请求部分被写入到在卸载写入请求中请求的特定位置中。在操作334处,将指示成功或失败的响应以及在某些实施例中的写入到目的地文件的数据量被发送到客户机。流程300随后在316处结束。另一方面,如果所请求的数据全部无法被写入到例如目的地文件中,则过程300使“否”前进到写入经截短的数据的操作336处,在操作336处,所请求的数据的一部分被写入。在操作338中,指示所请求数据的一部分被写入的经截短写入响应随后被发送到客户机。流程300随后在316处结束。
如上所述,在某些实施例中,服务器可能不是令牌提供方。在这些实施例中,在图5中在虚线中示出的各替换操作可以替代操作330-338而被执行。在那些实施例中,执行在虚线中的各操作,其中令牌的生成发生在较低层(例如,文件存储层或以下)处。在这些实施例中,流程300将传递到查询340而非操作330。在查询340处,判定卸载写入在传递到较低层(例如,低层的文件存储)之前是否将在服务器处被截短。如果卸载写入将被截短,则过程300使“是”前进到进行调整或截短344。如果服务器将不作出任何调整,则过程300使“否”前进到使卸载写入请求保持未经修改342。接着,过程300前进到操作346,在操作346处,将卸载写入请求(具有令牌)从服务器传递到较低层,诸如负责处理该卸载写入请求的文件存储组件或其他模块。
在将卸载写入请求传递346到较低层之后,流程300前进到查询348,在查询348处,判定较低层(例如,文件存储)是否将执行经截短的写入操作。如果截短没有发生,则过程300使“否”传递到操作350,在操作350中,较低层处理写入请求,该处理包括例如标识出该请求中与令牌相关联的数据,以及将令牌所表示的数据写入到目的地文件中。如果较低曾执行经截短的写入,则过程300使“是”前进到较低层的截短和处理操作352,在操作352处,所请求的数据的一部分被写入到例如目的地文件中。在由较低层处理了卸载写入请求之后,在服务器处从该较低层接收354在各实施例中指示令牌所表示的数据是否被成功地写入到目的地文件中以及多少数据被写入的卸载写入响应。在其他实施例中,将该卸载写入响应直接从负责处理卸载写入请求的文件存储或其他组件传递到客户机处。
返回图5,在图5中,根据本公开的各实施例在服务器处接收354卸载写入响应,接着查询356判定数据全部被写入到了目的地中,还是该写入被截短了。如果写入被截短了(即,所请求的数据的一部分被写入到了目的地中),则过程300使“是”前进到将经截短的写入响应358传递到客户机。流程300随后在316处结束。返回查询356,如果判定在查询356处所请求的数据全部被写入到目的地中,则过程300使“否”前进到操作360,在操作360中,将来自底层的文件存储系统的响应传递到客户机。流程300随后在316处结束。
因此,在各实施例中,即使在请求被传递到较低层(诸如文件存储)的情况下,服务器本身也可以截短写入。例如,根据各实施例,在用于处理写入请求的时间超过预定阈值的情况下,服务器可以截短写入。在各实施例中,服务器在将请求传递到较低层之前截短写入。例如,该截短可以发生在将卸载写入请求发送到文件存储之前。在其他实施例中,服务器在较低层(例如,文件存储)进行处理之后截短写入。如所讨论的,流程300仅是可根据各实施例来执行的操作流程的一个示例。各实施例并不限于以上参考图3-5提供的特定描述,并且可包括附加的操作。例如,所描绘的各操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
转至图6,操作流程400示出了用于请求卸载文件操作的各步骤。在各实施例中,流程400可以由诸如客户机202和204(图2)的客户机上的重定向器来执行,这些重定向器与文件服务器通信以访问文件系统中的文件。在各实施例中,客户机使用文件访问协议(诸如SMB协议的一个版本或NFS的一个版本)与文件服务器通信。
流程400始于操作402,在操作402发送连接到文件服务器的请求。在操作402处发送的请求是建立与文件服务器的会话以便访问存储在文件系统上的、可通过文件服务器访问的文件信息的请求。该请求可以被发送给在例如服务器206(图2)的服务器上的文件服务器。该请求根据诸如SMB或NFS的一个版本之类的文件访问协议来格式化。
在操作402之后,流程400传递到操作404,在操作404,接收指示会话已被建立的响应。在某些实施例中,操作402和404可以是在客户机和服务器之间交换的用于协商会话的多个消息的一部分。消息的交换可以包括各能力的交换,各能力包括文件服务器提供卸载操作的能力。
操作流程从操作404传递到操作406,在操作406,发送打开文件的请求。流程400从操作406传递到操作408,在操作408,接收授予对该文件的访问权的响应。流程从操作408传递到操作410,在操作410,客户机将发送卸载读出请求。该卸载读出请求指示文件数据的一部分正被请求。卸载读出请求本质上还请求响应于该卸载读出请求而发送的令牌所表示的数据。在操作412,接收具有令牌的卸载读出响应。
在各实施例中,在操作410处发送卸载读出请求的客户机可以具有有关它在该读出请求中可以请求什么数据的一些限制。例如,在各实施例中,如果客户机将某些数据高速缓存在本地,则它在发送其读出请求之前将转储任何经高速缓存的“脏”数据。没有成功地在发送卸载读出之前将经高速缓存的脏数据转储到服务器可以导致该卸载读出提供表示失效数据的令牌。在某些实施例中,客户机可以截短卸载读出本身。换言之,它可能没有请求文件数据的完整范围,并因此排除了经高速缓存的脏数据。
在操作412之后,客户机可以在操作414处发送卸载写入请求。虽然流程400示出操作414紧跟在操作412之后,但可以理解,这仅用于说明的目的。在其他实施例中,如果执行流程400的客户机接收到表示来自某些其他装置的数据的令牌,则操作414处发送的卸载写入请求可以在任何卸载读出请求(诸如操作410处发送的请求)之前被执行。
在各实施例中,在操作414处发送卸载写入请求的客户机还可以具有有关它在该卸载写入请求中可以发送什么数据的一些限制。如果卸载写入被允许将令牌数据写入到已高速缓存有脏数据的目的地偏移处,则在该高速缓存的脏数据被写回到存储时,该高速缓存的脏数据稍后会不正确地盖写通过卸载写入而写入的数据。对于发送卸载写入的客户机正为其保持经高速缓存的脏数据的任何偏移,该客户机可以避免发送该写入请求。根据各实施例,客户机可以截短卸载写入本身,或者客户机可以丢弃覆盖卸载写入目的地偏移的高速缓存的脏数据,或者客户机可以使卸载写入失败。
在于操作414处发送了卸载写入请求之后,流程400传递到操作416,在操作416处,接收对该卸载写入请求的响应。该响应可以指示与该卸载写入请求中发送的令牌相关联的数据是否被成功写入到目的地文件中。在数据可能已被部分写入的那些实施例中,在操作416处接收到的响应将标注被成功写入的数据的部分,并指示并非全部数据都被写入了目的地文件中。
被示出在虚线中的操作418在某些实施例中在流程400的执行期间的任何时刻被执行。在图6中示出的实施例中,操作418被示为在操作416之后,但各实施例不必限于这个次序。操作418在执行流程400的客户机需要与令牌相关联的实际数据的那些实施例中被发送。即,客户机可能拥有其通过发送卸载读出请求或通过某些其他装置接收到的令牌。然而,客户机可能需要与令牌相关联的实际数据,以例如将该数据提供给正请求该实际数据的应用。在这些实施例中,操作418可以发送检索与令牌相关联的数据的一部分的请求。客户机将向可以提供实际数据的服务器发送检索数据的请求。作为响应,客户机将接收该实际数据,并且可以将该数据提供给正请求该实际数据的应用。这仅仅是一个附加的操作,在某些实施例中,该操作可能被某些客户机执行。流程400在420处结束。如上所述,流程300和400仅是根据各实施例可以执行的操作流程的一些示例。各实施例并不限于以上参考图3-6提供的特定描述,并且可包括附加的操作。而且,所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
图7示出可用于实现本文所描述的各实施例的通用计算机系统700。计算机系统700仅是计算环境的一个示例,而非旨在对计算机和网络架构的使用范围或功能提出任何限制。计算机系统700也不应被解释成对于在示例计算机系统700中所示出的任一组件或其组合有任何依赖或要求。在各实施例中,系统700可用作上面参照图1所述的客户机和/或服务器。
在其最基本的配置中,系统700通常包括至少一个处理单元702和存储器704。取决于计算设备的确切配置和类型,存储器704可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是其某种组合。该最基本配置在图7中由虚线706来示出。系统存储器704存储诸如令牌723之类的数据,其表示可以被存储在具有存储(诸如存储708)的文件存储系统中的数据720。
如这里所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储和不可移动存储708都是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备700访问的任何其他介质。任何这样的计算机存储介质都可以是设备700的一部分。计算设备700还可以具有输入设备714,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备716。上述设备是示例且可以使用其他设备。
如这里所使用的术语计算机可读介质还包括通信介质。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
本说明书通篇引述了“一个实施例”或“一实施例”,这意味着在至少一个实施例中包括特定描述的特征、结构或特性。因此,对这样短语的使用可指的是一个以上的实施例。而且,在一个或多个实施例中,可以用任何合适的方式组合所描述的特征、结构或特性。
然而,相关领域内技术人员可以理解各实施例可省去一个或多个特定细节而实现,或通过其它方法、资源、材料等实现。在其它实例中,公知的结构、资源或操作尚未被示出或详细说明以仅避免对各实施例的某些方面产生混淆。
虽然示出和描述了示例实施例和应用,但是应该理解本实施例不限于上述精确配置和资源。可以对此处公开的方法和系统的排列、操作以及细节作出对本领域技术人员显而易见的各种修改、改变和变化,而不背离所要求保护的本实施例的范围。

Claims (10)

1.一种提供基于令牌的文件操作的计算机实现的方法,所述方法包括:
在文件服务器处接收连接到所述文件服务器以访问文件系统中的信息的第一请求;
从所述文件服务器处发送第一响应,该响应建立与客户机的会话,以允许对所述文件系统中的信息的访问;
在所述文件服务器处接收打开所述文件系统中的文件以访问来自所述文件的文件信息的第二请求;
响应于接收所述第二请求,所述文件服务器向所述客户机发送授予对所述文件的访问权的第二响应;
在所述文件服务器处接收对第一数据从所述文件的一部分中的卸载读出的第三请求,所述第三请求是根据文件访问协议来格式化的;以及
响应于接收到所述第三请求,所述文件服务器发送具有表示所述第一数据的令牌的第三响应,其中所述第一数据是从所述文件的所述部分中逻辑地读出的,并且其中所述第三响应是根据所述文件访问协议来格式化的。
2.如权利要求1所述的方法,其特征在于,所述第三请求指示要从所述文件中读出的第一数据以及要从所述文件中读出的第二数据,并且所述第三响应包括表示所述第一数据的令牌和表示所述第二数据的第二令牌。
3.如权利要求1所述的方法,其特征在于,所述第三请求指示第一文件的第一部分以及第二文件的第二部分,且所述第三响应包括表示从所述第一文件的所述第一部分逻辑地读出的第一数据的令牌以及表示从所述第二文件的所述第二部分逻辑地读出的第二数据的第二令牌。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述文件服务器处接收对所述第一数据的所请求部分到第二文件的卸载写入的第四请求,所述第四请求包括所述令牌并且是根据所述文件访问协议来格式化的;以及
响应于接收所述第四请求,所述文件服务器:
将所述第一数据的所请求部分写入到所述第二文件;以及
发送指示所述第一数据的所请求部分被写入到所述第二文件的第四响应,所述第四响应是根据所述文件访问协议来格式化的。
5.如权利要求1所述的方法,其特征在于,还包括:
在所述文件服务器处接收对所述第一数据的所请求部分到第二文件的卸载写入的第四请求,所述第四请求包括所述令牌并且是根据所述文件访问协议来格式化的;以及
响应于接收所述第四请求,所述文件服务器:
将所述第一数据的所请求部分的第一部分写入到所述第二文件,其中所请求部分的第一部分小于所述第一数据的所请求部分的全部;以及
发送指示所述第一数据的所请求部分的第一部分被写入到所述第二文件的第四响应,所述第四响应是根据所述文件访问协议来格式化的。
6.一种包括计算机可执行指令的计算机可读存储介质,所述指令在由处理器执行时执行一种请求基于令牌的文件操作的方法,所述方法包括:
由客户机发送连接到文件服务器以访问文件系统中的信息的第一请求;
接收第一响应,该响应建立与所述客户机的会话以允许对所述文件信息的访问;
发送打开所述文件系统中的文件的第二请求;
接收授予对所述文件的访问权的第二响应;
发送对令牌所表示的数据的第一部分到文件的卸载写入的第三请求,所述第三请求是根据服务器消息块(SMB)协议的一个版本来格式化的,并包括表示所述数据的令牌;以及
接收响应。
7.如权利要求6所述的计算机可读存储介质,其特征在于,所述响应指示所述数据的第二部分被成功地写入到所述文件,并且其中所述第二部分表示少于所述第一部分中的数据的全部。
8.如权利要求6所述的计算机可读存储介质,其特征在于,还包括:
发送对第二数据从第二文件的一部分中的卸载读出的第四请求,所述第四请求是根据SMB协议的所述版本来格式化的;以及
接收具有表示所述第二数据的令牌的第四响应,所述第四响应是根据SMB协议的所述版本来格式化的。
9.一种用于允许基于令牌的文件操作的系统,所述系统包括:
至少一个服务器,所述至少一个服务器包括:
被配置为执行计算机可执行指令的至少一个处理器;
存储所述计算机可执行指令的至少一个计算机可读存储介质,所述计算机可执行指令在被所述至少一个处理器执行时提供:
文件服务器,所述文件服务器被配置为:
接收对将数据从文件的一部分中卸载读出的请求,所述请求是根据服务器消息块(SMB)协议的一个版本来格式化的;以及
响应于接收所述请求,所述文件服务器发送具有表示所述数据的令牌的响应,所述响应是根据SMB协议的所述版本来格式化的。
10.如权利要求9所述的系统,其特征在于,所述系统还包括:
至少一个客户机,所述至少一个客户机包括:
被配置为执行计算机可执行指令的至少一个处理器;
存储所述计算机可执行指令的至少一个计算机可读存储介质,所述计算机可执行指令在被所述至少一个处理器执行时:
发送对将数据从所述文件的所述部分中卸载读出的请求;以及
接收具有表示所述数据的所述令牌的所述响应。
CN201280039140.9A 2011-08-10 2012-07-19 基于令牌的文件操作 Pending CN103733187A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/207,014 2011-08-10
US13/207,014 US20130041985A1 (en) 2011-08-10 2011-08-10 Token based file operations
PCT/US2012/047261 WO2013022582A2 (en) 2011-08-10 2012-07-19 Token based file operations

Publications (1)

Publication Number Publication Date
CN103733187A true CN103733187A (zh) 2014-04-16

Family

ID=47669148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280039140.9A Pending CN103733187A (zh) 2011-08-10 2012-07-19 基于令牌的文件操作

Country Status (11)

Country Link
US (1) US20130041985A1 (zh)
EP (1) EP2742432A4 (zh)
JP (1) JP2014524610A (zh)
KR (1) KR20140051293A (zh)
CN (1) CN103733187A (zh)
AU (1) AU2012294797A1 (zh)
BR (1) BR112014002869A2 (zh)
CA (1) CA2844312A1 (zh)
MX (1) MX2014001628A (zh)
RU (1) RU2014104499A (zh)
WO (1) WO2013022582A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462403A (zh) * 2014-12-11 2015-03-25 华为技术有限公司 文件截断方法和装置
CN109804361A (zh) * 2016-10-12 2019-05-24 微软技术许可有限责任公司 计算系统中的文件同步
CN111107059A (zh) * 2019-11-29 2020-05-05 彩虹无人机科技有限公司 一种无人机多协议传输数据解析方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9355036B2 (en) 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
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
US9110661B2 (en) * 2012-12-28 2015-08-18 International Business Machines Corporation Mobile device offloading task to a peer device and receiving a completed task when energy level is below a threshold level
US9380114B1 (en) * 2013-06-27 2016-06-28 Emc Corporation Techniques for peer messaging across multiple storage processors of a data storage array
US9300692B2 (en) 2013-08-27 2016-03-29 Netapp, Inc. System and method for implementing data migration while preserving security policies of a source filer
US9311314B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. System and method for migrating data from a source file system to a destination file system with use of attribute manipulation
WO2015031540A1 (en) * 2013-08-27 2015-03-05 Netapp, Inc. Asynchronous file system migration
US10860529B2 (en) 2014-08-11 2020-12-08 Netapp Inc. System and method for planning and configuring a file system migration
US9311331B2 (en) 2013-08-27 2016-04-12 Netapp, Inc. Detecting out-of-band (OOB) changes when replicating a source file system using an in-line system
US9304997B2 (en) 2013-08-27 2016-04-05 Netapp, Inc. Asynchronously migrating a file system
US20160041996A1 (en) 2014-08-11 2016-02-11 Netapp, Inc. System and method for developing and implementing a migration plan for migrating a file system
CN103595720B (zh) * 2013-11-15 2017-07-07 华为技术有限公司 卸载数据传输方法、装置和客户端
US10628380B2 (en) 2014-07-24 2020-04-21 Netapp Inc. Enabling data replication processes between heterogeneous storage systems
KR20210067468A (ko) * 2019-11-29 2021-06-08 삼성전자주식회사 무선 통신 시스템에서 데이터를 오프로딩하기 위한 방법 및 장치
US20210342307A1 (en) * 2020-05-01 2021-11-04 EMC IP Holding Company LLC Token-based offload data transfer with synchronous replication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205202A1 (en) * 2003-03-10 2004-10-14 Takaki Nakamura Distributed file system
CN101554010A (zh) * 2006-11-03 2009-10-07 联合网络系统有限责任公司 使用公钥加密进行文档控制的系统和方法
CN101572660A (zh) * 2008-04-30 2009-11-04 北京明朝万达科技有限公司 一种防止数据泄密的综合控制方法
US20100094806A1 (en) * 2008-09-18 2010-04-15 Arriad, Inc. File storage system, cache appliance, and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275867B1 (en) * 1995-09-12 2001-08-14 International Business Machines Corporation Operation-partitioned off-loading of operations in a distributed environment
US6385701B1 (en) * 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management
US7617216B2 (en) * 2005-09-07 2009-11-10 Emc Corporation Metadata offload for a file server cluster
US8347373B2 (en) * 2007-05-08 2013-01-01 Fortinet, Inc. Content filtering of remote file-system access protocols
US20080065835A1 (en) * 2006-09-11 2008-03-13 Sun Microsystems, Inc. Offloading operations for maintaining data coherence across a plurality of nodes
US20080155051A1 (en) * 2006-12-23 2008-06-26 Simpletech, Inc. Direct file transfer system and method for a computer network
TWI405211B (zh) * 2008-11-04 2013-08-11 Phison Electronics Corp 快閃記憶體儲存系統、控制器與資料保護方法
US20120079583A1 (en) * 2010-09-23 2012-03-29 Microsoft Corporation Offload reads and writes
US20120144501A1 (en) * 2010-12-03 2012-06-07 Salesforce.Com, Inc. Regulating access to protected data resources using upgraded access tokens

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205202A1 (en) * 2003-03-10 2004-10-14 Takaki Nakamura Distributed file system
CN101554010A (zh) * 2006-11-03 2009-10-07 联合网络系统有限责任公司 使用公钥加密进行文档控制的系统和方法
CN101572660A (zh) * 2008-04-30 2009-11-04 北京明朝万达科技有限公司 一种防止数据泄密的综合控制方法
US20100094806A1 (en) * 2008-09-18 2010-04-15 Arriad, Inc. File storage system, cache appliance, and method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462403A (zh) * 2014-12-11 2015-03-25 华为技术有限公司 文件截断方法和装置
WO2016091124A1 (zh) * 2014-12-11 2016-06-16 华为技术有限公司 一种文件截断方法和装置
CN104462403B (zh) * 2014-12-11 2018-03-02 华为技术有限公司 文件截断方法和装置
CN109804361A (zh) * 2016-10-12 2019-05-24 微软技术许可有限责任公司 计算系统中的文件同步
CN109804361B (zh) * 2016-10-12 2023-06-20 微软技术许可有限责任公司 计算系统中的文件同步
CN111107059A (zh) * 2019-11-29 2020-05-05 彩虹无人机科技有限公司 一种无人机多协议传输数据解析方法

Also Published As

Publication number Publication date
MX2014001628A (es) 2014-05-28
EP2742432A4 (en) 2015-03-18
WO2013022582A3 (en) 2013-06-13
US20130041985A1 (en) 2013-02-14
BR112014002869A2 (pt) 2017-02-21
JP2014524610A (ja) 2014-09-22
EP2742432A2 (en) 2014-06-18
RU2014104499A (ru) 2015-08-20
WO2013022582A2 (en) 2013-02-14
AU2012294797A1 (en) 2014-02-27
CA2844312A1 (en) 2013-02-14
KR20140051293A (ko) 2014-04-30

Similar Documents

Publication Publication Date Title
CN103733187A (zh) 基于令牌的文件操作
US11614867B2 (en) Distributed storage system-based data processing method and storage device
US9654417B2 (en) Methods and systems for managing bandwidth usage among a plurality of client devices
US8935560B2 (en) System and method of file locking in a network file system federated namespace
US8060473B1 (en) System and method for conveying backup and restore data via email
US10965732B2 (en) Streaming zip
US8463867B2 (en) Distributed storage network
CN105391750A (zh) 用于通过信息中心网络维持分布式和容错状态的系统和方法
CN102521010A (zh) 虚拟化以及卸载读和写
US20180300508A1 (en) Method and device for managing storage system
CN104937904A (zh) 针对全异卸载提供器的复制卸载
KR101881232B1 (ko) 이메일 웹클라이언트 통지 큐잉
US10983718B2 (en) Method, device and computer program product for data backup
JP2005242632A (ja) 情報処理装置の制御方法、情報処理装置、及びストレージ装置の制御方法
CN103503388B (zh) 一种分布式队列消息读取方法及设备、系统
US8095803B1 (en) Protecting the privacy of files referenced by their hash
US11010090B2 (en) Method and distributed computer system for processing data
JP2008250864A (ja) データ保存方法、データ保存システム及び情報処理装置
US6868418B1 (en) Methods and systems for performing reliable asynchronous notification of high-level document operations
US11438295B1 (en) Efficient backup and recovery of electronic mail objects
US10908982B2 (en) Method and system for processing data
US11475159B2 (en) System and method for efficient user-level based deletions of backup data
JP5054695B2 (ja) データを記憶する装置及び方法
CN117787972A (zh) 一种交易信息处理方法、装置、服务器
CN112257087A (zh) 区块链的文件上链方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1196444

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140416

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1196444

Country of ref document: HK