專利名稱:一種分布式文件系統數據訪問優化的方法
技術領域:
本發明涉及分布式文件系統客戶端元數據訪問操作流程的優化,具體來說涉及一種在分布式文件系統中高效的訪問文件的數據和元數據的流程的方法。
背景技術:
VFS (Virtual File System)稱“虛擬文件系統”,是LINUX文件系統的一個重要的組成部分,實際上它是一種機制,定義了一種標準的訪問元數據和數據的方法。在Iinux系統中要實現應用程序透明的訪問文件系統,就需要實現這個統一的接口。VFS層定義了文件的操作接口,主要通過file_operation操作接口和inode_ operation操作接口來實現。file_operation中主要定義了數據訪問的操作接口,如read 和write操作。在inode_operation中定義了元數據訪問的操作接口,如lookup,mkdir, create, unlink, rmdir 等操作。在分布式文件系統中,實現Linux系統POSIX接口的客戶端的訪問數據和元數據的操作流程都是基于VFS層的定義的操作流程。這個接口主要是針對于本地文件系統而設計的,在分布式文件系統中,由于網絡的訪問產生的延遲,減少客戶端和元數據服務器的或者數據服務器交互次數,可以顯著提高文件系統的性能。
發明內容
本發明基于VFS層目前已經實現的流程,并不修改VFS層的接口,在其允許的范圍內,通過有效的操作合并,實現元數據和數據訪問流程的優化。一種分布式文件系統數據訪問優化的方法,在元數據查找操作中添加意圖標記, 所述意圖標記用于標記該查找操作是否創建文件,如果所述查找操作有創建文件意圖,則在查找操作中添加意圖標記;服務器端收到查找請求后,首先做元數據查找操作,如果已存在,則返回已存在, 如果不存在,則執行意圖標記的創建文件請求,在元數據服務器創建文件;通過接口函數使數據不經用戶態緩沖區而直接復制或者使數據只在服務器間復制,不通過客戶端中轉。優選的,所述接口函數為VFS層提供的sencLfile接口,包括五個參數out_fd、 in_fd、countλpos 禾口 max。優選的,所述數據在服務器間復制時客戶端把復制數據的命令發送給源數據服務器,由源數據服務器發送寫請求給目標數據服務器。優選的,所述數據在服務器間復制時客戶端把拷貝數據命令發送給目標數據服務器,由目標數據服務器向源數據服務器發送讀命令。本發明將相關元數據操作進行合并,同時,在數據復制時不經過客戶端,使得元數據和數據的讀寫和復制操作效率大大提高,提升了服務器對于元數據和數據的操作速度和效率。
具體實施例方式對于元數據操作,可以把lookup和create操作合并在lookup查找時,都會有lookup操作的一個意圖標記,標記該lookup的查找的意圖是否創建文件,如果是有創建意圖的lookup操作,可以在lookup操作里帶創建的意圖。在服務端收到該請求后,首先做服務端的查找操作,如果已經存在該文件,就返回已經存在,就不用執行后續的創建意圖的請求。如果服務端的查找操作發現該文件并不存在,則執行后續和lookup合并一起發過來的create請求。在數據服務方面,主要是數據的讀寫流程,目前主要是針對數據拷貝來簡化。在目前的模式中,如果要把文件A拷貝的文件B中,其數據拷貝的路徑為數據從磁盤到客戶端的A的page cache中,到用戶態緩存區,到文件B內核態page cache中,然后到文件B磁盤空間中。在分布式文件系統中,由數據服務器代替磁盤,其流程基本不變。本發明主要在于簡化其數據流程。其主要由兩個優化的方案1)數據從文件A的page cache中直接拷貝到文件B的page cache中,不經過用戶態緩沖區。方案2)數據可以只在服務器之間拷貝來實現,并不通過客戶端來中轉。對于方案1),這可以通過目前提供的sencLf i 1 e接口來實現。其接口提供了 5個參數分別為out_fd,in_fd, count, pos, max等值。提供了從一個文件拷貝文件到另一個文件的相關的參數。在ofS_Sendfile方法里,可以實現僅在page_CaChe中的內存拷貝。對于方案2),目前VFS層并沒有支持這樣的功能,可以通過ioctl接口來實現這個功能。這個功能實現數據服務器之間的數據拷貝。這里有兩種方式,一種是推的方式,一種是拉的方式。在第一種推的方式中,客戶端把拷貝數據的命令發送給源數據服務器,由源數據服務器發送寫請求給目標數據服務器,第二種方式為拉的方式,客戶端把拷貝數據的命令發送給目標數據服務器,由目標數據服務器向源數據服務器發送讀命令。無論是推方式, 還是拉方式,都需要數據服務器的支持。數據服務器的基本功能就是讀寫,這可以增加數據服務器的命令來實現。
權利要求
1.一種分布式文件系統數據訪問優化的方法,其特征在于在元數據查找操作中添加意圖標記,所述意圖標記用于標記該查找操作是否創建文件,如果所述查找操作有創建文件意圖,則在查找操作中添加意圖標記;服務器端收到查找請求后,首先做元數據查找操作,如果已存在,則返回已存在,如果不存在,則執行意圖標記的創建文件請求,在元數據服務器創建文件;通過接口函數使數據不經用戶態緩沖區而直接復制或者使數據只在服務器間復制,不通過客戶端中轉。
2.如權利要求1所述的方法,其特征在于所述接口函數為VFS層提供的sencLfile接口,包括五個參數:out_fd> in_fd> count、pos 禾口 max。
3.如權利要求1所述的方法,其特征在于所述數據在服務器間復制時客戶端把復制數據的命令發送給源數據服務器,由源數據服務器發送寫請求給目標數據服務器。
4.如權利要求1所述的方法,其特征在于所述數據在服務器間復制時客戶端把拷貝數據命令發送給目標數據服務器,由目標數據服務器向源數據服務器發送讀命令。
全文摘要
本發明提供了一種分布式文件系統數據訪問優化的方法,在元數據查找操作中添加意圖標記,所述意圖標記用于標記該查找操作是否創建文件,如果所述查找操作有創建文件意圖,則在查找操作中添加意圖標記;服務器端收到查找請求后,首先做元數據查找操作,如果已存在,則返回已存在,如果不存在,則執行意圖標記的創建文件請求,在元數據服務器創建文件;通過接口函數使數據不經用戶態緩沖區而直接復制或者使數據只在服務器間復制,不通過客戶端中轉。本發明將相關元數據操作進行合并,同時,在數據復制時不經過客戶端,使得元數據和數據的讀寫和復制操作效率大大提高,提升了服務器對于元數據和數據的操作速度和效率。
文檔編號G06F17/30GK102567444SQ20111032648
公開日2012年7月11日 申請日期2011年10月25日 優先權日2011年10月25日
發明者呂明強, 常濤, 王勇, 苗艷超 申請人:無錫城市云計算中心有限公司