一種基于集群文件系統(tǒng)的全局共享讀緩存方法
【專利摘要】本發(fā)明所述基于集群文件系統(tǒng)的全局共享讀緩存方法,涉及集群文件系統(tǒng)全局共享緩存技術(shù),通過(guò)在所有集群節(jié)點(diǎn)保存一份全局讀緩存中數(shù)據(jù)所在的節(jié)點(diǎn),并在客戶端節(jié)點(diǎn)增加一個(gè)監(jiān)聽(tīng)端口,當(dāng)客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),該節(jié)點(diǎn)可以通過(guò)本地保存的全局讀緩存所在節(jié)點(diǎn)查詢?cè)摂?shù)據(jù)是否在全局緩存中,如果在本地節(jié)點(diǎn)則直接通過(guò)本地緩存直接返回?cái)?shù)據(jù),如果在其他節(jié)點(diǎn)則轉(zhuǎn)發(fā)客戶端讀請(qǐng)求到其他節(jié)點(diǎn),由其他節(jié)點(diǎn)直接回復(fù)數(shù)據(jù)到客戶端的監(jiān)聽(tīng)端口,如果未在緩存中命中,則直接從磁盤(pán)中讀取數(shù)據(jù)。通過(guò)該方法可以大大提高集群緩存的利用率及讀緩存命中率,從而提高讀性能。
【專利說(shuō)明】一種基于集群文件系統(tǒng)的全局共享讀緩存方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及集群文件系統(tǒng)全局共享緩存技術(shù),具體的說(shuō)是一種基于集群文件系統(tǒng)的全局共享讀緩存方法。
【背景技術(shù)】
[0003]集群文件系統(tǒng)是指運(yùn)行在多臺(tái)計(jì)算機(jī)之上,之間通過(guò)某種方式相互通信從而將集群內(nèi)所有存儲(chǔ)空間資源整合、虛擬化并對(duì)外提供文件訪問(wèn)服務(wù)的文件系統(tǒng)。集群文件系統(tǒng)分為多類,按照對(duì)存儲(chǔ)空間的訪問(wèn)方式,可分為共享存儲(chǔ)型集群文件系統(tǒng)和分布式集群文件系統(tǒng),前者是多臺(tái)計(jì)算機(jī)識(shí)別到同樣的存儲(chǔ)空間,并相互協(xié)調(diào)共同管理其上的文件,又被稱為共享文件系統(tǒng);后者則是每臺(tái)計(jì)算機(jī)各自提供自己的存儲(chǔ)空間,并各自協(xié)調(diào)管理所有計(jì)算機(jī)節(jié)點(diǎn)中的文件。
[0004]按照元數(shù)據(jù)的管理方式,可分為對(duì)稱式集群文件系統(tǒng)和非對(duì)稱式集群文件系統(tǒng)。前者每個(gè)節(jié)點(diǎn)的角色均等,共同管理文件元數(shù)據(jù),節(jié)點(diǎn)間通過(guò)高速網(wǎng)絡(luò)進(jìn)行信息同步和互斥鎖等操作。而非對(duì)稱式集群文件系統(tǒng)中,有專門(mén)的一個(gè)或者多個(gè)節(jié)點(diǎn)負(fù)責(zé)管理元數(shù)據(jù),其他節(jié)點(diǎn)需要頻繁與元數(shù)據(jù)節(jié)點(diǎn)通信以獲取最新的元數(shù)據(jù)比如目錄列表文件屬性等等。按照文件訪問(wèn)方式來(lái)分類,集群文件系統(tǒng)可分為串行訪問(wèn)式和并行訪問(wèn)式。串行訪問(wèn)是指客戶端只能從集群中的某個(gè)節(jié)點(diǎn)來(lái)訪問(wèn)集群內(nèi)的文件資源,而并行訪問(wèn)則是指客戶端可以直接從集群中任意一個(gè)或者多個(gè)節(jié)點(diǎn)同時(shí)收發(fā)數(shù)據(jù),做到并行數(shù)據(jù)存取,加快速度。
[0005]集群文件系統(tǒng)是由多個(gè)集群節(jié)點(diǎn)對(duì)外提供統(tǒng)一的文件系統(tǒng),客戶端節(jié)點(diǎn)可以通過(guò)任意一個(gè)集群節(jié)點(diǎn)讀取到文件系統(tǒng)中的保存的數(shù)據(jù),通常情況下客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)時(shí),集群節(jié)點(diǎn)會(huì)查取本地緩存,如果緩存命中則直接返回,如果沒(méi)有命中則向磁盤(pán)發(fā)起讀數(shù)據(jù)指令,并緩存到本地,如果多個(gè)客戶端分別從不同的節(jié)點(diǎn)讀同一份文件,則在整個(gè)集群中會(huì)緩存多份該數(shù)據(jù),降低了集群緩存使用率,且緩存的命中率也無(wú)法提高。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種基于集群文件系統(tǒng)的全局共享讀緩存方法。
[0007]本發(fā)明所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,解決上述技術(shù)問(wèn)題采用的技術(shù)方案如下:所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,通過(guò)在所有集群節(jié)點(diǎn)保存一份全局讀緩存中數(shù)據(jù)所在的節(jié)點(diǎn),并在客戶端節(jié)點(diǎn)增加一個(gè)監(jiān)聽(tīng)端口;當(dāng)客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),該節(jié)點(diǎn)能夠通過(guò)本地保存的全局讀緩存所在節(jié)點(diǎn)查詢?cè)摂?shù)據(jù)是否在全局緩存中,允許接收由其他服務(wù)節(jié)點(diǎn)應(yīng)答的消息。
[0008]優(yōu)選的,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果在本節(jié)點(diǎn),直接回復(fù)客戶端所需要的數(shù)據(jù)。
[0009]優(yōu)選的,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果在其他節(jié)點(diǎn),轉(zhuǎn)發(fā)讀請(qǐng)求到相應(yīng)的集群節(jié)點(diǎn),由其他節(jié)點(diǎn)通過(guò)客戶端監(jiān)聽(tīng)端口回復(fù)客戶端所需要的數(shù)據(jù)。
[0010]優(yōu)選的,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果查詢不到,從磁盤(pán)讀取數(shù)據(jù),緩存客戶端所需要的數(shù)據(jù),并回復(fù)客戶端。[0011 ]優(yōu)選的,當(dāng)集群節(jié)點(diǎn)中讀緩存有變化時(shí),集群節(jié)點(diǎn)通過(guò)組播的方式通知其他節(jié)點(diǎn)本節(jié)點(diǎn)緩存的數(shù)據(jù)。
[0012]本發(fā)明所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明在所有集群節(jié)點(diǎn)保存讀緩存中數(shù)據(jù)所在節(jié)點(diǎn),保證數(shù)據(jù)在整個(gè)集群只保留一份,并在客戶端增加監(jiān)聽(tīng)端口,允許接收由其他服務(wù)節(jié)點(diǎn)應(yīng)答的消息;如果該數(shù)據(jù)在本地節(jié)點(diǎn)則直接通過(guò)本地緩存直接返回?cái)?shù)據(jù),如果在其他節(jié)點(diǎn)則轉(zhuǎn)發(fā)客戶端讀請(qǐng)求到其他節(jié)點(diǎn),由其他節(jié)點(diǎn)直接回復(fù)數(shù)據(jù)到客戶端的監(jiān)聽(tīng)端口,如果未在緩存中命中,則直接從磁盤(pán)中讀取數(shù)據(jù);通過(guò)該方法可以大大提高集群緩存的利用率及讀緩存命中率,從而提高讀性能。
[0013]說(shuō)明書(shū)附圖
附圖1為所述基于集群文件系統(tǒng)的全局共享讀緩存方法的示意圖。
【具體實(shí)施方式】
[0014]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法進(jìn)一步詳細(xì)說(shuō)明。
[0015]實(shí)施例:
本實(shí)施例所述基于集群文件系統(tǒng)的全局共享讀緩存方法,通過(guò)在所有集群節(jié)點(diǎn)保存一份全局讀緩存中數(shù)據(jù)所在的節(jié)點(diǎn),并在客戶端節(jié)點(diǎn)增加一個(gè)監(jiān)聽(tīng)端口;當(dāng)客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),該節(jié)點(diǎn)能夠通過(guò)本地保存的全局讀緩存所在節(jié)點(diǎn)查詢?cè)摂?shù)據(jù)是否在全局緩存中,允許接收由其他服務(wù)節(jié)點(diǎn)應(yīng)答的消息。
[0016]采用該基于集群文件系統(tǒng)的全局共享讀緩存方法,當(dāng)客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),如果該數(shù)據(jù)在本地節(jié)點(diǎn)則直接通過(guò)本地緩存直接返回?cái)?shù)據(jù),如果在其他節(jié)點(diǎn)則轉(zhuǎn)發(fā)客戶端讀請(qǐng)求到其他節(jié)點(diǎn),由其他節(jié)點(diǎn)直接回復(fù)數(shù)據(jù)到客戶端的監(jiān)聽(tīng)端口,如果未在緩存中命中,則直接從磁盤(pán)中讀取數(shù)據(jù)。通過(guò)該方法可以大大提高集群緩存的利用率及讀緩存命中率,從而提尚讀性能。
[0017]本實(shí)施例所述基于集群文件系統(tǒng)的全局共享讀緩存方法,其具體實(shí)施步驟如下: 步驟一,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn);
步驟二,集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果在本節(jié)點(diǎn),則執(zhí)行步驟3,如果在其他節(jié)點(diǎn)則執(zhí)行步驟4,如果查詢不到則執(zhí)行步驟5;
步驟三,直接回復(fù)客戶端所需要的數(shù)據(jù);
步驟四,轉(zhuǎn)發(fā)讀請(qǐng)求到相應(yīng)的集群節(jié)點(diǎn),由其他節(jié)點(diǎn)通過(guò)客戶端監(jiān)聽(tīng)端口回復(fù)客戶端所需要的數(shù)據(jù);
步驟五,從磁盤(pán)讀取數(shù)據(jù),緩存客戶端所需要的數(shù)據(jù),并回復(fù)客戶端。
[0018]附圖1為所述基于集群文件系統(tǒng)的全局共享讀緩存方法的示意圖,如附圖1所示,基于集群文件系統(tǒng)的全局共享讀緩存的流程為:假設(shè)集群節(jié)點(diǎn)A緩存數(shù)據(jù)E,集群節(jié)點(diǎn)B緩存數(shù)據(jù)D,集群節(jié)點(diǎn)C緩存數(shù)據(jù)F,客戶端A訪問(wèn)集群節(jié)點(diǎn)A,客戶端B訪問(wèn)集群節(jié)點(diǎn)B,客戶端C訪問(wèn)集群節(jié)點(diǎn)C;對(duì)于一次具體客戶端A需要獲取數(shù)據(jù)D的過(guò)程來(lái)說(shuō),需要經(jīng)過(guò)以下幾個(gè)步驟:a)客戶端A發(fā)送讀數(shù)據(jù)D請(qǐng)求到集群節(jié)點(diǎn)A,b)集群節(jié)點(diǎn)A查詢?nèi)止蚕碜x緩存的數(shù)據(jù)所在節(jié)點(diǎn)為集群節(jié)點(diǎn)B,c)集群節(jié)點(diǎn)A轉(zhuǎn)發(fā)請(qǐng)求到集群節(jié)點(diǎn)B,d)集群節(jié)點(diǎn)B根據(jù)請(qǐng)求內(nèi)容從本地緩存中讀取數(shù)據(jù)D,通過(guò)客戶端A的監(jiān)聽(tīng)端口回復(fù)客戶端A的請(qǐng)求數(shù)據(jù)。
[0019]通過(guò)本實(shí)施例所述基于集群文件系統(tǒng)的全局共享讀緩存方法,在所有集群節(jié)點(diǎn)保存一份全局讀緩存中數(shù)據(jù)所在節(jié)點(diǎn),保證數(shù)據(jù)在整個(gè)集群中只保留一份,同時(shí)在客戶端增加監(jiān)聽(tīng)端口,允許向本節(jié)點(diǎn)請(qǐng)求的數(shù)據(jù),由其他節(jié)點(diǎn)進(jìn)行回復(fù)。此外,當(dāng)集群節(jié)點(diǎn)中讀緩存有變化時(shí),集群節(jié)點(diǎn)通過(guò)組播的方式通知其他節(jié)點(diǎn)本節(jié)點(diǎn)緩存的數(shù)據(jù)。
[0020]上述【具體實(shí)施方式】?jī)H是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述【具體實(shí)施方式】,任何符合本發(fā)明的權(quán)利要求書(shū)的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種基于集群文件系統(tǒng)的全局共享讀緩存方法,其特征在于,通過(guò)在所有集群節(jié)點(diǎn)保存一份全局讀緩存中數(shù)據(jù)所在的節(jié)點(diǎn),并在客戶端節(jié)點(diǎn)增加一個(gè)監(jiān)聽(tīng)端口;當(dāng)客戶端訪問(wèn)某個(gè)集群節(jié)點(diǎn)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),該節(jié)點(diǎn)能夠通過(guò)本地保存的全局讀緩存所在節(jié)點(diǎn)查詢?cè)摂?shù)據(jù)是否在全局緩存中,允許接收由其他服務(wù)節(jié)點(diǎn)應(yīng)答的消息。2.根據(jù)權(quán)利要求1所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,其特征在于,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果在本節(jié)點(diǎn),直接回復(fù)客戶端所需要的數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,其特征在于,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果在其他節(jié)點(diǎn),轉(zhuǎn)發(fā)讀請(qǐng)求到相應(yīng)的集群節(jié)點(diǎn),由其他節(jié)點(diǎn)通過(guò)客戶端監(jiān)聽(tīng)端口回復(fù)客戶端所需要的數(shù)據(jù)。4.根據(jù)權(quán)利要求1所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,其特征在于,客戶端發(fā)送讀數(shù)據(jù)請(qǐng)求到某個(gè)集群節(jié)點(diǎn),集群節(jié)點(diǎn)查詢?nèi)肿x緩存中數(shù)據(jù)所在的節(jié)點(diǎn),如果查詢不到,從磁盤(pán)讀取數(shù)據(jù),緩存客戶端所需要的數(shù)據(jù),并回復(fù)客戶端。5.根據(jù)權(quán)利要求1所述一種基于集群文件系統(tǒng)的全局共享讀緩存方法,其特征在于,當(dāng)集群節(jié)點(diǎn)中讀緩存有變化時(shí),集群節(jié)點(diǎn)通過(guò)組播的方式通知其他節(jié)點(diǎn)本節(jié)點(diǎn)緩存的數(shù)據(jù)。
【文檔編號(hào)】H04L29/08GK105930519SQ201610342680
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年5月23日
【發(fā)明人】王志華, 吳丙濤, 徐艷秋
【申請(qǐng)人】浪潮電子信息產(chǎn)業(yè)股份有限公司