TW200522630A - Lightweight input/output protocol - Google Patents

Lightweight input/output protocol Download PDF

Info

Publication number
TW200522630A
TW200522630A TW093121799A TW93121799A TW200522630A TW 200522630 A TW200522630 A TW 200522630A TW 093121799 A TW093121799 A TW 093121799A TW 93121799 A TW93121799 A TW 93121799A TW 200522630 A TW200522630 A TW 200522630A
Authority
TW
Taiwan
Prior art keywords
server
user
computer
rdma
lwio
Prior art date
Application number
TW093121799A
Other languages
English (en)
Inventor
Ahmed H Mohamed
Anthony F Voellm
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 TW200522630A publication Critical patent/TW200522630A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

200522630 玖、發明說明乂 【發明所屬之技術領域】 本發明係概括關於遠端檔案存取之系統及方法;特別 是關於利用遠端直接§己憶體存取(Remote Direct Memory Access,RDMA)來卸載輸入/輸出處理程序的技術。 【先前技術】 在計算環境裡,吾人通常會希望能夠節省寶貴的 CPU資源。對於如應用程式伺服器網路節點而言,節省資 源的課題尤其重要。由於網路變得愈來愈快速,其對於C P U 在處理封包及執行I/O操作方面的要求隨之提高,因而降 低了應用程式的效能。此種情況特別不利於像是在本質上 需仰賴大量I/O應用的資料庫。 解決此問題的其中一種方法是為 CPU解除過多的 I/O及網路處理工作。在使用諸如NFS或SMB/CIFS等分 散式檔案系統及傳輸協定的網路化環境裡,可以將I/O要 求從近端機台傳送到遠端機台。然而,利用此種處理方式 未必能使近端機台在處理工作的經濟效益方面達到顯著的 提升。 在單機操作環境裡,ϊ/ο處理工作之負載可藉著將 I/O工作卸載到直接記憶體存取(Direct Memory Access, DMA)控制器而得以減輕。遠端直接記憶體存取(Rem〇te Direct Memory Access,RDMA)技術是一種新近開發用於 多台網路化電腦的DMA延伸。RDMA讓資料能夠在具備 200522630 RDMA功能之網路介面卡(NIC)的兩台連線機台上的記憶 體緩衝暫存區之間傳輸,而不需要用到來源機台或目的機 台的CPU和作業系統。RDMA可以用來將I/O處理工作卸 載到遠端機台,以便讓近端機台能夠恢復供應用程式使用 的CPU運算速度(cycle)。RDM A已充分運用於高速、高頻 寬的互連技術,例如虛擬介面架構(VIA)、InfiniBand及 iWarp等。這些相互連線是特別為資料中心或其它本機檔 案共享環境内的伺服器節點叢集(cluster)之間的高可靠度 網路連線而設計。 用來定義本機卸載節點與遠端機台之間的協定必須 加以設計,以便能夠充分運用RDMA技術所提供的功能, 並有效地獲得其益處。因此,吾人需要本發明之輕量輸入/ 輸出(lightweight input/output,LWIO)協定。 【發明内容】 根據本發明之一技術態樣,其提供一種用於將第— 電腦之輸入/輸出(I/O)工作卸載到第二電腦的系統。上述系 統涵蓋在該第一電腦上執行的用戶以及在該第二電腦2執 行的伺服器。上述系統另包含一個或數個rdma通道,其 連結該第-電腦與該第二電[上述用戶與伺服器之間係 藉由LWIO協定進行通訊,該lWi〇協定包含網。 段和I/O處理階段。上述LWI0協定係連同另一種網路 定(例如SMB/CIFS)來運用,以藉助第二種協定的安全性 驗證基礎架構。為了提供較佳的安全模式,上述協定之 200522630
才莫 V 、工糸為非對稱模式:利用RDMA執行讀取動作,但由傳 送操作來執行寫入動作。 根據本發明之另一技術態樣,其提供一種用於將第 電腦之輸入/輸出(I/O)工作卸載到第二電腦的方法。上述 方法利用兩台電腦上的共用RDMA通訊裝置,並與輕量輸 入’輸出(LWIO)用戶-伺服器協定產生關連。此種協定通常 包含探索階段及緊跟在後的1/〇處理階段。在探索階段, 用戶與伺服器決定具共享RDMA功能之提供者的最少列 表。在I/O處理階段,用戶發出將工作卸载到第二機台的 I/O要求。 在探索階段,用戶起先從伺服器取得伺服器要求恢 復機碼(resume key)。隨後,用戶開啟通往伺服器的管道 (pee),經由此管道,用戶送出含有第〆機台上具rdma 功此之提供者列表的協商要求。伺服器透過上述管道送出 協商回應,該回應含有在第二機台上可運用並與第一機台 上之提供者相符的提供者列表。隨後,用戶透過共享提供 者建立通往伺服器的RDMA連線。用戶與伺服器彼此之間 會針對此連線進行認證。接著,用戶登錄一個或數個在伺 服器上使用的檔案。 I/O處理要求訊息包含有關閉訊息、取消訊息、讀取 Λ息、寫入訊息、向量化讀取訊息及向量化寫入訊息。基 於安全性的考量,上述協定具有非對稱1/0模式的特點。 資料的讀取是利用RDMA寫入動作而傳送給用戶;資料的 寫入則疋利用一般的傳送動作來完成。讀取和寫入要求可 200522630 由用戶指定,並由伺服器以輪詢(polling)模式或岔斷 (^terrupt)模式完成。若用戶指示不應以輪詢模式來完成 讀取和寫入要求,則伺服器會藉著RDMA傳輸而將狀態區 塊送至第-機台,卩完成該項I/O處理要求。若用戶指示 應以輪詢模式來完成讀取和寫入要求,則該用戶可藉由岔 斷要求訊息來要求在完成1/0處理之後被伺服器喚醒。 根據本發明之另一技術態樣,其提供一種用於管理 1/0卸载協定之緩衝暫存區的方法。此種方法包括緩衝評 點機制。伺服益-用戶評點交易包含由伺服器啟用並完成的 三方交握(handshake)程序。飼服器會將deha評點訊息傳 达給用戶’該訊息包含設有若干評點的資訊攔&。若該項 數值為負數-N,則用戶必須放棄1^個評點。 本發明之其它技術態樣涵蓋上述技術特點,並以如 電腦程式和資料結構等電腦可讀媒體來實施。 【實施方式】 以下將參照第1圖至第 例。然而,熟習相關技術者當 進行的詳細解說僅為舉例說明 描述的實施例。 1 7 E圖來說明本發明之實施 能瞭解’在此相對於圖式所 ,實則本發明不限定於在此 發明 腦, 主機 第1圖概括繪示典型 之技術態樣可在該環境 分別標示為主機A 1 0 1 A 1 0 1做為應用程式 的網路化用戶/伺服器環境; 被實施。第1圖繪示有兩台 及主機B 121。在典型情況下 词服器機台—例如資料庫伺 本 電 服 200522630 器,並負責執行許多ι/ο工作;然而,本發明可在包含有 多種具不同類型和運用方式的電腦環境裡實施。 主機A 101與主機B 121各具備數個網路介面卡 (NIC)109、111、113、133、135 和 137,以便讓兩個機台 之間能夠進行網路資料通訊。上述N1 c當中的NIC 1 0 9、 111、1 3 5和1 3 7能夠進行RDM A資料傳輸。如圖所示,在 兩台主機1 0 1和1 2 1之間設有非RDMA網路連結11 9與 RDMA 通道 117。
LWIO用戶應用程式1〇3是在主機A 1〇1上執行,其 連結另一個負責處理I/O工作的應用程式;此應用程式與 核心模式I/O讀取/寫入服務105之間有互動關係。LWIO 用戶103可將主機A 的I/O處理工作卸載到主機B 1 2 1。LWIΟ伺服器1 2 3是在主機B 1 2 1上執行。根據在此 說明的LWIO協定,LWI〇用戶1〇3是與LWI〇伺服器123 溝通^ LWIO用戶1〇3和LWIO伺服器123利用指定緩衝 器1 07和1 27,讓檔案相關資料能夠直接經由RDMA通道 連線11 7進行傳送。藉由LWIO協定訊息,讀取和寫入兩 項工作即可卸載到主機B 121。伺服器123將I/O要求傳 送到檔案系統1 29,而檔案系統1 29則可當作連接硬碟1 3 1 的介面。 在典型情況下,RDMA連線1 1 7伴隨有兩種訊息。 第一種是一般的網路傳送/接收訊息,其在目的機台上形成 岔斷情況。第二種是RDMA讀取/寫入訊息’其中使用遠 端機台上的記憶體空間時不需要遠端CPU的協助,因而不 200522630 會造成岔斷情況。遠端CPU會決定供RDMA使用的記憶 體區域,但其通常不會得知何時執行RDMA動作。 在本發明之實施例中,上述LWIO協定係連同另一 種網路協定(例如S Μ B / CIF S)來運用,以利用第二種協定的 安全性及驗證基礎架構。如此可以減輕LWIO協定的例行 工作負擔。如第1圖所示,主機Β 121上的LWIO伺服器 123是在SMB伺服器125上運作。SMB用戶(未繪示)同樣 在主機A 101上執行,並與LWIO用戶應用程式1〇3相互 溝通。 LWIO協定包含兩個階段:探索階段及緊跟在後的 I/O階段。在此說明的資料結構實施例之資料大小如下: BYTE 無正負號的 8位元整數 CHAR 8位元ASCII字元 UINT16 無正負號的 1 6位元整數 UINT32 無正負號的 3 2位元整數 UINT64 無正負號的 64位元整數 INT16 具正負號的1 6 位元整數 INT32 具正負號的32 位元整數 INT64 具正負號的64 位元整數 WCHAR 16位元Unicode字元 PYOID32 3 2位元指標 PVOID64 64位元指標 第2圖概括繪示本發明的LWIO協定實施例在探索 200522630 階段所採取的步驟。在步驟20 1,LWIO伺服器登錄在主機 上執行的SMB/CIFS伺服器,其中LWIO伺服器是在該主 機上執行。在步驟203,SMB/CIFS伺服器根據登錄程序告 知在遠端主機上執行的SMB/CIFS用戶可以使用LWIO伺 服器。在步驟205,LWIO用戶要求一個伺服器要求恢復機 碼。此恢復機碼是一種認證機制,其已揭露於另一專利申 請案,且該申請案與本案有相同的專利權受讓人,該申請 案為美國專利申請案第______號,發明名稱為:” Method and System for Accessing a File (Resume Key)” ,並於 2003年10月24曰提申。在此參照併入該案之完整内容。 在步驟207,LWIO伺服器將該伺服器要求恢復機碼 傳回到用戶。在本發明之實施例中,伺服器要求恢復機碼 具有下列結構: typedef struct _SRV_RESUME_KEY { UINT64 ResumeKey; UINT64 Timestamp; UINT64 Pid; } SRY_RESUME_KEY? *PSRV_RESUME_KEY; typedef struct _SRV_REQUEST_RESUME_KEY { SRV_RESUME_KEY Key; UINT16 ContextLength; BYTE Context[l]; }SRV_REQUEST_RESUME_KEY,*PSRV_REQUEST_RESUME_KEY; 200522630 第3圖繪示祠服器要求恢復機碼219之 例。ResumeKey 221、Timestamp 223 和 pid 225 器上產生’而且用戶無法存取。Context 229是 UNC名稱的陣列,而LWIO用戶可利用該陣列來 器。ContextLength 227 是 Context 229 當中的位天 網路探索 當用戶應用程式收到伺服器要求恢復機碼 用戶應用程式會從Context攔位229取得伺服器 稱。再次參照第2圖,在步驟209,用戶開啟通 伺服器的管道。此管道可提供網路上具RDMA功 進行自動化探索;以下將會解說其運作方式。此 的一項重要且有用的技術特點;VIA網路和類似 不具備如ARP之類的位址解析機制。 隨後’用戶查詢伺服器上具RDMA功能的身 者)之列表,而此類提供者可搭配LWIO協定來使 工作是藉由協商要求而達成。用戶建構協商要求 在步驟2 1 1新開啟的管道而將此項要求傳送到飼 本發明之實施例中,協商要求具有下列結構: typedef struct { LWIO_CONTROL_HEADER;
WCHAR ClientName[LWIO—MAX—HOST UUID Key; UINT16 ResponseLength; UINT16 ProviderCount; 表述式範 是在伺服 一個内含 聯繫伺服 >組數目。 219 時, UNC名 往 LWIO 能的裝置 為本發明 網路通常 I置(提供 用。查詢 ,並經由 服器。在 NAME]; 10 200522630
LwioAddressBlk_t ProviderList[l]; } LwioNegotiateRequest_t; typedef struct { CHAR UINT32 UINT16 ProtocolId[4]; Revld; Opcode; UINT16 Length; } LWIO_CONTROL_HEADER; typedef struct _GUID { UINT32 Datal; UINT16 UINT16 Data2; Data3; BYTE Data4[8]; } GUID,UUID; typedef struct { WCHAR Name[LWIO_MAX_PROVIDER_NAME]; UINT16 InstanceCount; LWIO_NET_ADDRESS InstanceTable[l]; } LwioAddressBlk_t; typedef struct _LWIO^NET_ADDRESS { UINT16 UINT16 HostAddressLen; DiscriminatorLen; BYTE HostAddressFollowedByDiscriminator [ 1 ]; } LWIO—NET_ADDRESS; 第4A圖繪示本發明的協商要求封包231之表述式範 例。協商要求含有:控制標題23 3、長度固定的 Unicode 11 200522630 用戶名稱攔位23 5、當作機碼的用戶UUID 237、供接收回 應之用的本機緩衝暫存區大小2 3 9,以及提供者列表24 j。 在控制標題23 3内,Protocolld’ LWIO,243儲存為標題 的前四個位元組。
Revld 245 存有目前定義的數值 Oxiooj 、 LWIO一REV —ID。Opcode 247存有目前定義的數值〇xfe、 LWIO — CONTROL_OPCODE一NEGOTIATE。Length 249 是傳
送到伺服器的完整封包之大小(以位元組為單位),其中包 括所有的特定opcode資料。
ClientName 23 5是供伺月艮器辨認用戶之用。Key 237 是用於後續的特定網路認證程序;以下將會解說。 ResponseLength 23 9是緩衝暫存區的大小,緩衝暫存區是 用來接收伺S艮器的協商回應;以下將會解說。 Provider Count 251是與用戶機台有關聯的提供者數目;用 戶告知伺服器的即是提供者的數目。提供者列表241包含 ProviderCount個提供者的列表。
提供者列表241的Name元素253即是提供者的名 稱。為了能夠偵測到相容的網路,用戶與伺服器最好對於 同一個提供者使用相同名稱。InstanceCount 255是特定提 供者類型的裝置數量。執行個體表(instance table)257是網 路/鑑別器組的列表,其中一組是用來描述如何以指定裝置 的方式建立遠端連線。HostAddressLen 259是指定網路主 機位址263的長度。DiscriminatorLen261是指定網路鑑別 器265的長度。跟隨上述長度欄位之後的是主機位址263 12 200522630 的 HostAddressLen 位元組以及 4監別器 265 的
DiscriminatorLen 位元組。
參照第2圖。在步驟213,根據用戶的提供者列表 接收到協商要求後,伺服器會判斷其具備哪些與用戶所擁 有相同的RDMA通訊裝置。在步驟215,伺服器經由管道 將協商回應傳送給欲戶,其中包括共享提供者的列表。在 本發明之實施例中,此協商回應具有下列結構: typedef struct { LWIO__CONTROL_HEADER; WCHAR SrvName[LWIO_MAX—HOST—NAME]; UUID Key; UINT16 ProviderCount;
LwioAddressBlk_t ProviderList[l]; } LwioNegotiateResponse—t; 第4 B圖繪示本發明之實施例中的協商回應2 6 7之表 述式範例。除了 Length 271現在代表回應訊息267的大小 以外’控制標題269和協商要求相同。SrvName 273存有 伺服器的名稱。Key 275是由伺服器產生並供用戶使用的 GU ID。用戶會利用共通的通訊裝置並透過新的連線,而在 認證要求中將Key傳回到伺服器;以下將提供進一步的說 明。ProviderCount 277是提供者列表279當中的提供者數 目。提供者列表279包含有伺服器與用戶所共用的提供着 之列表。在此無法保證用戶確實能夠連上這些提供者。 13 200522630 參照第2圖。此時,伺服器與用戶具有共用的通訊 裝置資訊,而且已經定出共同提供者的最少列表。在步驟 217,用戶透過一個或一個以上的共用裝置建立起一個或一 個以上通往LWIO伺服器的RDMA連線。在本發明的實施 例中,用戶至伺服器的通訊是以下列程式碼定義: #define LWIO_OPCODE_READ 0x0 #define LWIO_OPCODE_WRITE 0x1 #define LWIO_OPCODE_VEC_READ 0x2 #define LWIO_OPCODE_VEC_WRITE 0x3 #define LWIO_OPCODE_CLOSE 0x4 #define LWIO_OPCODE_CANCEL 0x5 #define LWIO_OPCODE_AUTH 0x6 #define LWIO_OPCODE_REGISTER 0x7 #define LWIO_OPCODE_CREDIT 0x8 #define LWIO OPCODE INTERRUPT 0x9 以下經過定義的旗標是用來當作欲戶至伺服器通訊 的修倚詞(modifier)。 #define LWIO_HDR_FLAG—INTERRUPT 0x80 #define LWIO_HDR_FLAG—CONTROL 0x40 #define LWIO HDR FLAG COLLAPSE 10 0x20 LWIO協定當中所對應的用戶至伺服器訊息是以共 通標題結構為其特點。在本發明的實施例中,共通標題具 14 200522630 有如下格式 typedef struct { UINT32 union { Length; UINT32 Status; struct { BYTE BYTE BYTE BYTE }; }; Opcode; Flags; Credits; Marker; struct { UINT16 UINT16 UINT32 }; Fid; Sequence; Tid; UINT64 Offset; // data buffer block struct { PVOID64 DataVa; union { UINT32 DataMh; struct { UINT16 UINT16 } Vec; }; }; NumPages; PageSize; // io status block union { struct { UINT32 PVOID64 IosMh; IosVa; }; struct { UINT32 UINT64 }; }; } LWIO_COMMON_HEADER; ImmediateCookie; Cookie; 15 200522630 連線認證 第5圖概括繪示本發明的實施例在LWIO協定之啟 始階段後由用戶與伺服器採取的步驟。如以上所述,在步 驟 601,用戶透過共用通訊裝置建立通往伺服器的連線。 此時,用戶與伺服器彼此之間會針對此連線進行認證。在 步驟603,用戶將認證要求訊息(LWIO —OPCODE_AUTH)傳 送到伺服器。認證的目的是防止在伺服器端或用戶端發生 詐騙情形。若未及時完成認證,連線將會終止。 第 6A圖繪示本發明的實施例中用戶認證要求訊息 之表述式範例。認證訊息6 1 7含有共用標題6 1 9,其後緊 接著 LWIO_AUTH_PARAMS結構 621。在標題 619内, Length 623是設定成傳送到伺服器的位元組數量(共用標 題619的大小加上LWIO —AUTH_PARAMS 621的大小)。 Opcode 625 設定成 LWIO_OPCODE_AUTH (0x6)°Flags 627 設定成 LWIO_HDR_FLAG_INTERRUPT。在上述及其它用 戶協定訊息内,Cookie 629設定成用戶所選定的數值,並 在伺服器回應中傳回。Cookie數值通常是用來配合伺服器 回應的要求。DataVa 631設定成伺服器必須設定的RDMA 伺服器認證參數之位址。DataMh 63 3存有與DataVa 63 1 有關的RDMA記憶體控制代碼(handle)。 在本發明之實施例中,LWIO — AUTH —PARAMS結構 具有下列格式: ^define LWIO_AUTH_OPTION_END 0 #define LWIO_AUTH_OPTION_KEY 1 #define LWIO AUTH OPTION SESSION ID 2 16 200522630 #define LWIO_AUTH^OPTION_SIGNATURE 3 define LWIO—AUTH一OPTION一KEY—LENGTH 16 #define LWIO_AUTH_OPTION_SESSIONJD_LENGTH 8 #define LWIO AUTH OPTION SIGNATURE ^LENGTH 16 typedef struct { UCHAR OptionCode; UCHAR OptionLen; BYTE OptionData[l]; } LWIO_AUTH_OPTIONS,*LPLWIO_AUTH_OPTIONS; typedef struct {
Magic[4]; // *LWIO, Revld; Endian; PageSize; BaseSequence; MaxRdmaWindowSize; MaxSendBufferSize; MaxRecvBufferSize; HeaderSize; Credits; RdmaReadSupported; Options[l];
CHAR UINT16 UINT16 UINT16 UINT16 UINT32 UINT32 UINT32 UINT16 UINT16 UINT16
LWIO AUTH OPTIONS } LWIO_AUTH_PARAMS,*LPLWIO_AUTHJPARAMS; 621構 Revld 定成 頁大小 8k) ° 645應 :在所 應設定 組;在 在認證訊息 617 内,LWIO_AUTH_PARAMS 成封包的第二個部分。Magic 635設定成‘ LWIO’ c 637 設定成 LWIO_REV_ID 〇 Endian 639 設 sizeof(ULONG_PTR)。PageSize 641 設定成 CPU 分 (在32位元的機台上是4k,在64位元的機台上是 BaseSequence 643 設定成 0 ° MaxRdmaWindowSize 設定為用戶在RDMA傳輸中所能接受的最大位元組 述實施例中被設定成64k。MaxSendBufferSize 647 為用戶在單一要求中所能傳送到伺服器的最大位元 17 200522630
所述實施例中被設定成lk°MaxRecvBufferSize 649應設 定為用戶指定從伺服器接收資料的最大位元組;在所述實 施例中被設定成1 6位元組。H e a d e r S i z e 6 5 1設定成L W10 標題619内的位元組數量。Credits 652設定成用戶所要的 緩衝暫存區評點之初始值。以下將進一步說明評點的使 用。伺服器或許會或許不會滿足用戶的要求。若用戶機台 不支援RDMA的讀取功能,貝1J RdmaReadSupported 653設 定為 〇;若用戶機台能支援 RDMA 的讀取功能,則 RdmaReadSupported 653 言史定為 1 〇
部分的LWIO —AUTH —PARAMS結構是一組選項。這 些選項可以讓認證過程更具運用彈性。除了列表中的最後 一個選項LWIO_AUTH_OPTION —END之外,各選項均有一 個選項碼、長度及資料LWIO_AUTH_OPTION —END選項只 有選項碼,其當作選項列表結尾的空白選項。在認證訊息 當中,用戶機台可傳送下列選項給伺服器機台:機碼選項 (LWIO —AUTH —OPTION_KEY) 和簽 名選項 (LWIO_AUTH — OPTION一SIGNATURE)。Key 65 5 設定成先 前由伺服器藉著協商回應所傳回的機碼。Signature 657是 LWIO —AUTH_PARAMS 621 的 MD5 簽署(signing),但其不 包括簽名(signature)。 回到第5圖;在步驟605,若認證訊息所傳送的Key 符合透過管道在協商回應中傳回的機碼,則認證過程中伺 服器與用戶之間的RDMA會以LWIO —AUTH —PARAMS結構 —其中包括8位元組Sessionld—回應到由用戶在認證訊息 18 200522630 中提供的DataVa位址及相關的DataMh記憶體控制代碼。 在步驟 607,祠月良器送出 LWIO — MSG一STATUS —RESPONSE 而完成認證。
第 6 B圖繪示本發明的實施例中,伺服器所傳回的 LWI〇_AUTH_PARAMS 結構 659 之表述式範例。Magic 661 設定成 ‘ LWIO, 。Revld 663 設定成 LWIO一REV一ID。 Endian 665 設定成 sizeof(ULONG —PTR)。PageSize 667 設 定成 CPU 分頁大小。BaseSequence 669應設為(用戶 BaseSequence + 1) 〇 MaxRdmaWindowSize 671 應言史定為用 戶在RDMA傳輸中所能接受的最大位元組;在所述實施例 中被設定成512k。MaxSendBufferSize 673應設定為伺服 器在單一回應中所能傳送到用戶的最大位元組;在所述實 施例中被設定成1 6位元組。M a X R e c v B u f f e r S i z e 6 7 5應設 定為伺服器預先指定從用戶接收資料的最大位元組;在所 述實施例中被設定成8k。HeaderSize 677設定成共同標題 内的位元組數量。Credits 679設定成伺服器可提供給用戶 的評點初始值。若伺服器機台不支援RDMA的讀取功能, 則RdmaReadSupported 681設定為0 ;若伺月艮器機台能支 援RDMA的讀取功能,貝|J RdmaReadSupported 681設定為 1 。 伺服器可傳送下列選項:機碼選項 (LWIO^AUTH_OPTION_KEY) 683 、 Sessionld 選項 (LWIO_AUTH_OPTION —SESSION_ID) 685 和簽名選項 (LWIO_AUTH_OPTION_SIGNATURE) 687°Key 683 設定成 先前由用戶藉著協商回應所送出的機碼。用戶是利用 19 200522630
Sessionld 685數值而將用戶檔案登錄到伺服器;關於此 點,以下會有進一步說明。Signature 687 是 LWIO—AUTH—PARAMS 的 MD5 簽署,但其不包括 Signature。
在本發明之實施例中,LWIO_MSG_STATUS_RESPONSE 結構具有下列格式: typedef struct 一LWIO一10一STATUS一BLOCK { UINT32 Information; UINT32 Status; } LWIO—10一STATUS一BLOCK,*LPLWIO一 10—STATUS—BLOCK; typedef struct—LWIO—MSG—STATUS—RESPONSE { UINT64 — Cookie; LWIO JO—STATUS—BLOCK Ios; }LWIO_MSG__STATUS_RESPONSE? *lplwio_msg_status_response; 第6 C圖繪示本發明的實施例中,伺服器在完成認證 之後所傳回的 LWIO_MSG —STATUS一RESPONSE 689 之表 述式範例。Cookie 691設定成用戶機台在認證訊息標題内 所設定的 cookie 值。Information 693 設定成 LWIO_AUTH__PARAMS的位元組數量再加上8個位元組° Status 695設定為0x0(代表成功)或〇xC0000022(代表「拒 絕存取」)。 檔案登錄 回到第5圖。在步驟609,在用戶與伺服器彼此之 間的新連線進行認證時,用戶會開始登錄要在伺服器上使 用的檔案。除非用戶將欲使用的檔案登錄到伺服器’否則 不會透過網路連結來處理檔案的操作。 20 200522630 第7A圖繪示本發明的實施例中,用戶傳送到伺服器 的登錄檔案訊息之表述式範例。登錄訊息7 0 1含有共用標 題 7 03,其後緊接著 LWIO — FID — PARAMS 結構 705。Length 7 07是設定成傳送到伺服器的位元組數量(標題703的大小 加上 LWIO__FID — PARAMS 705 的大小)。Opcode 709 設定 成 LWIO一OPCODE —REGISTER (0x7)。Flags 711 設定成 LWIO —HDR_FLAG_INTERRUPT。在此用戶訊息和後續的用 戶訊息當中,Credits 713設定成在用戶機台上進行中的 I/O要求之數目。Credits攔位是告知伺服器如何分配更多 的評點給連線,進而能夠接受其它尚未提出的I/O要求; 關於此點,以下會有進一步的說明。在任一時刻,尚未提 出的用戶要求數目不可超過“ Credits”數值。如同先前的 作法,Cookie715設定成用戶指定的數值。 在本發明之實施例中,LWIO_FID_PARAMS結構具 有下列格式: typedef struct { SRV—RESUME一 KEY ResumeKey; INT64 Sessionld; UINT32 FlagsAndAttributes; } LWIO一FIDJPARAMS,*LPLWI0 FID_PARAMS; 在登錄檔案訊息 701的 LWIO_FID_PARAMS 705 中,ResumeKey 717是設定成藉由初始檔案存取通道傳回 的祠服器要求恢復機石馬。S e s s i ο η I d 7 1 9設定成在連線認證 階段由伺服器傳回的 Sessionld。FlagsAndAttributes 721 設定成先前用來開啟檔案的[Win32 Create Flags]。 再次參照第 5 圖;在步驟 61 1 ,伺服器以 21 200522630 LWIO_MSG_STATUS_RESPONSE 當作回應 @ 錄作業。第7B圖繪示本發明的實施例中,由 的 LWIO_MSG_STATUS_RESPONSE 723 之表 Information 725設定成傳送I/O要求時所用到 識別碼)。Status 727設定為〇χ〇(成功),或是 設定的NTSTATUS碼。Cookie 729設定成用户 檔案訊息標題内所設定的cookie值。 I/O處理作業 此時已建立用戶連線,並已完成檔案的 接著開始進行LWIO協定的I/O處理階段。此 實施例的其中一項技術特點在於其為一種讀取 對稱I/O模式。讀取動作是利用RDMA來實作 則是利用傳送動作來實作。為了提供較佳的安 入動作不是利用RDMA來執行。若伺服器透露 上進行RDMA的位址空間,則會引發資料遭到 壞的風險。在此種情況下,惡意的用戶可在迴 個祠服器的虛擬位址發出rdma寫入動作。由 址空間是有限的,且在某點上伺服器虛擬位址 用,使惡意的用戶最後得以在不同的連線中利 擬位址來劫取伺服器,因而造成資料被寫入不 用的伺服器緩衝暫存區。LWIO協定當中的非 式可針對上述情況進行防護。此為LWI0協定與 型檔案傳輪協定一例如DAFS —之間最主要的习 完成檔案登 伺服器傳回 逃式範例。 的Fid(檔案 在失敗時所 機台在登錄 登錄作業, LWIO協定 和寫入的非 ,寫入動作 全模式,寫 出其在NIC 惡意用戶破 圈中針對某 於伺服器位 必須重新使 用相同的虛 同用戶所使 對稱I/O模 別種RDMA 二同點。 22 200522630 返回參照第5圖;在步驟6 1 3,用戶開始發出"Ο處 理要求。伺服器至用戶的J/0要求是藉由非輪詢模式或輪 詢模式而完成。在非輪詢模式中,完成1/0是以岔斷作業 為基礎,其利用一般的傳送/接收訊息。在輪詢模式中,I/O 元成疋利用RDMA’而不是以岔·斷作業為基礎。
第8圖為流程圖,其根據本發明之實施例概括繪示 以LWIO伺服器為觀點、並以輪詢模式及非輪詢模式完成 I/O要求後所採取的步驟;用戶的I/O要求會指出伺服器 是否應傳回一項傳送後(post-send)(岔斷CPU作業)訊息或 RDM A 訊息。在步驟 801 , 祠服器判斷
LWIO —HDR_FLAG_INTERRUPT旗標是否已設定於用戶 I/O要求訊息的共用標題内。若此旗標已被設定,則在步 驟 803 伺服器會利用一般的傳送動作來傳送 LWIO_MSG_STATUS_RESPONSE,並藉以完成用戶要求。 若LWIO_HDR — FLAG_INTERRUPT旗標並未被設定(輪詢 模式),則在步驟805伺服器會進行RDMA作業來傳送 LWIO一 10 —STATUS —BLOCK給用戶,以完成用戶要求。 輪詢模式中的唤醒用戶作業 在輪詢模式中,用戶可能希望處於睡眠模式’同時 等待伺服器完成輸入/輸出(1/0)作業。此時,完成訊息是透 過RDMA而傳送到用戶機台;因此,吾人需要一種機制來 唤醒用戶機台,以便告知用戶作業已完成。若用戶機台希 望被喚醒,該用戶會送出伺服器在第8圖之步驟807接收 23 200522630 到的岔斷要求(LWIO —OPCODE一INTERRUPT)訊息給伺服 器。在伺服器上完成I/O要求之前,接收岔斷要求的伺服 器不會送出回應(步驟809)。在步驟81 1,作業完成會經由 一般傳送而被傳送到用戶,並岔斷用戶機台。對某一個連 線而言,同一時間只能存在一個岔斷訊息。 第9A圖繪示本發明的實施例中,用戶傳送到伺服器 的岔斷要求訊息之表述式範例。此訊息包含共用標題 815。Opcode 817 設定成 LWIO_OPCODE_REGISTER (0x9)。Flags 819 設定成(LWIO一HDR一FLAG一INTERRUPT | LWIO一HDR一FLAG一CONTROL) (0xC0)。Credits 821 設定成 用戶機台上的未定I/O要求,Cookie 823則設定成用戶指 定的數值。 處理完另一個I/O要求之後,伺服器回應岔斷要求 訊息。第9 B圖繪示本發明的實施例中,由伺服器送出的 LWIO一MSG一STATUS一RESPONSE 訊息 825 之表述式範 例。Information 827 設定成 〇。Status 829 設定為 〇χ〇(成 功)’或是在失敗時所設定的NTSTATUS碼。Cookie 831 設定成用戶機台在岔斷要求之標題内所設定的c〇〇kie值。 評點 如上述内容,所有的用戶至伺服器的1/〇要求均具 有標題内的評點欄位。評點攔位是為伺服器指出關於用戶 所欲傳送給饲服器的未定I/O要求之個數。評點的管理工 作是由词服器負責。評點能為沖式緩衝暫存區的問題提供 24 200522630 新的解決方案。若用戶目前擁有N個評點,則其必須發出 N+ 1個接收緩衝暫存區,以便讓伺服器送出評點訊息給該 用戶。在任一時刻,用戶連線上的伺服器只有一個未定評 點要求。評點訊息始終是以岔斷模式進行傳送。
評點交易包含伺服器在用戶與伺服器之間啟用並完 成的三方交握程序。第1 〇圖概括繪示本發明之實施例中構 成評點交易的步驟。在步驟1 〇 〇 1,伺服器透過用戶連線送 出delta評點要求訊息。 第1 1 A圖繪示本發明的實施例中伺服器delta評點 訊 息之表 述式範 例。 此 訊 息 具 有 LWIO_MSG_STATUS —RESPONSE 1 0 11 的格式。Credits 是 對應到緩衝暫存區。Information 1013設定成用戶應該放 棄的評點(為一負數)或伺服器剛分配給用戶使用的評點 (為一正數)(額外緩衝暫存區)。Status 1015 設定成 LWIO_NOTIFY__CREDIT (0x1) 〇 Cookie 1017 設定成 0 〇
返回參照第1 0圖,用戶收到來自於伺服器的評點訊 息。此用戶必須透過相同的連線以 LWIO_OPCODE_CREDIT 訊息回應伺服器。此訊息會表示釋出單獨評點,或是告知 伺服器用戶已使用剛分配的評點。若伺服器評點訊息裡的 Information欄位含有負數-N(步驟1003),則用戶會送出N 個 LWIO —OPCODE —CREDIT訊息(用戶必須放棄的每個評 點均對應一個訊息)一標示為步驟1 005。若Information欄 位為正數,則用戶只會送出一個 LWIO —OPCODE —CREDIT 訊息—標不為步驟1 0 0 7。 25 200522630 第 1 1 B圖繪示本發明的實施例中,由用戶送出的 LWIO_OPCODE —CREDIT 訊息之表述式範例 。 LWIO —OPCODE — CREDIT 訊息 1019 包含共用標題 1〇21。 Opcode 1 023 設定成 LWIO —OPCODE —CREDIT (0x8)。Flags 1 025 設定成 LWIO一HDR_FLAG_INTERRUPT (0x80)。 Credits 1 027設定成在用戶機台上進行中的I/O要求之數 目。Cookie 1031設定成用戶指定的數值。若用戶接收到正 的delta評點訊息,則Offset 1 029的上層32位元會被設 定成伺服器分配給用戶而用戶並未使用的評點。一旦用戶 傳回到此攔位的數值大於0,伺服器通常在送出至少一個 負的更新訊息之前不會傳送另一個正的更新訊息。在典型 情況下,用戶會傳回0。 如上所述,若用戶收到一個負的(-N)delta評點訊 息,則該用戶必須傳送N個評點訊息到伺服器一各訊息對 應用戶所放棄的每個評點。此時,Offset 1 029的上層 32 位元設定成-N,-(N-1 ),···,-1。當伺服器接收到Offset 1 029的上層3 2位元設定成-1的用戶評點訊息時,該伺服 器會假定用戶已完成伺服器評點訊息的處理工作,並有資 格收到新的評點訊息。 參照第10圖,如步驟1 009所示,伺服器送出一個 LWIO_MSG_STATUS_RESPONSE訊息給用戶,以完成三方 交握程序。第11 C圖繪示本發明的實施例中,由伺服器傳 回的 LWIO_MSG_STATUS_RESPONSE 1 03 3 之表述式範 例。Information 1 037 設定成 0。 若用戶送出的 26 200522630 LWIO一OPCODE — CREDIT訊息之標題内的Offset的上層32 位元大於或等於0,則Status 1039設定成0x0來表示成 功。若Offset的上層32位元被設為一個負數,則伺服器 會將 Status 1 03 9 設定成 LWIO —CREDIT—NOTIFY,以便讓 用戶能收回評點。Cookie 1 035 設定成用戶機台在 LWIO —OPCODE — CREDIT訊息之共用標題内所設定的 cookie 值 〇 關閉 關閉訊息是用來終止在登錄階段經過交換的特定 Fid之I/O處理。一旦伺服器有所回應,除非Fid重新再使 用,否則任何要求均會失敗。第1 2 A圖繪示本發明的實施 例中,由用戶送出的關閉訊息之表述式範例。關閉訊息 1041 包含共用標題 1 043 。Opcode 1 045 設定成 LWIO_OPCODE_CLOSE (0x4) 〇 Flags 1 047 設定成 LWIO_HDR_FLAG_INTERRUPT (0x80)。Credits 1 049 設定 成在用戶機台上進行中的I/O要求之數目。Cookie 1053設 定成用戶指定的數值。Fid 1 05 1設定成即將要關閉的檔案 File Id 〇 伺月艮器以 LWIO —MSG —STATUS_RESPONSE 當作回 應。第1 2B圖繪示本發明的實施例中,伺服器所傳回的關 閉完成 LWIO_MSG_STATUS__RESPONSE 1 055 之表述式範 例。Information 1059 設定成 0。Status 1061 設定成 0 以表 示成功。Cookie 1 057設定成用戶機台在關閉要求内所設定 27 200522630 的 cookie 值 〇 取消 取消訊息是用來終止在登錄階段經過交換的特定 Fid之1/0處理。發出取消之後,伺服器即完成要求<)然 而,無法取消的I/O要求仍然可在伺服器上執行。第丨3 A 圖繪示本發明的實施例中’由用戶送出的取消訊息之表述 式範例。取消訊息1 063包含共用標題1 065。Opcode 1067 設定成 LWIO — OPCODE — CANCEL (〇X5)。Flags 1069 設定成 LWIO — HDR — FLAG — INTERRUPT (0x80)。Credits 1071 言史定 成在用戶機台上進行中的I/O要求之數目。Cookie 1075設 定成用戶指定的數值。Fid 1 073設定成被取消的檔案File Id ° 伺月艮器以 LWIO —MSG —STATUS_RESPONSE訊息當 作回應並完成取消動作。第 1 3 B圖繪示本發明的實施例 中,伺服器所傳回的取消完成LWIO—MSG_STATUS_RESPONSE 1 077 之表述式範例。Information 1081 設定成 0。Status 1 0 83設定成0以表示成功。Cookie 1 079設定成用戶機台 在取消要求内所設定的cookie值。 讀取 讀取訊息是用來取得在登錄階段經過交換的特定 Fid之資料。對小於1千位元組的讀取要求而言,若用戶 機台的緩衝暫存區沒有登錄NIC,則資料會收錄在内部預 28 200522630 先登錄的緩衝暫存區,而且在收到伺服器傳送來的資料之 後, 伤複本會存入使用者緩衝暫存區。如此進行處理的 原因在於:複製少量的資料會比登錄少量的使用者緩衝暫 存更有效率。讀取大量時會登錄使用者缓衝暫存,且資料 是直接藉由RDMA寫入動作而被接收。根據單獨一個讀取 要求所進行的資料讀取量會受到]ViaxRdmaWindowSize的 限制。 第1 4A圖和第1 4C圖分別繪示本發明的實施例中, 由用戶送出的讀取訊息之表述式範例,其中第丨4 A圖是採 用非輪詢模式的情況,第1 4C圖則是採用輪詢模式的情 況。讀取訊息1401包含共用標題14〇3。Length 1 405設定 成從相關播案讀取的位元組數量。Opcode 1407設定成 LWIO — OPCODE — READ (0x0)。〇ffset 1417 設定成開始進行 讀取的位元組位置。Marker 1413設定成OxFF。在輪詢模 式1427中,Flags 1 409和1427是設定成0x0 ;在非輪詢 模式 1409 則是設定成 LWIO — HDR —FLAG —INTERRUPT (0x80)。Credits 1411設定成在用戶機台上進行中的1/〇要 求之數目。Fid 1415設定成發出uo要求的檔案FileId。 DataVa 1419設定成針對資料進行rDMa讀取的位址。
DataMh 1421設定成相關的記憶體控制代碼。 在非輪 δ旬模式裡,immediateCookie 1423 和 Cookie 1 4 2 5是設定成用戶指定的數值。在此種情況下,伺服器可 透過一般的傳輸方式送出LWIO—MSG_STATUS_RESPONSE來 完成讀取要求,或者在讀取成功時利用RDMA方式送出即 200522630 時資料。因此,RDMA寫入動作的即時資料被設定成讀取 要求的ImmediateCookie數值。在輪詢模式裡,i0SVa 143 1 是設定成針對伺服器回應狀態(LWI〇j〇一STATUSJBLOCK)進 行RDMA的位置。l0SMh 1429則是設定成相關的記憶體控 制代碼。
在非輪詢模式裡,伺服器首先會針對讀取的資料進 行 RDMA。隨後,伺月艮器可以 LWIO_MSG__STATUSJlESPONSE 當作回應,或者以RDMA讀取資料送出即時資料;此時, 即時資料是設定成讀取要求的ImmediateCookie數值。第 1 4B圖繪示本發明之非輪詢模式實施例中,伺服器所傳回 的 LWIO一MSG一STATUS —RESPONSE 1 43 3 之表述式範例。 Information 1 43 7設定成讀取到的位元組數量。status 1439 設定為 〇以代表成功,或是在失敗時設定為NTSTATUS 碼。Cookie 1 43 5設定成用戶機台在讀取訊息標題内所設定 的 cookie 值 °
在輪詢模式裡,伺服器首先會針對讀取的資料進行 RDMA 。 隨後,伺服器以 RDMA 的方式傳送 LWIO — IO一STATUS_BLOCK給用戶機台。第14D圖繪示本 發明的實施例中,由伺月艮器送出的LWI0_I0_STATUSJBL0CK 1441之表述式範例。Information 1 443設定成讀取到的位 元組數量。Status 1445設定為〇以代表成功,或是在失敗 時設定為NTSTATUS碼。 寫入 30 200522630 寫入訊息是用來存入在檔案登錄時經過交換的特定 F i d之資料。所有寫入的資料均是利用一般的傳送動作進 行傳輸。寫入資料的量是受到伺服器MaxRecvBufferSiZe 大小的限制。若用戶送出的資料量大於此設定值,則連線 將會終止。 第1 5 A圖和第1 5 C圖分別繪示本發明的實施例中, 由用戶送出的寫入訊息之表述式範例,其中第1 5 A圖是採 用非輪詢模式的情況,第1 5 C圖則是採用輪詢模式的情 況。寫入訊息1501包含共用標題1503。Length 1505設定 成資料被寫入的位元組數量。0Pcode 1 507設定成 LWIO —OPCODE —WRITE (0x1)。Offset 1517 設定成開始進 行檔案資料寫入的位元組位置。在輪詢模式1 529中,Flags 1 5 09和1 529是設定成0x0 ;在非輪詢模式1 509則是設定 成 LWIO — HDR—FLAG —INTERRUPT (0x80)〇 Marker 1513 設 定成OxFF。Credits 1511設定成在用戶機台上進行中的I/0 要求之數目。Fid 1515設定成發出I/O要求的檔案File Id° 寫入的資料1 527會緊接著寫入訊息的共用標題1 503。 在非輪詢模式裡,Cookie 1525是設定成用戶指定的 數值。在輪詢模式裡,IosVa 1 5 3 3是設定成伺服器以RDM A 傳送回應狀態(LWIO-IO —STATUS —BLOCK)的位置;I〇sMh 1 5 3 1則是設定成相關的記憶體控制代碼。 在非輪詢模式裡,伺服器是以 LWIO一MSG — STATUS一RESPONSE 來回應寫入訊息。第 15B 圖繪示本發明的實施例中,由伺服器傳送的 31 200522630 LWIO —MSG —STATUS —RESPONSE 1 535 之表述式範例。 Information 1539是設定成寫入的位元組數量。St at us 1541 設定為 〇以代表成功,或是在失敗時設定為 NTSTATUS 碼。Cookie 1537設定成用戶機台在寫入訊息標題内所設定 的 cookie 值。在輪詢模式裡,伺服器是針對 LWIO IO —STATUS一BLOCK 進行 RDMA。第 1 5D 圖繪示本 發明的實施例中,由伺服器送出的 LWIO —io —STATUS —BLOCK 1 543 之表述式範例。 Information 1 545是設定成寫入的位元組數量。status 1 547 設定為0以代表成功,或是在失敗時設定為NTSTATUS碼。 向量化讀取
向量化讀取是用來取得在登錄階段經過交換的特定 Fid之資料,並用來將單頁的資料分散成數個在要求者上 的區段。讀取到的全部的資料會經由RDMA寫入動作而傳 运給要求者,其中伺服器會為每個讀取區段執行RDMA寫 入動作。從磁碟讀到的資料均是相互鄰接。讀取的資料量 會义到月b以單一要求來描述的目的分頁(destinati〇rl page) 最大數目的限制。此限制是伺服器MaxRecvBufferSize 除以 slze〇f(LWIO一RDMA一REGION)。LWIO—RDMA—REGION 的結構如以下之說明。 第1 6 A圖和第1 6 C圖分別繪示本發明的實施例中, 由用戶送出的向量化讀取訊息之表述式範例,其中第1 6A 圖疋採用非輪詢模式的情況,第〗6C圖則是採用輪詢模式 32 200522630 的情況。讀取訊息1401包含有共用標題1 603,其後緊接 著一個或數個 LWIO一RDM A —REGION 區段 1605 和 1607。 在標題1 603内,Length 1609是被設定成從檔案讀出的資 料位元組數目。Opcode 1611 設定成 LWIO—OPCODE_VEC—READ (0x2)。Offset 1621設定成開始進行檔案資料讀取的位元組 位置。在輪詢模式1631中,Flags 1613和1631是設定成 0x0 ; 在非輪詢模式 1613 則是設定成
LWIO_HDR FLAG_INTERRUPT (0x80)。Marker 1617 設定 成OxFF。Credits 1615設定成在用戶機台上進行中的I/O 要求之數目。Fid 1619設定成發出I/O要求的檔案File Id。 NumPages 1 623 是設定成 LWIO — RDMA —REGION 的數目, 其在共用標題1 603之後。PageSize 1 625設定成本機分頁 大小(以位元組為單位)。
在非輪詢模式裡,ImmediateCookie 1627 和 Cookie 1 629是設定成用戶指定的數值。在此種情況下,伺服器可 透過一般的傳輸方式送出 LWIO_MSG_STATUSJRJESPONSE來 完成向量化讀取要求,或者在讀取成功時利用RDMA方式 送出即時資料。因此,RDMA寫入動作的即時資料被設定 成讀取要求的ImmediateCookie 1 627數值。在輪詢模式 裡,IosVa 1 63 5是設定成伺服器以RDMA傳送回應狀態 (LWIO —10 —STATUS —BLOCK)的位置;IosMh 1 63 3 貝】J 是設定 成相關的記憶體控制代碼。 共用標題 1 603 之後會緊接著數量足夠的 LWIO —RDMA —REGION區段,以涵蓋要求的長度。所有的 33 200522630 中介區段均必須是一個分頁的大小。最後一個區段可以小 於一個分頁,但其大小必須是後段磁區大小的整數倍。在 本發明之實施例中,LWIO — RDMA —REGION具有下列格式: typedef volatile struct { PVOID64 DataVa; UINT32 DataMh; UINT32 Length; } LWIO—RDMA一REGION; 第一個 LWIO — RDMA —REGION 是對應第一個 PageSize位元組讀取,第二個LWIO一RDMA一REGION是對 應第二個PageSize位元組讀取,其餘依此類推。DataVa 1637設定成標示存放讀取資料的分頁之起點位置。d at aMh 1 63 9設定成DataVa 1 637的記憶體控制代碼。Length 1641 設定成所有區段(除最後一個區段之外)的PageSize 1625, 其中Length可小於一個分頁,但其大小必須是後段磁區大 小的整數倍。 在非輪詢模式裡,伺服器首先會針對讀取的資料進 行 RDMA。隨後,伺月艮器可以 LWIO—MSG—STATUS_RESPONSE 當作回應,或者以RDMA讀取資料送出即時資料;此時, 即時資料是設定成讀取要求的ImmediateCookie數值。第 1 6B圖繪示本發明之非輪詢模式實施例中,伺服器所傳回 的 LWIO — MSG —STATUS^RESPONSE 1 643 之表述式範例。 Information 1 647設定成讀取到的位元組數量。Status 1649 設定為〇以代表成功,或是在失敗時設定為NTSTATUS 碼。Cookie 1645設定成用戶機台在向量化讀取訊息標題内 34 200522630 所設定的cookie值。 在輪詢模式裡,伺服器首先針對讀取資料進行 RDMA,而後再進行 LWIO —IO-STATUS —BLOCK 的 RDMA。 第 16D 圖繪示本發明的實施例中,由伺服器送出的 LWIO — IO__STATUS —BLOCK 1651 之表述式範例。 Information 1 6 5 3設定成讀取到的位元組數量。Status 1 6 5 5 設定為0以代表成功,或是在失敗時設定為NTSTATUS碼。 向量化寫入 向量化寫入訊息是用來集中寫入在檔案登錄時經過 交換的特定Fid之資料。所有寫入的資料均是利用一般的 傳送動作進行傳輸。寫入資料的量是受到伺服器 MaxRecvBufferSize大小的限制。若用戶送出的資料量大 於此設定值,則連線將會終止。 第1 7 A圖、第1 7 B圖和第1 7 C圖分別繪示本發明的 實施例中’由用戶送出的向量化讀取訊息之表述式範例, 其中第1 7 A圖是採用非輪詢且非收合模式的情況,第1 7 B 圖是採用非輪詢且收合模式的情況,第1 7 C圖則是採用輪 詢且收合模式的情況。 寫入訊息1701包含有共用標題17〇3,其後緊接著 被寫入的資料1 705。在共用標題1 703内,Length 1 707是 被設定成寫入資料的位元組數目。Opcode 1 709設定成 LWIO一OPCODE一WRITE (0x3)。0ffset 1719 設定成開始進 行檔案資料寫入的位元組位置。Marker 1715設定成 35 200522630
OxFF。Credits 1713設定成在用戶機台上進行中的1/〇要 求之數目。Fid 1717設定成發出I/O要求的檔案FUe Id。
Flags 1711、1721和1727設定成代表輪詢my的 0x0,否貝ij 設定成 LWIO — HDR —FLAG —INTERRUPT (0x80) 1711。若是設定成 LWIO一HDR一FLAG —INTERRUPT (0x80) 1711,貝|J 旗標亦包含 LWIO —HDR —FLAG —COLLAPSE 1721, 以表示寫入的所有分頁均含有相同的資料,如此即可讓只 有單一分頁的資料被送出。上述是最佳化處理程序,其能 減少傳送多餘資料的情況。若登錄的檔案旗標包含 FILE一NO —INTERMEDIATE —BUFFERING (0x8),且在認證 階段相互交換的Page Sizes是彼此的偶數倍,則只能使用 LWIO — HDR —FLAG一COLLAPSE。在收合 I/O 的情況裡, NumPages 1 723是設定成由I/O所展開之資料分頁的數 目。由於Length參數的緣故,最後一個分頁可以是部分分 頁。PageSize 1725設定成本機分頁大小(以位元組為單 位)。在輪$旬核式裡’ I 〇 s V a 1 7 3 1設定成針對伺服回應狀 態(LWI0 — 10一STATUS —BLOCK)進行 RDMA 的位置。i〇sMh 1 729是相關的記憶體控制代碼。 在非輪詢模式裡,對非收合與收合I/O兩者而言, 伺服器是以LWIO一MSG一STATUS —RESPONSE來回應寫入 訊息。 第1 7 D圖繪示本發明的實施例中,由伺服器傳送的 LWIO一MSG —STATUS一RESPONSE 1 73 3 之表述式範例。 Information 1737是設定成寫入的位元組數量。Status j 73 9 36 200522630 設定為 0以代表成功,或是在失敗時設定為 NTSTATUS 碼。Cookie 1 735設定成用戶機台在寫入訊息標題内所設定 的 cookie 值。
在輪詢模式裡’對非收合與收合I / Ο兩者而言,/[司 月艮器會進行 LWIO_IO —STATUS —BLOCK 的 RDMA。第 17E 圖繪示本發明的實施例中,由伺服器送出的 LWIO 一 IO 一 STATUS —BLOCK 1741 之表述式範例。 Information 1 743是設定成寫入的位元組數量。status丨745 設定為0以代表成功,或是在失敗時設定為NTSTATUS碼。 結論 儘官以上已繪示及說明本發明之實施例,但 的是,在不脫離本發明的箭杩 十货1幻刖徒下仍可作許多變更。同樣地, 在此描述的任何處理步驄的沉命 乂驟均可與其它步驟對換而達到相同 的功效。此外,上述眘竑&并4 m 一 (貫施例並非用以窮舉或限定本發明如 所揭不之確切形式。相斤; , 反地’本發明實則涵蓋落入其精神 及範圍内的所有變更、巷炸 ^替代及等效結構或步驟。 【圖式簡單說明] 雖然本發明之技術特點 ^ 2巧丄 行點已坪载於所附之申請專利 圍,但藉由以下的詳细% 』上 卜的n兒明和相關圖式,當能更加明瞭 發明及其目的和優點;關於圖式: 第1圖概括繪示包含有兩台 伺服器計算環境之實施例, 具備RDMA傳輸功能的用戶· 1在該計算環境内可實施本發 37 述式; 第6C圖概括繪系 之實施例的表述式 第7A圖概括繪系 表述式; 第7B圖概括繪系 回應之實施例的表 第8圖為流程圖’ 模式及非輪詢模式 第9A圖概括繪# 200522630 明之技術態樣; 第2圖為流程圖,其概括繪示本發明的LWIO協定之 例在探索階段所採取的起始步驟; 第3圖概括繪示本發明的伺服器要求恢復機碼之實施 表述式; 第4A圖概括繪示本發明的用戶協商要求訊息之實施 表述式; 第4 B圖概括繪示本發明的飼服器協商回應之實施例 述式; 第5圖為流程圖’其概括螬"不本發明的L WI 〇協定實 在探索階段所採取的其它步驟; 第6A圖概括繪系本發明的用戶認證要求訊息之實施 表述式; 第6B圖概括繪禾本發明的词服器認證回應之實施例 根據本發明伺服器完成認證的狀 9 本發明的用戶登錄檔案訊息之實 根據本發明伺服器完成檔案登錄 述式’ 其根據本發明之實施例概括繪示 完成I/O要求後所採取的步驟; 本發明的用戶岔斷要求訊息之實 態 施 的 以 施 實施 例的 例的 的表 施例 例的 的表 回應 例的 狀態 輪詢 例的 38 200522630 表述式; 第9B圖概括繪示根據本發明伺服器完成岔斷要求的狀態 回應之實施例的表述式; 第1 0圖為流程圖,其根據本發明之實施例概括繪示在伺服 器-用戶評點交易過程所採取的步驟; 第1 1 A圖概括繪示本發明的伺服器delta評點訊息之實施 例的表述式; 第1 1 B圖概括繪示本發明的用戶對伺服器評點訊息之實施 例的表述式; 第1 1 C圖概括繪示根據本發明伺服器完成用戶-伺服器評 點交易的狀態回應之實施例的表述式; 第1 2 A圖概括繪示本發明的用戶關閉要求訊息之實施例的 表述式; 第1 2B圖概括繪示根據本發明伺服器完成關閉要求的狀態 回應之實施例的表述式; 第1 3 A圖概括繪示本發明的用戶取消要求訊息之實施例的 表述式; 第1 3 B圖概括繪示根據本發明伺服器完成取消要求的狀態 回應之實施例的表述式; 第14A圖概括繪示本發明在非輪詢模式情況下的用戶讀取 要求訊息之實施例的表述式; 第1 4B圖概括繪示本發明在非輪詢模式情況下完成讀取要 求的伺服器狀態回應之實施例的表述式; 第1 4C圖概括繪示本發明在輪詢模式情況下的用戶讀取要 39 200522630 求訊息之實施例的表述式; 第1 4D圖概括繪示本發明在輪詢模式情况下完成讀取要求 的伺服器I/O狀態區塊之實施例的表述式; 第1 5 A圖概括繪示本發明在非輪詢模式情況下的用戶寫入 要求訊息之實施例的表述式; 第1 5B圖概括繪示本發明在非輪詢模式情況下完成寫入要 求的伺服器狀態回應之實施例的表述式; 第1 5C圖概括繪示本發明在輪詢模式情況下的用戶寫入要 求訊息之實施例的表述式; 第1 5 D圖概括繪示本發明在輪詢模式情況下完成寫入要求 的伺服器I/O狀態區塊之實施例的表述式; 第1 6 A圖概括繪示本發明在非輪詢模式情況下的用戶向量 化讀取要求訊息之實施例的表述式; 第1 6 B圖概括繪示本發明在非輪詢模式情況下元成向量化 讀取要求的伺服器狀態回應之實施例的表述式; 第1 6 C圖概括%示本發明在輪詢模式情況下的用戶向量化 讀取要求訊息之實施例的表述式; 第1 6D圖概括繪示本發明在輪詢模式情況下完成向量化讀 取要求的伺服器I/O狀態區塊之實施例的表述式; 第17 A圖概括繪示本發明在非輪詢模式及非收合 (non-collapsed)情況下的用戶向量化寫入要求訊息之實施 例的表述式; 第1 7B圖概括繪示本發明在非輪詢模式及收合(collapsed) 情況下的用戶向量化寫入要求訊息之實施例的表述式; 40 200522630 第1 7C圖概括繪示本發明在輪詢模式及收合情況下的用戶 向量化寫入要求訊息之實施例的表述式; 第1 7D圖概括繪示本發明在非輪詢模式情況下完成向量化 寫入要求的伺服器狀態回應之實施例的表述式;及 第1 7E圖概括繪示本發明在輪詢模式情況下完成向量化寫 入要求的伺服器I/O狀態區塊之實施例的表述式。 【主要元件符號說明】
101 主機A 105 核心模式I/O讀取/寫 107 緩衝暫存區
111 NIC 117 RDMA 通道
121 主機B 125 SMB伺服器 129 檔案系統
133 NIC
137 NIC 103 LWIO用戶應用程式 入服務
109 網路介面卡(NIC) 113 NIC
119 非RDMA網路連結 123 LWIO伺服器 127 緩衝暫存區 131 硬碟 135 NIC
41

Claims (1)

  1. 200522630 拾、申請專利範圍: 1. 一種用於將第一電腦之輸入/輸出(I/O)工作卸載到第二 電腦的系統,該系統至少包含: 一用戶,在該第一電腦上執行; 一伺服器,在該第二電腦上執行;及 至少一 RDMA通道,其連結該第一電腦與該第二電 腦,其中該第一電腦與該第二電腦係根據包含有網路探索 階段及I/O處理階段之協定進行溝通。 2. 如申請專利範圍第1項所述之系統,其中在該I/O處理 階段,讀取動作係利用RDMA進行,寫入動作係利用傳送 動作進行。 3 .如申請專利範圍第1項所述之系統,其中上述協定係與 第二網路協定結合運用。 4.如申請專利範圍第3項所述之系統,其中上述第二協定 係 SMB。 5 .如申請專利範圍第3項所述之系統,其中上述第二協定 係 CIFS 。 6. —種電腦可讀媒體,其存有電腦可執行指令及電腦可讀 42 200522630 負料,該電腦可讀媒體至少包含電腦程式產品, 用於將箓 一電腦之輸入/輸出(I/O)工作卸載到第二電腦的 統至少包含: /糸 至少一 RDMA通道,其連結該第一電腦與診第 腦,其中該第一電腦與該第二電腦係根據包含有 電 網路探杳 階段及I/O處理階段之協定進行溝通。 Έ
    7· —種用於將第一電腦之輸入/輸出(1/〇)工作告 取到第一 電腦的方法,該方法至少包含: 由在該第一電腦上的用戶和該第二電腦上的 w服器探 索一或數個具共享RDMA功能的提供者;及 由該用戶發出由該第二電腦上的伺服器完成之1/〇處 理要求。 8 ·如申請專利範圍第7項所述之方法,其中上述探索一咬 數個具共享RDMA功能的提供者之步驟另包含: 由該用戶從該伺服器取得伺服器要求恢復碼; 由該用戶開啟通往該伺服器的通道; 由該用戶透過該通道傳送協商要求;及 由該用戶透過該通道傳送協商回應,該協商回應包含 共用提供者的最少列表。 9·如申請專利範圍第7項所述之方法,另包含: 43 200522630 由該用戶透過具共享RDMA功能的提供者建立通往該 伺服器的RDMA連線;及 由該用戶和該伺服器認證該RDMA連線。 1 0 ·如申請專利範圍第9項所述之方法,另包含: 由該用戶透過該RDMA連線登錄一個或數個在該祠服 器上使用的檔案。 1 1 ·如申請專利範圍第1 0項所述之方法,其中上述登錄一 個或數個檔案之步驟包含: 由該用戶將登錄檔案訊息傳送給該伺服器;及 由該伺服器將登錄檔案完成訊息傳送給該用戶。 1 2 ·如申請專利範圍第9項所述之方法,其中上述認證該 RDMA連線之步驟另包含: 由該用戶傳送認證要求訊息姶該伺服器,且該認證要 求訊息包含機碼;及 若該機碼符合先前由該伺服器送出的機碼,則由該伺 服器傳送"忍證回應訊息給該用戶。 1 3 ·如申请專利範圍第1 2項所述之方法,其中上述先前的 機碼係由該伺服器傳送給該用戶之協商回應訊息所包含的 機碼。 44 200522630 1 4.如申請專利範圍第1 2項所述之方法,另包含: 由該伺服器將狀態回應訊息傳送給該用戶,以完成該 認證步驟。
    1 5.如申請專利範圍第 7項所述之方法,其中上述發出該 I/O處理要求之步驟包含由該用戶傳送下列之一 :(a)關閉 要求、(b)取消要求、(c)讀取要求、(d)寫入要求、(e)向量 化讀取要求,以及(f)向量化寫入要求。 1 6.如申請專利範圍第1 5項所述之方法,另包含: 由該伺服器利用 RDMA寫入動作傳送資料,以完成 該讀取要求和該向量化讀取要求;及 由該伺服器利用一般傳送動作傳送資料,以完成該寫 入要求和該向量化寫入要求。
    1 7.如申請專利範圍第1 5項所述之方法,其中上述向量化 寫入要求包含該要求之標題内的收合旗標。 1 8.如申請專利範圍第7項所述之方法,其中上述發出該 I/O處理要求另包含指出是否由該伺服器在輪詢模式中完 成0 45 200522630 1 9.如申請專利範圍第1 8項所述之方法,其中上述指出是 否在輪詢模式中完成之步驟包含在該I/O處理要求之標題 内設定岔斷旗標,以指出該完成不在輪詢模式中進行。 2 0.如申請專利範圍第1 8項所述之方法,另包含: 若該用戶指出不以輪詢模式來完成,則該伺服器藉著 RDMA傳輸而將狀態區塊送至該第一電腦,以完成該I/O 處理要求。 2 1 .如申請專利範圍第1 8項所述之方法,另包含: 若該用戶指出應以輪詢模式來完成,且該用戶先前已 傳送岔斷要求訊息給該伺服器,則該伺服器藉著一般傳輸 而將岔斷回應訊息送至該用戶。 2 2.如申請專利範圍第 7項所述之方法,其中上述發出該 I/O處理要求另包含在該要求之標題内指定數個評點。 23. —種存有電腦可執行指令之電腦可讀媒體,用於執行將 第一電腦之輸入/輸出(I/O)工作卸載到第二電腦的方法,該 方法至少包含: 藉由在該第一電腦上的用戶和該第二電腦上的伺服 器,探索一或數個具共享RDMA功能的提供者;及 由該用戶發出由該第二電腦上的伺服器完成之I/O 46 200522630 處理要求。 24. —種用於管理輸入/輸出卸載協定之緩衝器之方法,該 方法至少包含: 由伺服器將delta評點訊息傳送給用戶,該訊息包含 設有若干評點的資訊攔位,其中若該評點為負數-N,則伺 服器要求該用戶收回N個評點; 若該評點為負數-N,則該用戶傳送N個評點訊息到 該伺服器,否則該用戶傳送一個評點訊息到該伺服器;及 為該用戶所送出的各個評點,由該伺服器將狀態回應 訊息傳送給該用戶。 47
TW093121799A 2003-12-31 2004-07-21 Lightweight input/output protocol TW200522630A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/749,959 US7698361B2 (en) 2003-12-31 2003-12-31 Lightweight input/output protocol

Publications (1)

Publication Number Publication Date
TW200522630A true TW200522630A (en) 2005-07-01

Family

ID=34701133

Family Applications (2)

Application Number Title Priority Date Filing Date
TW101121785A TW201240413A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol
TW093121799A TW200522630A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW101121785A TW201240413A (en) 2003-12-31 2004-07-21 Lightweight input/output protocol

Country Status (17)

Country Link
US (2) US7698361B2 (zh)
EP (1) EP1700264A4 (zh)
JP (1) JP4564970B2 (zh)
KR (1) KR101084897B1 (zh)
CN (1) CN101375263B (zh)
AU (1) AU2004279182B2 (zh)
BR (1) BRPI0406413A (zh)
CA (1) CA2501521A1 (zh)
IL (1) IL168595A (zh)
MX (1) MXPA05006638A (zh)
MY (2) MY158076A (zh)
NO (1) NO20052054L (zh)
NZ (2) NZ540173A (zh)
RU (2) RU2388039C2 (zh)
TW (2) TW201240413A (zh)
WO (1) WO2005067430A2 (zh)
ZA (1) ZA200503161B (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529778B1 (en) 2001-12-12 2009-05-05 Microsoft Corporation System and method for providing access to consistent point-in-time file versions
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7617256B2 (en) * 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol
US20060168094A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation DIRECT ACCESS OF SCSI BUFFER WITH RDMA ATP MECHANISM BY iSCSI TARGET AND/OR INITIATOR
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US7549037B1 (en) * 2005-09-01 2009-06-16 Symantec Operating Corporation Efficient off-host backup of a file set clone
US8151116B2 (en) * 2006-06-09 2012-04-03 Brigham Young University Multi-channel user authentication apparatus system and method
ATE545248T1 (de) * 2006-07-27 2012-02-15 Contextream Ltd Verteiltes edge-netzwerk
US7836143B2 (en) 2007-04-25 2010-11-16 International Business Machines Corporation Message communications of particular message types between compute nodes using DMA shadow buffers
US8325633B2 (en) 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7827024B2 (en) 2007-05-09 2010-11-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7966618B2 (en) * 2007-05-29 2011-06-21 International Business Machines Corporation Controlling data transfers from an origin compute node to a target compute node
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7921428B2 (en) 2007-06-18 2011-04-05 International Business Machines Corporation Multi-registration of software library resources
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US7805546B2 (en) * 2007-07-27 2010-09-28 International Business Machines Corporation Chaining direct memory access data transfer operations for compute nodes in a parallel computer
US8959172B2 (en) 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US8929372B2 (en) * 2007-10-30 2015-01-06 Contextream Ltd. Grid router
US8467295B2 (en) 2008-08-21 2013-06-18 Contextream Ltd. System and methods for distributed quality of service enforcement
IT1391040B1 (it) * 2008-10-01 2011-10-27 St Microelectronics Srl Procedimento per eseguire operazioni in reti di comunicazione, rete di comunicazione e prodotto informatico relativi
US8521821B2 (en) * 2009-03-17 2013-08-27 Brigham Young University Encrypted email based upon trusted overlays
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8806030B2 (en) * 2010-12-06 2014-08-12 Microsoft Corporation Multichannel connections in file system sessions
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
FR2973185B1 (fr) * 2011-03-22 2013-03-29 Sagem Defense Securite Procede et dispositif de connexion a un reseau de haute securite
US9331955B2 (en) * 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
CN102439983B (zh) 2011-10-27 2014-04-16 华为技术有限公司 一种数据快速分发方法和装置
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
CN102708062A (zh) * 2012-04-10 2012-10-03 深圳市佳信捷电子有限公司 基于数据块的多媒体存储方法和装置
US9111081B2 (en) 2012-06-26 2015-08-18 International Business Machines Corporation Remote direct memory access authentication of a device
US9251201B2 (en) * 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9986028B2 (en) * 2013-07-08 2018-05-29 Intel Corporation Techniques to replicate data between storage servers
AU2013245529A1 (en) * 2013-10-18 2015-05-07 Cisco Technology, Inc. Network Interface
US20150326684A1 (en) * 2014-05-07 2015-11-12 Diablo Technologies Inc. System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access
CN104202391B (zh) * 2014-08-28 2018-09-25 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合系统间的rdma通信方法
RU2599937C1 (ru) * 2015-03-26 2016-10-20 Общество с ограниченной ответственностью "Научно-производственное предприятие "Цифровые решения" Способ предотвращения сбоев в локальной компьютерной сети, вызванных возникновением неправильно настроенных узлов
US9952797B2 (en) 2015-07-31 2018-04-24 Netapp, Inc. Systems, methods and devices for addressing data blocks in mass storage filing systems
US10257273B2 (en) * 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
RU2638781C2 (ru) * 2016-09-29 2017-12-15 Общество с ограниченной ответственностью "ГРЭК" Способ организации прямого доступа в память при передаче информации между физическими объектами
JP2019016101A (ja) * 2017-07-05 2019-01-31 富士通株式会社 情報処理システム、情報処理装置、および情報処理システムの制御方法
US10523675B2 (en) * 2017-11-08 2019-12-31 Ca, Inc. Remote direct memory access authorization
RU2714219C1 (ru) * 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
CN109377778B (zh) * 2018-11-15 2021-04-06 浪潮集团有限公司 一种基于多路rdma和v2x的协同自动驾驶系统及方法
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10612A (en) * 1854-03-07 Seaman
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
US6014681A (en) * 1997-07-15 2000-01-11 Microsoft Corporation Method for saving a document using a background save thread
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6219761B1 (en) * 1998-05-06 2001-04-17 International Business Machines Corporation Load/store assist engine
US6356863B1 (en) * 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
AU7624100A (en) * 1999-09-29 2001-04-30 Cyberset Technologies, Inc. Method and apparatus for an active file system
US6718370B1 (en) * 2000-03-31 2004-04-06 Intel Corporation Completion queue management mechanism and method for checking on multiple completion queues and processing completion events
US7103626B1 (en) * 2000-05-24 2006-09-05 Hewlett-Packard Development, L.P. Partitioning in distributed computer system
JP4192416B2 (ja) * 2000-06-08 2008-12-10 株式会社日立製作所 計算機システムおよびそのデータ転送方法
WO2002046866A2 (en) 2000-11-02 2002-06-13 Pirus Networks Switching system
US7313614B2 (en) * 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
US6891635B2 (en) * 2000-11-30 2005-05-10 International Business Machines Corporation System and method for advertisements in web-based printing
US6976174B2 (en) * 2001-01-04 2005-12-13 Troika Networks, Inc. Secure multiprotocol interface
US6898638B2 (en) * 2001-01-11 2005-05-24 International Business Machines Corporation Method and apparatus for grouping data for transfer according to recipient buffer size
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US6898740B2 (en) * 2001-01-25 2005-05-24 Hewlett-Packard Development Company, L.P. Computer system having configurable core logic chipset for connection to a fault-tolerant accelerated graphics port bus and peripheral component interconnect bus
US7401126B2 (en) * 2001-03-23 2008-07-15 Neteffect, Inc. Transaction switch and network interface adapter incorporating same
US20020144037A1 (en) * 2001-03-29 2002-10-03 Bennett Joseph A. Data fetching mechanism and method for fetching data
US8051212B2 (en) * 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US20020184362A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System and method for extending server security through monitored load management
US6832297B2 (en) * 2001-08-09 2004-12-14 International Business Machines Corporation Method and apparatus for managing data in a distributed buffer system
WO2003019394A1 (en) * 2001-08-24 2003-03-06 Intel Corporation A general input/output architecture, protocol and related methods to support legacy interrupts
US6895590B2 (en) * 2001-09-26 2005-05-17 Intel Corporation Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US20030145230A1 (en) * 2002-01-31 2003-07-31 Huimin Chiu System for exchanging data utilizing remote direct memory access
JP4406604B2 (ja) * 2002-06-11 2010-02-03 アシシュ エイ パンドヤ Tcp/ip、rdma、及びipストレージアプリケーションのための高性能ipプロセッサ
US20040003069A1 (en) * 2002-06-28 2004-01-01 Broadcom Corporation Selective early drop method and system
US6760793B2 (en) * 2002-07-29 2004-07-06 Isys Technologies, Inc. Transaction credit control for serial I/O systems
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7051140B2 (en) * 2002-11-13 2006-05-23 International Business Machines Corporation Connector that enables aggregation of independent system resources across PCI/PCI-X bus and interlocked method for aggregating independent system resources across PCI/PCI-X bus
US7366092B2 (en) * 2003-10-14 2008-04-29 Broadcom Corporation Hash and route hardware with parallel routing scheme
US7457861B1 (en) * 2003-12-05 2008-11-25 Unisys Corporation Optimizing virtual interface architecture (VIA) on multiprocessor servers and physically independent consolidated NICs
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US20050137966A1 (en) * 2003-12-19 2005-06-23 Munguia Peter R. Flow control credit synchronization
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol

Also Published As

Publication number Publication date
KR101084897B1 (ko) 2011-11-17
US20100161855A1 (en) 2010-06-24
MY143575A (en) 2011-05-31
KR20060112178A (ko) 2006-10-31
US20050198113A1 (en) 2005-09-08
NZ540173A (en) 2009-11-27
TW201240413A (en) 2012-10-01
CN101375263B (zh) 2012-06-20
ZA200503161B (en) 2008-01-30
EP1700264A4 (en) 2011-06-15
NZ580159A (en) 2011-01-28
RU2009109685A (ru) 2010-09-27
EP1700264A2 (en) 2006-09-13
AU2004279182A1 (en) 2005-07-14
CN101375263A (zh) 2009-02-25
BRPI0406413A (pt) 2005-10-04
NO20052054L (no) 2005-06-10
CA2501521A1 (en) 2005-06-30
US7698361B2 (en) 2010-04-13
AU2004279182B2 (en) 2010-03-11
MY158076A (en) 2016-08-30
WO2005067430A2 (en) 2005-07-28
NO20052054D0 (no) 2005-04-26
MXPA05006638A (es) 2006-02-22
WO2005067430A3 (en) 2008-04-24
JP4564970B2 (ja) 2010-10-20
IL168595A (en) 2011-02-28
RU2005120695A (ru) 2006-01-20
RU2388039C2 (ru) 2010-04-27
JP2007527057A (ja) 2007-09-20

Similar Documents

Publication Publication Date Title
TW200522630A (en) Lightweight input/output protocol
US9438696B2 (en) Data communication protocol
EP1727056B1 (en) Data communication protocol
EP1759317B1 (en) Method and system for supporting read operations for iscsi and iscsi chimney
TWI290799B (en) Extensible protocol processing system
US7895344B2 (en) Method and apparatus for remote management
KR101130475B1 (ko) 데이터 통신 프로토콜
JP4745287B2 (ja) データ伝送方法及びトランザクション調整方法並びに記録媒体
DeBergalis et al. Keith A. Smith, Sun Microsystems
JP2000259437A (ja) ソフトウェアカットスルー方法、オペレーティングシステムを記録した記録媒体及びコンピュータシステム
Xu Implementation of DAFS on the Linux Platform