一種讀寫數(shù)據(jù)免拷貝系統(tǒng)與方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式存儲領(lǐng)域,特別是涉及一種讀寫數(shù)據(jù)免拷貝系統(tǒng)與方法。
【背景技術(shù)】
[0002]分布式文件系統(tǒng)具有良好的擴(kuò)展性能、快速自愈能力及低廉的成本等諸多優(yōu)點,但是由于分布式系統(tǒng)的技術(shù)特點決定,客戶應(yīng)用只能通過網(wǎng)關(guān)等轉(zhuǎn)換節(jié)點才能夠接入系統(tǒng),實現(xiàn)網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換,一般分布式文件系統(tǒng)使用網(wǎng)絡(luò)附屬存儲NAS網(wǎng)關(guān),NAS服務(wù)是存儲擴(kuò)展的行業(yè)標(biāo)準(zhǔn),已經(jīng)廣泛的應(yīng)用到各個領(lǐng)域,但是在NAS網(wǎng)關(guān)進(jìn)行文件讀寫涉及多次數(shù)據(jù)拷貝才能完成數(shù)據(jù)的轉(zhuǎn)發(fā),造成了網(wǎng)絡(luò)延時,影響了用戶體驗。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明的主要目的在于提供一種讀寫數(shù)據(jù)免拷貝系統(tǒng)和方法,可以實現(xiàn)讀寫數(shù)據(jù)的零拷貝。
[0004]為實現(xiàn)上述目的,本發(fā)明提供了一種讀寫數(shù)據(jù)免拷貝系統(tǒng),包括:
[0005]網(wǎng)絡(luò)通信模塊、共享緩存池模塊和NAS協(xié)議轉(zhuǎn)換模塊;
[0006]所述共享緩存池模塊用于進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)發(fā)送或接收的數(shù)據(jù)緩存;
[0007]所述網(wǎng)絡(luò)通信模塊與所述共享緩存池模塊相連接,用于直接使用所述共享緩存池進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的接收或發(fā)送;
[0008]所述NAS協(xié)議轉(zhuǎn)換模塊與所述共享緩存池模塊相連接,用于直接將所述共享緩存池模塊中的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行NAS通信格式與分布式文件系統(tǒng)通信格式之間的互相轉(zhuǎn)換。
[0009]優(yōu)選地,所述網(wǎng)絡(luò)通信模塊還與客戶端和分布式文件系統(tǒng)均相連接。
[0010]本發(fā)明還提供了一種讀寫數(shù)據(jù)免拷貝方法,包括:
[0011]網(wǎng)絡(luò)通信模塊直接將數(shù)據(jù)請求數(shù)據(jù)放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池中的請求數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池中格式轉(zhuǎn)換后的請求數(shù)據(jù)發(fā)送至目的端。
[0012]優(yōu)選地,所述數(shù)據(jù)請求包括讀數(shù)據(jù)和寫數(shù)據(jù)。
[0013]優(yōu)選地,網(wǎng)絡(luò)通信模塊直接將數(shù)據(jù)請求數(shù)據(jù)放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池中的請求數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池中格式轉(zhuǎn)換后的請求數(shù)據(jù)發(fā)送至目的端包括:
[0014]當(dāng)網(wǎng)絡(luò)通信模塊識別到客戶端的寫數(shù)據(jù)請求時,將所述寫數(shù)據(jù)請求放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池模塊中的所述寫數(shù)據(jù)請求,將所述寫數(shù)據(jù)請求的格式轉(zhuǎn)換為分布式文件系統(tǒng)通信格式,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池模塊中的格式轉(zhuǎn)換后的寫數(shù)據(jù)請求發(fā)送至分布式文件系統(tǒng);
[0015]當(dāng)網(wǎng)絡(luò)通信模塊識別到客戶端的讀數(shù)據(jù)請求時,將所述讀數(shù)據(jù)請求放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池模塊中的所述讀數(shù)據(jù)請求,將所述讀數(shù)據(jù)請求的格式轉(zhuǎn)換為分布式文件系統(tǒng)通信格式,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池模塊中的格式轉(zhuǎn)換后的讀數(shù)據(jù)請求發(fā)送至分布式文件系統(tǒng),當(dāng)分布式文件系統(tǒng)返回數(shù)據(jù)時,所述網(wǎng)絡(luò)通信模塊將所述返回數(shù)據(jù)放入所述共享緩存池模塊,所述NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池模塊中的所述返回數(shù)據(jù),將所述返回數(shù)據(jù)的格式轉(zhuǎn)換為NAS通信格式,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池模塊中的格式轉(zhuǎn)換后的返回數(shù)據(jù)返回客戶端。
[0016]優(yōu)選地,網(wǎng)絡(luò)通信模塊直接將數(shù)據(jù)請求數(shù)據(jù)放入共享緩存池模塊之前還包括:
[0017]初始化共享緩存池模塊,加載網(wǎng)絡(luò)通信模塊,啟動NAS協(xié)議轉(zhuǎn)換模塊。
[0018]應(yīng)用本發(fā)明提供的一種讀寫數(shù)據(jù)免拷貝系統(tǒng)和方法,系統(tǒng)包括:網(wǎng)絡(luò)通信模塊、共享緩存池模塊和NAS協(xié)議轉(zhuǎn)換模塊,網(wǎng)絡(luò)通信模塊直接將數(shù)據(jù)請求數(shù)據(jù)放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池中的請求數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池中格式轉(zhuǎn)換后的請求數(shù)據(jù)發(fā)送至目的端,使用共享緩存池模塊直接進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的緩存,網(wǎng)絡(luò)通信模塊和NAS協(xié)議轉(zhuǎn)換模塊可以直接使用共享緩存池模塊中的數(shù)據(jù),無需再次拷貝,實現(xiàn)了讀寫數(shù)據(jù)緩存的零拷貝,減少了網(wǎng)絡(luò)延時,用戶體驗好。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0020]圖1為本發(fā)明一種讀寫數(shù)據(jù)免拷貝系統(tǒng)實施例的結(jié)構(gòu)示意圖;
[0021]圖2為本發(fā)明一種讀寫數(shù)據(jù)免拷貝系統(tǒng)實施例的應(yīng)用結(jié)構(gòu)示意圖;
[0022]圖3為本發(fā)明一種讀寫數(shù)據(jù)免拷貝系統(tǒng)實施例的詳細(xì)結(jié)構(gòu)示意圖。
【具體實施方式】
[0023]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]本發(fā)明提供了一種讀寫數(shù)據(jù)免拷貝系統(tǒng),圖1示出了本發(fā)讀寫數(shù)據(jù)面拷貝系統(tǒng)實施例的結(jié)構(gòu)示意圖,包括:
[0025]網(wǎng)絡(luò)通信模塊101、共享緩存池模塊102和NAS協(xié)議轉(zhuǎn)換模塊103;
[0026]所述共享緩存池模塊102用于進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)發(fā)送或接收的數(shù)據(jù)緩存;
[0027]所述網(wǎng)絡(luò)通信模塊101與所述共享緩存池模塊102相連接,用于直接使用所述共享緩存池102進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的接收或發(fā)送;
[0028]所述NAS協(xié)議轉(zhuǎn)換模塊103與所述共享緩存池102模塊相連接,用于直接將所述共享緩存池模塊102中的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行NAS通信格式與分布式文件系統(tǒng)通信格式之間的互相轉(zhuǎn)換。
[0029]如圖2所示,NAS網(wǎng)關(guān)位于客戶端與分布式文件系統(tǒng)集群節(jié)點之間,客戶端可以為windows標(biāo)準(zhǔn)NAS客戶端或Linux標(biāo)準(zhǔn)NAS客戶端,圖3為圖2中NAS網(wǎng)關(guān)的詳細(xì)結(jié)構(gòu)示意圖,圖中可看出內(nèi)核態(tài)和用戶態(tài)共享緩存,網(wǎng)絡(luò)通信模塊還與客戶端和分布式文件系統(tǒng)均相連接。
[0030]本實施例中,共享緩存池模塊用來直接緩存網(wǎng)絡(luò)發(fā)送數(shù)據(jù)或網(wǎng)絡(luò)接收數(shù)據(jù);實現(xiàn)了內(nèi)核態(tài)地址到用戶態(tài)地址的相互映射,完成內(nèi)核態(tài)到用戶態(tài)的免拷貝;網(wǎng)絡(luò)通信模塊可以直接接管網(wǎng)卡緩存區(qū),能夠直接使用共享緩存池模塊內(nèi)存空間進(jìn)行網(wǎng)絡(luò)報文的接收、發(fā)送,完成網(wǎng)絡(luò)發(fā)送報文用戶態(tài)內(nèi)核態(tài)的零拷貝;不連續(xù)緩存,實現(xiàn)NAS協(xié)議轉(zhuǎn)換后數(shù)據(jù)緩存的直接引用,實現(xiàn)讀寫緩存的零拷貝;NAS協(xié)議轉(zhuǎn)換模塊實現(xiàn)標(biāo)準(zhǔn)NAS協(xié)議到分布式文件系統(tǒng)內(nèi)部通信的相互轉(zhuǎn)換。
[0031]應(yīng)用本實施例提供的一種讀寫數(shù)據(jù)免拷貝系統(tǒng),包括:網(wǎng)絡(luò)通信模塊、共享緩存池模塊和NAS協(xié)議轉(zhuǎn)換模塊,網(wǎng)絡(luò)通信模塊直接將數(shù)據(jù)請求數(shù)據(jù)放入共享緩存池模塊,NAS協(xié)議轉(zhuǎn)換模塊直接引用所述共享緩存池中的請求數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,所述網(wǎng)絡(luò)通信模塊直接將所述共享緩存池中格式轉(zhuǎn)換后的請求數(shù)據(jù)發(fā)送至目的端,使用共享緩存池模塊直接進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的緩存,網(wǎng)絡(luò)通信模塊和NAS協(xié)議轉(zhuǎn)換模塊可以直接使用共享緩存池模塊中的數(shù)據(jù),無需再次拷貝,實現(xiàn)了讀寫數(shù)據(jù)緩