本發明專利技術實施例涉及一種將數據寫入存儲設備的方法及存儲設備,該存儲設備包括網卡、內存和處理器;所述方法由網卡執行包括:接收遠程過程調用RPC消息,RPC消息包括屬性信息和待寫入存儲設備的數據;根據屬性信息對RPC消息進行解析,獲得數據;接收處理器發送的地址分配消息,地址分配消息包括處理器為數據預分配的內存地址;根據內存地址將數據寫入內存中。由此,可以避免存儲設備中數據部分的重復拷貝,從而可以達到節約存儲設備的處理器資源的目的。
【技術實現步驟摘要】
本專利技術涉及移動通信領域,尤其涉及一種將數據寫入存儲設備的方法及存儲設備。
技術介紹
網絡中的存儲設備往往具有存儲數據的功能,如,網絡附屬存儲(NetworkAttached Storage,NAS),其包括:網卡、處理器和內存,而訪問NAS中存儲的數據的設備稱為NAS客戶端,NAS客戶端與NAS基于遠程過程調用(Remote Procedure Call Protocol,RPC)協議通信,RPC協議是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。現有技術中,在將數據寫入存儲設備時,首先由網卡預先分配接收緩存,在完成上述預先分配的過程之后,由網卡接收NAS客戶端發送的RPC消息,并將RPC消息的數據部分寫入到接收緩存中,之后再通知處理器根據為數據部分預先分配的內存地址,將接收緩存中的數據部分拷貝到內存中,即每接收到一個RPC消息都有一次數據拷貝的過程,而該數據拷貝的過程通常會消耗處理器30% -40%的資源。此外,若全部的RPC消息包含多個RPC消息時,則需要多次數據拷貝的過程,由此,造成了存儲設備的處理器資源的嚴重浪費。
技術實現思路
本專利技術實施例提供了一種將數據寫入存儲設備的方法及存儲設備,可以避免上述數據拷貝的過程,從而可以達到節約存儲設備的處理器資源的目的。第一方面,提供了一種將數據寫入存儲設備的方法,所述存儲設備包括網卡、內存和處理器;所述方法由網卡執行包括以下步驟:接收遠程過程調用RPC消息,所述RPC消息包括屬性信息和待寫入所述存儲設備的數據;根據所述屬性信息對所述RPC消息進行解析,獲得所述數據;接收所述處理器發送的地址分配消息,所述地址分配消息包括所述處理器為所述數據預分配的內存地址;根據所述內存地址將所述數據寫入所述內存中。結合第一方面,在第一方面的第一種實現方式中,所述內存包括至少一個存儲單元,所述存儲單元的大小是根據所述存儲設備的網絡傳輸時延、網絡帶寬以及響應時間確定的,所述內存地址是指所述存儲單元的地址。結合第一方面或第一方面的第一種實現方式,在第一方面的第二種實現方式中,所述內存地址是由所述處理器通過調用所述存儲設備的應用程序接口 API函數為所述數據預分配的。結合第一方面或第一方面的第一種實現方式或第一方面的第二種實現方式,在第一方面的第三種實現方式中,所述方法還包括:判斷所述RPC消息是否全部接收完成;當所述RPC消息全部接收完成時,向所述處理器發送第一通知消息,所述第一通知消息用于指示所述處理器根據所述內存地址從所述內存中讀取所述數據,并對所述數據進行處理。結合第一方面的第三種實現方式,在第一方面的第四種實現方式中,所述存儲設備還包括:磁盤,所述方法還包括:在接收到所述處理器在將所述數據寫入所述磁盤后返回的寫成功消息時,向所述處理器發送第二通知消息,所述第二通知消息用于指示所述處理器撤銷所述內存地址。第二方面,提供了一種存儲設備,該存儲設備包括:網卡、內存和處理器;所述網卡,用于接收遠程過程調用RPC消息,所述RPC消息包括屬性信息和待寫入所述存儲設備的數據;所述網卡,還用于根據所述屬性信息對所述RPC消息進行解析,獲得所述數據;所述處理器,用于為所述數據預分配內存地址,并向所述網卡發送地址分配消息,所述地址分配消息包括預分配的所述內存地址;所述網卡,還用于接收所述地址分配消息,根據所述地址分配消息中的預分配的所述內存地址,將所述數據寫入所述內存中;所述內存,用于存儲所述數據。結合第二方面,在第二方面的第一種實現方式中,所述內存包括至少一個存儲單元,所述存儲單元的大小是根據所述存儲設備的網絡傳輸時延、網絡帶寬以及響應時間確定的,所述內存地址是指所述存儲單元的地址。結合第二方面或第二方面的第一種實現方式,在第二方面的第二種實現方式中,所述內存地址是由所述處理器通過調用所述存儲設備的應用程序接口 API函數為所述數據預分配的。結合第二方面或第二方面的第一種實現方式或第二方面的第二種實現方式,在第二方面的第三種實現方式中,所述網卡,還用于判斷所述RPC消息是否全部接收完成,當所述RPC消息全部接收完成時,向所述處理器發送第一通知消息;所述處理器,還用于接收所述第一通知消息,根據所述內存地址從所述內存中讀取所述數據,并對所述數據進行處理。結合第二方面的第三種實現方式,在第二方面的第四種實現方式中,所述存儲設備還包括:磁盤;所述處理器,還用于將所述數據寫入所述磁盤,并向所述網卡返回寫成功消息;所述磁盤,用于存儲所述數據;所述網卡,還用于接收所述寫成功消息,向所述處理器發送第二通知消息;所述處理器,還用于接收所述第二通知消息,根據所述第二通知消息撤銷所述內存地址。本專利技術實施例涉及一種將數據寫入存儲設備的方法及存儲設備,該存儲設備包括網卡、內存和處理器;所述方法由網卡執行包括:接收遠程過程調用RPC消息,RPC消息包括屬性信息和待寫入存儲設備的數據;根據屬性信息對RPC消息進行解析,獲得數據;接收處理器發送的地址分配消息,地址分配消息包括處理器為數據預分配的內存地址;根據內存地址將數據寫入內存中。由此可知,本專利技術實施例中,網卡在接收到RPC消息并對其進行解析之后,根據處理器預分配的內存地址,直接將解析得到的數據寫入內存中,從而可以避免現有技術中網卡每接收到一個RPC消息,都需要通知處理器將RPC消息的數據部分從接收緩存拷貝到內存中,即避免了處理器對數據部分的重復拷貝,從而本專利技術的將數據寫入存儲設備的方法可以達到節約存儲設備的處理器資源的目的。【附圖說明】圖1為存儲設備不意圖之一;圖2為本專利技術實施例一提供的將數據寫入存儲設備的方法流程圖;圖3為本專利技術實施例二提供的存儲設備示意圖之二。【具體實施方式】為使本專利技術實施例的目的、技術方案和優點更加清楚,下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本專利技術一部分實施例,而不是全部的實施例。基于本專利技術中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本專利技術保護的范圍。為便于當前第1頁1 2 3 4 本文檔來自技高網...
【技術保護點】
一種將數據寫入存儲設備的方法,其特征在于,所述存儲設備包括網卡、內存和處理器;所述方法由網卡執行包括以下步驟:接收遠程過程調用RPC消息,所述RPC消息包括屬性信息和待寫入所述存儲設備的數據;根據所述屬性信息對所述RPC消息進行解析,獲得所述數據;接收所述處理器發送的地址分配消息,所述地址分配消息包括所述處理器為所述數據預分配的內存地址;根據所述內存地址將所述數據寫入所述內存中。
【技術特征摘要】
【專利技術屬性】
技術研發人員:羅先強,邱軍,嚴華兵,
申請(專利權)人:華為技術有限公司,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。