文件管理系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,更具體地涉及一種文件管理系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)業(yè)務(wù)的快速增長(zhǎng),用戶(hù)對(duì)應(yīng)用軟件的需求不斷膨脹,因而應(yīng)用軟件提供商并行開(kāi)發(fā)的應(yīng)用軟件的數(shù)目也隨之增長(zhǎng)。在應(yīng)用軟件提供商并行開(kāi)發(fā)大量應(yīng)用軟件的情況下,開(kāi)發(fā)應(yīng)用軟件的過(guò)程中需要存儲(chǔ)的大小在IkB至1MB范圍內(nèi)的文件(為了簡(jiǎn)單,下面稱(chēng)為“小文件”)的數(shù)目飛速增長(zhǎng)。
[0003]傳統(tǒng)上,由于并行開(kāi)發(fā)的應(yīng)用軟件的數(shù)目較少,開(kāi)發(fā)應(yīng)用軟件的過(guò)程中需要存儲(chǔ)的小文件的數(shù)目也較少,所以通常將這些小文件存儲(chǔ)在單臺(tái)服務(wù)器上。但是,當(dāng)并行開(kāi)發(fā)的應(yīng)用軟件的數(shù)目越來(lái)越多時(shí),開(kāi)發(fā)應(yīng)用軟件的過(guò)程中需要存儲(chǔ)的小文件的數(shù)目將以幾何級(jí)數(shù)增長(zhǎng),單臺(tái)服務(wù)器將難以支撐,一旦服務(wù)器崩潰,將不可避免地影響應(yīng)用軟件的開(kāi)發(fā)進(jìn)程。
[0004]為了解決這個(gè)問(wèn)題,一般通過(guò)多臺(tái)服務(wù)器來(lái)存儲(chǔ)這些小文件并通過(guò)網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)來(lái)共享這些文件。然而,當(dāng)不同應(yīng)用軟件的開(kāi)發(fā)人員共享一套NFS時(shí),為了實(shí)現(xiàn)不同應(yīng)用軟件的開(kāi)發(fā)人員之間的隔離,服務(wù)器維護(hù)人員需要對(duì)不同應(yīng)用軟件的開(kāi)發(fā)人員設(shè)置不同的權(quán)限,這個(gè)過(guò)程將非常繁瑣。
[0005]目前,大多數(shù)應(yīng)用軟件提供商采用了這樣的文件管理方式,即在對(duì)新應(yīng)用軟件進(jìn)行立項(xiàng)時(shí),通過(guò)估計(jì)資源需求單獨(dú)申請(qǐng)獨(dú)立的服務(wù)器。但是,這樣的文件管理方式存在以下問(wèn)題:如果對(duì)資源需求的估計(jì)不準(zhǔn)確,則可能會(huì)導(dǎo)致服務(wù)器長(zhǎng)期處于空閑狀態(tài)從而導(dǎo)致資源被浪費(fèi),或者可能會(huì)導(dǎo)致服務(wù)器無(wú)法滿(mǎn)足實(shí)際需求而需要擴(kuò)容,此時(shí)應(yīng)用軟件的開(kāi)發(fā)人員和服務(wù)器維護(hù)人員又要花費(fèi)時(shí)間為數(shù)據(jù)擴(kuò)容設(shè)計(jì)方案。
【發(fā)明內(nèi)容】
[0006]鑒于以上所述的一個(gè)或多個(gè)問(wèn)題,本發(fā)明提供了一種新穎的文件管理系統(tǒng)和方法。
[0007]根據(jù)本發(fā)明實(shí)施例的文件管理系統(tǒng),包括:接口層,具有一個(gè)或多個(gè)接口層節(jié)點(diǎn),被配置為接收與應(yīng)用軟件相關(guān)的文件操作請(qǐng)求;調(diào)度層,具有一個(gè)或多個(gè)調(diào)度層節(jié)點(diǎn),被配置為利用文件操作請(qǐng)求確定文件在存儲(chǔ)層中的存儲(chǔ)位置;以及存儲(chǔ)層,具有2n個(gè)存儲(chǔ)層節(jié)點(diǎn),被配置為基于存儲(chǔ)位置對(duì)文件執(zhí)行與文件操作請(qǐng)求相對(duì)應(yīng)的操作,其中η是不小于O的整數(shù)。
[0008]根據(jù)本發(fā)明實(shí)施例的文件管理方法,包括:通過(guò)接口層接收與應(yīng)用軟件相關(guān)的文件操作請(qǐng)求;通過(guò)調(diào)度層利用文件操作請(qǐng)求確定文件在存儲(chǔ)層中的存儲(chǔ)位置;以及基于存儲(chǔ)位置,通過(guò)存儲(chǔ)層對(duì)文件執(zhí)行與文件操作請(qǐng)求相對(duì)應(yīng)的操作。
[0009]根據(jù)本發(fā)明實(shí)施例的文件管理系統(tǒng)和方法可以動(dòng)態(tài)地為各個(gè)應(yīng)用軟件分配資源,并且可以高效地處理來(lái)自用戶(hù)的文件操作請(qǐng)求。
【附圖說(shuō)明】
[0010]從下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】的描述中可以更好地理解本發(fā)明,其中:
[0011]圖1示出了根據(jù)本發(fā)明實(shí)施例的文件管理系統(tǒng)的框圖。
[0012]圖2示出了根據(jù)本發(fā)明實(shí)施例的文件管理方法的流程圖。
【具體實(shí)施方式】
[0013]下面將詳細(xì)描述本發(fā)明的各個(gè)方面的特征和示例性實(shí)施例。在下面的詳細(xì)描述中,提出了許多具體細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。但是,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)很明顯的是,本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下實(shí)施。下面對(duì)實(shí)施例的描述僅僅是為了通過(guò)示出本發(fā)明的示例來(lái)提供對(duì)本發(fā)明的更好的理解。本發(fā)明決不限于下面所提出的任何具體配置和算法,而是在不脫離本發(fā)明的精神的前提下覆蓋了元素、部件和算法的任何修改、替換和改進(jìn)。在附圖和下面的描述中,沒(méi)有示出公知的結(jié)構(gòu)和技術(shù),以便避免對(duì)本發(fā)明造成不必要的模糊。
[0014]圖1示出了根據(jù)本發(fā)明實(shí)施例的文件管理系統(tǒng)的框圖。如圖1所示,根據(jù)本發(fā)明實(shí)施例的文件管理系統(tǒng)100包括接口層102、調(diào)度層104、以及存儲(chǔ)層106。其中,接口層102包括K (K是大于O的整數(shù))個(gè)接口層節(jié)點(diǎn),調(diào)度層104包括L(L是大于O的整數(shù))個(gè)調(diào)度層節(jié)點(diǎn),存儲(chǔ)層106包括2η(η是不小于O的整數(shù))個(gè)存儲(chǔ)層節(jié)點(diǎn)。這里需要說(shuō)明的是,接口層、調(diào)度層、存儲(chǔ)層包括的節(jié)點(diǎn)數(shù)目可以相同也可以不相同,接口層、調(diào)度層、以及存儲(chǔ)層之間可以通過(guò)局域網(wǎng)、城域網(wǎng)、以及互聯(lián)網(wǎng)中的一種或多種以有線或者無(wú)線的方式相互連接,并且接口層節(jié)點(diǎn)之間、調(diào)度層節(jié)點(diǎn)之間、以及存儲(chǔ)層節(jié)點(diǎn)之間也可以通過(guò)局域網(wǎng)、城域網(wǎng)、以及互聯(lián)網(wǎng)中的一種或多種以有線或無(wú)線的方式相互連接。下面,就接口層、調(diào)度層、存儲(chǔ)層的功能進(jìn)行說(shuō)明。
[0015](一)接口層
[0016]在本實(shí)施例中,任意一個(gè)應(yīng)用軟件(為了方便,下面稱(chēng)為應(yīng)用軟件Α)的開(kāi)發(fā)人員可以通過(guò)接口層102在文件管理系統(tǒng)100中對(duì)應(yīng)用軟件A進(jìn)行注冊(cè)。具體地,接口層102可以接收針對(duì)應(yīng)用軟件A的注冊(cè)請(qǐng)求,為應(yīng)用軟件A分配軟件標(biāo)識(shí)符APPID和軟件密鑰ΑΡΡΚΕΥ,并為應(yīng)用軟件A的開(kāi)發(fā)人員授予相應(yīng)的權(quán)限。當(dāng)應(yīng)用軟件A的開(kāi)發(fā)人員想要通過(guò)文件管理系統(tǒng)100對(duì)與應(yīng)用軟件A相關(guān)的文件(為了方便,下面稱(chēng)為文件F)執(zhí)行修改、刪除、查詢(xún)之類(lèi)的文件操作或者想要通過(guò)文件管理系統(tǒng)100存儲(chǔ)文件F時(shí),應(yīng)用軟件A的開(kāi)發(fā)人員可以通過(guò)接口層提供的兩種接口組件(例如,一種為RESTful接口組件,另一種是兼容亞馬遜軟件開(kāi)發(fā)工具包(SDK)的接口組件)之一向接口層輸入應(yīng)用軟件A的軟件標(biāo)識(shí)符APPID和軟件密鑰APPKEY,供接口層通過(guò)預(yù)定的一種或多種認(rèn)證方法之一對(duì)與應(yīng)用軟件A相關(guān)的文件操作請(qǐng)求進(jìn)行認(rèn)證。接口層102中的任意一個(gè)接口層節(jié)點(diǎn)(為了方便,下面稱(chēng)為接口層節(jié)點(diǎn)Pl)均可以對(duì)與應(yīng)用軟件A相關(guān)的文件操作請(qǐng)求進(jìn)行認(rèn)證與處理。另外,可以根據(jù)需要在接口層提供更多的現(xiàn)在已經(jīng)開(kāi)發(fā)出來(lái)的或者將來(lái)開(kāi)發(fā)出來(lái)的接口組件。
[0017]在本實(shí)施例中,接口層102在接收到針對(duì)與應(yīng)用軟件A相關(guān)的文件F的文件操作請(qǐng)求(為了方便,下面稱(chēng)為文件操作請(qǐng)求Q)后,判斷其自身是否能夠?qū)ξ募﨔執(zhí)行與文件操作請(qǐng)求Q相對(duì)應(yīng)的操作。如果接口層102無(wú)需與調(diào)度層104和存儲(chǔ)層106協(xié)作即可對(duì)文件F執(zhí)行與文件操作請(qǐng)求Q相對(duì)應(yīng)的操作,則接口層102直接對(duì)文件F執(zhí)行與文件操作請(qǐng)求Q相對(duì)應(yīng)的操作,否則將文件操作請(qǐng)求Q傳送到調(diào)度層104。
[0018]本實(shí)施例中,接口層102可以配置有負(fù)載均衡控制系統(tǒng),用來(lái)在接口層節(jié)點(diǎn)中間實(shí)現(xiàn)負(fù)載均衡。具體地,當(dāng)接口層節(jié)點(diǎn)Pl接收到例如文件操作請(qǐng)求Q時(shí),如果接口層節(jié)點(diǎn)Pl處于空閑狀態(tài),則接口層節(jié)點(diǎn)Pl可以判斷接口層102自身是否能夠?qū)ξ募﨔執(zhí)行與文件操作請(qǐng)求Q相關(guān)的操作,并根據(jù)判斷結(jié)果進(jìn)行后續(xù)處理;如果接口層節(jié)點(diǎn)Pl處于繁忙狀態(tài),則負(fù)載均衡系統(tǒng)可以將文件操作請(qǐng)求Q從接口層節(jié)點(diǎn)Pl傳送到接口層102中的任意一個(gè)處于空閑狀態(tài)的接口層節(jié)點(diǎn)(為了方便,下文中稱(chēng)為接口層節(jié)點(diǎn)P2),然后接口層節(jié)點(diǎn)P2可以判斷接口層102自身是否能夠?qū)ξ募﨔執(zhí)行與文件操作請(qǐng)求Q相關(guān)的操作,并根據(jù)判斷結(jié)果進(jìn)行后續(xù)處理。本領(lǐng)域技術(shù)人員應(yīng)該理解的是,當(dāng)接口層節(jié)點(diǎn)Pl接收到登錄請(qǐng)求、注冊(cè)請(qǐng)求、以及其他請(qǐng)求時(shí),也可以通過(guò)上面的處理進(jìn)行負(fù)載均衡。
[0019]在本實(shí)施例中,接口層102還可以配置有遠(yuǎn)程配置中心,用于存儲(chǔ)各個(gè)應(yīng)用軟件的軟件標(biāo)識(shí)符和軟件密鑰二元組、與各個(gè)應(yīng)用軟件相關(guān)的會(huì)導(dǎo)致文件改變的操作的文件操作信息、以及各個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)配置信息和節(jié)點(diǎn)性能信息。這里,任意一個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)配置信息是指該接口層節(jié)點(diǎn)所采用的通信協(xié)議、通信端口、物理地址與邏輯地址之間的對(duì)應(yīng)關(guān)系等與該接口層節(jié)點(diǎn)與其他接口層節(jié)點(diǎn)之間的通信能力相關(guān)的信息,任意一個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)性能信息是指該接口層節(jié)點(diǎn)的中央處理器(CPU)的占用率、內(nèi)存的占用率、網(wǎng)卡的占用率、網(wǎng)絡(luò)帶寬的占用率等與該接口層節(jié)點(diǎn)的信息處理能力相關(guān)的信息。每個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)配置信息可以相同,也可以不同。
[0020]負(fù)載均衡控制系統(tǒng)可以利用遠(yuǎn)程配置中心存儲(chǔ)的節(jié)點(diǎn)配置信息和節(jié)點(diǎn)性能信息來(lái)實(shí)現(xiàn)接口層節(jié)點(diǎn)之間的負(fù)載均衡。具體地,在每個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)配置信息相同的情況下,當(dāng)接口層節(jié)點(diǎn)Pl接收到文件操作請(qǐng)求Q時(shí),如果接口層節(jié)點(diǎn)Pl處于繁忙狀態(tài),則負(fù)載均衡系統(tǒng)可以將文件操作請(qǐng)求Q從接口層節(jié)點(diǎn)Pl傳送到接口層102中的任意一個(gè)處于空閑狀態(tài)的接口層節(jié)點(diǎn)(為了方便,下文中稱(chēng)為接口層節(jié)點(diǎn)P2),然后接口層節(jié)點(diǎn)P2可以判斷接口層102自身是否能夠?qū)ξ募﨔執(zhí)行與文件操作請(qǐng)求Q相關(guān)的操作并根據(jù)判斷結(jié)果進(jìn)行后續(xù)處理。在每個(gè)接口層節(jié)點(diǎn)的節(jié)點(diǎn)配置信息不同的情況下,當(dāng)接口層節(jié)點(diǎn)Pl接收到文件操作請(qǐng)求Q時(shí),如果接口層節(jié)點(diǎn)Pl處于繁忙狀態(tài),則負(fù)載