用于管理文件的方法和系統(tǒng)的制作方法
【技術(shù)領域】
[0001] 本發(fā)明涉及信息存儲領域,特別涉及一種用于管理文件的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 對象存儲系統(tǒng)是繼NAS(Network Attached Storage,網(wǎng)絡附加存儲)和 SAN(Storage Area Network,存儲區(qū)域網(wǎng))之后,一種新型的高可靠、跨平臺以及安全的數(shù)據(jù) 共享的存儲體系結(jié)構(gòu),數(shù)據(jù)通過對象進行保存,通過元數(shù)據(jù)服務器進行管理。
[0003] 但是由于對象存儲中,基本的存儲對象大小通常為64MB或者更大,比較適合存放 大文件,比如100MB以上的數(shù)據(jù)文件,對于大量的網(wǎng)絡應用中的中小文件,幾十KB到幾百KB 的數(shù)據(jù)文件,如圖片、郵件等,由于每個文件也要占用一個存儲對象,存儲利用率較低;另外 系統(tǒng)中存在海量的中小文件,數(shù)量是以億為單位的,在海量的數(shù)據(jù)文件中,中小文件的讀寫 對于系統(tǒng)會產(chǎn)生頻繁的操作,對于系統(tǒng)的讀寫性能要求很高。
[0004] 在對象存儲系統(tǒng)上,如何有效的組織和管理這些中小文件,使其在應用中能夠提 高數(shù)據(jù)存儲的利用率,并且改善數(shù)據(jù)讀寫的性能,是目前對象存儲系統(tǒng)應用中迫切需要解 決的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例提供一種用于管理文件的方法和系統(tǒng),通過對文件和對象的關(guān)系進 行了重新定義,允許一個對象內(nèi)存儲一個或多個文件的數(shù)據(jù)塊,一個文件也可跨多個對象 來存儲文件數(shù)據(jù)塊,解決了海量中小文件元數(shù)據(jù)服務器讀寫性能要求高的問題,方便用戶 將對象存儲應用到更加普遍的使用場景。
[0006] 根據(jù)本發(fā)明的一個方面,提供一種用于管理文件的方法,包括:
[0007] 用戶終端在存儲文件時,向元數(shù)據(jù)主服務器發(fā)送文件創(chuàng)建請求;
[0008] 元數(shù)據(jù)主服務器在接收到所述用戶終端發(fā)送的文件創(chuàng)建請求時,從對象池中選擇 用于存儲所述文件的存儲對象,并將所述存儲對象的元數(shù)據(jù)信息發(fā)送給所述用戶終端;其 中所述元數(shù)據(jù)信息包括所述存儲對象的對象標識信息和對象位置信息;
[0009] 所述用戶終端在接收到元數(shù)據(jù)主服務器發(fā)送的所述元數(shù)據(jù)信息時,將寫入請求發(fā) 送給與所述對象位置信息相關(guān)聯(lián)的對象服務器,其中寫入請求包括所述文件和所述對象標 識息;
[0010] 對象服務器接收到寫入請求后,將所述文件寫入到與所述對象標識信息相對應的 數(shù)據(jù)塊中,并更新所述存儲對象的頭信息。
[0011] 在一個實施例中,對象服務器將所述文件寫入到與所述對象標識信息相對應的數(shù) 據(jù)塊中,并更新所述存儲對象的頭信息的步驟后,還包括:
[0012] 對象服務器向元數(shù)據(jù)主服務器發(fā)送數(shù)據(jù)寫入成功響應,以便元數(shù)據(jù)主服務器更新 所述存儲對象的元數(shù)據(jù)信息。
[0013] 在一個實施例中,所述用戶終端在讀取所述文件時,向元數(shù)據(jù)查詢服務器發(fā)送文 件查詢請求,其中元數(shù)據(jù)查詢服務器與元數(shù)據(jù)主服務器同步更新;
[0014] 元數(shù)據(jù)查詢服務器在接收到所述用戶終端發(fā)送的文件查詢請求時,查詢存儲所述 文件的所述存儲對象,并將所述存儲對象的所述元數(shù)據(jù)信息發(fā)送給所述用戶終端;
[0015] 所述用戶終端在接收到元數(shù)據(jù)查詢服務器發(fā)送的所述元數(shù)據(jù)信息時,將讀取請求 發(fā)送給與所述對象位置信息相關(guān)聯(lián)的對象服務器,其中讀取請求包括所述對象標識信息;
[0016] 對象服務器讀取與所述對象標識信息相對應的數(shù)據(jù)塊信息,并將讀取到的數(shù)據(jù)塊 信息發(fā)送給所述用戶終端。
[0017] 在一個實施例中,所述用戶終端在刪除所述文件時,向元數(shù)據(jù)主服務器發(fā)送文件 查詢請求;
[0018] 元數(shù)據(jù)主服務器在接收到所述用戶終端發(fā)送的文件查詢請求時,查詢存儲所述文 件的所述存儲對象,并將所述存儲對象的所述元數(shù)據(jù)信息發(fā)送給所述用戶終端;
[0019] 所述用戶終端在接收到元數(shù)據(jù)主服務器發(fā)送的所述元數(shù)據(jù)信息時,將刪除請求發(fā) 送給與所述對象位置信息相關(guān)聯(lián)的對象服務器,其中刪除請求包括所述對象標識信息;
[0020] 對象服務器接收到刪除請求后,對與所述對象標識信息相對應的數(shù)據(jù)塊進行刪 除,并更新所述存儲對象的頭信息。
[0021] 在一個實施例中,對象服務器對與所述對象標識信息相對應的數(shù)據(jù)塊進行刪除, 并更新所述存儲對象的頭信息的步驟后,還包括:
[0022] 對象服務器向元數(shù)據(jù)主服務器發(fā)送數(shù)據(jù)刪除成功響應,以便元數(shù)據(jù)主服務器更新 所述存儲對象的元數(shù)據(jù)信息。
[0023] 在一個實施例中,存儲對象的頭信息包括存儲對象標識、與存儲對象標識相對應 的空余數(shù)據(jù)塊、與存儲對象標識相對應的已使用數(shù)據(jù)塊比例、數(shù)據(jù)塊與文件的對應關(guān)系。
[0024] 根據(jù)本發(fā)明的另一方面,提供一種用于管理文件的系統(tǒng),包括元數(shù)據(jù)主服務器、對 象服務器和用戶終端,其中:
[0025] 用戶終端,用于在存儲文件時,向元數(shù)據(jù)主服務器發(fā)送文件創(chuàng)建請求;在接收到元 數(shù)據(jù)主服務器發(fā)送的所述元數(shù)據(jù)信息時,將寫入請求發(fā)送給與所述對象位置信息相關(guān)聯(lián)的 對象服務器,其中寫入請求包括所述文件和所述對象標識信息;
[0026] 元數(shù)據(jù)主服務器,用于在接收到所述用戶終端發(fā)送的文件創(chuàng)建請求時,從對象池 中選擇用于存儲所述文件的存儲對象,并將所述存儲對象的元數(shù)據(jù)信息發(fā)送給所述用戶終 端;其中所述元數(shù)據(jù)信息包括所述存儲對象的對象標識信息和對象位置信息;
[0027] 對象服務器,用于在接收到所述用戶終端發(fā)送的寫入請求后,將所述文件寫入到 與所述對象標識信息相對應的數(shù)據(jù)塊中,并更新所述存儲對象的頭信息。
[0028] 在一個實施例中,對象服務器還用于在將所述文件寫入到與所述對象標識信息相 對應的數(shù)據(jù)塊中,并更新所述存儲對象的頭信息后,向元數(shù)據(jù)主服務器發(fā)送數(shù)據(jù)寫入成功 響應,以便元數(shù)據(jù)主服務器更新所述存儲對象的元數(shù)據(jù)信息。
[0029] 在一個實施例中,所述用戶終端還用于在讀取所述文件時,向元數(shù)據(jù)查詢服務器 發(fā)送文件查詢請求,其中元數(shù)據(jù)查詢服務器與元數(shù)據(jù)主服務器同步更新;在接收到元數(shù)據(jù) 查詢服務器發(fā)送的所述元數(shù)據(jù)信息時,將讀取請求發(fā)送給與所述對象位置信息相關(guān)聯(lián)的對 象服務器,其中讀取請求包括所述對象標識信息;
[0030] 元數(shù)據(jù)查詢服務器還用于在接收到所述用戶終端發(fā)送的文件查詢請求時,查詢存 儲所述文件的所述存儲對象,并將所述存儲對象的所述元數(shù)據(jù)信息發(fā)送給所述用戶終端;
[0031] 對象服務器還用于讀取與所述對象標識信息相對應的數(shù)據(jù)塊信息,并將讀取到的 數(shù)據(jù)塊信息發(fā)送給所述用戶終端。
[0032] 在一個實施例中,所述用戶終端還用于在刪除所述文件時,向元數(shù)據(jù)主服務器發(fā) 送文件查詢請求;在接收到元數(shù)據(jù)主服務器發(fā)送的所述元數(shù)據(jù)信息時,將刪除請求發(fā)送給 與所述對象位置信息相關(guān)聯(lián)的對象服務器,其中刪除請求包括所述對象標識信息;
[0033] 元數(shù)據(jù)主服務器還用于在接收到所述用戶終端發(fā)送的文件查詢請求時,查詢存儲 所述文件的所述存儲對象,并將所述存儲對象的所述元數(shù)據(jù)信息發(fā)送給所述用戶終端; [0034] 對象服務器還用于接收到刪除請求后,對與所述對象標識信息相對應的數(shù)據(jù)塊進 行刪除,并更新所述存儲對象的頭信息。
[0035] 在一個實施例中,對象服務器還用于在對與所述對象標識信息相對應的數(shù)據(jù)塊進 行刪除,并更新所述存儲對象的頭信息后,向元數(shù)據(jù)主服務器發(fā)送數(shù)據(jù)刪除成功響應,以便 元數(shù)據(jù)主服務器更新所述存儲對象的元數(shù)據(jù)信息。
[0036] 在一個實施例中,存儲對象的頭信息包括存儲對象標識、與存儲對象標識相對應 的空余數(shù)據(jù)塊、與存儲對象標識相對應的已使用數(shù)據(jù)塊比例、數(shù)據(jù)塊與文件的對應關(guān)系。
[0037] 本發(fā)明通過在不改變現(xiàn)有對象存儲平臺整體技術(shù)框架的前提下,重新定義了對象 的格式,文件是以對象中的數(shù)據(jù)塊為基礎單元;重新定義了文件和對象的關(guān)系,允許一個對 象內(nèi)存放一個或者多個文件的數(shù)據(jù)塊,也可以跨多個對象來存儲文件數(shù)據(jù)塊;優(yōu)化了元數(shù) 據(jù)服務器部署模式,按照不同功能來提供文件和對象數(shù)據(jù)塊寫入和查詢服務。通過上述重 新定義和優(yōu)化部署,在對象存儲上實現(xiàn)海量中小文件的高效的存儲和使用。
【附圖說明】
[0038] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。
[0039] 圖1為本發(fā)明用于管理文件的方法一個實施例的示意圖。
[0040] 圖2為本發(fā)明對象內(nèi)存放文件一個實施例的示意圖。
[0041] 圖3為本發(fā)明對象內(nèi)存放文件另一實施例的示意圖。
[0042] 圖4為本發(fā)明用于管理文件的方法另一實施例的示意圖。
[0043] 圖5為本發(fā)明用于管理文件的方法又一實施例的示意圖。
[0044] 圖6為本發(fā)明用于管理文件的系統(tǒng)一個實施例的示意圖。
[0045] 圖7為本發(fā)明用于管理文件的系統(tǒng)另一實施例的