TW201502803A - 網路檔案存取協定上有效率的編程性記憶體存取 - Google Patents

網路檔案存取協定上有效率的編程性記憶體存取 Download PDF

Info

Publication number
TW201502803A
TW201502803A TW103114401A TW103114401A TW201502803A TW 201502803 A TW201502803 A TW 201502803A TW 103114401 A TW103114401 A TW 103114401A TW 103114401 A TW103114401 A TW 103114401A TW 201502803 A TW201502803 A TW 201502803A
Authority
TW
Taiwan
Prior art keywords
computing device
data
communication
virtual memory
protocol
Prior art date
Application number
TW103114401A
Other languages
English (en)
Inventor
David Matthew Kruse
Lars Reuther
Kevin Michael Broas
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 TW201502803A publication Critical patent/TW201502803A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • 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]

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

實施例提供了用於在不同計算裝置之間傳輸資料之方法及系統。特別是,通訊通信期係在第一計算裝置及第二計算裝置之間建立。通訊通信期可使用第一通訊協定來建立。第一計算裝置產生虛擬記憶體物件,該物件係連結至第一計算裝置之一或更多個記憶體區塊。至虛擬記憶體物件之路徑係經產生且該路徑係使用該通訊通信期傳送至第二計算裝置。第二計算裝置可接著使用第二通訊協定直接自虛擬記憶體物件讀取資料/將資料寫進虛擬記憶體物件,該第二通訊協定係不同於該第一通訊協定。係使用檔案系統命令將資料寫進虛擬記憶體物件及自虛擬記憶體物件讀取資料。

Description

