專利名稱:分布式存儲系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲系統(tǒng)和方法,具體涉及一種分布式存儲系統(tǒng)和方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展和用戶寬帶接入的普及,一些大型網(wǎng)站開始為個人用戶提供數(shù) 據(jù)存儲功能。普通用戶只要接入互聯(lián)網(wǎng)便可以將自己的數(shù)碼照片、數(shù)據(jù)文件等信息存放到 此類系統(tǒng)中,也可以在任意時刻任意接入互聯(lián)網(wǎng)的地點從該系統(tǒng)中獲取已存入的文件信 息。該系統(tǒng)給普通用戶提供極大便利的同時,也對系統(tǒng)的設(shè)計提出了更高的要求,該系統(tǒng)必 須要能支撐海量數(shù)據(jù)文件進(jìn)行高速讀寫且有一定容災(zāi)能力。當(dāng)前專業(yè)存儲產(chǎn)品SAN、NAS等 由于成本較高,并不適用于互聯(lián)網(wǎng)的應(yīng)用。因此我們需要設(shè)計更為適用的分布式存儲系統(tǒng) 來支撐用戶的需求。當(dāng)前云計算時代已經(jīng)到來,通過軟件程序?qū)⒊砂偕锨_PC服務(wù)器組成 一個分布式系統(tǒng)的技術(shù)已經(jīng)可行。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種分布式存儲系統(tǒng)和方法,它基于Linux操作系統(tǒng),采用 高效的TCP/IP網(wǎng)絡(luò)互聯(lián)技術(shù),將數(shù)百臺服務(wù)器連接起來,組成一個統(tǒng)一的能夠支撐海量數(shù) 據(jù)存儲的分布式系統(tǒng)。本發(fā)明分布式存儲系統(tǒng)和方法的目的是通過以下技術(shù)方案實現(xiàn)的一種分布式存 儲系統(tǒng)和方法,包括客戶端訪問接口、管理服務(wù)器及文件刪除控制器;還包括元數(shù)據(jù)服務(wù)器 集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B、數(shù)據(jù)庫服務(wù)器 集群A及數(shù)據(jù)庫服務(wù)器集群B。所述的客戶端訪問接口分別與元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存 儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B連接;所述的客戶端訪問接口包括寫接口、讀接口 及刪除接口。所述的管理服務(wù)器分別與元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B連接;所述 的管理服務(wù)器還包括管理數(shù)據(jù)庫。所述的文件刪除控制器分別與數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B及 數(shù)據(jù)庫服務(wù)器集群B連接。所述的元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B通過TCP協(xié)議連接,相互檢測 對方狀態(tài);數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B通過TCP協(xié)議互連,相互備份文 件數(shù)據(jù);數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B通過TCP協(xié)議相連,數(shù)據(jù)從數(shù)據(jù)庫服務(wù) 器集群A備份到數(shù)據(jù)庫服務(wù)器集群B。所述的元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)存儲服務(wù)器集群A 及數(shù)據(jù)存儲服務(wù)器集群B兩兩連接。所述的元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)庫服務(wù)器集群A及數(shù) 據(jù)庫服務(wù)器集群B兩兩連接。
上述的分布式存儲系統(tǒng)和方法,其中,所述的元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器 集群B、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B是由一個或多個同一類型的服務(wù)器 組成的服務(wù)器集群;數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B是由一個或多個同一類型 的數(shù)據(jù)庫服務(wù)器組成的數(shù)據(jù)庫服務(wù)器集群;所述的元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器 集群B及數(shù)據(jù)庫服務(wù)器集群B分別是元數(shù)據(jù)服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)庫 服務(wù)器集群A的數(shù)據(jù)備份服務(wù)器。上述的分布式存儲系統(tǒng)和方法,其中,該方法包括分布式存儲系統(tǒng)的寫數(shù)據(jù)的方 法、分布式存儲系統(tǒng)的讀數(shù)據(jù)的方法、分布式存儲系統(tǒng)的刪除數(shù)據(jù)的方法、分布式存儲系統(tǒng) 的數(shù)據(jù)自動修復(fù)的方法及分布式存儲系統(tǒng)的數(shù)據(jù)遷移的方法。上述的分布式存儲系統(tǒng)和方法,其中,所述的分布式存儲系統(tǒng)的寫數(shù)據(jù)的方法至 少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的寫接口。步驟2,客戶端訪問接口的寫接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入 步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的寫接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成 功則進(jìn)入步驟4,否則出錯,并跳到步驟13。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送創(chuàng)建文件的指令,并將數(shù)據(jù)的大小等 信息發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器生成文件名,并將新創(chuàng)建的文件信息連同文件名一起存入數(shù) 據(jù)庫集群A,如果出錯則跳到步驟11,否則進(jìn)入步驟6。步驟6,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)存儲服務(wù)器集群A和數(shù)據(jù)存儲服務(wù)器集群B中挑選 出兩個服務(wù)器進(jìn)行文件的存儲,如果無法挑選出兩臺服務(wù)器,則跳到步驟11,否則進(jìn)入步驟 7。步驟7,元數(shù)據(jù)服務(wù)器挑選出的兩臺數(shù)據(jù)存儲服務(wù)器,并發(fā)送信號,命令選出的兩 臺數(shù)據(jù)存儲服務(wù)器進(jìn)入待寫狀態(tài)。步驟8,元數(shù)據(jù)服務(wù)器返回給客戶端成功消息,并將數(shù)據(jù)存儲服務(wù)器列表及新創(chuàng)建 的文件名一并返回。步驟9,客戶端訪問接口根據(jù)網(wǎng)絡(luò)情況從兩臺數(shù)據(jù)存儲服務(wù)器中選出最優(yōu)的一臺 服務(wù)器,將文件數(shù)據(jù)發(fā)送給最優(yōu)數(shù)據(jù)存儲服務(wù)器,下稱其為數(shù)據(jù)存儲服務(wù)器A,另一臺稱數(shù) 據(jù)存儲服務(wù)器B。步驟10,數(shù)據(jù)存儲服務(wù)器A收到文件數(shù)據(jù)后,將文件保存到本地,并將數(shù)據(jù)發(fā)送給 數(shù)據(jù)存儲服務(wù)器B,等待數(shù)據(jù)存儲服務(wù)器B保存結(jié)果。如果數(shù)據(jù)存儲服務(wù)器A或數(shù)據(jù)存儲服 務(wù)器B任意一方保存文件失敗,則進(jìn)入11,否則進(jìn)入步驟12。步驟11,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟13。步驟12,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟13。步驟13,客戶端訪問接口將結(jié)果返回給調(diào)用者。上述的分布式存儲系統(tǒng)和方法,其中,所述的分布式存儲系統(tǒng)的讀數(shù)據(jù)的方法至 少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的讀接口。
步驟2,客戶端訪問接口的讀接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入 步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的讀接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成 功則進(jìn)入步驟4,否則出錯,并跳到步驟11。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送讀的指令,并將所要讀文件的文件名 發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要讀的文件的文件名的元信息,若 數(shù)據(jù)存在則返回文件所在的數(shù)據(jù)存儲服務(wù)器列表,否則返回出錯信息給客戶端訪問接口。步驟6,若元數(shù)據(jù)服務(wù)器返回的結(jié)果顯示有錯誤發(fā)生,則跳轉(zhuǎn)至步驟9。否則進(jìn)行 步驟7。步驟7,客戶端訪問接口從元數(shù)據(jù)服務(wù)器返回的數(shù)據(jù)存儲服務(wù)器列表中選擇一個 最優(yōu)的進(jìn)行數(shù)據(jù)訪問,如果訪問成功則進(jìn)入步驟10,否則進(jìn)入步驟8。步驟8,客戶端訪問接口選擇另一個數(shù)據(jù)存儲服務(wù)器進(jìn)行數(shù)據(jù)訪問,如果訪問成功 則進(jìn)入步驟10,否則進(jìn)入步驟9。步驟9,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟11。步驟10,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟11。步驟11,客戶端訪問接口將結(jié)果返回給調(diào)用者。上述的分布式存儲系統(tǒng)和方法,其中,所述的分布式存儲系統(tǒng)的刪除數(shù)據(jù)的方法 至少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的刪除接口。 步驟2,客戶端訪問接口的刪除接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn) 入步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的刪除接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果 成功則進(jìn)入步驟4,否則出錯,并跳到步驟6。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送刪除的指令,并將所要刪除文件的文 件名發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要刪除的文件的文件名的元信息, 并將所要刪除的文件刪除,并將結(jié)果返回給客戶端訪問接口。步驟6,客戶端訪問接口將調(diào)用結(jié)果返回給調(diào)用者。上述的分布式存儲系統(tǒng)和方法,其中,所述的分布式存儲系統(tǒng)的數(shù)據(jù)自動修復(fù)的 方法至少包括以下步驟步驟1,數(shù)據(jù)存儲服務(wù)器發(fā)現(xiàn)數(shù)據(jù)損壞,發(fā)消息給元數(shù)據(jù)服務(wù)器。步驟2,元數(shù)據(jù)服務(wù)器挑選出一臺待寫數(shù)據(jù)存儲服務(wù)器,向選出的待寫數(shù)據(jù)存儲服 務(wù)器發(fā)消息,并將選出的待寫數(shù)據(jù)存儲服務(wù)器設(shè)置為待寫狀態(tài)。步驟3,元數(shù)據(jù)服務(wù)器查找出損壞數(shù)據(jù)的另一份數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器,向另 一份數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器發(fā)消息命令,并將指定數(shù)據(jù)發(fā)送給待寫數(shù)據(jù)存儲服務(wù)器。步驟4,待寫數(shù)據(jù)存儲服務(wù)器接收數(shù)據(jù),寫入磁盤,并將結(jié)果返回給發(fā)送方數(shù)據(jù)存 儲服務(wù)器。步驟5,發(fā)送方數(shù)據(jù)存儲服務(wù)器接收到結(jié)果后,將結(jié)果傳回元數(shù)據(jù)服務(wù)器,流程結(jié)束。上述的分布式存儲系統(tǒng)和方法,其中,所述的分布式存儲系統(tǒng)的數(shù)據(jù)遷移的方法 至少包括以下步驟步驟1,管理員通過管理服務(wù)器主動向一臺元數(shù)據(jù)存儲服務(wù)器發(fā)送遷移指令,遷移 某臺數(shù)據(jù)存儲服務(wù)器上的所有數(shù)據(jù)。步驟2,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查找出所有在待遷移的數(shù)據(jù)存儲服務(wù)器 上存儲的文件信息。步驟3,元數(shù)據(jù)服務(wù)器依次為待遷移的文件挑選出一臺新的數(shù)據(jù)存儲服務(wù)器,并命 令原數(shù)據(jù)存儲服務(wù)器將數(shù)據(jù)發(fā)送到新的存儲服務(wù)器上。步驟4,元數(shù)據(jù)服務(wù)器將所有文件處理完畢,遷移流程結(jié)束。本發(fā)明分布式存儲系統(tǒng)和方法由于采用了上述方案,使之與現(xiàn)有技術(shù)相比,具有 以下的優(yōu)點和積極效果1、本發(fā)明分布式存儲系統(tǒng)和方法由于采用了元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù) 器集群B及數(shù)據(jù)庫服務(wù)器集群B,確保了數(shù)據(jù)的可靠備份,確保了有部分服務(wù)器損壞時,用 戶對數(shù)據(jù)的讀寫等操作迅速遷移。2、本發(fā)明分布式存儲系統(tǒng)和方法由于采用先進(jìn)的基于消息的網(wǎng)絡(luò)編程模型,數(shù)據(jù) 存儲部分采用了高效的AIO(異步10)對文件進(jìn)行讀寫,系統(tǒng)的整體性能大大提升,提高了 磁盤的利用率。3、本發(fā)明分布式存儲系統(tǒng)和方法由于提供了完善的界面管理軟件,另外本發(fā)明還 提供了數(shù)據(jù)恢復(fù)的功能,及刪除的數(shù)據(jù)在一定時間內(nèi)還能恢復(fù),真正實現(xiàn)了自動化管理的 功能。
附圖1是本發(fā)明分布式存儲系統(tǒng)和方法網(wǎng)絡(luò)架構(gòu)模塊圖。附圖2是本發(fā)明分布式存儲系統(tǒng)和方法的寫數(shù)據(jù)的方法的流程圖。附圖3是本發(fā)明分布式存儲系統(tǒng)和方法的讀數(shù)據(jù)的方法的流程圖。附圖4是本發(fā)明分布式存儲系統(tǒng)和方法的刪除數(shù)據(jù)的方法的流程圖。附圖5是本發(fā)明分布式存儲系統(tǒng)和方法的數(shù)據(jù)的自動修復(fù)的方法的流程圖。附圖6是本發(fā)明分布式存儲系統(tǒng)和方法的數(shù)據(jù)遷移的方法的流程圖。
具體實施例方式請參見附圖1所示,本發(fā)明分布式存儲系統(tǒng)和方法,包括客戶端訪問接口 1、管理 服務(wù)器2及文件刪除控制器3 ;還包括元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲 服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B、數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B。所有集 群A和集群B的服務(wù)器都可部署在兩個機房,以達(dá)到雙機房相互備份的目的。如果條件不 允許,實際部署中也可將其部署在一個機房,當(dāng)一個機房失效時,另一個機房仍然能提供主 要的服務(wù),以此達(dá)到機房數(shù)據(jù)冗余的目的。元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù) 器集群B、數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B均有主備機制,當(dāng)這個系統(tǒng)中的任意一方失效時,客戶端訪問接口 1均能迅速切換到另一方進(jìn)行訪問,整過過程對上層透明。當(dāng) 一方數(shù)據(jù)遭到損壞時,系統(tǒng)會自動檢測到,并發(fā)起遷移流程,保持?jǐn)?shù)據(jù)的多冗余性。A或B表 明了這兩類服務(wù)器集群互做備份??蛻舳嗽L問接口分別與元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù) 器集群A及數(shù)據(jù)存儲服務(wù)器集群B連接;客戶端訪問接口 1包括寫接口、讀接口及刪除接 口,通過客戶端訪問接口 1訪問本系統(tǒng)時會跟據(jù)其所在網(wǎng)絡(luò)的情況自動選擇集群A或集群 B進(jìn)行訪問,已達(dá)到最優(yōu)訪問的目的。管理服務(wù)器2分別與元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B連接;管理服務(wù) 器2還包括管理數(shù)據(jù)庫,用來檢測元數(shù)據(jù)服務(wù)器及與元數(shù)據(jù)服務(wù)器連接的數(shù)據(jù)庫服務(wù)器的 狀態(tài)。如果出現(xiàn)異常情況(如服務(wù)器失效),管理服務(wù)器2會向管理員發(fā)出報警信息。管理 服務(wù)器2負(fù)責(zé)從元數(shù)據(jù)服務(wù)器上收集整個系統(tǒng)的信息,并記錄到管理數(shù)據(jù)庫中。管理員也 可以通過管理服務(wù)器2來控制整個系統(tǒng)。文件刪除控制器3分別與數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B及數(shù)據(jù)庫 服務(wù)器集群B連接,文件刪除控制器負(fù)責(zé)定時刪除已經(jīng)過期的數(shù)據(jù)文件,用來進(jìn)行數(shù)據(jù)的清理。元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B通過TCP協(xié)議連接,相互檢測對方狀 態(tài);數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B通過TCP協(xié)議互連,相互備份文件數(shù) 據(jù);數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B通過TCP協(xié)議相連,數(shù)據(jù)從數(shù)據(jù)庫服務(wù)器集 群A備份到數(shù)據(jù)庫服務(wù)器集群B。元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù) 存儲服務(wù)器集群B兩兩連接,元數(shù)據(jù)服務(wù)器會監(jiān)控數(shù)據(jù)存儲服務(wù)器的狀態(tài),如果數(shù)據(jù)存儲 服務(wù)器失效,則元數(shù)據(jù)服務(wù)器會將其從可用列表中剔除;如果數(shù)據(jù)存儲服務(wù)器恢復(fù),則元數(shù) 據(jù)服務(wù)器又會將其加入可用列表。元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)存儲服務(wù)器集群A連接,用 來寫入讀取存儲文件的元數(shù)據(jù)(節(jié)點)信息;元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B分 別與數(shù)據(jù)存儲服務(wù)器集群B連接,當(dāng)數(shù)據(jù)庫服務(wù)器集群A失效時,數(shù)據(jù)庫服務(wù)器集群B為元 數(shù)據(jù)服務(wù)器提供數(shù)據(jù)訪問功能。元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服 務(wù)器集群B是由一個或多個同一類型的服務(wù)器組成的服務(wù)器集群;數(shù)據(jù)庫服務(wù)器集群A及 數(shù)據(jù)庫服務(wù)器集群B是由一個或多個同一類型的數(shù)據(jù)庫服務(wù)器組成的數(shù)據(jù)庫服務(wù)器集群; 所述的元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群B及數(shù)據(jù)庫服務(wù)器集群B分別是元數(shù)據(jù)服 務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群A的數(shù)據(jù)備份服務(wù)器。數(shù)據(jù)庫服務(wù) 器集群A和數(shù)據(jù)庫服務(wù)器集群B保存了數(shù)據(jù)文件的元數(shù)據(jù)信息,如文件大小、創(chuàng)建時間、所 在數(shù)據(jù)存儲服務(wù)器的位置等信息,數(shù)據(jù)庫服務(wù)器集群B是數(shù)據(jù)庫服務(wù)器集群A的備份服務(wù) 器,當(dāng)數(shù)據(jù)庫服務(wù)器集群A失效時數(shù)據(jù)庫服務(wù)器集群B為元數(shù)據(jù)服務(wù)器提供服務(wù)。本發(fā)明分布式存儲系統(tǒng)和方法的數(shù)據(jù)庫服務(wù)器集群主要用來存儲數(shù)據(jù)的元信息, 數(shù)據(jù)表結(jié)構(gòu)設(shè)計如下文件名字段,由元數(shù)據(jù)服務(wù)器生成的系統(tǒng)唯一的文件名。數(shù)據(jù)存儲服務(wù)器1字段,文件所在的第一個數(shù)據(jù)存儲服務(wù)器名稱。
數(shù)據(jù)存儲服務(wù)器1文件位置字段,文件在第一個數(shù)據(jù)存儲服務(wù)器上的位置。數(shù)據(jù)存儲服務(wù)器1是否可用字段,表明該文件在第一個數(shù)據(jù)存儲服務(wù)器上是否可 用。數(shù)據(jù)存儲服務(wù)器2字段,文件所在的第二個數(shù)據(jù)存儲服務(wù)器名稱。數(shù)據(jù)存儲服務(wù)器2文件位置字段,文件在第二個數(shù)據(jù)存儲服務(wù)器上的位置。數(shù)據(jù)存儲服務(wù)器2是否可用字段,表明該文件在第二個數(shù)據(jù)存儲服務(wù)器上是否可 用。文件大小字段,表明了文件數(shù)據(jù)的大小。文件類型字段,表明了文件數(shù)據(jù)的類型,如圖片文件、普通數(shù)據(jù)文件等。文件驗證信息字段,用來驗證當(dāng)前文件是否有損壞。文件創(chuàng)建時間字段,表明了文件的創(chuàng)建時間。本發(fā)明分布式存儲系統(tǒng)和方法包括分布式存儲系統(tǒng)的寫數(shù)據(jù)的方法、分布式存儲 系統(tǒng)的讀數(shù)據(jù)的方法、分布式存儲系統(tǒng)的刪除數(shù)據(jù)的方法、分布式存儲系統(tǒng)的數(shù)據(jù)自動修 復(fù)的方法及分布式存儲系統(tǒng)的數(shù)據(jù)遷移的方法。請參見附圖2所示,附圖2是本發(fā)明分布式存儲系統(tǒng)和方法的寫數(shù)據(jù)的方法的流 程圖,包括如下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的寫接口。步驟2,客戶端訪問接口的寫接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入 步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的寫接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成 功則進(jìn)入步驟4,否則出錯,并跳到步驟13。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送創(chuàng)建文件的指令,并將數(shù)據(jù)的大小等 信息發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器生成文件名,并將新創(chuàng)建的文件信息連同文件名一起存入數(shù) 據(jù)庫集群A,如果出錯則跳到步驟11,否則進(jìn)入步驟6。步驟6,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)存儲服務(wù)器集群A和數(shù)據(jù)存儲服務(wù)器集群B中挑選 出兩個服務(wù)器進(jìn)行文件的存儲,如果無法挑選出兩臺服務(wù)器,則跳到步驟11,否則進(jìn)入步驟 7。步驟7,元數(shù)據(jù)服務(wù)器挑選出的兩臺數(shù)據(jù)存儲服務(wù)器,并發(fā)送信號,命令挑選出的 兩臺數(shù)據(jù)存儲服務(wù)器進(jìn)入待寫狀態(tài)。步驟8,元數(shù)據(jù)服務(wù)器返回給客戶端成功消息,并將數(shù)據(jù)存儲服務(wù)器列表及新創(chuàng)建 的文件名一并返回。步驟9,客戶端訪問接口根據(jù)網(wǎng)絡(luò)情況從兩臺數(shù)據(jù)存儲服務(wù)器中選出最優(yōu)的一臺 服務(wù)器,將文件數(shù)據(jù)發(fā)送給最優(yōu)數(shù)據(jù)存儲服務(wù)器,下稱其為數(shù)據(jù)存儲服務(wù)器A,另一臺稱數(shù) 據(jù)存儲服務(wù)器B。步驟10,數(shù)據(jù)存儲服務(wù)器A收到文件數(shù)據(jù)后,將文件保存到本地,并將數(shù)據(jù)發(fā)送給 數(shù)據(jù)存儲服務(wù)器B,等待數(shù)據(jù)存儲服務(wù)器B保存結(jié)果。如果數(shù)據(jù)存儲服務(wù)器A或數(shù)據(jù)存儲服 務(wù)器B任意一方保存文件失敗,則進(jìn)入11,否則進(jìn)入步驟12。步驟11,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟13。步驟12,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟13。
步驟13,客戶端訪問接口將結(jié)果返回給調(diào)用者。請參見附圖3所示,附圖3是本發(fā)明分布式存儲系統(tǒng)和方法的讀數(shù)據(jù)的方法的流 程圖,包括如下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的讀接口。步驟2,客戶端訪問接口的讀接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入 步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的讀接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成 功則進(jìn)入步驟4,否則出錯,并跳到步驟11。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送讀的指令,并將所要讀文件的文件名 發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要讀的文件的文件名的元信息,若 數(shù)據(jù)存在則返回文件所在的數(shù)據(jù)存儲服務(wù)器列表,否則返回出錯信息給客戶端訪問接口。步驟6,若元數(shù)據(jù)服務(wù)器返回的結(jié)果顯示有錯誤發(fā)生,則跳轉(zhuǎn)至步驟9。否則進(jìn)行 步驟7。步驟7,客戶端訪問接口從元數(shù)據(jù)服務(wù)器返回的數(shù)據(jù)存儲服務(wù)器列表中選擇一個 最優(yōu)的進(jìn)行數(shù)據(jù)訪問,如果訪問成功則進(jìn)入步驟10,否則進(jìn)入步驟8。步驟8,客戶端訪問接口選擇另一個數(shù)據(jù)存儲服務(wù)器進(jìn)行數(shù)據(jù)訪問,如果訪問成功 則進(jìn)入步驟10,否則進(jìn)入步驟9。步驟9,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟11。步驟10,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟11。步驟11,客戶端訪問接口將結(jié)果返回給調(diào)用者。請參見附圖4所示,附圖4是本發(fā)明分布式存儲系統(tǒng)和方法的刪除數(shù)據(jù)的方法的 流程圖,包括如下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的刪除接口。步驟2,客戶端訪問接口的刪除接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn) 入步驟4,否則進(jìn)入步驟3。步驟3,客戶端訪問接口的刪除接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果 成功則進(jìn)入步驟4,否則出錯,并跳到步驟6。步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送刪除的指令,并將所要刪除文件的文 件名發(fā)送給元數(shù)據(jù)服務(wù)器。步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要刪除的文件的文件名的元信息, 并將所要刪除的文件刪除,并將結(jié)果返回給客戶端訪問接口。步驟6,客戶端訪問接口將調(diào)用結(jié)果返回給調(diào)用者。請參見附圖5所示,附圖5是本發(fā)明分布式存儲系統(tǒng)和方法的數(shù)據(jù)的自動修復(fù)的 方法的流程圖,包括如下步驟步驟1,數(shù)據(jù)存儲服務(wù)器發(fā)現(xiàn)數(shù)據(jù)損壞,發(fā)消息給元數(shù)據(jù)服務(wù)器。步驟2,元數(shù)據(jù)服務(wù)器挑選出一臺待寫數(shù)據(jù)存儲服務(wù)器,向選出的待寫數(shù)據(jù)存儲服 務(wù)器發(fā)消息,并將選出的待寫數(shù)據(jù)存儲服務(wù)器設(shè)置為待寫狀態(tài)。步驟3,元數(shù)據(jù)服務(wù)器查找出損壞數(shù)據(jù)的另一份數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器,向另一份數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器發(fā)消息命令,并將指定數(shù)據(jù)發(fā)送給待寫數(shù)據(jù)存儲服務(wù)器。步驟4,待寫數(shù)據(jù)存儲服務(wù)器接收數(shù)據(jù),寫入磁盤,并將結(jié)果返回給發(fā)送方數(shù)據(jù)存 儲服務(wù)器。步驟5,發(fā)送方數(shù)據(jù)存儲服務(wù)器接收到結(jié)果后,將結(jié)果傳回元數(shù)據(jù)服務(wù)器,流程結(jié)
束ο請參見附圖6所示,附圖6是本發(fā)明分布式存儲系統(tǒng)和方法的數(shù)據(jù)遷移的方法的 流程圖,包括如下步驟步驟1,管理員通過管理服務(wù)器主動向一臺元數(shù)據(jù)存儲服務(wù)器發(fā)送遷移指令,遷移 某臺數(shù)據(jù)存儲服務(wù)器上的所有數(shù)據(jù)。步驟2,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查找出所有在待遷移的數(shù)據(jù)存儲服務(wù)器 上存儲的文件信息。步驟3,元數(shù)據(jù)服務(wù)器依次為待遷移的文件挑選出一臺新的數(shù)據(jù)存儲服務(wù)器,并命 令原數(shù)據(jù)存儲服務(wù)器將數(shù)據(jù)發(fā)送到新的存儲服務(wù)器上。步驟4,元數(shù)據(jù)服務(wù)器將所有文件處理完畢,遷移流程結(jié)束。本發(fā)明分布式存儲系統(tǒng)和方法的需求如下需要開發(fā)分布式網(wǎng)絡(luò)框架,將數(shù)百臺 機器組成一個統(tǒng)一的分布式存儲系統(tǒng);該系統(tǒng)每天至少能容納3000萬個平均大小為80KB 的文件存儲量;該系統(tǒng)中存儲的數(shù)據(jù)多份冗余,當(dāng)一份數(shù)據(jù)損壞時,系統(tǒng)能自動偵測并予以 修復(fù);機器的部署采取多機房冗余策略,當(dāng)一個機房出現(xiàn)故障時,整個系統(tǒng)仍能對外提供主 要服務(wù);系統(tǒng)需有較強的可擴展性,當(dāng)系統(tǒng)無法支撐用戶海量數(shù)據(jù)存儲時,可以在管理端簡 單的通過增加機器數(shù)量的方法來提高整體集群的負(fù)載能力;提供用戶友好的部署和管理程 序,讓非專業(yè)人事也能輕松管理系統(tǒng),以實現(xiàn)整個系統(tǒng)的管理自動化。綜上所述,本發(fā)明分布式存儲系統(tǒng)和方法由于采用了元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存 儲服務(wù)器集群B及數(shù)據(jù)庫服務(wù)器集群B,確保了數(shù)據(jù)的可靠備份,確保了有部分服務(wù)器損壞 時,用戶對數(shù)據(jù)的讀寫等操作迅速遷移;本發(fā)明由于采用先進(jìn)的基于消息的網(wǎng)絡(luò)編程模型, 數(shù)據(jù)存儲部分采用了高效的AIO(異步10)對文件進(jìn)行讀寫,系統(tǒng)的整體性能大大提升,提 高了磁盤的利用率;本發(fā)明由于提供了完善的界面管理軟件,另外本發(fā)明還提供了數(shù)據(jù)恢 復(fù)的功能,及刪除的數(shù)據(jù)在一定時間內(nèi)還能恢復(fù),真正實現(xiàn)了自動化管理的功能。
權(quán)利要求
一種分布式存儲系統(tǒng)和方法,包括客戶端訪問接口、管理服務(wù)器及文件刪除控制器;其特征在于還包括元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B、數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B;所述的客戶端訪問接口分別與元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B連接;所述的客戶端訪問接口包括寫接口、讀接口及刪除接口;所述的管理服務(wù)器分別與元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B連接;所述的管理服務(wù)器還包括管理數(shù)據(jù)庫;所述的文件刪除控制器分別與數(shù)據(jù)存儲服務(wù)器集群A、數(shù)據(jù)存儲服務(wù)器集群B及數(shù)據(jù)庫服務(wù)器集群B連接;所述的元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B通過TCP協(xié)議連接,相互檢測對方狀態(tài);數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B通過TCP協(xié)議互連,相互備份文件數(shù)據(jù);數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B通過TCP協(xié)議相連,數(shù)據(jù)從數(shù)據(jù)庫服務(wù)器集群A備份到數(shù)據(jù)庫服務(wù)器集群B;所述的元數(shù)據(jù)服務(wù)器集群A及元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B兩兩連接;所述的元數(shù)據(jù)服務(wù)器集群A、元數(shù)據(jù)服務(wù)器集群B分別與數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B兩兩連接。
2.根據(jù)權(quán)利要求1所述的分布式存儲系統(tǒng)和方法,其特征在于所述的元數(shù)據(jù)服務(wù)器 集群A、元數(shù)據(jù)服務(wù)器集群B、數(shù)據(jù)存儲服務(wù)器集群A及數(shù)據(jù)存儲服務(wù)器集群B是由一個或 多個同一類型的服務(wù)器組成的服務(wù)器集群;數(shù)據(jù)庫服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群B是 由一個或多個同一類型的數(shù)據(jù)庫服務(wù)器組成的數(shù)據(jù)庫服務(wù)器集群;所述的元數(shù)據(jù)服務(wù)器集 群B、數(shù)據(jù)存儲服務(wù)器集群B及數(shù)據(jù)庫服務(wù)器集群B分別是元數(shù)據(jù)服務(wù)器集群A、數(shù)據(jù)存儲 服務(wù)器集群A及數(shù)據(jù)庫服務(wù)器集群A的數(shù)據(jù)備份服務(wù)器。
3.根據(jù)權(quán)利要求1所述的分布式存儲系統(tǒng)和方法,其特征在于該方法包括分布式存 儲系統(tǒng)的寫數(shù)據(jù)的方法、分布式存儲系統(tǒng)的讀數(shù)據(jù)的方法、分布式存儲系統(tǒng)的刪除數(shù)據(jù)的 方法、分布式存儲系統(tǒng)的數(shù)據(jù)自動修復(fù)的方法分布式存儲系統(tǒng)的及數(shù)據(jù)遷移的方法。
4.根據(jù)權(quán)利要求3所述的分布式存儲系統(tǒng)和方法,其特征在于所述的分布式存儲系 統(tǒng)的寫數(shù)據(jù)的方法至少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的寫接口 ;步驟2,客戶端訪問接口的寫接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入步驟 4,否則進(jìn)入步驟3;步驟3,客戶端訪問接口的寫接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成功則 進(jìn)入步驟4,否則出錯,并跳到步驟13 ;步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送創(chuàng)建文件的指令,并將數(shù)據(jù)的大小等信息 發(fā)送給元數(shù)據(jù)服務(wù)器;步驟5,元數(shù)據(jù)服務(wù)器生成文件名,并將新創(chuàng)建的文件信息連同文件名一起存入數(shù)據(jù)庫 集群A,如果出錯則跳到步驟11,否則進(jìn)入步驟6 ;步驟6,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)存儲服務(wù)器集群A和數(shù)據(jù)存儲服務(wù)器集群B中挑選出兩個服務(wù)器進(jìn)行文件的存儲,如果無法挑選出兩臺服務(wù)器,則跳到步驟11,否則進(jìn)入步驟7 ;步驟7,元數(shù)據(jù)服務(wù)器挑選出的兩臺數(shù)據(jù)存儲服務(wù)器,并發(fā)送信號,命令挑選出的兩臺 數(shù)據(jù)存儲服務(wù)器進(jìn)入待寫狀態(tài);步驟8,元數(shù)據(jù)服務(wù)器返回給客戶端成功消息,并將數(shù)據(jù)存儲服務(wù)器列表及新創(chuàng)建的文 件名一并返回;步驟9,客戶端訪問接口根據(jù)網(wǎng)絡(luò)情況從兩臺數(shù)據(jù)存儲服務(wù)器中選出最優(yōu)的一臺服務(wù) 器,將文件數(shù)據(jù)發(fā)送給最優(yōu)數(shù)據(jù)存儲服務(wù)器,下稱其為數(shù)據(jù)存儲服務(wù)器A,另一臺稱數(shù)據(jù)存 儲服務(wù)器B;步驟10,數(shù)據(jù)存儲服務(wù)器A收到文件數(shù)據(jù)后,將文件保存到本地,并將數(shù)據(jù)發(fā)送給數(shù)據(jù) 存儲服務(wù)器B,等待數(shù)據(jù)存儲服務(wù)器B保存結(jié)果。如果數(shù)據(jù)存儲服務(wù)器A或數(shù)據(jù)存儲服務(wù)器 B任意一方保存文件失敗,則進(jìn)入11,否則進(jìn)入步驟12 ; 步驟11,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟13 ; 步驟12,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟13 ; 步驟13,客戶端訪問接口將結(jié)果返回給調(diào)用者。
5.根據(jù)權(quán)利要求3所述的分布式存儲系統(tǒng)和方法,其特征在于所述的分布式存儲系 統(tǒng)的讀數(shù)據(jù)的方法至少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的讀接口 ;步驟2,客戶端訪問接口的讀接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入步驟 4,否則進(jìn)入步驟3;步驟3,客戶端訪問接口的讀接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成功則 進(jìn)入步驟4,否則出錯,并跳到步驟11 ;步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送讀的指令,并將所要讀文件的文件名發(fā)送 給元數(shù)據(jù)服務(wù)器;步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要讀的文件的文件名的元信息,若數(shù)據(jù) 存在則返回文件所在的數(shù)據(jù)存儲服務(wù)器列表,否則返回出錯信息給客戶端訪問接口 ;步驟6,若元數(shù)據(jù)服務(wù)器返回的結(jié)果顯示有錯誤發(fā)生,則跳轉(zhuǎn)至步驟9。否則進(jìn)行步驟7 ;步驟7,客戶端訪問接口從元數(shù)據(jù)服務(wù)器返回的數(shù)據(jù)存儲服務(wù)器列表中選擇一個最優(yōu) 的進(jìn)行數(shù)據(jù)訪問,如果訪問成功則進(jìn)入步驟10,否則進(jìn)入步驟8 ;步驟8,客戶端訪問接口選擇另一個數(shù)據(jù)存儲服務(wù)器進(jìn)行數(shù)據(jù)訪問,如果訪問成功則進(jìn) 入步驟10,否則進(jìn)入步驟9;步驟9,返回出錯結(jié)果給客戶端訪問接口,進(jìn)入步驟11 ; 步驟10,返回正確結(jié)果給客戶端訪問接口,進(jìn)入步驟11 ; 步驟11,客戶端訪問接口將結(jié)果返回給調(diào)用者。
6.根據(jù)權(quán)利要求3所述的分布式存儲系統(tǒng)和方法,其特征在于所述的分布式存儲系 統(tǒng)的刪除數(shù)據(jù)的方法至少包括以下步驟步驟1,調(diào)用者調(diào)用客戶端訪問接口的刪除接口 ;步驟2,客戶端訪問接口的刪除接口嘗試連接最優(yōu)的元數(shù)據(jù)服務(wù)器,如果成功則進(jìn)入步 驟4,否則進(jìn)入步驟3 ;步驟3,客戶端訪問接口的刪除接口嘗試連接在另一個互備的元數(shù)據(jù)服務(wù)器,如果成功 則進(jìn)入步驟4,否則出錯,并跳到步驟6 ;步驟4,客戶端訪問接口向元數(shù)據(jù)服務(wù)器發(fā)送刪除的指令,并將所要刪除文件的文件名 發(fā)送給元數(shù)據(jù)服務(wù)器;步驟5,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查詢所要刪除的文件的文件名的元信息,并將 所要刪除的文件刪除,并將結(jié)果返回給客戶端訪問接口 ; 步驟6,客戶端訪問接口將調(diào)用結(jié)果返回給調(diào)用者。
7.根據(jù)權(quán)利要求3所述的分布式存儲系統(tǒng)和方法,其特征在于所述的分布式存儲系 統(tǒng)的數(shù)據(jù)自動修復(fù)的方法至少包括以下步驟步驟1,數(shù)據(jù)存儲服務(wù)器發(fā)現(xiàn)數(shù)據(jù)損壞,發(fā)消息給元數(shù)據(jù)服務(wù)器; 步驟2,元數(shù)據(jù)服務(wù)器挑選出一臺待寫數(shù)據(jù)存儲服務(wù)器,向選出的待寫數(shù)據(jù)存儲服務(wù)器 發(fā)消息,并將選出的待寫數(shù)據(jù)存儲服務(wù)器設(shè)置為待寫狀態(tài);步驟3,元數(shù)據(jù)服務(wù)器查找出損壞數(shù)據(jù)的另一份數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器,向另一份 數(shù)據(jù)所在的數(shù)據(jù)存儲服務(wù)器發(fā)消息命令,并將指定數(shù)據(jù)發(fā)送給待寫數(shù)據(jù)存儲服務(wù)器;步驟4,待寫數(shù)據(jù)存儲服務(wù)器接收數(shù)據(jù),寫入磁盤,并將結(jié)果返回給發(fā)送方數(shù)據(jù)存儲服 務(wù)器;步驟5,發(fā)送方數(shù)據(jù)存儲服務(wù)器接收到結(jié)果后,將結(jié)果傳回元數(shù)據(jù)服務(wù)器,流程結(jié)束。
8.根據(jù)權(quán)利要求3所述的分布式存儲系統(tǒng)和方法,其特征在于所述的分布式存儲系 統(tǒng)的數(shù)據(jù)遷移的方法至少包括以下步驟步驟1,管理員通過管理服務(wù)器主動向一臺元數(shù)據(jù)存儲服務(wù)器發(fā)送遷移指令,遷移某臺 數(shù)據(jù)存儲服務(wù)器上的所有數(shù)據(jù);步驟2,元數(shù)據(jù)服務(wù)器從數(shù)據(jù)庫服務(wù)器中查找出所有在待遷移的數(shù)據(jù)存儲服務(wù)器上存 儲的文件信息;步驟3,元數(shù)據(jù)服務(wù)器依次為待遷移的文件挑選出一臺新的數(shù)據(jù)存儲服務(wù)器,并命令原 數(shù)據(jù)存儲服務(wù)器將數(shù)據(jù)發(fā)送到新的存儲服務(wù)器上;步驟4,元數(shù)據(jù)服務(wù)器將所有文件處理完畢,遷移流程結(jié)束。
全文摘要
一種分布式存儲系統(tǒng)和方法包括客戶端訪問接口、管理服務(wù)器及文件刪除控制器、元數(shù)據(jù)服務(wù)器集群、數(shù)據(jù)存儲服務(wù)器集群及數(shù)據(jù)庫服務(wù)器集群;客戶端訪問接口分別與各服務(wù)器集群連接,管理服務(wù)器分別與元數(shù)據(jù)服務(wù)器集群連接,文件刪除控制器分別與數(shù)據(jù)存儲服務(wù)器集群及數(shù)據(jù)庫服務(wù)器集群連接,元數(shù)據(jù)服務(wù)器集群、數(shù)據(jù)存儲服務(wù)器集群及數(shù)據(jù)庫服務(wù)器集群相互連接,元數(shù)據(jù)服務(wù)器集群分別與數(shù)據(jù)存儲服務(wù)器集群兩兩連接,元數(shù)據(jù)服務(wù)器集群與數(shù)據(jù)存儲服務(wù)器集群兩兩連接。本發(fā)明確保數(shù)據(jù)的可靠備份及迅速操作,系統(tǒng)的整體性能大大提升,并提供了完善的界面管理軟件及數(shù)據(jù)恢復(fù)的功能,刪除的數(shù)據(jù)在一定時間內(nèi)還能恢復(fù),真正實現(xiàn)了自動化管理的功能。
文檔編號G06F17/30GK101997884SQ20091005657
公開日2011年3月30日 申請日期2009年8月18日 優(yōu)先權(quán)日2009年8月18日
發(fā)明者崔博, 崔金峰, 李 杰, 林晨光 申請人:升東網(wǎng)絡(luò)科技發(fā)展(上海)有限公司