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