網路檔案存取協定上有效率的編程性記憶體存取
本發明關於網路檔案存取協定上之有效率的編程性記憶體存取。
當在兩個不同計算裝置之間傳輸資料時,要傳輸的資料一般寫進網路緩衝區。接著使用網路協定跨網路拷貝網路緩衝區且向目的計算裝置將該網路緩衝區遞送為網路封包。網路封包接著在目的計算裝置拷貝進記憶體。這樣的檔案傳輸一般是緩慢地且需要資料依序寫入,對於來源計算裝置及目的計算裝置兩者上之網路頻寬及系統資源而言這可是昂貴的。
實施例已作出關於這些及其他的一般考量。並且,雖然相對特定的問題已被討論,應理解的是,實施例應不限於解決先前技術中所識別之特定問題。
係提供此發明內容以用簡化的形式來介紹概念之選擇,其係在實施方式的章節中於下進一步描述。此發明內容 係不意欲識別所申請之標的之關鍵特徵或必要特徵,亦非意欲用作判定所申請之標的的範圍之輔助。
實施例提供用於在第一計算裝置及第二計算裝置之間傳輸資料之方法及系統。特定而言,通訊通信期係在第一計算裝置及第二計算裝置之間建立。通訊通信期可使用第一通訊協定(例如(舉例而言)傳送控制協定/網際網路協定(TCP/IP)通訊協定)來建立。為了致使傳輸大區塊的資料,第一計算裝置產生虛擬記憶體物件,該虛擬記憶體物件係連結至第一計算裝置之一或更多個記憶體區塊。至虛擬記憶體物件之路徑係經產生、命名且使用所建立之通訊通信期傳送至第二計算裝置。一旦接收,第二計算裝置可利用該路徑以直接自與虛擬記憶體物件相關聯之第一計算裝置之記憶體位置讀取資料或向與虛擬記憶體物件相關聯之第一計算裝置之記憶體位置直接寫入資料。如將於以下所闡述的,資料傳送(例如讀取及寫入)係在第二通訊協定上實現,該第二通訊協定係不同於該第一通訊協定。在某些實施例中,第二通訊協定係一版本的伺服器信息區塊(SMB)協定,該SMB協定係由華盛頓州雷德蒙德的微軟公司(MICROSOFT Corp.of Redmond,WA)所擁有。資料係使用檔案系統命令向/自與虛擬記憶體物件相關聯之記憶體位置寫入/讀取,該等命令係在第二通訊協定上傳送。
實施例亦提供用於使用第一通訊協定(例如(舉例而言)TCP/IP通訊協定)在第一計算裝置及第二計算裝置之間建立通訊通信期之方法及系統。一旦通信期在第一計算裝 置及第二計算裝置之間建立,第二計算裝置向第一計算裝置發送請求以設立虛擬記憶體物件。回應於該請求,第二計算裝置接收至所產生之虛擬記憶體物件之路徑。在某些實施例中,虛擬記憶體物件係連結至第一計算裝置之一或更多個記憶體區塊。使用所接收的路徑,第二計算裝置可透過虛擬記憶體物件自/向第一計算裝置之記憶體位置直接讀取/傳輸資料。在實施例中,資料讀取及寫入係在第二通訊協定(例如(舉例而言)一版本的SMB協定)上傳送。如將討論的,係使用一或更多個檔案系統命令來向/自與虛擬記憶體物件相關聯之記憶體位置直接傳輸/讀取資料。
100‧‧‧系統
110‧‧‧第一計算裝置
115‧‧‧伺服器應用程式
120‧‧‧記憶體
125‧‧‧虛擬記憶體
130‧‧‧路徑產生器
135‧‧‧存取控制清單
150‧‧‧第二計算裝置
155‧‧‧客戶端應用程式
160‧‧‧API
170‧‧‧通訊通信期
180‧‧‧第二通訊協定
200‧‧‧方法
210‧‧‧操作
220‧‧‧操作
230‧‧‧操作
240‧‧‧操作
250‧‧‧操作
260‧‧‧操作
300‧‧‧方法
310‧‧‧操作
320‧‧‧操作
330‧‧‧操作
340‧‧‧操作
350‧‧‧操作
360‧‧‧操作
400‧‧‧方法
410‧‧‧操作
420‧‧‧操作
430‧‧‧操作
440‧‧‧操作
450‧‧‧操作
460‧‧‧操作
470‧‧‧操作
480‧‧‧操作
502‧‧‧處理單元
504‧‧‧系統記憶體
505‧‧‧作業系統
506‧‧‧程式模組
508‧‧‧虛線
509‧‧‧可移除式儲存
510‧‧‧非可移除式儲存
512‧‧‧輸入裝置
514‧‧‧輸出裝置
516‧‧‧通訊連接
518‧‧‧其他計算裝置
520‧‧‧軟體應用程式
600‧‧‧行動計算裝置
602‧‧‧系統
605‧‧‧顯示器
610‧‧‧輸入按鈕
615‧‧‧副輸入構件
620‧‧‧視覺指示器
625‧‧‧音訊傳感器
630‧‧‧板上攝影機
635‧‧‧鍵板
660‧‧‧處理器
662‧‧‧記憶體
664‧‧‧作業系統
666‧‧‧應用程式
668‧‧‧非依電性儲存區域
670‧‧‧電源供應
672‧‧‧無線電
674‧‧‧音訊介面
676‧‧‧視訊介面
715‧‧‧網路
716‧‧‧儲存
720‧‧‧伺服器
722‧‧‧目錄服務
724‧‧‧入口網站
726‧‧‧郵件箱服務
728‧‧‧即時通信儲存
730‧‧‧社群網路網站
非限制性的及非窮舉性的實施例係參照以下的圖示來描述,其中:依據本揭露之一或更多個實施例,圖1繪示用於在第一計算裝置及第二計算裝置之間傳輸資料之系統;依據本揭露之一或更多個實施例,圖2繪示用於在第一計算裝置及第二計算裝置之間傳輸資料之方法;依據本揭露之一或更多個實施例,圖3繪示用於在第一計算裝置及第二計算裝置之間交換信息之方法;依據本揭露之一或更多個實施例,圖4繪示用於自來源向目的地遷移虛擬機器之方法;圖5為繪示可同本揭露之一或更多個實施例使用之計算裝置之示例物理元件的方塊圖;圖6A及6B為可同本揭露之一或更多個實施例使用 之行動計算裝置之簡化方塊圖;以及圖7為可同本揭露之一或更多個實施例使用之分布式計算系統簡化方塊圖。
係參照隨附的圖示(其形成本文之一部分,且其圖示特定示例性實施例)於下更完整地描述各種實施例。然而,實施例可以許多不同形式來實施,且不應被建構為對於本文中所闡述之實施例之限制;相較之下,這些實施例係經提供以便此揭露將徹底且完整,且將向那些發明所屬領域具技藝者完全傳達實施例之範圍。實施例可實踐為方法、系統或裝置。據此,實施例可採用硬體實施、完全軟體實施或結合軟體及硬體方面之實施的形式。以下的詳細描述係因此不以限制的方式採用。
如將於以下所詳細解釋的,本文中所描述的方法及系統使一個計算裝置能夠在資料通訊協定上使用來自應用程式介面(API)檔案系統命令存取另一計算裝置上之物理記憶體位置。在某些實施例中,資料通訊協定可支援多個通道,資料可透過該等通道在不同計算裝置之間通訊。如將討論的,多個通道的使用使計算裝置之各者能夠建立多個連接,資料可透過該等連接來通訊。多個通道的使用亦使得能夠跨各通道頻寬聚合。另外,資料通訊協定可具有已經內建的各種特徵。因此,在一個裝置上運行之應用程式可利用資料通訊協定之定製特徵,同時仍實施該應用程式所知的檔案系統命令。這樣的特徵可包括認證、自動協商、最佳路徑判定、 加密、壓縮及其類似物。通訊協定亦可能夠判定通道的數量以對於兩個計算裝置之間的訊務產生且也判定哪個路徑具有最高的頻寬及最低的延遲。通訊協定亦能利用不同的下層輸送,例如(舉例而言)TCP或遠端直接記憶體存取(Remote Direct Memory Access,RDMA)及自動判定何者是最有效率的。
依據本揭露之一或更多實施例,圖1繪示系統100,在該系統100中,資料可在第一計算裝置110及第二計算裝置150之間傳輸。在某些實施例中,第一計算裝置110可為伺服器電腦且第二計算裝置可為客戶端電腦,例如(舉例而言)個人電腦、平板電腦、筆記型電腦、智慧型手機、個人數位助理及其類似物。雖然第一計算裝置110係圖示及描述為伺服器電腦且第二計算裝置150係圖示及描述為客戶端電腦,考慮的是,第一計算裝置110可為客戶端電腦且第二計算裝置150可為伺服器電腦。另外,雖然圖1僅圖示一個第一計算裝置110及一個第二計算裝置150,考慮的是,可有多於一個第一及第二計算裝置呈現於系統100中。因此,關於圖2-4之本文中所述之方法可由一伺服器電腦或一客戶端電腦所實施,或由多個伺服器電腦或客戶端電腦所實施。替代性地或附加地,第一計算裝置110及第二計算裝置150中之各者可為客戶端電腦或伺服器電腦。
如圖1中所示,第一計算裝置110可包括能存取記憶體120之一或更多個區塊之伺服器應用程式115。在某些實施例中,記憶體120對於第一計算裝置110是本地的。在其 他實施例中,記憶體120對於第一計算裝置110可為遠端的。在這樣的情況中,記憶體120會需要由第一計算裝置使用資料傳輸協定所存取。如將於以下所詳細解釋的,第一計算裝置110可經配置以產生連結至記憶體120之一或更多個區塊之虛擬記憶體物件125。第一計算裝置110亦可包括控制至記憶體120及/或虛擬記憶體物件125之存取的路徑產生器130及存取控制清單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請求傳輸資料或遷移一或更多個程式或應用程式時,伺服器應用程式115可在所建立的通訊通信期170上被通知所需的傳輸。當通知被接收時,伺服器應用程式115產生虛擬記憶體物件125。在某些實施例中,虛擬記憶體物件125接著連結至記憶體120中之一或更多個區塊的資料。
如將於以下所解釋的,在某些實施例中,虛擬記憶體物件125係經設定以包含類似於一般檔案系統中的那些性質。更具體而言,虛擬記憶體物件125係經配置,使得資料可寫入至與使用檔案系統命令之虛擬記憶體物件相關聯之一或更多個記憶體區塊,該等檔案系統命令對於請求資料傳輸之一或更多個應用程式是已知的。也就是說,第二計算裝置150可將虛擬記憶體物件125視為可使用(舉例而言)各種開啟、讀取及寫入命令來存取之檔案。
第一計算裝置110亦可包括向虛擬記憶體物件125產生路徑以及路徑名稱的路徑產生器130。一旦路徑被產生,第一計算裝置110可使用(舉例而言)存取控制清單135對於該路徑建立安全特徵。例如,存取控制清單125可設立關於哪個應用程式(本地應用程式或遠端應用程式)可存取虛擬記憶體物件125、哪個客戶端具有對於虛擬物件125及所關聯的記憶體區塊之寫入許可、哪個客戶端具有唯讀存取、及哪個位元範圍或哪個記憶體區塊是被鎖定的之安全特徵。
在某些實施例中,第一計算裝置110可向一或更多個應用程式通訊路徑及路徑名稱。在實施例中,應用程式可 為對第一計算裝置110為本地的應用程式。在其他的實施例中,一或更多個應用程式(例如(舉例而言)客戶端應用程式155)可在第二計算裝置150上遠端地執行。在某些實施例中,路徑名稱係使用通訊通信期170來與第二計算裝置150共享。在系統具有多個第二計算裝置150的實施例中,第二計算裝置中之各者可向相同的第一計算裝置110通訊。
一旦客戶端應用程式155知道至虛擬記憶體物件125的路徑,客戶端應用程式155可使用來自檔案系統API 160之一或更多個檔案系統命令以存取虛擬記憶體物件125。例如,客戶端應用程式155可發出由API 160所建立之「開啟」指令且向虛擬記憶體物件125直接跨第二通訊協定180傳送該開啟命令。在實施例中,檔案160系統API的使用使得能夠在系統的層級處對於效能或安全性升級而不需要應用程式層級的改變。
在實施例中,開啟指令利用指標以存取連結至虛擬記憶體物件125之記憶體區塊。其結果是,客戶端應用程式155可對與連結至虛擬記憶體物件125之記憶體區塊相關聯之記憶體緩衝區直接寫入資料。具體而言,客戶端應用程式155可使用第二通訊協定180直接存取第一計算裝置110之記憶體120。如將於下所詳細討論的,第二通訊協定180可支援多個通道。因此,資料可並聯地自記憶體120直接讀取或對記憶體120直接寫入。據此,一或更多個應用程式(在第一計算裝置110上本地地運行的那些應用程式或在第二計算裝置150上遠端地運行的那些應用程式)可遞交多個非同步請 求。例如,在某些實施例中,開啟命令本身包括讀取存取及讀寫存取兩者。另外,對於共享模式可給予支援,該等模式包括互斥、讀取共享及讀/寫共享模式。透過這些模式的使用,客戶端可向記憶體區域表達其所需的存取模式,該記憶體區域接著使伺服器能夠准予或拒絕所請求的模式。
如上所討論的,虛擬記憶體物件125可連結至記憶體之一或更多個區塊。在某些實施例中,記憶體區塊可為記憶體的鄰接區塊或記憶體的非鄰接區塊。例如,虛擬物件125可通過區塊二連結至包括區塊零的記憶體區域A且通過記憶體區塊五連結至包括記憶體區塊四的記憶體區域B。雖然虛擬記憶體物件125可連結至非鄰接記憶體區塊,虛擬記憶體物件125對客戶端應用程式155可呈現鄰接的。因此,當客戶端應用程式155對虛擬記憶體物件125寫入資料時,客戶端應用程式155可依序寫入資料。相對地,伺服器應用程式115當自非鄰接資料區塊讀取資料或向非鄰接資料區塊寫入資料時,可能需要作出耗散的(scattered)寫入或聚集的(gathered)讀取,該等非鄰接資料區塊係與虛擬記憶體物件125相關聯。同樣,在某些實施例中,若系統具有受限的記憶體資源,不同的非鄰接區域可由虛擬記憶體及實體碟片之混合所支援(back)。
在某些實施例中,第二通訊協定180在第一計算裝置110及第二計算裝置150之間建立通訊通信期。如上所討論的,第二通訊協定為檔案傳輸協定,例如(舉例而言)一個版本的伺服器信息區塊協定(Server Message Block, SMB)。在某些實施例中,SMB通信期可在第一通訊通信期170建立之後,在任何時間點建立。在另一實施例中,第一通訊通信期170可為SMB通信期。又在另一實施例中,回應於路徑自第一計算裝置110向第二計算裝置150通訊或回應於第二計算裝置150向第一計算裝置110遞交接受來自第二計算裝置150之資料傳輸或遷移的請求,SMB通信期可在第一計算裝置110及第二計算裝置150之間建立。
在第一計算裝置110及第二計算裝置150間之SMB通信期之建立期間,可能發生協商以指示,第一計算裝置110及第二計算裝置150兩者支援SMB通信期內之多個連接。這可包括協商SMB協定之版本。另外,第一計算裝置110及/或第二計算裝置150亦可判定關於第一計算裝置110及第二計算裝置150間之各種介面及連接之資訊。這包括了連接或通道之類型及各連接或通道之速度。進一步地,第一計算裝置110或第二計算裝置150可由類型及速度來排序介面及連接以判定最佳的介面。因此,當額外的通道係經建立以傳輸資料時,第一計算裝置110及第二計算裝置150中之各者可進一步判定哪個介面或通道應被使用。
更具體而言,一或更多個連接輸送在第一計算裝置110及第二計算裝置150之間可為可用的。例如,第一計算裝置110及第二計算裝置150可由各種輸送所連接,例如乙太網路及Wi-Fi以及相同輸送之冗餘連接(例如多個網路介面卡(network interface card,NIC))。另外,某些連接輸送可支援例如在另一個連接輸送上影響一個連接輸送速度之 RDMA的性能。
參照回圖1,如所示,第二通訊協定180使客戶端應用程式155能夠直接存取虛擬記憶體物件125。因此,客戶端應用程式155當直接向虛擬記憶體物件125寫入資料時,可利用第二通訊協定之一或更多個特徵。例如,在第二通訊協定為SMB協定之版本的場景中,客戶端應用程式155可利用SMB協定所提供之性能,而不產生新的檔案系統命令或重新編程由API 160所利用之檔案系統命令,該API 160對於客戶端應用程式155及/或第二計算裝置150是已知的。因此,客戶端應用程式155可利用命令(例如開啟、讀取及寫入),同時仍利用SMB協定之性能,該等性能包括探索、認證、授權、頻寬聚合、對RDMA及TCP的支援、RDMA上之零拷貝及其類似物。
依據本揭露之一或更多個實施例,圖2繪示用於在第一計算裝置及第二計算裝置之間傳輸資料之方法200。在某些實施例中,一或更多個第一計算裝置110(圖1)及第二計算裝置150(圖1)可採用用於在多通道資料通訊協定上通訊大區塊的資料之方法200。
當通訊通信期在客戶端及伺服器之間建立時(210),方法200開始。雖然特別提到一客戶端及一伺服器,考慮的是,方法200之操作可在兩個或更多個客戶端及兩個或更多個伺服器之間實施。在某些實施例中,通訊通信期係使用TCP/IP通訊協定來建立。雖然特別提到TCP/IP通訊協定,一或更多個實施例提供的是,客戶端及伺服器可使用特 殊化的協定或其他帶外(out of band)協定來建立通訊通信期。
一旦通訊已經建立,伺服器可接收請求220以自客戶端接受檔案資料或應用程式資料。如將於以下解釋的,請求可為自客戶端向伺服器遷移虛擬機器的請求。在另一實施例中,請求可為自客戶端向伺服器傳輸大容量的小量資料的請求。又在另一實施例中,請求可為自客戶端向伺服器傳輸大塊資料的請求。
回應於所接收之請求,伺服器產生虛擬記憶體物件(230)。在某些實施例中,虛擬記憶體物件係如同虛擬檔案。因此,正如實體檔案可藉由使用檔案系統API之檔案系統命令(例如開啟、讀取及寫入命令)之應用程式來存取,虛擬記憶體物件可由使用相似檔案系統命令之遠端應用程式所存取,該等相似的檔案系統命令係在資料通訊協定上傳送。又在另一實施例中,虛擬檔案可為具有指示較小緩衝區之索引之讀取或寫入之檔案偏位之該緩衝區陣列,其中應向該緩衝區寫入或讀取資料。
作為產生程序之部分,虛擬記憶體物件係映射且連結至在伺服器上常駐之一或更多個實體記憶體區域(或區塊)。作為連結程序之部分,伺服器可註冊一或更多個實體記憶體區域以幫助確保記憶體不被其他應用程式覆寫。雖然一或更多個實體記憶體區域連結至虛擬記憶體物件,在伺服器上常駐之一或更多個應用程式仍可依據所需存取實體記憶體區域。如上所討論的,與各虛擬記憶體物件相關聯之實體記憶體區域可為鄰接的或非鄰接的或其組合。
一旦虛擬記憶體物件已經產生、映射及連結至伺服器上之一或更多個實體記憶體區域,流程繼續至操作240,在該操作240中,至虛擬記憶體物件之路徑被產生。在某些實施例中,路徑係由伺服器或由在伺服器上常駐之應用程式所產生。路徑可包括檔案名稱或路徑名稱,所以路徑可簡單地通訊至在客戶端上執行之一或更多個本地應用程式及一或更多個遠端應用程式,該客戶端係具有同伺服器建立的通訊通信期。
操作250提供的是,路徑係通訊至一或更多個應用程式。如先前所討論的,路徑係通訊至一或更多個遠端應用程式。在另一實施例中,路徑名稱可通訊至本地應用程式。雖然路徑名稱可通訊至本地應用程式,考慮的是,本地應用程式可使用傳統檔案存取方法來存取實體記憶體區域且不需要利用路徑名稱。在另一實施例中,一但路徑被建立,所有應用程式(本地應用程式或遠端應用程式)可能需要利用路徑來存取與虛擬記憶體物件相關聯之實體記憶體區域。在某些實施例中,路徑係使用操作210之經建立的通訊通信期來通訊至客戶端或遠端應用程式。
一旦路徑已經通訊至應用程式,操作260提供的是,來自一或更多個遠端應用程式之資料係使用檔案傳輸協定直接接收進虛擬記憶體物件。如上所討論的,遠端應用程式在檔案傳輸協定上通訊檔案系統命令以存取與虛擬記憶體物件相關聯之實體記憶體區域中之資料。因此,當客戶端應用程式知道至虛擬記憶體物件之路徑,客戶端應用程式可針 對虛擬記憶體物件發出開啟、讀取及寫入命令。其結果是,以上的方法可使遠端應用程式能夠利用檔案傳輸協定之下層特徵(例如上述的那些(例如自動探索、協商、認證、頻寬聚合、RDMA及TCP支援、RDMA上之零拷貝及其類似物)),同時仍利用已經由客戶端應用程式所知道及利用之檔案存取命令。即使當應用程式本身並不知道甚麼是可用的,其亦使客戶端及伺服器能夠利用這些性能,且因此效能或安全性可被改進而不需要對於應用程式的改變。
在某些實施例中,檔案傳輸協定為版本2或更高的伺服器信息區塊(SMB)協定。如上所討論的,SMB協定可經配置以利用多個通道。其結果是,當資料自客戶端向伺服器傳輸時,讀取及寫入可在各種通道上並行地傳送。另外,利用多個通道及/或RDMA之SMB上之大讀取及寫入在來源及目的地兩者上具有零拷貝功能性。因此,自客戶端至伺服器(反之亦然)之資料可直接向(或自)應用程式記憶體傳輸,這消除了在作業系統中之應用程式記憶體及資料緩衝區之間拷貝資料的需要。其結果是,傳輸可能需要一點(或沒有需要)要由本地處理器、快取記憶體及其類似物所完成的工作。
以下是一示例實施例,方法200可利用於該實施例中。例如,可有在兩個不同節點(例如來源節點及目的節點)上運行之複數個處理器。節點中之一者(來源節點),想要傳輸1GB(gigabyte)的資料至其他節點(目的節點)。來源節點產生虛擬記憶體物件且同記憶體註冊1GB的資料。來源 接著提供路徑名稱至目的節點。目的節點使用來自檔案系統API之檔案系統命令開啟虛擬記憶體物件且發出並行讀取以本地地拉取(pull)記憶體。一但操作被完成,虛擬記憶體物件被關閉。
作為另一示例,複數個處理器可在兩個不同節點(例如來源節點及目的節點)上運行。節點中之一者(來源節點)想要傳輸1GB的資料至其他節點(目的節點)。來源節點請求的是,目的節點產生給定尺寸(例如1GB)的虛擬記憶體物件。回於應該請求,目的節點產生虛擬記憶體物件,將依獲更多個實體記憶體區塊連接至該虛擬記憶體物件,以及產生至該虛擬記憶體物件之路徑。目的節點接著將路徑提供至來源節點。來源節點使用來自檔案系統API檔案系統命令開啟虛擬記憶體物件且發出並行寫入以使得能夠資料傳輸。一旦操作被完成,虛擬記憶體物件被關閉。
本揭露之一或更多個實施例亦可由一或更多個通信協定所利用,該等通信協定係想要同小量資料交換大量的信息。雖然信息在尺寸上一般是小的,本揭露之實施例可用以更有效率地傳輸大量的信息。
參照圖3,圖3繪示用於使得能夠在第一計算裝置及第二計算裝置之間信息傳輸之方法300。在實施例中,信息之傳輸可在第一計算裝置110(圖1)及第二計算裝置150(圖1)之間。當通訊通信期在客戶端及伺服器之間建立時(310),方法300開始。在某些實施例中,通訊通信期係基於TCP/IP通訊協定或其他這樣的通訊協定。
當伺服器接收來自客戶端之信息傳輸請求時,伺服器產生虛擬記憶體物件(320)。在某些實施例中,虛擬記憶體物件係映射至伺服器之一或更多個實體記憶體位置。另外,各記憶體位置係與用作信息槽識別符之一或更多個偏位(offset)相關聯。
一旦虛擬記憶體物件已經產生,流程繼續至操作330,在操作330中,至虛擬記憶體物件之路徑被產生。路徑接著使用操作310所建立之通訊通信期通訊至客戶端裝置及/或在客戶端裝置上常駐之一或更多個應用程式(340)。
一旦路徑已經通訊至一或更多個應用程式,來自客戶端應用程式之資料係直接接收進與虛擬記憶體物件相關聯之實體記憶體位置偏位。在實施例中,資料係使用檔案傳輸協定(例如(舉例而言)SMB2或SMB3協定)直接接收進偏位。流程接著繼續至操作360,在操作360中,伺服器(或在伺服器上運行之應用程式)向自客戶端應用程式接收信息之實體記憶體偏位公告相對應的命令。
舉例而言,使用上述之方法300,一旦虛擬記憶體物件被產生且路徑被傳送至客戶端,客戶端可向任何虛擬記憶體中之偏位公告任何讀取或寫入。一旦命令被接收且儲存在偏位中,伺服器向相同的偏位公告相對應的讀取或寫入。命令中之各者被配對及處理。推進該示例,客戶端可向虛擬記憶體物件中之偏位1使用檔案系統API來公告寫入。作為回應,伺服器向虛擬記憶體物件中之偏位1公告相對應之讀取。來自客戶端之寫入及來自伺服器之讀取被配對且處理, 且來自客戶端之寫入之資料係直接寫入至透過伺服器相對應之讀取來與虛擬記憶體物件之偏位相關聯之實體記憶體。亦考慮的是,信息可以相反的方式來發送(也就是客戶端公告讀取,且伺服器發送相對應的寫入)。
一或更多個實施例提供的是,使用上述方法之寫入及讀取可被並行處理。舉例而言,客戶端裝置可發送出100個寫入,該等寫入係在虛擬記憶體物件中之偏位1-100中寫入(假設處理的順序對於客戶端無所謂的)。另外,伺服器可能已經在虛擬記憶體物件之偏位1-1000中公告1000個讀取。當來自客戶端之各寫入被接收,伺服器可立刻處理經公告的1000個讀取的100個且據此寫入資料。因為讀取及寫入中之各者具有相對應之識別符(也就是對於記憶體位置之偏位),客戶端及伺服器知道哪個命令已經被處理。另外,伺服器亦可藉由使對於給定偏位之後續寫入失效來確保對於該偏位之寫入僅發生一次。因此,若客戶端丟失了連接性,接著隨後重新建立且重新開啟物件且重播(replay)寫入,該寫入將僅由伺服器處理一次。
一或更多個實施例提供的是,方法200及方法300可被結合。也就是說,凡記憶體之第一位置用以接收及在記憶體偏位中儲存信息且凡記憶體之第二位置用以儲存資料區塊,虛擬檔案可被產生。在這樣的實施例中,當資料被接收時,可設定特定位元以指示,資料為信息且應能夠存取記憶體中之特定偏位(如關於圖3所討論的)。在此示例中,若不設定位元,資料應寫入至特定記憶體位置(如關於圖2所 討論的)。
本揭露之實施例亦可用以自第一實體計算裝置向第二實體計算裝置執行虛擬機器之活動遷移(live migration)而不關閉虛擬機器。在某些實施例中,虛擬機器係在實體機器之分割區上常駐。虛擬機器可運行操作系統及一或更多個額外的應用程式。亦考慮的是,一個實體機器可具有複數個虛擬機器。
圖4繪示用於自來源向目的地執行虛擬機器活動遷移之方法400。在某些實施例中,通訊通信期係在來源及目的地之間建立(410)。來源及目的地間之通訊係使用TCP/IP通訊協定或其他通訊協定來建立。在某些實施例中,如以上關於圖1所討論的,來源可為第二計算裝置150且目的地可為第一計算裝置110。在某些實施例中,在虛擬機器要被傳輸的時候,虛擬機器係正執行於來源處。當資料可在傳輸期間連續地寫入至虛擬機器,虛擬機器不被關閉,因為任何服務上的中斷可能損毀資料或使得所傳輸的虛擬機器不可操作。
一旦來源及目的地間之通訊被建立,來源判定要被傳輸之虛擬機器之一或更多個特徵。這些細節可包括虛擬機器之用途、與虛擬機器相關聯之一或更多個網路連接、虛擬機器之尺寸(也就是一旦自來源向目的地之遷移完成,虛擬機器將需要多少記憶體)...等等。當虛擬機器之特徵已經建立,來源在所建立的通訊通信期上向目的地通訊記憶體需求。
作為回應,目的地產生虛擬檔案物件(430)。在某些實施例中,虛擬檔案物件之尺寸相對應於所建立之記憶體 需求之尺寸。因此,若虛擬機器需要2GB的資料,虛擬檔案物件在尺寸上係建立為2GB。如同本文中所述之其他實施例,一旦虛擬檔案物件被產生,目的地之一或更多個實體記憶體區塊係連結至虛擬檔案物件。在某些實施例中,在目的地上所產生之虛擬檔案物件匹配由來源上之虛擬機器所使用之記憶體配置。另外,目的地上之虛擬檔案物件最後將由目的地用作用於虛擬機器之記憶體。這樣的配置賦能同RDMA之零拷貝傳輸之全槓桿作用(leverage)。
在某些實施例中,目的地亦可對於虛擬物件產生一或更多個安全性參數。目的地亦可產生與虛擬檔案物件相關聯之路徑。如以上所討論的,路徑係由來源所利用以存取虛擬檔案物件,且更具體而言,係用以存取虛擬檔案物件所指向之目的地實體記憶體。
一旦路徑被產生,路徑名稱係通訊至來源(440)。在某些實施例中,路徑係使用先前所建立之通訊通信期來通訊至來源。
流程接著繼續至操作450,在操作450中,來源在檔案存取協定(例如(舉例而言)一個版本的SMB協定)上使用檔案系統命令直接向虛擬檔案起始虛擬機器之複製。更特定而言,來源自資料之一或更多個本地區塊拷貝資料且(使用對於來源而言為已知的來自檔案系統API之檔案系統命令)使用路徑名稱向虛擬檔案在檔案存取協定上傳送寫入請求。如上所討論的,一或更多個實施例提供的是,在目的地上所產生之記憶體物件之佈局匹配在來源上由虛擬機器所使用之 佈局。這允許了來源自來源主機上之虛擬機器之記憶體位置對於寫入操作導出檔案偏位。
在某些實施例中,自來源至目的地之命令為非同步寫入命令。另外,如所討論的,檔案傳輸協定支援多通道功能性。據此,複數個非同步寫入可同步地或實質同步地執行。如同本文中所揭露之其他資料傳輸,操作450之來源及目的地間之資料傳輸(及目的地及來源間之資料傳輸)可為使用RDMA之零拷貝資料傳輸。
在某些實施例中,虛擬機器之必要部分(例如需要用於虛擬機器之執行之所需元件)係在虛擬機器之非必要部分自來源向目的地遷移之前,自來源向目的地遷移。在其他實施例中,虛擬機器係依序遷移。一旦虛擬機器之足夠部分已經向目的地傳輸已使得虛擬機器能夠運行,虛擬機器可在目的地處開始執行。此後,任何自虛擬機器之讀取或向虛擬機器之寫入可由所新聲明的虛擬機器所處理。
如所討論的,虛擬機器可在檔案傳輸進行期間執行,且資料可連續地向虛擬機器之記憶體寫入。如此,方法400繼續至操作460,在操作460中,位元映像係在來源處維持。在某些實施例中,虛擬機器可更新位元映像。在另一實施例中,位元映像可由來源所維持。在某些實施例中,位元映像中之各位元代表被傳輸之虛擬機器記憶體部分。因此,位元映像追蹤虛擬機器的哪個部分已經向目的地傳輸,且進一步地追蹤自從相對應的部分被遷移,所傳輸部分中之何者已是經更新的資料。例如,記憶體部分之各修改造成位元映 像之相對應位元被設定。因此,若虛擬機器之部分已經遷移且接著由那部分所主要維持的資料隨後改變了,位元映像會顯示的是,資料已隨後改變且那部分的資料應再次遷移。
在某些實施例中,虛擬機器係使用多道次(multi-pass)的方法來遷移。因此,在各道次完成(多達最大數量的道次)之後,位元映像被檢查以判定是否遷移是完成的(470)。若遷移不是完成的,流程轉回至操作450且程序重複。然而,若在操作470中所判定的是,遷移是完成的,位元映像係對於任何對資料的最終改變而被檢查。若已存在對資料的改變,所更新的資料係發送至目的地且在來源上之虛擬機器被關閉。
本文中所述之實施例及功能性可透過眾多的計算系統來操作,包括(而沒有限制)桌上型電腦系統、有線及無線計算系統、行動計算系統(例如行動電話、上網本、平板電腦或平板式電腦、筆記型電腦及膝上型電腦)、手持式裝置、多處理器系統、基於微處理器的或可編程消費性電子產品、迷你電腦、及主機電腦。
另外,本文中所述之實施例及功能性可在分佈式系統(例如基於雲端的計算系統)上操作,在該系統處,應用功能性、記憶體、資料儲存及擷取及各種處理功能可在分佈式計算網路(例如網際網路或內部網路)上自彼此遠端地操作。各種類型之使用者介面及資訊可透過板上計算裝置顯示器或透過與一或更多個計算裝置相關聯之遠端顯示器單元來顯示。舉例而言,各種類型之使用者介面及資訊可在牆壁表 面上顯示及與之互動,各種類型之使用者介面及資訊係投影至該牆壁表面上。與本揭露之實施例可同以實施之眾多的計算系統的互動包括鍵盤輸入、觸控螢幕輸入、語音或其他音訊輸入、姿勢輸入(其中相關聯之計算裝置係以對於捕捉及解譯用於控制計算裝置功能性之使用者姿勢的偵測(例如攝影機)功能性來裝備)及其類似物。
圖5-7及相關聯的描述提供了各種作業環境之討論,其中本揭露之實施例可實施於該等作業環境中。然而,關於圖5-7所繪示及討論之裝置及系統係為了示例及說明的目的且並非龐大數量之計算裝置配置之限制,其中該等配置可對於實施本文中所述之實施例而利用。
圖5為繪示本揭露之實施例可同以實施之計算裝置110之實體元件(也就是硬體)之方塊圖。以下所述之計算裝置元件可適用於以上所述之計算裝置,包括第一計算裝置110及第二計算裝置150。在基本配置中,計算裝置110可包括至少一個處理單元502及系統記憶體504。取決於計算裝置之配置及類型,系統記憶體504可包括(但不限於)依電性儲存(例如隨機存取記憶體)、非依電性儲存(例如唯讀記憶體)、快閃記憶體或這樣的記憶體之任何組合。系統記憶體504可包括作業系統505及適於運行軟體應用程式520(例如(在計算裝置代表第二計算裝置150之實施例中之)伺服器應用程式115、路徑產生器130、存取控制清單135以及API 160)之一或更多個程式模組506。作業系統505(舉例而言)可適於控制計算裝置110之操作。此外,本揭露之實施例可同圖 形程式庫、其他作業系統或任何其他應用程式結合來實施,且不限於任何特定應用程式或系統。此基本配置係藉由虛線508內的那些元件來繪示於圖5中。計算裝置110可具有額外的特徵或功能性。舉例而言,計算裝置110亦可包括額外資料儲存裝置(可移除式及/或非可移除式),例如(舉例而言)磁碟、光碟或磁帶。這樣的額外儲存係藉由可移除式儲存裝置509及非可移除式儲存裝置510來繪示於圖5中。
如上所聲明的,大量的程式模組及資料檔案可儲存於系統記憶體504中。當在處理單元502上執行時,程式模組506可執行程序,包括(但不限於)圖2-4中所繪示之方法200、300及400之一或更多個階段。可依據本揭露之實施例來使用之其他程式模組可包括電子郵件及聯絡人應用程式、文字處理應用程式、試算表應用程式、資料庫應用程式、幻燈片應用程式、繪圖或電腦輔助應用程式...等等。
此外,本揭露之實施例可在電子電路中實施,該電子電路包括離散電路構件、包含邏輯閘之封裝或集成電子晶片、利用微處理器之電路,或者本揭露之實施例可在包含電子構件或微處理器之單一晶片上實施。舉例而言,本揭露之實施例可透過晶片上系統(system-on-a-chip,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、電子可抹除式唯讀記憶體(electrically erasable read-only memory,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)、視覺指示器620(例如發光二極體)及/或音訊傳感器625(例如喇叭)之顯示器605。在某些實施例中,行動計算裝置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上運行,包括本文中所述之(在計算裝置600代表第二計算裝置150之實施例中之)伺服器應用程式115、路徑產生器130、存取控制清單135及API 160。
系統602具有電源供應670,其可實施為一或更多個電池。電源供應670可進一步包括外部電源,例如AC轉接器或補充或重新充電電池之經供電的對接托架。
系統602亦可包括執行傳送及接收無線電頻率通訊之功能之無線電672。無線電672透過通訊營運商或服務供應商促進系統602及「外面的世界」間之無線連接性。向無線電672的傳送及自無線電672的傳送係在作業系統664的控制下進行。換句話說,由無線電672所接收之通訊可透過作業系統664向應用程式666傳播,反之亦然。
視覺指示器620可用以提供視覺通知,且/或音訊介面674可用於透過音訊傳感器625產生聽覺通知。在所繪示 的實施例中,視覺指示器620為光發射二極體(LED)且音訊傳感器625為喇叭。這些裝置可直接耦合至電源供應670,以便當啟動時,即使處理器660及其他元件可為了節省電池電力而關閉,它們仍然開啟由通知機制所指定的一段期間。LED可經編程以保持無限期開啟,直到使用者採取動作以指示裝置的電源開啟狀態。音訊介面674係用以向使用者提供聽覺訊號及自使用者接收聽覺訊號。例如,除了耦合至音訊傳感器625之外,音訊介面674亦可耦合至麥克風以接收聽覺輸入(例如以促進電話交談)。依據本揭露之實施例,麥克風亦可充當音訊感應器以促進通知之控制,如將於下所述。系統602可進一步包括使得板上攝影機630之操作能夠記錄靜止影像、視訊串流及其類似物之視訊介面676。
實施系統602之行動計算裝置600可具有額外特徵或功能性。例如,行動計算裝置600亦可包括額外資料儲存裝置(可移除性或非可移除性),例如磁碟、光碟或磁帶。這樣的額外儲存係藉由非依電性儲存區域668來繪示於圖6B中。
由行動計算裝置600所產生或捕捉及透過系統602所儲存之資料/資訊可本地地儲存於行動計算裝置600上(如上所述),或資料可儲存於可透過行動計算裝置600及與行動計算裝置600相關聯之分離計算裝置(例如分佈式計算網路(例如網際網路)中之伺服器電腦)間之無線電672或有線連接而由裝置所存取之任何數量之儲存媒體上。如應被理解的,這樣的資料/資訊可透過行動計算裝置600透過無線電 672或透過分佈式計算網路來存取。類似地,這樣的資料/資訊可易於在用於依據熟知的資料/資訊傳輸及儲存手段(包括電子郵件及協同式資料/資訊共享系統)來儲存及使用之計算裝置之間傳輸。
圖7繪示如上所述之用於在不同計算裝置之間傳輸資料之系統架構的一個實施例。在第一計算裝置110及第二計算裝置150之間所傳輸之資料可以不同的通訊通道或其他儲存類型來儲存。例如,各種文件可使用目錄服務722、入口網站724、郵件箱服務726、即時通信儲存728或社群網路網站730來儲存。伺服器應用程式115、路徑產生器130及存取控制清單135可使用任何這樣類型的系統或其類似物以賦能本文中所述之方法及特徵。伺服器720可向(及自)第一計算裝置110及第二計算裝置150提供資料。作為一個示例,伺服器720可為網頁伺服器。伺服器720可通過網路715在網頁上向第一計算裝置110或第二計算裝置150提供資料。藉由示例的方式,第一計算裝置110及第二計算裝置150可在個人電腦、平板計算裝置及/或行動計算裝置600(例如智慧型手機)中體現。任何的這些實施例可自儲存716獲得內容。
本揭露之實施例(例如)係參照依據本揭露之實施例的方法、系統及電腦程式產品之方塊圖及/或操作說明而於上描述。方塊中所註記之功能/動作可不照任何流程圖中所示的順序發生。例如,相繼圖示的兩個方塊可實際上實質同時地執行,或該等方塊可有時候以相反順序執行(取決於所涉 及之功能性/動作)。
此申請案中所提供之一或更多個實施例之描述及說明係不意欲以任何方式限制或約束如所聲請之本揭露之範圍。此申請案中所提供之實施例、示例及細節係認為足以傳達所有權且使得其他人作出且使用所聲請實施例之最佳模式。所聲請的實施例不應建構為限制此申請案中所提供之任何實施例、示例或細節。無論是否結合或單獨地圖示及描述,係意欲選擇性包括或忽略各種(結構性及方法性兩者)特徵以產生具有特定特徵組的實施例。已經提供本申請案之描述及說明,發明所屬領域中具技藝者可展望落入在此申請案中所體現之一般發明概念之較廣方面之精神內之變化、修改及備選實施例,而不脫離所聲請實施例之較廣範圍。
100‧‧‧系統
110‧‧‧第一計算裝置
115‧‧‧伺服器應用程式
120‧‧‧記憶體
125‧‧‧虛擬記憶體
130‧‧‧路徑產生器
135‧‧‧存取控制清單
150‧‧‧第二計算裝置
155‧‧‧客戶端應用程式
160‧‧‧API
170‧‧‧通訊通信期
180‧‧‧第二通訊協定

Claims (20)

  1. 一種用於在一第一計算裝置及一第二計算裝置之間傳輸資料之方法,該方法包括以下步驟:使用一第一通訊協定在該第一計算裝置及該第二計算裝置之間建立一通訊通信期;在該第一計算裝置上產生一虛擬記憶體物件;將該虛擬記憶體物件連結至該第一計算裝置之一或更多個記憶體區塊;產生至該虛擬記憶體物件之一路徑;使用該通訊通信期傳送該路徑至該第二計算裝置;以及使用該虛擬記憶體物件將資料直接接受進該第一計算裝置之該等一或更多個記憶體區塊。
  2. 如請求項1所述之方法,其中該第一通訊協定係一傳輸控制協定(TCP)。
  3. 如請求項1所述之方法,其中將資料直接接受進該第一計算裝置之該等一或更多個記憶體區塊之步驟包括以下步驟:接受在一第二通訊協定上向該第一計算裝置通訊之資料,該第二通訊協定係不同於該第一通訊協定。
  4. 如請求項3所述之方法,其中該第二通訊協定係一伺服器信息區塊(SMB)協定。
  5. 如請求項1所述之方法,其中將資料直接接受進該虛擬記憶體物件之步驟包括以下步驟:在複數個通道上並行地接受該等資料。
  6. 如請求項1所述之方法,其中將資料直接接受進該虛擬記憶體物件之步驟包括以下步驟:自該第二計算裝置接受一或更多個檔案系統命令,其中該等一或更多個檔案系統命令係選擇自一檔案系統應用程式介面(API)。
  7. 如請求項1所述之方法,其中該等一或更多個記憶體區塊係鄰接的。
  8. 如請求項1所述之方法,其中該等一或更多個記憶體區塊係:(i)非鄰接的;或(ii)由虛擬記憶體及實體儲存之一混合所支援(back)。
  9. 一種用於在一第一計算裝置及一第二計算裝置之間傳輸資料方法,該方法包括以下步驟:使用一第一通訊協定在該第一計算裝置及該第二計算裝置之間建立一通訊通信期;向該第一計算裝置發送一請求以自該第二計算裝置向該第一計算裝置傳輸資料; 回應於該請求,在該第二計算裝置處接收至一虛擬記憶體物件之一路徑,其中該虛擬記憶體物件係連結至該第一計算裝置上之一或更多個記憶體區塊;使用該虛擬記憶體物件將資料直接傳輸至該等一或更多個記憶體區塊,其中該傳輸步驟使用一第二通訊協定來發生,該第二通訊協定係不同於該第一通訊協定,且其中該等資料係藉由該第二計算裝置所通訊之一檔案系統命令來使用該虛擬記憶體物件而傳輸至該等一或更多個記憶體區塊。
  10. 如請求項9所述之方法,其中該第一通訊協定係一傳送控制協定(TCP)。
  11. 如請求項9所述之方法,其中該等資料係正於該第二計算裝置上執行之一虛擬機器。
  12. 如請求項9所述之方法,其中該第二通訊協定係一伺服器信息區塊(SMB)協定。
  13. 如請求項9所述之方法,其中該第二通訊協定利用多個通道以在該第一計算裝置及該第二計算裝置之間傳輸資料。
  14. 如請求項9所述之方法,其中檔案系統命令係選擇自一檔案系統應用程式介面(API)。
  15. 如請求項9所述之方法,其中該等一或更多個記憶體區塊係鄰接的。
  16. 如請求項9所述之方法,其中該等一或更多個記憶體區塊係:(i)非鄰接的;或(ii)由虛擬記憶體及實體儲存之一混合所支援(back)。
  17. 一種電腦可讀取儲存媒體,編碼電腦可執行指令,該等指令當由一或更多個處理器所執行時,執行一種用於在一第一計算裝置及一第二計算裝置之間傳輸資料之方法,該方法包括下列步驟:使用一第一通訊協定在該第一計算裝置及該第二計算裝置之間建立一通訊通信期;在該第一計算裝置上產生一虛擬記憶體物件;將該虛擬記憶體物件連結至該第一計算裝置之一或更多個記憶體區塊;產生至該虛擬記憶體物件之一路徑;使用該通訊通信期傳送該路徑至該第二計算裝置;以及使用該虛擬記憶體物件將資料直接接受進該第一計算裝置之該等一或更多個記憶體區塊,其中將資料接受進該第一計算裝置之該等一或更多個記憶體區塊之步驟包括以下步驟:使用自該第二計算裝置所接收之一或更多個檔案系統命令來接受在多通道通訊協定上向該第一計算裝置通訊之資料。
  18. 如請求項17所述之電腦可讀取儲存媒體,其中該第一通訊協定係一傳送控制協定(TCP)。
  19. 如請求項17所述之電腦可讀取儲存媒體,其中該第二通訊協定係一伺服器通信區塊(SMB)協定。
  20. 如請求項17所述之電腦可讀取儲存媒體,進一步包括用於將一或更多個安全性參數同該路徑相關聯以限制對於該虛擬記憶體物件之存取之指令。
TW103114401A 2013-05-29 2014-04-21 網路檔案存取協定上有效率的編程性記憶體存取 TW201502803A (zh)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
TW201502803A true TW201502803A (zh) 2015-01-16

Family

ID=51059579

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103114401A TW201502803A (zh) 2013-05-29 2014-04-21 網路檔案存取協定上有效率的編程性記憶體存取

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)

