CN105359105B - 通过网络文件访问协议的高效编程存储器访问 - Google Patents
通过网络文件访问协议的高效编程存储器访问 Download PDFInfo
- Publication number
- CN105359105B CN105359105B CN201480031323.5A CN201480031323A CN105359105B CN 105359105 B CN105359105 B CN 105359105B CN 201480031323 A CN201480031323 A CN 201480031323A CN 105359105 B CN105359105 B CN 105359105B
- Authority
- CN
- China
- Prior art keywords
- equipment
- data
- virtual memory
- calculating equipment
- memory object
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Computer Security & Cryptography (AREA)
Abstract
各实施例提供一种用于在不同计算设备(110,150)之间传输数据的方法和系统。具体而言,在第一计算设备和第二计算设备之间建立通信会话(210)。通信会话可以使用第一通信协议来建立(230)。第一计算设备创建被绑定到第一计算设备的一个或多个存储器块的虚拟存储器对象(240)。到虚拟存储器对象的路径被生成并使用通信会话将该路径传送到第二计算设备(250)。第二计算设备随后可使用与第一通信协议不同的第二通信协议从虚拟存储器对象直接读取数据或将数据直接写入虚拟存储器对象(260)。数据是使用文件系统命令来被写入和读出虚拟存储器对象的。
Description
背景
在两个不同的计算设备之间传输数据时,要被传输的数据通常被写入网络缓冲区。随后使用网络协议将网络缓冲区跨网络复制并作为网络分组递送到目的地计算设备。网络分组随后被复制到目的地计算设备处的存储器中。这样的文件传输通常是缓慢的且需要数据被顺序地写入,这对于源计算设备和目的地计算设备两者上的网络带宽和系统资源而言是昂贵的。
各实施例正是对于这些和其它一般考虑事项而做出的。而且,尽管讨论了相对具体的问题,但是应当理解,各实施例不应被限于解决本背景技术中所标识的具体问题。
概述
提供本概述来以简化形式介绍将在以下详细描述部分中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例提供了一种用于在第一计算设备和第二计算设备之间传输数据的方法和系统。具体而言,在第一计算设备和第二计算设备之间建立通信会话。通信会话可以使用第一通信协议来建立,诸如例如传输控制协议/网际协议(TCP/IP)通信协议。为了完成大块数据的传输,第一计算设备创建被绑定到第一计算设备的一个或多个存储器块的虚拟存储器对象。到虚拟存储器对象的路径被生成、命名、并使用所建立的通信会话传送到第二计算设备。一旦被接收到,第二计算设备就可利用该路径来从第一计算设备的与虚拟存储器对象相关联的存储器位置直接读取数据或向第一计算设备的与虚拟存储器对象相关联的存储器位置直接写入数据。如下文将阐明的,数据传输(例如,读和写)在与第一通信协议不同的第二通信协议上执行。在一些实施例中,第二通信协议是华盛顿州雷蒙德市的微软公司的服务器消息块(SMB)协议的一个版本。数据被使用通过第二通信协议传送的文件系统命令写入与虚拟存储器对象相关联的存储器位置或从中读出。
各实施例还提供了一种用于使用第一通信协议(诸如例如,TCP/IP通信协议)在第一计算设备和第二计算设备之间建立通信会话的方法和系统。一旦在第一计算设备和第二计算设备之间建立了该会话,则第二计算设备就向第一计算设备发送请求以设立虚拟存储器对象。响应于该请求,第二计算设备接收到所创建的虚拟存储器对象的路径。在一些实施例中,虚拟存储器对象被绑定到第一计算设备的一个或多个存储器块。使用接收到的路径,第二计算设备可经由虚拟存储器对象从第一计算设备上的存储器位置直接读取数据或向第一计算设备上的存储器位置直接传输数据。在各实施例中,数据读和写是通过第二通信协议传送的,诸如例如通过SMB协议的一个版本。如将讨论的,使用一个或多个文件系统命令直接将数据传送到与虚拟存储器对象相关联的存储器位置或直接从中读取数据。
附图简述
参考以下附图描述非限制性和非穷尽的实施例,其中:
图1解说了根据本公开的一个或多个实施例的用于在第一计算设备和第二计算设备之间传输数据的系统;
图2解说了根据本公开的一个或多个实施例的用于在第一计算设备和第二计算设备之间传输数据的方法;
图3解说了根据本公开的一个或多个实施例的用于在第一计算设备和第二计算设备之间交换消息的方法;
图4解说了根据本公开的一个或多个实施例的用于将虚拟机从源迁移到目的地的方法;
图5是解说可以与本公开的一个或多个实施例一起使用的计算设备的示例物理组件的框图;
图6A和6B是可以与本公开的一个或多个实施例一起使用的移动计算设备的简化框图;以及
图7是解说可以与本公开的一个或多个实施例一起使用的分布式计算系统的简化框图。
详细描述
以下将参考形成本发明一部分并示出各具体示例性实施例的附图更详尽地描述各个实施例。然而,各实施例可以以许多不同的形式来实现,并且不应将其解释为限制此处所阐述的各实施例;相反地,提供这些实施例以使得本公开变得透彻和完整,并且将这些实施例的范围完全传达给本领域普通技术人员。各实施例可按照方法、系统或设备来实施。因此,这些实施例可采用硬件实现形式、全软件实现形式或者结合软件和硬件方面的实现形式。因此,以下详细描述并非是局限性的。
如将在下文详细地解释的,本文描述的系统和方法允许一个计算设备使用来自应用编程接口(API)的文件系统命令通过数据通信协议来访问另一计算设备上的物理存储器位置。在一些实施例中,数据通信协议可以支持可在不同计算设备之间传递数据的多个信道。如将讨论的,使用多个信道允许计算设备中的每一者建立可传递数据的多个连接。使用多个信道还允许跨每一信道的带宽聚集。另外,数据通信协议可内置有各种特征。因而,在一个设备上运行的应用可利用数据通信协议的自定义特征,同时仍然实现该应用已知的文件系统命令。这些特征可包括认证、自动协商、最优路径确定、加密、压缩,等等。通信协议还可以能够确定要创建的信道的数量并还确定哪些路径具有用于两个计算设备之间的话务的最高带宽和最低等待时间。通信协议还可利用不同底层传输,诸如例TCP或远程直接存储器访问(RDMA)并自动确定哪一个是最高效的。
图1解说了根据本公开的一个或多个实施例的可在第一计算设备110和第二计算设备150之间传输数据的系统100。在一些实施例中,第一计算设备110可以是服务器计算机且第二计算设备可以是客户端计算机,诸如例如个人计算机、平板计算机、膝上型计算机、智能电话、个人数字助理,等等。虽然第一计算设备110被示出并描述为服务器计算机且第二计算设备150被示出并描述为客户端计算机,但构想了第一计算设备110可以是客户端计算机且第二计算设备150可以是服务器计算机。另外,虽然图1只示出了一个第一计算设备110和一个第二计算设备150,但构想了系统110中可存在一个以上的第一和第二计算设备。因而,本文参考图2-4描述的方法可由一服务器计算机或客户端计算机实现或由多个服务器计算机或客户端计算机实现。作为替换或补充,第一计算设备110和第二计算设备150中的每一者可以是客户端计算机或服务器计算机。
如图1所示,第一计算设备110可包括具有一个或多个存储器块120的访问权的服务器应用115。在一些实施例中,存储器120在第一计算设备110本地。在其他实施例中,存储器120可以在第一计算设备110的远程。在这样的情况下,存储器120将需要由第一计算设备使用数据传输协议来访问。如将在下文详细地解释的,第一计算设备110可被配置成生成被绑定到一个或多个存储器块120的虚拟存储器对象125。第一计算设备110还可包括路径生成器130以及控制对存储器120和/或虚拟存储器对象125的访问的访问控制列表135。
如图1所示,通信会话170可通过网络(未示出)被建立在第一计算设备110和第二计算设备150之间。在一些实施例中,通信会话170是使用TCP/IP通信协议来建立的。虽然具体提到了TCP/IP协议,但构想了其他通信协议可被建立在第一计算设备110和第二计算设备150之间。
在一些实施例中,服务器应用115在第一计算设备110上执行且可被配置成基于从第二计算设备150接收到的请求来设立并处理第一计算设备110和第二计算设备150之间的数据传输和迁移。例如,第二计算设备可具有需要从第二计算设备传送或迁移到第一计算设备的应用、虚拟机、消息、或其他数据,或反之。在一些实施例中,服务器应用115可以是在第一计算设备115上执行的许多不同应用之一。例如,服务器应用115可以是配置成监督第一计算设备110的整个操作的操作系统。或者,服务器应用115可被配置成将接收到的数据组织到驻留在第一计算设备110上的一个或多个数据库中。
不管服务器应用115的配置如何,服务器应用115具有存储器120的访问权。因而,在第二计算设备150请求将传输数据或迁移一个或多个程序或应用时,可通过所建立的通信会话170向服务器应用115通知所需传输。在接收到通知时,服务器应用115生成虚拟存储器对象125。在一些实施例中,虚拟存储器对象125接着被绑定到存储器120中的一个或多个数据块。
如将在下文解释的,在一些实施例中,虚拟存储器对象125被设置成包含与典型文件系统中的属性相类似的属性。更具体而言,虚拟存储器对象125被配置成使得可使用请求数据传输的一个或多个应用已知的文件系统命令将数据写入与虚拟存储器对象相关联的一个或多个存储器块。即,第二计算设备150可以将虚拟存储器对象125当作可使用例如各种打开、读取以及写入命令来访问的文件。
第一计算设备110还可包括生成到虚拟存储器对象125的路径以及路径名的路径生成器130。一旦生成了路径,第一计算设备110就可使用例如访问控制列表135确立该路径的安全特征。例如,访问控制列表135可以设立与以下有关的安全特征:哪些应用(本地应用或远程应用)可访问虚拟存储器对象125、哪些客户端可具有对虚拟对象125及相关联的存储器块的写许可、哪些客户端具有只读访问、以及哪些字节范围或哪些存储器块被锁定。
在一些实施例中,第一计算设备110可将路径和路径名传递给一个或多个应用。在各实施例中,各应用可以是第一计算设备110本地的应用。在其他实施例中,一个或多个应用(诸如例如客户端应用)可以在第二计算设备150上远程地执行。在一些实施例中,使用通信会话170将路径名与第二计算设备150共享。在其中系统具有多个第二计算设备150的实施例中,第二计算设备中的每一者可与同一第一计算设备110通信。
一旦客户端应用155知晓到虚拟存储器对象125的路径,客户端应用155就可使用来自文件系统API 160的一个或多个文件系统命令来访问虚拟存储器对象125。例如,客户端应用155可以发出由API 160确立的“打开”命令并通过第二通信协议180将打开命令直接传送给虚拟存储器对象125。在各实施例中,使用文件160系统API允许升级系统级的性能或安全性,而不需要应用级改变。
在各实施例中,打开命令利用指针来访问被绑定到虚拟存储器对象125的存储器块。结果,客户端应用155可以将数据直接写入与被绑定到虚拟存储器对象125的存储器块相关联的存储器缓冲区。具体而言,客户端应用155可使用第二通信协议180直接访问第一计算设备110的存储器120。如下文将详细讨论的,第二通信协议180可以支持多个信道。因而,数据可并行地从存储器120直接读取或写入。因此,一个或多个应用(在第一计算设备110本地运行的那些应用或在第二计算设备150上远程地运行的那些应用)可提交多个异步请求。例如,在一些实施例中,打开命令天然地包括读访问和读写访问两者。另外,可给予对共享各模式(包括独占、读共享、以及读/写共享模式)的支持。通过使用这些模式,客户端可向存储器区域表达其所需访问模式,这随后允许服务器授予或拒绝所请求的模式。
如上所述,虚拟存储器对象125可被绑定到一个或多个存储器块。在一些实施例中,存储器块可以是毗连存储器块或非毗连存储器块。例如,虚拟对象125可被绑定到包括块零到块二的存储器区A并可被绑定到包括存储器块四到存储器块五的存储器区B。虽然虚拟存储器对象125可被绑定到非毗连存储器块,但虚拟存储器对象125可对客户端应用155而言看起来是毗连的。因而,在客户端应用155将数据写入虚拟存储器对象125时,客户端应用155可顺序地写入数据。相反,服务器应用115在从与虚拟存储器对象125相关联的非毗连数据块读取数据或向其写入数据时可能需要进行分散写入或聚集读取。同样,在一些实施例中,不同的非毗连区域可由虚拟存储器和物理盘的混合来备份,如果系统具有有限存储器资源的话。
在一些实施例中,第二通信协议180建立第一计算设备110与第二计算设备150之间的通信会话。如上所示,第二通信协议是文件传输协议,诸如例如服务器消息块(SIB)协议的一个版本。在一些实施例中,SMB会话可在第一通信会话170被建立之后的任何时间点建立。在另一实施例中,第一通信会话170可以是SMB会话。在又一实施例中,SMB会话可以响应于路径被从第一计算设备110传递到第二计算设备150或响应于第二计算设备150向第一计算设备110提交请求来在第一计算设备110和第二计算设备150之间建立,以接受来自第二计算设备150的数据传输或迁移。
在第一计算设备110和第二计算设备150之间的SMB会话的建立期间,可发生协商以指示第一计算设备110和第二计算设备150两者都支持SMB会话内的多个连接。这可包括协商SMB协议的一个版本。另外,第一计算设备110和/或第二计算设备150还可确定与第一计算设备110和第二计算设备150之间的各接口和连接有关的信息。这包括连接或信道的类型以及每一连接或信道的速度。此外,第一计算设备110或第二计算设备150可根据类型和速度对接口和连接进行排序以确定排名高的接口。因而,第一计算设备110和第二计算设备150中的每一者还可确定在建立附加信道以传输数据时哪些接口或信道应当被使用。
更具体地,一个或多个连接传输可在第一计算设备110和第二计算设备150之间可用。例如,第一计算设备110和第二计算设备150可通过各种传输(诸如以太网和Wi-Fi)以及同一传输的冗余连接(如多个网络接口卡(NIC))来连接。另外,一些连接传输可以支持诸如RDMA等影响一个连接传输的速度超过另一个的能力。
返回图1,如图所示,第二通信协议180允许客户端应用155直接访问虚拟存储器对象125。因而,客户端应用155可以在将数据直接写入虚拟存储器对象125时利用第二通信协议的一个或多个特征。例如,在第二通信协议是SMB协议的一个版本的场景中,客户端应用155可以利用SMB协议所提供的能力,而无需创建新文件系统命令或重新编程客户端应用155和/或第二计算设备150已知的被API 160所利用的文件系统命令。因而,客户端应用155可以利用诸如打开、读取和写入等命令,同时仍然利用SMB协议的能力,包括发现、认证、授权、带宽聚集、对RDMA和TCP的支持、RDMA上的零复制,等等。
图2解说了根据本公开的一个或多个实施例的用于在第一计算设备和第二计算设备之间传输数据的方法200。在一些实施例中,第一计算设备110(图1)和第二计算设备150(图1)中的一者或多者可以采用方法200来通过多信道数据通信协议来传递大数据块。
方法200在客户端和服务器之间建立通信会话210时开始。虽然特别提到了客户端和服务器,但构想了方法200的操作可以在两个或更多个客户端或两个或更多个服务器之间实现。在一些实施例中,通信会话是使用TCP/IP通信协议来建立的。虽然特别提到了TCP/IP通信协议,但一个或多个实施例允许客户端和服务器可使用特殊化协议或其他带外协议来建立通信会话。
一旦建立了通信,服务器就可接收请求以接受来自客户端的文件数据或应用数据220。如下文将解释的,该请求可以是将虚拟机从客户端迁移到服务器的请求。在另一实施例中,该请求可以是将大量的小数据量从客户端传输到服务器的请求。在又一实施例中,该请求可以是将大数据块从客户端传输到服务器的请求。
响应于接收到的请求,服务器创建虚拟存储器对象230。在一些实施例中,虚拟存储器对象类似于虚拟文件。因而,如同物理文件可被应用使用文件系统API的文件系统命令(例如,打开、读取、以及写入命令)访问一样,虚拟存储器对象可由远程应用使用通过数据通信协议传送的类似文件系统命令来访问。在又一实施例中,虚拟文件可以是较小缓冲区的阵列,其中读或写的文件偏移指示该数据应当被写到或从中被读出的缓冲区的索引。
作为创建过程的一部分,虚拟存储器对象被映射并被绑定到驻留在服务器上的一个或多个物理存储器区(或块)。作为绑定过程的一部分,服务器可注册一个或多个物理存储器区以帮助确保该存储器不被另一应用盖写。虽然一个或多个物理存储器区被绑定到虚拟存储器对象,但驻留在服务器上的一个或多个应用仍然可在需要时访问该物理存储器区。如上所述,与每一虚拟存储器对象相关联的物理存储器区可以是毗连或非毗连的或它们的组合。
一旦虚拟存储器对象已被创建、映射并绑定到服务器上的一个或多个物理存储器区,流程进至操作240,在此生成到虚拟存储器对象的路径。在一些实施例中,该路径由服务器或驻留在服务器上的应用生成。该路径可包括文件名或路径名,使得它可容易地被传递到一个或多个本地应用和在客户端上被执行的具有与服务器的已建立的通信会话的一个或多个远程应用。
操作250允许该路径被传递给一个或多个应用。如上所述,该路径被传递给一个或多个远程应用。在另一实施例中,路径名可被传递给本地应用。虽然路径名可被传递给本地应用,但构想了本地应用可使用传统文件访问方法来访问物理存储器区并且不需要利用路径名。在另一实施例中,一旦路径被建立,所有应用(本地应用或远程应用)可被要求利用该路径来访问与虚拟存储器对象相关联的物理存储器区。在一些实施例中,该路径被使用操作210的已建立的通信会话来传递给客户端或远程应用。
一旦路径已被传递给应用,操作260就允许来自一个或多个远程应用的数据被使用文件传输协议直接接收到虚拟存储器对象。如上所述,远程应用通过文件传输协议来传递文件系统命令以访问与虚拟存储器对象相关联的物理存储器区中的数据。因而,在客户端应用知晓到虚拟存储器对象的路径时,客户端应用可对虚拟存储器对象发出打开、读取、以及写入命令。结果,以上方法可以使远程应用能够利用文件传输协议(如以上讨论的那些协议,例如自动发现、协商、认证、带宽聚集、RDMA以及TCP支持、RDMA上的零复制,等等)的底层特征,同时仍然利用客户端应用已知并利用的文件访问命令。它还使客户端和服务器能够利用这些能力,即使在应用本身不知晓什么可用,并且因而性能或安全性可被改进,而无需对应用进行改变。
在一些实施例中,文件传输协议是服务器消息块(SMB)协议的版本2或更高版本。如上所述,SMB协议可被配置成利用多个信道。结果,在数据从客户端传输到服务器时,读和写可通过各信道被并行传送。另外,利用多个信道和/或RDMA的SMB上的大读取和写入在源和目的地两者上具有零复制功能。因而,从客户端到服务器(或反向)的数据可被直接传输到/自应用存储器,这消除了在操作系统中的应用存储器与数据缓冲区之间复制数据的需求。结果,传输可需要很少或不需要本地处理器、高速缓存等完成的工作。
以下是其中可利用方法200的示例实施例。例如,可存在在两个不同节点(例如,源节点和目的地节点)上运行的多个进程。节点之一(源节点)想要将一千兆字节数据传输给另一节点(目的地节点)。源节点创建虚拟存储器对象并用存储器来寄存一千兆字节数据。源随后将路径名提供给目的地节点。目的地节点使用来自文件系统API的文件系统命令打开虚拟存储器对象并发出并行读取以在本地拉取存储器。一旦操作完成,虚拟存储器对象就被关闭。
作为另一示例,多个进程可在两个不同节点(例如,源节点和目的地节点)上运行。节点之一(源节点)想要将一千兆字节数据传输给另一节点(目的地节点)。源节点请求目的地节点创建给定大小(例如,一千兆字节)的虚拟存储器对象。响应于该请求,目的地节点生成虚拟存储器对象,将一个或多个物理存储器块绑定到虚拟存储器对象,并生成到虚拟存储器对象的路径。目的地节点随后将路径提供给源节点。源节点使用来自文件系统API的文件系统命令打开虚拟存储器对象并发出并行写入以启用数据传输。一旦操作完成,虚拟存储器对象就被关闭。
本公开的一个或多个实施例还可由想要交换具有少量数据的大量消息的一个或多个消息收发协议利用。虽然消息通常大小很小,但本公开的各实施例可被用来更高效地传输大量消息。
参考图3,图3解说了用于启用第一计算设备和第二计算设备之间的消息传输的方法300。在各实施例中,消息的传输可以在第一计算设备110(图1)和第二计算设备150(图1)之间。方法300在客户端和服务器之间建立通信会话310时开始。在一些实施例中,通信会话基于TCP/IP通信协议或其他这样的通信协议。
在服务器接收来自客户端的消息传输请求时,服务器创建虚拟存储器对象320。在一些实施例中,虚拟存储器对象被映射到服务器的一个或多个物理存储器位置。另外,每一存储器位置与用作消息时隙标识符的一个或多个偏移相关联。
一旦虚拟存储器对象已被创建,流程进至操作330,在此,生成到虚拟存储器对象的路径。随后使用操作310的已建立的通信会话将该路径传递给客户端设备和/或驻留在客户端设备上的一个或多个应用340。
一旦路径已被传递给一个或多个应用,来自客户端应用的数据就被直接接收到与虚拟存储器对象相关联的物理存储器位置的偏移中。在各实施例中,使用文件传输协议(诸如例如SMB2或SMB3协议)将数据直接接收到偏移中。流程随后进至操作360,在此服务器或在服务器上运行的应用将对应命令张贴到接收到来自客户端应用的消息的物理存储器偏移。
例如,使用上述方法300,一旦虚拟存储器对象被创建且路径被传输给客户端,客户端就将任何读或写张贴到虚拟存储器中的任何偏移。一旦命令被接收到并被存储在偏移中,服务器就将对应读或写张贴到同一偏移。命令中的每一者被配对并处理。进一步,在该示例中,客户端可以使用文件系统API将写张贴到虚拟存储器对象中的偏移1。作为响应,服务器将对应读张贴到虚拟存储器对象中的偏移1。来自客户端的写和来自服务器的读被配对并处理,且来自客户端的写的数据被经由服务器的对应读直接写入与虚拟存储器对象的该偏移相关联的物理存储器。还构想了消息可按相对的方式来发送(即,客户端张贴读,且服务器发送对应写)。
一个或多个实施例允许使用上述方法的写和读被并行处理。例如,客户端设备可发出被写入虚拟存储器对象的偏移1-100的100个写(假定处理的次序对客户端而言没关系)。另外,服务器可在虚拟存储器对象的偏移1-1000中张贴了1000个读。在接收到来自客户端的每一个写时,服务器可立即处理所张贴的1000个读中的100个读并相应地写入数据。因为读和写中的每一者具有对应标识符(即,对存储器位置的偏移),所以客户端和服务器知晓哪些命令已被处理。另外,服务器还可通过使对给定偏移的后续写失败来确保针对该偏移的写只发生一次。因而,如果客户端失去连接,则后续重新建立和重新打开对象并重放写,该写将只被服务器处理一次。
一个或多个实施例允许方法200和方法300可被组合。即,虚拟文件可被生成,其中存储器的第一部分被用来接收并存储消息于各存储器偏移处,并且其中存储器的第二部分被用来存储数据块。在这样的实施例中,在接收到数据时,特定位可被设置来指示数据是消息并且应当具有对存储器中的特定偏移的访问权(如参考图3讨论的)。在该示例中,如果该位未被设置,则数据应当被写入特定存储器位置(如参考图2讨论的)。
本公开的各实施例还可被用来执行从第一物理计算设备到第二物理计算设备的虚拟机实况迁移,而无需关闭虚拟机。在一些实施例中,虚拟机驻留在物理机的一个分区中。虚拟机可以运行操作系统和一个或多个附加应用。还构想了一个物理机可具有多个虚拟机。
图4解说了用于执行从源到目的地的虚拟机实况迁移的方法400。在一些实施例中,在源和目的地之间建立通信会话410。源和目的地之间的通信是使用TCP/IP通信协议或其他通信协议来建立的。在一些实施例中,源可以是第二计算设备150且目的地可以是以上参考图1讨论的第一计算设备150。在一些实施例中,虚拟机在它要被转移时在源处执行。因为在转移期间数据可能持续地被写入虚拟机,所以虚拟机未被关闭,因而服务的任何中断都可能破坏数据,或致使所转移的虚拟机不可操作。
一旦源和目的地之间的通信被建立,源就确定要被转移的虚拟机的一个或多个特征。这些细节可包括虚拟机的预期使用、与虚拟机相关联的一个或多个网络连接、虚拟机的大小(即,一旦从源到目的地的迁移完成,虚拟机将需要多少存储器)等等。在确立了虚拟机的特征时,源通过所建立的通信会话将存储器要求传递给目的地。
作为响应,目的地创建虚拟文件对象430。在一些实施例中,虚拟文件对象的大小与所确立的存储器要求相对应。因而,如果虚拟机需要两千兆字节数据,则虚拟文件对象的大小被确立为两千兆字节。与本文描述的其他实施例一样,一旦创建了虚拟文件对象,目的地的一个或多个物理存储器块就被绑定到虚拟文件对象。在一些实施例中,在目的地上创建的虚拟文件对象与虚拟机在源上使用的存储器的配置相匹配。另外,目的地上的虚拟文件对象将最终被目的地用作虚拟机的存储器。这样的配置允许对使用RDMA的零复制传输的完全利用。
在一些实施例中,目的地还可创建虚拟对象的一个或多个安全参数。目的地还可生成与虚拟文件对象相关联的路径。如上所述,该路径被源用来访问虚拟文件对象并更具体地是访问虚拟文件对象指向的目的地的物理存储器。
一旦创建了路径,路径名就被传递给源440。在一些实施例中,该路径使用先前建立的通信会话被传递给源。
流程随后进至操作450,在此,源通过文件访问协议(诸如例如SMB协议的一个版本)使用文件系统命令发起虚拟机到虚拟文件的直接复制。更具体地,源使用来自源已知的文件系统API的文件系统命令复制来自一个或多个本地数据块的数据,使用路径名通过文件访问协议将写请求传送给虚拟文件。如上所述,一个或多个实施例允许在目的地上创建的存储器对象的布局与虚拟机在源上使用的布局相匹配。这允许源从虚拟机在源主机上的存储器位置导出写操作的文件偏移。
在一些实施例中,从源到目的地的命令是异步写命令。另外,如上所述,文件传输协议支持多信道能力。因此,多个异步写可同时或基本上同时执行。与本文公开的其他数据传输一样,操作450的源和目的地之间(以及目的地和源之间)的数据传输可以是使用RDMA的零复制数据传输。
在一些实施例中,虚拟机的基本部分(例如,虚拟机的执行所必需的所需组件)在虚拟机的非基本部分从源迁移到目的地之前从源迁移到目的地。在其他实施例中,虚拟机是被顺序地迁移的。一旦已将虚拟机的足够部分转移到目的地以使虚拟机能够运行,虚拟机就可开始在目的地处执行。此后,去往和来自虚拟机的任何读或写可由新声明的虚拟机来处理。
如上所述,虚拟机可以在文件传输进展期间执行且数据可被持续地写入虚拟机的存储器。如此,方法400进至操作460,在此在源处维护位图。在一些实施例中,虚拟机可以更新位图。在另一实施例中,位图可由源来维护。在一些实施例中,位图中的每一个位表示被转移的虚拟机的存储器部分。因而,位图跟踪虚拟机的哪些部分已被转移到目的地并且进一步经转移的部分中的哪些自对应部分被迁移以来已被更新数据。例如,存储器部分的每一修改造成位图的对应位被设置。因而,如果虚拟机的一部分已被迁移并且随后该部分所主存的数据后续被更改,则位图将显示数据后续已被更改且数据的该部分应当被再次迁移。
在一些实施例中,虚拟机是使用多遍方法来迁移的。因而,在每一遍完成之后(上至最大遍数),检查位图以确定迁移是否完成470。如果迁移未完成,则流程返回操作450并且该过程重复。然而,如果在操作470确定迁移完成,则检查位图以寻找对数据的任何最终更改。如果存在对数据的更改,则经更新的数据被发送给目的地且源上的虚拟机被关闭。
本文描述的实施例和功能可通过多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(如移动电话、上网本、图形输入板或平板型计算机、笔记本计算机、和膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、以及大型计算机。
此外,本文所述的实施例和功能性可在分布式系统(如基于云的计算系统)上操作,其中应用功能性、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算系统的交互包括:键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测(如相机)功能)等。
图5-7以及相关联的描述提供了其中可实施本发明的实施例的各种操作环境的讨论。然而,关于图5-7所示出和讨论的设备和系统是用于示例和说明的目的,而非对可被用于实施本文所述的各实施例的大量计算设备配置的限制。
图5是示出可用来实施本发明的各实施例的计算设备110的物理组件(即硬件)的框图。下面描述的计算设备组件可适用于上述计算设备,包括第一计算设备110和第二计算设备150。在基本配置中,计算设备110可包括至少一个处理单元502和系统存储器504。取决于计算设备的配置和类型,系统存储器504可包括,但不限于,易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存、或这些存储器的任何组合。系统存储器504可包括操作系统505和适用于运行软件应用520的一个或多个程序模块506,诸如服务器应用115、路径生成器130、访问控制列表135、以及API 160(在计算设备表示第二计算设备150的实施例中)。操作系统505例如可适合于控制计算设备110的操作。此外,本发明的各实施例可以结合图形库、其他操作系统、或任何其他应用程序来实践,且不限于任何特定应用或系统。该基本配置在图5中由虚线508内的那些组件示出。计算设备110可具有附加特征或功能。例如,计算设备110还可以包括诸如例如磁盘、光盘或磁带之类的附加数据存储设备(可移动和/或不可移动)。这些附加存储在图5中由可移动存储设备509和不可移动存储设备510示出。
如上所述,可在系统存储器504中存储多个程序模块和数据文件。尽管在处理单元502上执行,但是程序模块506可以执行包括但不限于下列过程:图2-4中所示的方法200、300和400的各阶段中的一个或多个。根据本发明的实施例可使用的其他程序模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
此外,本发明的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以通过片上系统(SOC)来实施本发明的各实施例,其中,可以将图5中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能性,所有这些都作为单个集成电路被集成到(或“烧录到”)芯片基板上。当通过SOC操作时,在此所述的关于服务器应用115、路径生成器130、访问控制列表135以及API 160的功能可以通过在单个集成电路(芯片)上与计算设备110的其它组件集成在一起的专用逻辑来操作。本发明的各实施例还可使用能够执行诸如例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可以在通用计算机或任何其他电路或系统中实施。
计算设备110也可具有一个或多个输入设备512,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备514,如显示器、扬声器、打印机等等。上述设备是示例,并且可使用其他设备。计算设备104可包括允许与其他计算设备518进行通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、或程序模块等信息的易失性和非易失性、可移动和不可移动介质。系统存储器504、可移动存储设备509和不可移动存储设备510都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算机设备110访问的任何其他制造品。任何这样的计算机存储介质都可以是计算设备110的一部分。计算机存储介质不包括载波或其他传播或已调数据信号。
通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
图6A和6B示出可用来实施本发明的各实施例的移动计算设备600,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图6A,示出了用于实现各实施例的移动计算设备600的一个实施例。在一基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持式计算机。移动计算设备600通常包括显示器605以及允许用户将信息输入到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605也可充当输入设备(如触摸屏显示器)。如果包括,则可任选的侧输入元件615允许进一步的用户输入。侧输入元件615可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备600可结合更多或更少的输入元件。例如,在某些实施例中,显示器605可以不是触摸屏。在又一替代实施例中,移动计算设备600是诸如蜂窝电话之类的便携式电话系统。移动计算设备600还可包括可选的小键盘635。可选的小键盘635可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。在各个实施例中,输出元件包括用于显示图形用户界面(GUI)的显示器605、可视指示器620(如发光二极管)、和/或音频换能器625(如扬声器)。在某些实施例中,移动计算设备600结合振动换能器来向用户提供触觉反馈。在又一实施例中,移动计算设备600结合诸如音频输入(如传声器插孔)、音频输出(如耳机插孔)、以及视频输出(如HDMI端口)之类的输入和/或输出端口,用于将信号发送到外部设备或从外部设备接收信号。
图6B是示出移动计算设备的一个实施例的架构的框图。即,移动计算设备600可结合系统(即架构)602以实现某些实施例。在一个实施例中,系统602被实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的“智能手机”。在某些实施例中,系统602被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
一个或多个应用程序666可被加载到存储器662中并在操作系统664上或与操作系统664相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。系统602还包括存储器662内的非易失性存储区668。非易失性存储区668可被用于存储在系统602断电的情况下不会丢失的持久信息。应用程序666可使用信息并将信息存储在非易失性存储区668中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留于系统602上且被编程为与驻留在主机计算机上的对应的同步应用交互,以保持非易失性存储区668中存储的信息与主机计算机处存储的相应信息同步。应当理解,其他应用可被加载到存储器662并在移动计算设备600上运行,包括本文描述的服务器应用115、路径生成器130、访问控制列表135、以及API 160(在计算设备600表示第二计算设备150的实施例中)。
系统602具有可被实现为一个或多个电池的电源670。电源670还可包括外部功率源,如补充电池或对电池充电的AC适配器或加电对接托架。
系统602还可包括执行发射和接收无线电频率通信的功能的无线电672。无线电672通过通信运营商或服务供应商方便了系统602与“外部世界”之间的无线连接。来往无线电672的传输是在操作系统664的控制下进行的。换言之,无线电672接收的通信可通过操作系统664传播到应用程序666,反之亦然。
可以使用可视指示器620来提供可视通知,和/或可以使用音频接口674来经由音频换能器625产生可听通知。在所示实施例中,可视指示符620是发光二极管(LED),而音频换能器625是扬声器。这些设备可直接耦合到电源670,使得当被激活时,即使为了节省电池功率而可能关闭处理器660和其它组件,它们也保留一段由通知机制指示的保持通电时间。LED可被编程为无限地保持通电,直到用户采取动作指示该设备的通电状态。音频接口674用于向用户提供听觉信号并从用户接收听觉信号。例如,除了被耦合到音频换能器625之外,音频接口674还可被耦合到话筒来接收可听输入,例如便于电话通话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统602可进一步包括允许板载相机630的操作来记录静止图像、视频流等的视频接口676。
实现系统600的移动计算设备602可具有附加特征或功能。例如,移动计算设备600还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储设备在图6B中用非易失性存储区668示出。
由移动计算设备600生成或捕捉的且经系统602存储的数据/信息可如上所述被本地存储在移动计算设备600上,或数据可被存储在可由设备通过无线电672或通过移动计算设备600和与移动计算设备600相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经移动计算设备600、经无线电672或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以存储和使用,这些手段包括电子邮件和协作数据/信息共享系统。
图7解说了用于在上述不同计算设备之间传输数据的系统的体系结构的一个实施例。第一计算设备110和第二计算设备150之间传输的数据可被存储在不同通信信道或其他存储类型中。例如,各种文档可使用目录服务722、web门户724、邮箱服务726、即时消息收发存储728或社交联网站点730来存储。服务器应用115、路径生成器130以及访问控制列表135可以使用这些类型的系统中的任一者来启用本文描述的方法和特征。服务器720可以提供来自和去往第一计算设备110和第二计算设备150的数据。作为一个示例,服务器720可以是web服务器。服务器720可以通过网络715在web上将数据提供给第一计算设备110或第二计算设备150。作为示例,第一计算设备110和第二计算设备150可被实现在个人计算机、平板计算设备和/或移动计算设备600(如智能电话)中。这些实施例中的任一个可从存储716获得内容。
以上参考例如根据本公开的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的各实施例。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。
本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的本公开的范围。本申请中提供的实施例、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的实施例的最佳模式。所要求保护的实施例不应被理解为限制于本申请中所提供的任何实施例、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的特征集的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在所要求保护的实施例的更宽泛方面以及本申请中所具体化的一般发明概念的精神内的替代实施例并不背离该更宽泛的范围。
Claims (10)
1.一种用于在第一计算设备和第二计算设备之间传输数据的方法,所述方法包括:
使用第一通信协议在所述第一计算设备和所述第二计算设备之间建立通信会话;
在所述第一计算设备上创建虚拟存储器对象,其中所述虚拟存储器对象被配置成使得能使用文件系统命令将数据写到所述第一计算设备的与所述虚拟存储器对象相关联的一个或多个存储器块;
将所述虚拟存储器对象绑定到所述第一计算设备的一个或多个存储器块;
生成到所述虚拟存储器对象的路径;
使用所述通信会话将所述路径传送给所述第二计算设备;以及
使用所述虚拟存储器对象将来自所述第二计算设备的数据直接接受到所述第一计算设备的所述一个或多个存储器块中。
2.如权利要求1所述的方法,其特征在于,所述第一通信协议是传输控制协议(TCP)。
3.如权利要求1所述的方法,其特征在于,将数据直接接受到所述第一计算设备的所述一个或多个存储器块中包括接受通过与所述第一通信协议不同的第二通信协议来传递给所述第一计算设备的数据。
4.如权利要求3所述的方法,其特征在于,所述第二通信协议是服务器消息块(SM B)协议。
5.如权利要求1所述的方法,其特征在于,将数据直接接受到所述虚拟存储器对象中包括通过多个信道并行地接受所述数据。
6.如权利要求1所述的方法,其特征在于,将数据直接接受到所述虚拟存储器对象包括接受来自所述第二计算设备的一个或多个文件系统命令,其中所述一个或多个文件系统命令是从文件系统应用编程接口(API)中选择的。
7.一种用于在第一计算设备和第二计算设备之间传输数据的方法,所述方法包括:
使用第一通信协议在所述第一计算设备和所述第二计算设备之间建立通信会话;
向所述第一计算设备发送从所述第二计算设备向所述第一计算设备传输数据的请求;
响应于所述请求,在所述第二计算设备处接收到虚拟存储器对象的路径,其中所述虚拟存储器对象被配置成使得能使用文件系统命令将数据写到所述第一计算设备的与所述虚拟存储器对象相关联的一个或多个存储器块,其中所述虚拟存储器对象被绑定到所述第一计算设备上的一个或多个存储器块;
使用所述虚拟存储器对象将来自所述第二计算设备的数据直接传输给所述一个或多个存储器块,其中所述传输是使用与所述第一通信协议不同的第二通信协议发生的,并且其中所述数据是使用所述虚拟存储器对象通过由所述第二计算设备传递的文件系统命令来传输给所述一个或多个存储器块的。
8.如权利要求7所述的方法,其特征在于,所述第一通信协议是传输控制协议(TCP)。
9.一种用于在第一计算设备和第二计算设备之间传输数据的系统,所述系统包括:
用于使用第一通信协议在所述第一计算设备和所述第二计算设备之间建立通信会话的装置;
用于在所述第一计算设备上创建虚拟存储器对象的装置,其中所述虚拟存储器对象被配置成使得能使用文件系统命令将数据写到所述第一计算设备的与所述虚拟存储器对象相关联的一个或多个存储器块;
用于将所述虚拟存储器对象绑定到所述第一计算设备的一个或多个存储器块的装置;
用于生成到所述虚拟存储器对象的路径的装置;
用于使用所述通信会话将所述路径传送给所述第二计算设备的装置;以及
用于使用所述虚拟存储器对象将来自所述第二计算设备的数据直接接受到所述第一计算设备的所述一个或多个存储器块中的装置。
10.如权利要求9所述的系统,其特征在于,所述第一通信协议是传输控制协议(TCP)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/904,756 US10404520B2 (en) | 2013-05-29 | 2013-05-29 | Efficient programmatic memory access over network file access protocols |
US13/904,756 | 2013-05-29 | ||
PCT/US2014/039633 WO2014193861A2 (en) | 2013-05-29 | 2014-05-28 | Efficient programmatic memory access over network file access protocols |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105359105A CN105359105A (zh) | 2016-02-24 |
CN105359105B true CN105359105B (zh) | 2018-12-18 |
Family
ID=51059579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480031323.5A Active CN105359105B (zh) | 2013-05-29 | 2014-05-28 | 通过网络文件访问协议的高效编程存储器访问 |
Country Status (12)
Country | Link |
---|---|
US (2) | US10404520B2 (zh) |
EP (1) | EP3005114B1 (zh) |
JP (1) | JP2016520240A (zh) |
KR (1) | KR20160014043A (zh) |
CN (1) | CN105359105B (zh) |
AU (1) | AU2014274331A1 (zh) |
BR (1) | BR112015028817A2 (zh) |
CA (1) | CA2910353A1 (zh) |
MX (1) | MX2015016349A (zh) |
RU (1) | RU2015151007A (zh) |
TW (1) | TW201502803A (zh) |
WO (1) | WO2014193861A2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9641614B2 (en) | 2013-05-29 | 2017-05-02 | Microsoft Technology Licensing, Llc | Distributed storage defense in a cluster |
US10404520B2 (en) * | 2013-05-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Efficient programmatic memory access over network file access protocols |
CN104765999B (zh) * | 2014-01-07 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 一种对用户资源信息进行处理的方法、终端及服务器 |
CN107179878B (zh) * | 2016-03-11 | 2021-03-19 | 伊姆西Ip控股有限责任公司 | 基于应用优化的数据存储的方法和装置 |
US10546144B2 (en) * | 2016-05-05 | 2020-01-28 | International Business Machines Corporation | Dynamically excluding sensitive information from system snapshot |
US10417174B2 (en) * | 2016-06-24 | 2019-09-17 | Vmware, Inc. | Remote direct memory access in a virtualized computing environment |
US10169149B2 (en) * | 2016-09-06 | 2019-01-01 | International Business Machines Corporation | Standard and non-standard dispersed storage network data access |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US10810157B1 (en) * | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
CN106790420B (zh) * | 2016-11-30 | 2019-11-26 | 华为技术有限公司 | 一种多会话通道建立方法和系统 |
US10997132B2 (en) * | 2017-02-07 | 2021-05-04 | Oracle International Corporation | Systems and methods for live data migration with automatic redirection |
EP3603025B1 (en) * | 2017-03-29 | 2023-01-25 | Amazon Technologies, Inc. | Migration of information via storage devices |
US10552122B2 (en) | 2017-05-02 | 2020-02-04 | Mastercard International Incorporated | Systems and methods for customizable regular expression generation |
CN107704548A (zh) * | 2017-09-26 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储介质和对象数据的存储方法、装置及设备 |
CN108600308B (zh) * | 2018-03-20 | 2021-08-06 | 新华三技术有限公司 | 数据上传方法、装置、存储介质和服务器 |
US10785271B1 (en) * | 2019-06-04 | 2020-09-22 | Microsoft Technology Licensing, Llc | Multipoint conferencing sessions multiplexed through port |
CN115328408B (zh) * | 2022-10-14 | 2023-01-03 | 联想凌拓科技有限公司 | 用于数据处理的方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356863B1 (en) * | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
CN103020235A (zh) * | 2011-12-15 | 2013-04-03 | 微软公司 | 自治网络流传输 |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR9204660A (pt) | 1991-12-20 | 1993-06-22 | Ibm | Sistema de rede de computadores que engloba uma interface para sistemas de computadores pequenos(scsi)para dispositivos de scsi nao locais |
US5404529A (en) * | 1993-07-19 | 1995-04-04 | Taligent, Inc. | Object-oriented interprocess communication system interface for a procedural operating system |
EP0709779B1 (en) | 1994-10-31 | 2001-05-30 | International Business Machines Corporation | Virtual shared disks with application-transparent recovery |
US6085234A (en) | 1994-11-28 | 2000-07-04 | Inca Technology, Inc. | Remote file services network-infrastructure cache |
US6012129A (en) * | 1997-03-31 | 2000-01-04 | International Business Machines Corporation | Apparatus and method allocating virtual memory upon demand |
US6363411B1 (en) | 1998-08-05 | 2002-03-26 | Mci Worldcom, Inc. | Intelligent network |
US6279032B1 (en) | 1997-11-03 | 2001-08-21 | Microsoft Corporation | Method and system for quorum resource arbitration in a server cluster |
US6167446A (en) * | 1997-11-03 | 2000-12-26 | Inca Technology, Inc. | Automatically configuring network-name-services |
US6178529B1 (en) | 1997-11-03 | 2001-01-23 | Microsoft Corporation | Method and system for resource monitoring of disparate resources in a server cluster |
US6173374B1 (en) | 1998-02-11 | 2001-01-09 | Lsi Logic Corporation | System and method for peer-to-peer accelerated I/O shipping between host bus adapters in clustered computer network |
US7774469B2 (en) | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
US6845395B1 (en) | 1999-06-30 | 2005-01-18 | Emc Corporation | Method and apparatus for identifying network devices on a storage network |
US6895591B1 (en) | 1999-10-18 | 2005-05-17 | Unisys Corporation | Virtual file system and method |
US6633919B1 (en) * | 1999-11-18 | 2003-10-14 | International Business Machines Corporation | Method, system and program product for managing the flow of data between senders and receivers of a computing environment |
US6714968B1 (en) * | 2000-02-09 | 2004-03-30 | Mitch Prust | Method and system for seamless access to a remote storage server utilizing multiple access interfaces executing on the remote server |
US6654902B1 (en) | 2000-04-11 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Persistent reservation IO barriers |
US20020002602A1 (en) | 2000-04-17 | 2002-01-03 | Mark Vange | System and method for serving a web site from multiple servers |
US6990606B2 (en) | 2000-07-28 | 2006-01-24 | International Business Machines Corporation | Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters |
US6816817B1 (en) * | 2000-09-28 | 2004-11-09 | Rockwell Automation Technologies, Inc. | Networked control system with real time monitoring |
US6651110B1 (en) * | 2000-09-28 | 2003-11-18 | Rockwell Automation Technologies, Inc. | Configurable object for industrial control and monitoring networks |
US6832118B1 (en) * | 2000-09-29 | 2004-12-14 | Rockwell Automation Technologies, Inc. | Programmable network control component and system of components |
US6954881B1 (en) | 2000-10-13 | 2005-10-11 | International Business Machines Corporation | Method and apparatus for providing multi-path I/O in non-concurrent clustering environment using SCSI-3 persistent reserve |
US6965936B1 (en) | 2000-12-06 | 2005-11-15 | Novell, Inc. | Method for detecting and resolving a partition condition in a cluster |
US6622229B2 (en) * | 2001-02-28 | 2003-09-16 | International Business Machines Corporation | Virtual memory structure |
US7127565B2 (en) | 2001-08-20 | 2006-10-24 | Spinnaker Networks, Inc. | Method and system for safely arbitrating disk drive ownership using a timestamp voting algorithm |
US7277952B2 (en) | 2001-09-28 | 2007-10-02 | Microsoft Corporation | Distributed system resource protection via arbitration and ownership |
US7631066B1 (en) | 2002-03-25 | 2009-12-08 | Symantec Operating Corporation | System and method for preventing data corruption in computer system clusters |
US7603670B1 (en) * | 2002-03-28 | 2009-10-13 | Symantec Operating Corporation | Virtual machine transfer between computer systems |
US7240098B1 (en) | 2002-05-09 | 2007-07-03 | Cisco Technology, Inc. | System, method, and software for a virtual host bus adapter in a storage-area network |
EP1450297A1 (en) * | 2002-10-04 | 2004-08-25 | Sony Corporation | Data management system, data management method, virtual memory device, virtual memory control method, reader/writer device, ic module access device, and ic module access control method |
US7131003B2 (en) | 2003-02-20 | 2006-10-31 | America Online, Inc. | Secure instant messaging system |
US20050080982A1 (en) | 2003-08-20 | 2005-04-14 | Vasilevsky Alexander D. | Virtual host bus adapter and method |
US7114053B2 (en) * | 2003-08-21 | 2006-09-26 | Texas Instruments Incorporated | Virtual-to-physical address conversion in a secure system |
US7168071B2 (en) | 2003-09-30 | 2007-01-23 | Intel Corporation | Method and system of permitting stack allocation to programs having open-world features |
US20050132154A1 (en) | 2003-10-03 | 2005-06-16 | International Business Machines Corporation | Reliable leader election in storage area network |
US7673066B2 (en) * | 2003-11-07 | 2010-03-02 | Sony Corporation | File transfer protocol for mobile computer |
US7590737B1 (en) | 2004-07-16 | 2009-09-15 | Symantec Operating Corporation | System and method for customized I/O fencing for preventing data corruption in computer system clusters |
US20060074940A1 (en) | 2004-10-05 | 2006-04-06 | International Business Machines Corporation | Dynamic management of node clusters to enable data sharing |
JP2006107158A (ja) | 2004-10-06 | 2006-04-20 | Hitachi Ltd | ストレージネットワークシステム及びアクセス制御方法 |
US7260678B1 (en) | 2004-10-13 | 2007-08-21 | Network Appliance, Inc. | System and method for determining disk ownership model |
US8365301B2 (en) | 2005-02-22 | 2013-01-29 | Microsoft Corporation | Peer-to-peer network communication |
US7350074B2 (en) | 2005-04-20 | 2008-03-25 | Microsoft Corporation | Peer-to-peer authentication and authorization |
US7529878B2 (en) * | 2005-04-29 | 2009-05-05 | Sigmatel, Inc. | Method and system of memory management |
US7739677B1 (en) | 2005-05-27 | 2010-06-15 | Symantec Operating Corporation | System and method to prevent data corruption due to split brain in shared data clusters |
US8260828B2 (en) | 2005-08-01 | 2012-09-04 | Koninklijke Philips Electronics N.V. | Organizing content using a dynamic profile |
JP5390771B2 (ja) | 2005-10-04 | 2014-01-15 | 華為技術有限公司 | 移動通信システムに使用される通信方法、移動局、及び基地局 |
US8347373B2 (en) * | 2007-05-08 | 2013-01-01 | Fortinet, Inc. | Content filtering of remote file-system access protocols |
US8667076B2 (en) * | 2006-07-28 | 2014-03-04 | Microsoft Corporation | Mapping universal plug and play discovered items to an SMB location |
KR200429667Y1 (ko) * | 2006-07-28 | 2006-10-26 | 조용설 | 군복의 부착물 부착장치 |
US7925809B2 (en) | 2006-10-24 | 2011-04-12 | Apple Inc. | Systems and methods for storage management in a data processing device |
US8504794B1 (en) * | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
US8737261B2 (en) | 2006-11-27 | 2014-05-27 | Telefonaktiebolaget L M Ericsson (Publ) | Node registering method |
US7786901B2 (en) | 2007-04-03 | 2010-08-31 | Motorola, Inc. | Key press registration in an electronic device with moveable housings |
GB2449118A (en) | 2007-05-11 | 2008-11-12 | Ericsson Telefon Ab L M | Host Identity Protocol Rendezvous Servers which store information about nodes connected to other servers and forward address requests |
US7778986B2 (en) | 2007-08-29 | 2010-08-17 | International Business Machines Corporation | Securing transfer of ownership of a storage object from an unavailable owner node to another node |
US7783666B1 (en) | 2007-09-26 | 2010-08-24 | Netapp, Inc. | Controlling access to storage resources by using access pattern based quotas |
US7809776B1 (en) * | 2007-11-30 | 2010-10-05 | Netapp, Inc. | System and method for supporting change notify watches for virtualized storage systems |
US8472431B2 (en) | 2008-01-24 | 2013-06-25 | At&T Intellectual Property I, L.P. | System and method of providing IMS services to users on terminating non IMS devices |
US8893160B2 (en) * | 2008-06-09 | 2014-11-18 | International Business Machines Corporation | Block storage interface for virtual memory |
US7840730B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US8719473B2 (en) | 2008-09-19 | 2014-05-06 | Microsoft Corporation | Resource arbitration for shared-write access via persistent reservation |
US8046467B2 (en) | 2008-08-29 | 2011-10-25 | Microsoft Corporation | Maintaining client affinity in network load balancing systems |
US8225019B2 (en) | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
US8838850B2 (en) | 2008-11-17 | 2014-09-16 | Violin Memory, Inc. | Cluster control protocol |
US8041987B2 (en) | 2008-11-10 | 2011-10-18 | International Business Machines Corporation | Dynamic physical and virtual multipath I/O |
US8185049B2 (en) | 2008-12-29 | 2012-05-22 | General Instrument Corporation | Multi-mode device registration |
US20100241731A1 (en) * | 2009-03-17 | 2010-09-23 | Gladinet, Inc. | Method for virtualizing internet resources as a virtual computer |
US8417899B2 (en) | 2010-01-21 | 2013-04-09 | Oracle America, Inc. | System and method for controlling access to shared storage device |
US8443231B2 (en) | 2010-04-12 | 2013-05-14 | Symantec Corporation | Updating a list of quorum disks |
US8219769B1 (en) | 2010-05-04 | 2012-07-10 | Symantec Corporation | Discovering cluster resources to efficiently perform cluster backups and restores |
US8381017B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Automated node fencing integrated within a quorum service of a cluster infrastructure |
US9053339B2 (en) | 2010-10-27 | 2015-06-09 | Hytrust, Inc. | System and method for secure storage of virtual machines |
CN101997918B (zh) | 2010-11-11 | 2013-02-27 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
US8806030B2 (en) | 2010-12-06 | 2014-08-12 | Microsoft Corporation | Multichannel connections in file system sessions |
CN103250380B (zh) | 2010-12-17 | 2016-05-18 | 瑞典爱立信有限公司 | 改进了链路故障之后的恢复时间的以太网环路节点 |
US10108630B2 (en) | 2011-04-07 | 2018-10-23 | Microsoft Technology Licensing, Llc | Cluster unique identifier |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8677085B2 (en) | 2011-08-29 | 2014-03-18 | Vmware, Inc. | Virtual machine snapshotting in object storage system |
KR101378309B1 (ko) * | 2011-11-22 | 2014-03-28 | 에스케이텔레콤 주식회사 | 채팅 중 http를 이용한 파일 전송을 위한 장치 및 기록매체 |
US8738701B2 (en) | 2012-02-28 | 2014-05-27 | Microsoft Corporation | Arbitration of disk ownership in a storage pool |
US9678863B2 (en) * | 2012-06-12 | 2017-06-13 | Sandisk Technologies, Llc | Hybrid checkpointed memory |
US20130346532A1 (en) | 2012-06-21 | 2013-12-26 | Microsoft Corporation | Virtual shared storage in a cluster |
US9021050B2 (en) * | 2012-08-31 | 2015-04-28 | Yume, Inc. | Network service system and method with off-heap caching |
US20140086100A1 (en) | 2012-09-26 | 2014-03-27 | Avaya, Inc. | Multi-Chassis Cluster Synchronization Using Shortest Path Bridging (SPB) Service Instance Identifier (I-SID) Trees |
JP6191022B2 (ja) * | 2013-02-20 | 2017-09-06 | パナソニックIpマネジメント株式会社 | アクセス装置、情報記録装置およびアクセスシステム |
US10404520B2 (en) * | 2013-05-29 | 2019-09-03 | Microsoft Technology Licensing, Llc | Efficient programmatic memory access over network file access protocols |
US9641614B2 (en) | 2013-05-29 | 2017-05-02 | Microsoft Technology Licensing, Llc | Distributed storage defense in a cluster |
-
2013
- 2013-05-29 US US13/904,756 patent/US10404520B2/en active Active
-
2014
- 2014-04-21 TW TW103114401A patent/TW201502803A/zh unknown
- 2014-05-28 AU AU2014274331A patent/AU2014274331A1/en not_active Abandoned
- 2014-05-28 MX MX2015016349A patent/MX2015016349A/es unknown
- 2014-05-28 EP EP14734629.0A patent/EP3005114B1/en active Active
- 2014-05-28 WO PCT/US2014/039633 patent/WO2014193861A2/en active Application Filing
- 2014-05-28 RU RU2015151007A patent/RU2015151007A/ru not_active Application Discontinuation
- 2014-05-28 BR BR112015028817A patent/BR112015028817A2/pt not_active IP Right Cessation
- 2014-05-28 KR KR1020157036923A patent/KR20160014043A/ko not_active Application Discontinuation
- 2014-05-28 JP JP2016516744A patent/JP2016520240A/ja active Pending
- 2014-05-28 CA CA2910353A patent/CA2910353A1/en not_active Abandoned
- 2014-05-28 CN CN201480031323.5A patent/CN105359105B/zh active Active
-
2019
- 2019-06-11 US US16/437,928 patent/US10826749B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356863B1 (en) * | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
CN103020235A (zh) * | 2011-12-15 | 2013-04-03 | 微软公司 | 自治网络流传输 |
Also Published As
Publication number | Publication date |
---|---|
BR112015028817A2 (pt) | 2017-07-25 |
US10404520B2 (en) | 2019-09-03 |
TW201502803A (zh) | 2015-01-16 |
JP2016520240A (ja) | 2016-07-11 |
RU2015151007A (ru) | 2017-06-01 |
US20140359144A1 (en) | 2014-12-04 |
EP3005114B1 (en) | 2020-10-21 |
MX2015016349A (es) | 2016-03-16 |
CA2910353A1 (en) | 2014-12-04 |
WO2014193861A3 (en) | 2015-01-22 |
CN105359105A (zh) | 2016-02-24 |
AU2014274331A1 (en) | 2015-11-12 |
US10826749B2 (en) | 2020-11-03 |
KR20160014043A (ko) | 2016-02-05 |
WO2014193861A2 (en) | 2014-12-04 |
US20190296957A1 (en) | 2019-09-26 |
EP3005114A2 (en) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105359105B (zh) | 通过网络文件访问协议的高效编程存储器访问 | |
CN105683896A (zh) | 跨多个虚拟机共享虚拟硬盘 | |
CN104662537B (zh) | 用于固态和非对称访问的集成数据保留策略 | |
CN103916455B (zh) | 用于数据复制的方法和系统 | |
CN105531694B (zh) | 在电子表格中显示多个作者的在场 | |
CN105431838B (zh) | 串流内容和占位符 | |
US11989386B2 (en) | Real-time geospatial collaboration system | |
EP3100431B1 (en) | Tenant based signature validation | |
CN105378624A (zh) | 在交互出现于白板上时显示交互 | |
CN105723685A (zh) | 连接会话的保留 | |
US20150200786A1 (en) | Accessing and Configuring Meeting Attributes | |
CN101410803A (zh) | 用于提供对计算环境的访问的方法和系统 | |
US10574599B2 (en) | Method, system and recording medium for providing contents in messenger | |
US9680885B2 (en) | Information processing apparatus and terminal device that communicate with each other | |
WO2020020202A1 (zh) | 应用程序的账号管理方法、装置、设备和介质 | |
CN109313589B (zh) | 实现与外部功能的交互 | |
US10524122B2 (en) | Tenant based signature validation | |
CN109445966A (zh) | 事件处理方法、装置、介质和计算设备 | |
CN107667361A (zh) | 针对多用户协作应用的混合操作转换 | |
KR20180043947A (ko) | 언제든지 접속할 수 있는 개인용 컴퓨터 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |