本發(fā)明實施例涉及高性能計算技術(shù)領(lǐng)域,特別是涉及一種lustre文件管理的方法、裝置及系統(tǒng)。
背景技術(shù):
隨著科技的發(fā)展,大數(shù)據(jù)已經(jīng)成為未來發(fā)展的一種趨勢,對存儲設(shè)備中的大量數(shù)據(jù)進(jìn)行管理的文件系統(tǒng)的應(yīng)用也越來越廣泛。lustre是一個開源的分布式并行文件系統(tǒng),由于lustre文件系統(tǒng)的體系結(jié)構(gòu)具有極好的可擴(kuò)展性,使其在在科學(xué)計算、石油天然氣、制造業(yè)、金融等領(lǐng)域得到廣泛部署。lustre是一個面向?qū)ο蟮奈募到y(tǒng),它由三個部件組成,包括元數(shù)據(jù)服務(wù)器(metadataservers,mdss)、對象存儲服務(wù)器(objectstorageservers,osss)和客戶端。
現(xiàn)有技術(shù)中,lustre中的文件地址信息存儲在mds服務(wù)器中,而文件內(nèi)容則是存儲在oss服務(wù)器中,也就是當(dāng)客戶端需要訪問lustre中相應(yīng)的文件時,首先需要向mds服務(wù)器發(fā)送文件打開請求,然后mds服務(wù)器依據(jù)文件打開請求找到該文件的具體地址inode,并將其發(fā)送給客戶端,然后客戶端根據(jù)該地址在前往oss服務(wù)進(jìn)行數(shù)據(jù)讀寫。也就是,現(xiàn)有技術(shù)中當(dāng)客戶端想要對文件進(jìn)行寫操作時,需要通過兩個服務(wù)器(mds服務(wù)器和oss服務(wù)器)才能完成相應(yīng)的操作,從而導(dǎo)致現(xiàn)有技術(shù)中的方法效率較低,耗時較長。
因此,如何提供一種解決上述技術(shù)問題的lustre文件管理的方法、裝置及系統(tǒng)成為本領(lǐng)域的技術(shù)人員需要解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的是提供一種lustre文件管理的方法、裝置及系統(tǒng),在使用過程中避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作,從而提高了工作效率,降低了時耗。
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種lustre文件管理的方法,包括:
接收客戶端發(fā)送的寫請求消息;
依據(jù)所述寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則將所述客戶端寫入的所述第一文件存儲至mdt存儲器上。
可選的,所述預(yù)設(shè)條件為所述文件的大小不超過預(yù)設(shè)閾值。
可選的,所述方法還包括:
接收客戶端發(fā)送的讀請求消息;
依據(jù)所述讀請求消息到所述mdt存儲器中找到與所述讀請求消息對應(yīng)的第二文件;
將所述第二文件的文件信息返回至所述客戶端,所述文件信息包括文件內(nèi)容。
可選的,所述讀請求消息包括文件名稱。
可選的,所述文件信息還包括文件屬性、文件大小或文件類型中的一種或多種的組合。
可選的,所述方法還包括:
在所述客戶端寫入所述第一文件時,將所述第一文件鎖定,以便所述第一文件只允許所述客戶端進(jìn)行寫操作。
可選的,如上述所述的lustre文件管理的方法,所述第一文件存儲至mdt存儲器上的過程具體為:
所述第一文件按照單一條帶的形式存儲至mdt存儲器上,所述單一條帶包括數(shù)據(jù)區(qū)和地址描述區(qū)。
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種lustre文件管理的裝置,包括:
接收模塊,用于接收客戶端發(fā)送的寫請求消息;
判斷模塊,用于依據(jù)所述寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則觸發(fā)存儲模塊;
所述存儲模塊,用于將所述客戶端寫入的所述第一文件存儲至mdt存儲器上。
可選的,所述接收模塊,還用于接收客戶端發(fā)送的讀請求消息;
所述裝置還包括查找模塊和返回模塊,其中:
所述查找模塊,用于依據(jù)所述讀請求消息到所述mdt存儲器中找到與所述讀請求消息對應(yīng)的第二文件;
所述返回模塊,用于獲取所述第二文件的文件信息,并將所述文件信息返回至所述客戶端,所述文件信息包括文件內(nèi)容。
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種lustre文件管理的系統(tǒng),包括所述客戶端以及如上述所述的lustre文件管理的裝置。
本發(fā)明實施例提供了一種lustre文件管理的方法、裝置及系統(tǒng),包括:接收客戶端發(fā)送的寫請求消息;依據(jù)所述寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則將所述客戶端寫入的所述第一文件存儲至mdt存儲器上。
可見,本發(fā)明實施例中的mdc服務(wù)器通過客戶端發(fā)送的寫請求消息可以判斷出客戶端所要寫入的第一文件是否符合預(yù)設(shè)條件,并且將符合預(yù)設(shè)條件的文件存儲至mdt存儲器中,即通過該mdc服務(wù)器可以直接將相應(yīng)的文件存儲至相應(yīng)的mdt中,從而避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作。本發(fā)明實施例在使用過程中提高了工作效率,降低了時耗。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對現(xiàn)有技術(shù)和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種lustre文件管理的方法的流程示意圖;
圖2為本發(fā)明實施例提供的一種lustre文件管理的裝置的結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明實施例提供了一種lustre文件管理的方法、裝置及系統(tǒng),在使用過程中避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作,從而提高了工作效率,降低了時耗。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
請參照圖1,圖1為本發(fā)明實施例提供的一種lustre文件管理的方法的流程示意圖。該方法包括:
s11:接收客戶端發(fā)送的寫請求消息;
s12:依據(jù)寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則將客戶端寫入的第一文件存儲至mdt存儲器上。
可以理解的是,客戶端相應(yīng)寫入某個文件的時候會向mds服務(wù)器發(fā)送寫請求消息,則mds服務(wù)器接收到客戶端發(fā)送的寫請求消息后,會依據(jù)該寫請求消息獲得與該寫請求消息對應(yīng)的第一文件的相關(guān)信息,并且這些相關(guān)信息判斷該第一文件是否符合相應(yīng)的預(yù)設(shè)條件,當(dāng)判斷該第一文件符合相應(yīng)的預(yù)設(shè)條件時,則可以將該第一文件的存儲位置指定在mds服務(wù)器中的mdt存儲器上,并且進(jìn)一步將客戶端寫入的第一文件存儲至mdt存儲器中。
需要說明的是,對于不滿足預(yù)設(shè)條件的文件,可以按照現(xiàn)有技術(shù)中的方式將該文件的文件內(nèi)容存儲至oss服務(wù)器中,相應(yīng)的地址信息存儲在mds服務(wù)器中。當(dāng)然,也可以按照其他的方式進(jìn)行存儲,具體的本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
本發(fā)明實施例提供了一種lustre文件管理的方法,包括:接收客戶端發(fā)送的寫請求消息;依據(jù)寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則將客戶端寫入的第一文件存儲至mdt存儲器上。
可見,本發(fā)明實施例中的mdc服務(wù)器通過客戶端發(fā)送的寫請求消息可以判斷出客戶端所要寫入的第一文件是否符合預(yù)設(shè)條件,并且將符合預(yù)設(shè)條件的文件存儲至mdt存儲器中,即通過該mdc服務(wù)器可以直接將相應(yīng)的文件存儲至相應(yīng)的mdt中,從而避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作。本發(fā)明實施例在使用過程中提高了工作效率,降低了時耗。
本發(fā)明實施例公開了一種lustre文件管理的方法,相對于上一實施例,本實施例對技術(shù)方案做了進(jìn)一步的說明和優(yōu)化,具體的:
在上一實施例的s12中,預(yù)設(shè)條件可以為文件的大小不超過預(yù)設(shè)閾值。
具體的,由于現(xiàn)有技術(shù)中在對大量下文件進(jìn)行讀寫操作時,需要多次從mds服務(wù)器中獲取相應(yīng)的文件的地址信息,每次均需要依據(jù)相應(yīng)的地址信息到另一個服務(wù)器(oss服務(wù)器)中對相應(yīng)的文件進(jìn)行讀寫操作,小文件的數(shù)量越多,需要重復(fù)操作的次數(shù)就越多,在一定程度上加大了工作量,進(jìn)一步使工作效率降低。因此,本發(fā)明實施例中可以優(yōu)選的將文件大小不超過預(yù)設(shè)閾值的文件存儲至mds服務(wù)器中的mdt存儲器上,進(jìn)一步提高工作效率,同時也避免在mdt存儲器存儲的文件過大而造成的內(nèi)存不足的問題。
需要說明的是,預(yù)設(shè)閾值的大小可以為1mb,也即將文件大小不超過1mb的文件存儲至mdt存儲器中。當(dāng)然,預(yù)設(shè)閾值的具體數(shù)值可以根據(jù)實際情況而定,本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
另外,本發(fā)明實施例中的預(yù)設(shè)條件不僅限于文件的大小不超過預(yù)設(shè)閾值,也可以是其他的判斷條件,具體的可以根據(jù)實際情況而定,本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
在上述實施例的基礎(chǔ)上,該方法還可以包括以下s13-s15:
s13:接收客戶端發(fā)送的讀請求消息;
s14:依據(jù)讀請求消息到mdt存儲器中找到與讀請求消息對應(yīng)的第二文件;
s15:將第二文件的文件信息返回至客戶端,文件信息包括文件內(nèi)容。
可以理解的是,當(dāng)客戶端想要對某個文件進(jìn)行讀操作時,則還可以向mds服務(wù)器發(fā)送相應(yīng)文件的讀請求消息,mds服務(wù)器可以根據(jù)該讀請求消息到mdt存儲器中查找與該讀請求消息相對應(yīng)的第二文件,獲取該第二文件的文件信息,并將該第二文件的文件信息返回至客戶端,當(dāng)然該文件信息中包括第二文件的文件內(nèi)容,以實現(xiàn)客戶端對相應(yīng)的第二文件的讀操作。
當(dāng)然,mds服務(wù)器接收到客戶端發(fā)送的讀請求消息時,可以依據(jù)該讀操作請求判斷相應(yīng)的第二文件是否存儲在mdt存儲器中,如果是,則直接到mdt存儲器中查找該第二文件,獲取并返回第二文件的文件內(nèi)容;否則,該文件可能存儲在oss服務(wù)器中,此時即可按照現(xiàn)有技術(shù)中的方法使客戶端對相應(yīng)的文件進(jìn)行讀操作。
需要說明的是,該客戶端所要讀取的第二文件可以是上述已寫入的第一文件,也可以不是上述第一文件(即可以為已存儲至mdt存儲器中的其他文件),具體可以根據(jù)實際情況而定,本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
還需要說明的是,客戶端可以通過使用fid發(fā)送ost_read請求至mds服務(wù)器,以獲得所要讀取的文件(即第二文件)的文件信息及其地址信息。當(dāng)然,不僅限于通過使用fid發(fā)送相應(yīng)的請求,具體采用哪種形式發(fā)送請求本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
進(jìn)一步,讀請求消息包括文件名稱。
具體的,該讀請求消息可以包括文件名稱,也就是,mds服務(wù)器可以根據(jù)相應(yīng)的文件名稱到mdt存儲器中查找相應(yīng)的第二文件。當(dāng)然,該讀請求消息不僅限于包括文件名稱,還可以包括其他的信息,例如與文件一一對應(yīng)的標(biāo)識碼,以便于依據(jù)相應(yīng)的標(biāo)識碼到mdt存儲器中找到相應(yīng)的文件。另外,對于讀請求消息中具體包括哪種信息,本申請對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。更具體的,文件信息還包括文件屬性、文件大小或文件類型中的一種或多種的組合。
需要說明的是,文件信息不僅限于包括上述幾種,還可以包括其他類型的信息,本申請對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
可選的,該方法還可以包括:
在客戶端寫入第一文件時,將第一文件鎖定,以便第一文件只允許客戶端進(jìn)行寫操作。
可以理解的是,mds服務(wù)器可以在客戶端對第一文件進(jìn)行寫入時,依據(jù)其接收到的寫請求消息將相應(yīng)的第一文件進(jìn)行鎖定,此時只允許發(fā)送該寫請求消息的客戶端對第一文件進(jìn)行寫操作,以避免其他客戶端的干擾。
具體的,在實際請用中對于某一個文件可能是由多個客戶端對寫入的,每個個客戶端可以寫入該文件的特定部分,從而完成對整個文件的寫入。那么,當(dāng)多個客戶端均請求請求對同一個(例如該第一文件)進(jìn)行寫操作時,mds服務(wù)器可以根據(jù)最先接收到的寫請求消息,將該寫請求消息對應(yīng)的第一文件進(jìn)行鎖定,此時只允許發(fā)送該寫請求消息的客戶端對第一文件進(jìn)行寫操作,也即可以使最先發(fā)送寫請求消息的客戶端對該第一文件進(jìn)行寫操作,并且在該客戶端進(jìn)行寫操作的同時不允許其他的客戶端對該第一文件進(jìn)行寫操作。另外,當(dāng)該客戶端對第一文件的寫操作完成后,還可以將該第一文件進(jìn)行解鎖操作,以便于其他的客戶端對該第一文件進(jìn)行寫操作,具體誰先對該第一文件進(jìn)行寫操作,可以根據(jù)接收到的寫請求消息的順序進(jìn)行確定。
當(dāng)然,mds服務(wù)器不僅可以根據(jù)最先接收到的寫請求消息確定哪個客戶端可以最先對相應(yīng)的文件進(jìn)行寫操作,也可以根據(jù)其他的條件確定哪個客戶端可以最先對相應(yīng)的文件進(jìn)行寫操作,例如可以根據(jù)各個客戶端所要寫入的文件部分的優(yōu)先級進(jìn)行確定,具體的可以根據(jù)實際情況而定,本發(fā)明實施例對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
更進(jìn)一步,如上述的lustre文件管理的方法,第一文件存儲至mdt存儲器上的過程,具體可以為:
第一文件按照單一條帶的形式存儲至mdt存儲器上,單一條帶包括數(shù)據(jù)區(qū)和地址描述區(qū)。
需要說明的是,存儲在mdt存儲器上的各個文件可以均可以按照單一條帶的形式進(jìn)行存儲,并且每個單一條帶均可以包括數(shù)據(jù)區(qū)和地址描述區(qū)兩個部分,其中,數(shù)據(jù)區(qū)用于存儲文件的文件信息,地址描述區(qū)用于存儲文件中相應(yīng)的地址信息。
另外,各個單一條帶的空間大小可以預(yù)先進(jìn)行設(shè)定,可以對單一條帶的空間進(jìn)行擴(kuò)充,使每個單一條帶的空間大小大于64kb,且每個單一條帶的空間具體大小可以根據(jù)預(yù)設(shè)閾值進(jìn)行設(shè)定,例如可以將每個單一條帶的空間具體大小設(shè)定為1mb。當(dāng)然,不僅限于1mb,具體大小可以根據(jù)實際情況進(jìn)行設(shè)定,本申請對此不做特殊的限定,能實現(xiàn)本發(fā)明實施例的目的即可。
請參照圖2,圖2為本發(fā)明實施例提供的一種lustre文件管理的裝置的結(jié)構(gòu)示意圖,在上述實施例的基礎(chǔ)上:
該裝置包括:
接收模塊1,用于接收客戶端發(fā)送的寫請求消息;
判斷模塊2,用于依據(jù)寫請求消息判斷所要寫入的第一文件是否滿足預(yù)設(shè)條件,如果是,則觸發(fā)存儲模塊;
存儲模塊3,用于將客戶端寫入的第一文件存儲至mdt存儲器上。
可選的,接收模塊1,還用于接收客戶端發(fā)送的讀請求消息;
相應(yīng)的,該裝置還包括查找模塊和返回模塊,其中:
查找模塊,用于依據(jù)讀請求消息到mdt存儲器中找到與讀請求消息對應(yīng)的第二文件;
返回模塊,用于獲取第二文件的文件信息,并將文件信息返回至客戶端,文件信息包括文件內(nèi)容。
需要說明的是,本發(fā)明實施例中的mdc服務(wù)器中的判斷模塊可以通過客戶端發(fā)送的寫請求消息判斷出客戶端所要寫入的第一文件是否符合預(yù)設(shè)條件,并且存儲模塊將符合預(yù)設(shè)條件的文件存儲至mdt存儲器中。本發(fā)明實施例在使用避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作,提高了工作效率,降低了時耗。
另外,對于本發(fā)明實施例中所涉及到的lustre文件管理的方法的具體介紹請參照上述方法實施例,本申請在此不再贅述。
在上述實施例的基礎(chǔ)上,本發(fā)明實施例提供了一種lustre文件管理的系統(tǒng),包括客戶端以及如上述的lustre文件管理的裝置。
需要說明的是,本發(fā)明實施例在使用避免了客戶端在對相應(yīng)的文件進(jìn)行寫操作時需要通過兩個服務(wù)器來完成相應(yīng)的工作,提高了工作效率,降低了時耗。
另外,對于本發(fā)明實施例中所涉及到的lustre文件管理的方法的具體介紹請參照上述方法實施例,本申請在此不再贅述。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。