* Cited by examiner, † Cited by third party
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
US10657097B1 (en) 2016-09-28 2020-05-19 Amazon Technologies, Inc. Data payload aggregation for data storage systems
US10496327B1 (en) 2016-09-28 2019-12-03 Amazon Technologies, Inc. Command parallelization for data storage systems
US10437790B1 (en) 2016-09-28 2019-10-08 Amazon Technologies, Inc. Contextual optimization for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10810157B1 (en) * 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
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
CN110574352B (zh) * 2017-03-29 2022-09-20 亚马逊技术有限公司 通过存储设备迁移信息
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 联想凌拓科技有限公司 用于数据处理的方法、装置、设备及介质

Family Cites Families (89)

* Cited by examiner, † Cited by third party
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
DE69521101T2 (de) 1994-10-31 2001-10-18 Ibm Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
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
WO1999023571A1 (en) * 1997-11-03 1999-05-14 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
US6279032B1 (en) 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration 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
US6356863B1 (en) * 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
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
AU2001253533A1 (en) 2000-04-17 2001-10-30 Circadence Corporation System and method for reformatting data traffic
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
US6651110B1 (en) * 2000-09-28 2003-11-18 Rockwell Automation Technologies, Inc. Configurable object for industrial control and monitoring networks
US6816817B1 (en) * 2000-09-28 2004-11-09 Rockwell Automation Technologies, Inc. Networked control system with real time monitoring
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
RU2421800C2 (ru) 2005-08-01 2011-06-20 Конинклейке Филипс Электроникс Н.В. Организация контента при помощи динамического профиля
EP1950991B1 (en) 2005-10-04 2016-09-21 Huawei Technologies Co., Ltd. Mobile station device, system and method for mapping frequency band used by mobile station device
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
US8719473B2 (en) 2008-09-19 2014-05-06 Microsoft Corporation Resource arbitration for shared-write access via persistent reservation
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
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
WO2012057942A1 (en) 2010-10-27 2012-05-03 High Cloud Security, 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
EP2652915B1 (en) 2010-12-17 2015-02-18 Telefonaktiebolaget L M Ericsson (PUBL) Ethernet ring node with improved recovery time after a link failure
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를 이용한 파일 전송을 위한 장치 및 기록매체
US8938550B2 (en) 2011-12-15 2015-01-20 Microsoft Corporation Autonomous network streaming
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

