一種存取文件的方法、裝置及分布式存儲系統的制作方法
【技術領域】
[0001]本發明涉及數據傳輸技術,尤其涉及一種存取文件的方法、裝置及分布式存儲系統。
【背景技術】
[0002]分布式存儲系統,是將數據分散存儲在多臺獨立的設備上。傳統的網絡存儲系統采用集中的存儲服務器存放所有數據,存儲服務器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分布式網絡存儲系統采用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易于擴展。
[0003]然而現有的分布式存儲系統中,為了確保存儲安全,需要在一個數據中心內至少保存各個文件的一份副本。在互聯網的業務場景下,隨著業務數據量的不斷增大,即使只保存一份副本,最終會超過單個數據中心的帶寬及機器數量的承載能力。
【發明內容】
[0004]有鑒于此,有必要提供一種在分布式存儲系統中存取文件的方法、裝置及分布式存儲系統,其可降低數據中心的運營成本。
[0005]一種在分布式存儲系統中存取文件的方法,所述分布式存儲系統包括:元數據服務器集群以及多個數據服務器集群;每個數據服務器集群內包括多臺數據服務器,所述多個數據服務器集群體內的服務器至少分布在兩個不同的數據中心內;所述方法包括:
[0006]接收客戶端上傳的文件;
[0007]向所述元數據服務器集群發送文件索引獲取請求以獲取所述元數據服務器集群返回的元數據索引;
[0008]將所述文件或者所述文件的分片發送給選擇的數據服務器集群進行存儲;以及
[0009]將所述文件或者所述文件的分片在所述選擇的數據服務器集群內的存儲索引、所述選擇的數據服務器集群的標識以及所述元數據索弓I發送給所述元數據服務器集群進行關聯存儲。
[0010]一種在分布式存儲系統中存取文件的裝置,包括:
[0011]上傳請求接收模塊,用于接收客戶端上傳的文件;
[0012]文件索引請求模塊,用于向所述元數據服務器集群發送文件索引獲取請求以獲取所述元數據服務器集群返回的元數據索引;
[0013]文件存儲模塊,用于將所述文件或者所述文件的分片發送給選擇的數據服務器集群進行存儲;以及
[0014]文件索引提交模塊,用于將所述文件或者所述文件的分片在所述選擇的數據服務器集群內的存儲索引、所述選擇的數據服務器集群的標識以及所述元數據索引發送給所述元數據服務器集群進行關聯存儲。
[0015]—種分布式存儲系統,包括:
[0016]入口服務器、元數據服務器集群以及多個數據服務器集群;每個數據服務器集群內包括多臺數據服務器,所述多個數據服務器集群體內的服務器至少分布在兩個不同的數據中心內;
[0017]所述入口服務器用于:接收客戶端上傳的文件;向所述元數據服務器集群發送文件索引獲取請求;
[0018]所述元數據服務器集群用于:根據所述文件索引獲取請求返回元數據索引;
[0019]所述入口服務器還用于:將所述文件或者所述文件的分片發送給選擇的數據服務器集群;
[0020]所述數據服務器用于:接收所述入口服務器上傳的文件;存儲所述文件;
[0021 ] 所述入口服務器還用于:將所述文件在數據服務器集群內的存儲索引以及所存儲的數據服務器集群的標識提交給所述元數據服務器集群;
[0022]所述元數據服務器集群還用于:存儲所述入口服務器提交的所述文件在數據服務器集群內的存儲索引以及對應的數據服務器集群的標識。
[0023]根據上述的方法、裝置及系統,元數據與數據正文分別存儲在元數據服務器集群與數據服務器集群中,而且數據服務器集群是分布在不同的數據中心內。因此,可以避免所有數據存儲在一個數據中心容易導致數量超過單一數據中心的承載量的問題。降低數據中心的分布式存儲系統的運營成本。
[0024]為讓本發明的上述和其他目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。
【附圖說明】
[0025]圖1為第一實施例提供的分布式存儲系統的架構示意圖。
[0026]圖2為圖1的分布式存儲系統中元數據服務器集群的一個實施例的架構示意圖。
[0027]圖3為圖1的分布式存儲系統中入口服務器的結構框圖。
[0028]圖4為圖1的分布式存儲系統上傳文件時的交互示意圖。
[0029]圖5為圖1的分布式存儲系統下載文件時的交互示意圖。
[0030]圖6為圖1的分布式存儲系統刪除文件時的交互示意圖。
[0031]圖7為圖1的分布式存儲系統更新文件時的交互示意圖。
[0032]圖8為第二實施例提供的在分布式存儲系統存儲文件的方法流程圖。
[0033]圖9為第三實施例提供的在分布式存儲系統存儲文件的方法流程圖。
[0034]圖10為第四實施例提供的在分布式存儲系統存儲文件的方法流程圖。
[0035]圖11為第五實施例提供的在分布式存儲系統存儲文件的方法流程圖。
[0036]圖12為第六實施例提供的在分布式存儲系統存儲文件的裝置結構框圖。
[0037]圖13為第七實施例提供的在分布式存儲系統存儲文件的裝置結構框圖。
[0038]圖14為第八實施例提供的在分布式存儲系統存儲文件的裝置結構框圖。
[0039]圖15為第九實施例提供的在分布式存儲系統存儲文件的裝置結構框圖。
【具體實施方式】
[0040]為更進一步闡述本發明為實現預定發明目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對依據本發明的【具體實施方式】、結構、特征及其功效,詳細說明如后。
[0041]數據中心
[0042]數據中心(data center),指用于安置計算機系統及相關部件的設施,例如電信和儲存系統。一般它包含冗余和備用電源,冗余數據通信連接,環境控制(例如空調、滅火器)和安全設備。
[0043]服務器
[0044]服務器是指安裝有特定服務器應用程序的計算機,其用于通過計算機網絡接收客戶端的網絡請求,并根據預定協議對接收的網絡請求進行響應,從而提供或幫助提供某種網絡服務。上述的預定協議包括但并不限于:傳輸控制協議(Transmiss1n ControlProtocol, TCP)、超文本傳輸協議(Hypertext Transfer Protocol, HTTP)、用戶數據協議(User Datagram Protocol, UDP)、文件傳輸協議(File Transfer Protocol, FTP)等。
[0045]服務器集群
[0046]服務器集群是指兩臺或者更多服務器的集合。服務器集群內的全部或者大部分服務器構成一個分布式網絡系統,從而共同向客戶端提供一種或多個網絡服務。服務器集群內可包括一臺或者多臺調度服務器,用于統一控制服務器集群內的各服務器,例如提供路由功能,根據客戶端的請求給客戶端指定由哪個服務器向該客戶端提供網絡服務。
[0047]客戶端
[0048]客戶端與服務器相對,其為采用預定協議與服務器進行網絡通訊的終端設備,其具體實施包括但并不限于另一臺服務器、臺式電腦、筆記本電腦、平板電腦、智能手機、多媒體電視、智能眼鏡、智能手表以及其他電子裝置。
[0049]鍵-值(Key-Value)存儲系統
[0050]Key-value存儲系統是指一種非關系型數據庫,其是指按照提供的鍵給存儲內容(Value)分配存儲空間、并獲取對應的值。相比于傳統的關系型數據庫,其具有高并發、高性能的優勢。
[0051]第一實施例
[0052]圖1為第一實施例提供的分布式存儲系統的架構示意圖。如圖1所示,分布式存儲系統100部署在兩個或更多(圖1中僅示出兩個)數據中心10、20內。數據中心10內包括元數據服務器集群101、第一數據服務器集群102、以及一臺或多臺服務器103。數據中心20內包括第二數據服務器集群104以及一臺或多臺服務器105。其中,服務器103與服務器105共同構成第三數據服務器集群106。分布式存儲系統100用于根據入口服務器200的請求進行文件的存儲(上傳)、下載、更新、或者刪除等操作。
[0053]元數據服務器集群101內的多臺服務器自身構成一個分布式存儲系統,用于存儲文件的元數據。上述的分布式存儲系統例如可為上述的Key-Value存儲系統。而上述的元數據例如可包括文件的索引信息,例如文件是否被分片、文件或文件分片存儲在哪一個數據服務器集群內等等。元數據服務器集群101還可根據客戶端的請求返回對應的元數據。
[0054]在一個實例中,元數據服務器集群101構成一個基于一致性哈希的全對等分布式存儲系統,客戶端在要訪問某個文件的元數據時,通過元數據索引采用固定的哈希算法,將元數據索引映射到一個哈希環的一段區間上,然后查找分布式路由信息,找到該哈希環區間對應的元數據服務器,并最終將對于該元數據的讀寫請求發送到存儲該數據的元數據服務器上。
[0055]然而,元數據服務器集群101構成的分布式存儲系統并不限于上述的對等分布式架構。參閱圖2,其為元數據服務器集群101另一個實施例的架構示意圖。如圖2所示,元數據服務器集群101包括主控服務器201、以及元數據服務器202。其中主控服務器201用于根據客戶端203 (例如圖1所示入口服務器200)的請求分配并返回元數據服務器202的地址或標識。元數據服務器202用于根據客戶端提交的元數據索引存儲或返回對應的元數據。
[0056]第一數據服務器集群102、第二數據服務器集群104、以及第三數據服務器集群106分別構成一個分布式存儲系統,用于存儲文件或者文件分片。與元數據服務器集群101相似,第一數據服務器集群102、第二數據服務器集群104、以及第三數據服務器集群106即可以為基于一致性哈希的全對等分布式存儲系統,也可以是類似于圖2所示的具有主控服務器的分布式存儲系統。
[0057]入口服務器200相對于分布式存儲系統100而言是其客戶端,但入口服務器200自身仍然可以為通過網絡向其他終端提供某種網絡服務的服務器。也就是說入口服務器200例如可為網絡(Web)應用服務器,其可接收其他終端(如用戶使用的電腦、手機、平板電腦等等)上傳的信息/文件,并將這些信息/文件提交給分布式存儲系統100進行存儲。當然,入口服務器200也可以僅僅是用戶終端,而不是服務器。
[0058]參閱圖3,其為上述的入口服務器200的一個實施例的結構框圖。如圖3所示,入口服務器200包括:存儲器202、處理器204以及網絡模塊206。可以理解,圖3所示的結構僅為示意,其并不對入口服務器200的結構造成限定。例如,入口服務器200還可包括比圖3中所示更多或者