一種文件管理系統(tǒng)及文件管理方法
【專利說明】
[0001]【技術(shù)領(lǐng)域】
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)中的一種文件管理系統(tǒng)及文件管理方法。
[0002]【【背景技術(shù)】】
在現(xiàn)有的互聯(lián)網(wǎng)技術(shù)領(lǐng)域中,用戶對文件管理系統(tǒng)有著較高的要求,在文件管理系統(tǒng)中,如何存儲及如何被迅速的調(diào)用又是其中的重點。用戶對存儲的需求主要體現(xiàn)在三個方面:
(I)所有的數(shù)據(jù)都必須是可靠的,絕對不能丟。這是用戶對于存儲的容忍底線,因此可靠性放在最重要的位置上。
[0003](2)在滿足可靠性的前提下,運行或在線的存儲系統(tǒng)需要具有高性能。這是因為用戶的業(yè)務(wù)數(shù)據(jù)幾乎會全部存儲在數(shù)據(jù)服務(wù)器中,高性能可以方便用戶迅速的響應(yīng)速度。
[0004](3)離線或備份數(shù)據(jù)需要高容量、低價格。這部分數(shù)據(jù)通常量很大,但是對性能要求不高,尤其是對于那些不經(jīng)常用到但又必須保存的數(shù)據(jù),用戶不希望為此負擔高額成本。
[0005]傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要。
[0006]目前,現(xiàn)有技術(shù)中的文件管理系統(tǒng)多采用分布式文件系統(tǒng)(Distributed FileSystem),分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡(luò)與節(jié)點相連。分布式文件系統(tǒng)采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔存儲負荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。
[0007]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,云存儲的概念逐漸被用戶所接受,云存儲擺脫了單存儲節(jié)點的瓶頸,可以往橫向擴展(scale-out),但是,如何給出合理的框架和有效的設(shè)計方法,來建立高性能、高可伸縮、高可用的文件存儲服務(wù),仍是擺在系統(tǒng)設(shè)計者面前極富挑戰(zhàn)性的任務(wù)。
[0008]【
【發(fā)明內(nèi)容】
】
鑒于上述問題,提出了本發(fā)明,以便提供一種克服上述問題或至少部分地解決上述問題的一種文件管理系統(tǒng)及文件管理方法。
[0009]作為本發(fā)明的一個方面,一種文件管理系統(tǒng),由客戶端、主控服務(wù)器和數(shù)據(jù)服務(wù)器組成,三者彼此之間通過網(wǎng)絡(luò)進行通信,其中:
所述客戶端用于向所述主控服務(wù)器發(fā)送請求,以及接收所述主控服務(wù)器或所述數(shù)據(jù)服務(wù)器發(fā)來的數(shù)據(jù)信息;
所述主控服務(wù)器用于接收所述客戶端和所述數(shù)據(jù)服務(wù)器發(fā)來的請求或數(shù)據(jù),并根據(jù)接收的內(nèi)容進行控制處理,同時對所述數(shù)據(jù)服務(wù)器進行管理和維護;
所述數(shù)據(jù)服務(wù)器用于存儲由所述客戶端或所述主控服務(wù)器發(fā)送來的數(shù)據(jù)。
[0010]進一步的,所述主控服務(wù)器對所述客戶端擬存儲文件的文件名添加文件組名,并對擬存儲的文件分配與文件組名相對應(yīng)的數(shù)據(jù)服務(wù)器進行存儲。
[0011]進一步的,所述文件組名可以是被分配的數(shù)據(jù)服務(wù)器的名字,也可以是主控服務(wù)器按照某種規(guī)則或順序定義的名字,所述文件組名添加到所述文件名前面。
[0012]進一步的,以數(shù)據(jù)服務(wù)器的名字作為文件組名時,一個文件組名可以代表一個數(shù)據(jù)庫中的部分空間,也可以是一個數(shù)據(jù)服務(wù)器,或者是數(shù)個數(shù)據(jù)服務(wù)器的組合;以主控服務(wù)器定義的名字作為文件組名時,可以將同一類型的文件作為一個組,不同類型的文件作為不同的組。
[0013]進一步的,所述主控服務(wù)器將所述客戶端擬存儲文件的文件組名及該文件組名對應(yīng)的數(shù)據(jù)服務(wù)器名發(fā)送給所述客戶端,所述客戶端將所述文件組名加在文件名上,并將該文件發(fā)送給所述對應(yīng)的數(shù)據(jù)服務(wù)器進行存儲。
[0014]進一步的,所述客戶端包括接口模塊、存儲模塊和安全模塊,其中:所述接口模塊負責為用戶提供存取數(shù)據(jù)的接口 ;所述存儲模塊負責存儲客戶端的文件,或者將客戶端用于文件訪問的元信息進行緩存;所述安全模塊負責將數(shù)據(jù)進行加密,保證數(shù)據(jù)的安全性;
所述主控服務(wù)器包括主備容災(zāi)模塊、名字索引模塊、數(shù)據(jù)服務(wù)器管理模塊以及服務(wù)調(diào)度模塊,其中:所述主備容災(zāi)模塊保證在主控服務(wù)器節(jié)點失效時接替其工作;所述名字索引模塊負責建立名字索引目錄,存儲文件名與對應(yīng)的數(shù)據(jù)服務(wù)器的映射關(guān)系;所述數(shù)據(jù)服務(wù)器管理模塊,管理所有的數(shù)據(jù)服務(wù)器的狀態(tài),以及執(zhí)行負載均衡計劃;所述服務(wù)調(diào)度模塊,負責接收來自客戶端和數(shù)據(jù)服務(wù)器的請求;
所述數(shù)據(jù)服務(wù)器包括數(shù)據(jù)存儲模塊、副本管理模塊、名字檢索模塊和狀態(tài)維護模塊,其中:所述數(shù)據(jù)存儲模塊負責將文件在本地進行持久化的存儲;所述副本管理模塊將文件存儲一個或多個副本到數(shù)據(jù)服務(wù)器上;所述名字檢索模塊負責對所述數(shù)據(jù)存儲模塊中的文件建立名字檢索目錄;所述狀態(tài)維護模塊負責定期將自己的狀態(tài)信息以心跳包的方式周期性的報告給主控服務(wù)器。
[0015]進一步的,所述客戶端還包括命名模塊,用于將所述主控服務(wù)器發(fā)來的文件組名添加在文件名中。
[0016]根據(jù)本發(fā)明的另一方面,提供一種文件管理系統(tǒng)存儲文件的方法,具體為:
客戶端將文件發(fā)送給主控服務(wù)器;
主控服務(wù)器在該文件的文件名上添加文件組名,并按照添加的文件組名將該文件存入相應(yīng)的文件組中;
主控服務(wù)器為該文件組分配存儲的數(shù)據(jù)服務(wù)器,并建立名字索引目錄;
主控服務(wù)器將該文件組的全部數(shù)據(jù)存入被分配的數(shù)據(jù)服務(wù)器中;
數(shù)據(jù)服務(wù)器建立名字檢索目錄。
[0017]根據(jù)本發(fā)明的另一方面,提供一種文件管理系統(tǒng)讀取文件的方法,具體為:
客戶端將需要讀取的文件名發(fā)送給主控服務(wù)器;
主控服務(wù)器在名字索引目錄中查找該文件名對應(yīng)的文件組名以及與該文件組名相對應(yīng)的數(shù)據(jù)服務(wù)器名字,并將文件讀取請求發(fā)送給向?qū)?yīng)的數(shù)據(jù)服務(wù)器;
相對應(yīng)的數(shù)據(jù)服務(wù)器在其名字檢索目錄中檢索含有該文件組名的文件名以及該文件和/或其副本在數(shù)據(jù)服務(wù)器中的存儲地址,并從對應(yīng)的存儲地址中調(diào)取文件發(fā)送給主控服務(wù)器;
主控服務(wù)器將收到的文件發(fā)送給客戶端。
[0018]根據(jù)本發(fā)明的另一方面,還提供一種文件管理系統(tǒng)存儲文件的方法,具體為: 客戶端將文件存儲請求發(fā)送給主控服務(wù)器;
主控服務(wù)器將文件組名及應(yīng)存放的數(shù)據(jù)服務(wù)器名發(fā)送給客戶端,并建立名字索引目錄;
客戶端將文件組名添加到待存儲的文件名上,并將待存儲的文件發(fā)送給對應(yīng)名字的數(shù)據(jù)服務(wù)器;
對應(yīng)名字的數(shù)據(jù)服務(wù)器對文件進行存儲,并建立名字檢索目錄。
[0019]根據(jù)本發(fā)明的另一方面,還提供一種文件管理系統(tǒng)讀取文件的方法,具體為:
客戶端將含有文件組名的文件名發(fā)送給主控服務(wù)器;
主控服務(wù)器根據(jù)名字索引目錄,索引到該文件組名對應(yīng)的數(shù)據(jù)服務(wù)器名,并將含有該文件組名的文件名發(fā)送給對應(yīng)的數(shù)據(jù)服務(wù)器;
對應(yīng)的數(shù)據(jù)服務(wù)器根據(jù)名字檢索目錄,檢索到含有該文件組名的文件名以及該文件和/或其副本在數(shù)據(jù)服務(wù)器中的存儲地址,并從對應(yīng)的存儲地址中調(diào)取文件發(fā)送給客戶端。
[0020]進一步的,所述名字索引目錄包括文件組名、存儲該組文件的數(shù)據(jù)服務(wù)器名字、和/或存儲該組文件副本的數(shù)據(jù)服務(wù)器名字;所述名字檢索目錄包括含有文件組名的文件名、文件和/或其副本在數(shù)據(jù)服務(wù)器中的存儲地址。
[0021]本發(fā)明提出的文件管理系統(tǒng),可更有效的管理海量的小文件,能夠快速有效的查找到用戶所需的文件,并能夠在小文件數(shù)量增加時,簡單有效的增加系統(tǒng)的存儲空間,而不需要對系統(tǒng)架構(gòu)進行修改。本發(fā)明解決了現(xiàn)有技術(shù)中海量小文件存儲會浪費磁盤空間的問題及查找時間隨文件數(shù)量的增加而不斷增加,進而影響用戶體驗的問題。
[0022]【【附圖說明】】
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0023]圖1為本發(fā)明一個實施例的文件管理系統(tǒng)的結(jié)構(gòu)示意圖。
[0024]圖2為本發(fā)明一個實施例的文件存儲方法的流程示意圖。
[0025]圖3為本發(fā)明的一個實施例的文件讀取方法的流程示意圖。
[0026]圖4為本發(fā)明另一個實施例的文件存儲方法的流程示意圖。
[0027]圖5為本發(fā)明的另一個實施例的文件讀取方法的流程示意圖。
[0028]【【具體實施方式】】
下面將參照附圖更詳細的描述本發(fā)明的示例性實施例。雖然附圖中顯示了本發(fā)明的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本發(fā)明,而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能更透徹的理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0029]圖1示出了根據(jù)本發(fā)明一個實施例的文件管理系統(tǒng)結(jié)構(gòu)示意圖。如圖1所示,一種文件管理系統(tǒng),由客戶端10、主控服務(wù)器20和數(shù)據(jù)服務(wù)器30組成,彼此之間通過網(wǎng)絡(luò)進行通?目。其中:
客戶端10用于向主控服務(wù)器20發(fā)送請求,以及接收主控服務(wù)器