一種分布式文件刪除方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式文件技術(shù)領(lǐng)域,特別是涉及一種分布式文件刪除方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)應(yīng)用的迅速發(fā)展,網(wǎng)絡(luò)信息數(shù)據(jù)量越來越大,海量數(shù)據(jù)存儲變得越來越重要。傳統(tǒng)意義的本地磁盤存儲方式已不能滿足現(xiàn)有應(yīng)用的大容量、高可靠性、高性能、橫向擴(kuò)展等要求,為滿足這些新要求,基于網(wǎng)絡(luò)的分布式存儲系統(tǒng)得到了廣泛重視。
[0003]以一種典型的分布式文件系統(tǒng)為例,底層采用對象存儲的方式,當(dāng)客戶端對文件進(jìn)行讀寫、刪除等操作時,都會先與元數(shù)據(jù)節(jié)點MDS進(jìn)行通信,在獲得目標(biāo)文件的元數(shù)據(jù)信息之后,根據(jù)操作類型,繼續(xù)向MDS發(fā)出請求,如果是讀寫操作,則需要MDS從所有的對象存儲節(jié)點OSD上獲取文件的實際數(shù)據(jù),直接返回給客戶端或者進(jìn)行改寫后落盤,而若是刪除操作,會首先確認(rèn)構(gòu)成文件數(shù)據(jù)的各對象在OSD上的分布,然后逐一地發(fā)送刪除命令,等待所有的數(shù)據(jù)對象刪除完成之后再向客戶端返回操作成功信息,客戶端在接收到該操作成功信息后確定該數(shù)據(jù)對象刪除完成,再下發(fā)下一刪除請求。
[0004]對于客戶端來說,刪除操作相較讀寫操作是非常輕量級的操作類型,理應(yīng)快速完成,但具體到后端的分布式文件系統(tǒng),刪除操作與讀寫操作所經(jīng)過的輸入輸出1路徑卻相同,這種處理方式等待響應(yīng)時間較長,所帶來的延時非常明顯,尤其是在執(zhí)行海量小文件的批量刪除操作時,甚至?xí)绊懹脩舻恼I(yè)務(wù)。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供一種分布式文件刪除方法和系統(tǒng),以解決現(xiàn)有技術(shù)中刪除操作與讀寫操作所經(jīng)過的輸入輸出1路徑卻相同,這種處理方式等待響應(yīng)時間較長,所帶來的延時非常明顯,尤其是在執(zhí)行海量小文件的批量刪除操作時,甚至?xí)绊懹脩舻恼I(yè)務(wù)的問題。
[0006]為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
[0007]—種分布式文件數(shù)據(jù)刪除方法,包括:
[0008]接收客戶端發(fā)送的數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求添加至處理隊列中,向客戶端返回第一刪除成功信息;
[0009]依次獲取所述處理隊列中的數(shù)據(jù)刪除請求,根據(jù)所述數(shù)據(jù)刪除請求更新集群節(jié)點的存儲容量信息;
[0010]根據(jù)所述數(shù)據(jù)刪除請求確定需刪除數(shù)據(jù)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息存入數(shù)據(jù)庫中,每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息相對應(yīng)的數(shù)據(jù)進(jìn)行刪除。
[0011]其中,所述根據(jù)所述數(shù)據(jù)刪除請求確定需刪除文件的文件信息,將所述文件信息存入數(shù)據(jù)庫中包括:
[0012]根據(jù)所述數(shù)據(jù)刪除請求確定所述需刪除數(shù)據(jù)的索引節(jié)點信息;
[0013]根據(jù)所述索引節(jié)點信息通過一致性哈希算法確定所述需刪除數(shù)據(jù)所在文件的文件名稱,及所述需刪除數(shù)據(jù)在所述文件中的位置信息;
[0014]根據(jù)所述文件名稱和所述位置信息形成鍵值KV對,將所述KV對存入數(shù)據(jù)庫中。
[0015]其中,所述每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息相對應(yīng)的數(shù)據(jù)進(jìn)行刪除包括:
[0016]每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的所有所述KV對;
[0017]根據(jù)所述KV對通過一致性哈希算法定位所述需刪除數(shù)據(jù)所在的存儲節(jié)點OSD ;
[0018]向所述OSD發(fā)送刪除指令,所述OSD將所述需刪除數(shù)據(jù)進(jìn)行刪除。
[0019]其中,所述向所述OSD發(fā)送刪除指令,所述OSD將所述需刪除數(shù)據(jù)進(jìn)行刪除后還包括:
[0020]判斷是否在預(yù)定時間內(nèi)接收到所述OSD發(fā)送的第二刪除成功信息;
[0021]若否,則向所述OSD再次發(fā)送刪除指令。
[0022]—種分布式文件數(shù)據(jù)刪除裝置,包括:接收反饋模塊、信息更新模塊和數(shù)據(jù)刪除模塊;其中,
[0023]所述接收反饋模塊,用于接收客戶端發(fā)送的數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求添加至處理隊列中,向客戶端返回第一刪除成功信息;
[0024]所述信息更新模塊,用于依次獲取所述處理隊列中的數(shù)據(jù)刪除請求,根據(jù)所述數(shù)據(jù)刪除請求更新集群節(jié)點的存儲容量信息;
[0025]所述數(shù)據(jù)刪除模塊,用于根據(jù)所述數(shù)據(jù)刪除請求確定需刪除數(shù)據(jù)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息存入數(shù)據(jù)庫中,每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息相對應(yīng)的數(shù)據(jù)進(jìn)行刪除。
[0026]其中,所述數(shù)據(jù)刪除模塊包括:第一確定單元、第二確定單元和存儲單元;其中,
[0027]所述第一確定單元,用于根據(jù)所述數(shù)據(jù)刪除請求確定所述需刪除數(shù)據(jù)的索引節(jié)點信息;
[0028]所述第二確定單元,用于根據(jù)所述索引節(jié)點信息通過一致性哈希算法確定所述需刪除數(shù)據(jù)所在文件的文件名稱,及所述需刪除數(shù)據(jù)在所述文件中的位置信息;
[0029]所述存儲單元,用于根據(jù)所述文件名稱和所述位置信息形成鍵值KV對,將所述KV對存入數(shù)據(jù)庫中。
[0030]其中,所述數(shù)據(jù)刪除模塊還包括:獲取單元、定位單元和刪除單元;其中,
[0031]所述獲取單元,用于每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的所有所述KV對;
[0032]所述定位單元,用于根據(jù)所述KV對通過一致性哈希算法定位所述需刪除數(shù)據(jù)所在的元數(shù)據(jù)節(jié)點OSD ;
[0033]所述刪除單元,用于向所述OSD發(fā)送刪除指令,所述OSD將所述需刪除數(shù)據(jù)進(jìn)行刪除。
[0034]其中,所述分布式文件刪除方法裝置還包括:判斷模塊,用于判斷是否在預(yù)定時間內(nèi)接收到所述OSD發(fā)送的第二刪除成功信息;若否,則向所述OSD再次發(fā)送刪除指令。
[0035]—種分布式文件數(shù)據(jù)刪除系統(tǒng),包括客戶端和存儲端;其中,
[0036]所述客戶端,用于向所述存儲端發(fā)送刪除請求;
[0037]所述存儲端,用于接收所述客戶端發(fā)送的數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求添加至處理隊列中,向客戶端返回第一刪除成功信息;
[0038]依次獲取所述處理隊列中的數(shù)據(jù)刪除請求,根據(jù)所述數(shù)據(jù)刪除請求更新集群節(jié)點的存儲容量信息;
[0039]根據(jù)所述數(shù)據(jù)刪除請求確定需刪除數(shù)據(jù)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息存入數(shù)據(jù)庫中,每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息相對應(yīng)的數(shù)據(jù)進(jìn)行刪除。
[0040]其中,所述存儲端包括:元數(shù)據(jù)節(jié)點MDS和OSD ;其中,
[0041]所述MDS,用于接收客戶端發(fā)送的數(shù)據(jù)刪除請求,將所述數(shù)據(jù)刪除請求添加至處理隊列中,向客戶端返回第一刪除成功信息;
[0042]依次獲取所述處理隊列中的數(shù)據(jù)刪除請求,根據(jù)所述數(shù)據(jù)刪除請求更新集群節(jié)點的存儲容量信息;
[0043]根據(jù)所述數(shù)據(jù)刪除請求確定需刪除數(shù)據(jù)的數(shù)據(jù)信息,將所述數(shù)據(jù)信息存入數(shù)據(jù)庫中,每隔預(yù)設(shè)時間間隔獲取所述數(shù)據(jù)庫內(nèi)的數(shù)據(jù)信息,根據(jù)所述數(shù)據(jù)信息定位所述需刪除數(shù)據(jù)所在的0SD,向所述OSD發(fā)送刪除指令;
[0044]所述0