Also Published As

Publication number Publication date
US20190296957A1 (en) 2019-09-26
US10404520B2 (en) 2019-09-03
CN105359105B (zh) 2018-12-18
MX2015016349A (es) 2016-03-16
CA2910353A1 (en) 2014-12-04
RU2015151007A (ru) 2017-06-01
KR20160014043A (ko) 2016-02-05
EP3005114B1 (en) 2020-10-21
EP3005114A2 (en) 2016-04-13
CN105359105A (zh) 2016-02-24
US10826749B2 (en) 2020-11-03
US20140359144A1 (en) 2014-12-04
BR112015028817A2 (pt) 2017-07-25
AU2014274331A1 (en) 2015-11-12
WO2014193861A2 (en) 2014-12-04
JP2016520240A (ja) 2016-07-11
WO2014193861A3 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
US10826749B2 (en) Efficient programmatic memory access over network file access protocols
US20150331873A1 (en) Sharing a virtual hard disk across multiple virtual machines
US9053068B2 (en) RDMA-based state transfer in virtual machine live migration
US10095705B2 (en) Integrated data retention policy for solid state and asymmetric access
US10503419B2 (en) Controlling storage access by clustered nodes
CN109416644B (zh) 用于虚拟机实时迁移的系统和方法
JP2017528809A (ja) 記憶不具合後の安全なデータアクセス
US11620254B2 (en) Remote direct memory access for container-enabled networks
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
WO2024074093A9 (en) Communication systems for power supply noise reduction
WO2024074092A9 (en) Communication systems for power supply noise reduction
US20220237026A1 (en) Volatile memory acquisition
US10819783B1 (en) Managing a data packet for an operating system associated with a multi-node system
WO2022164612A1 (en) Volatile memory acquisition