本發(fā)明涉及存儲(chǔ)領(lǐng)域,具體而言,涉及一種文件存儲(chǔ)的方法和裝置。
背景技術(shù):
隨著存儲(chǔ)的文件增多以及訪問量的增大,單磁盤以經(jīng)不能滿足性能要求,而采用raid陣列的方式又無法從根本上控制文件訪問策略,特別是針對(duì)大量小文件時(shí),1個(gè)文件被分布到多個(gè)磁盤上時(shí)反而會(huì)帶來大量的尋址造成的時(shí)間浪費(fèi)。而采用隨機(jī)分配并將索引存入數(shù)據(jù)庫等存儲(chǔ)的方式,則很可能會(huì)帶來單點(diǎn)故障或性能瓶頸問題,綜上,現(xiàn)有的存儲(chǔ)效率較低。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種文件存儲(chǔ)的方法和裝置,以至少解決現(xiàn)有技術(shù)存儲(chǔ)效率較低的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種文件存儲(chǔ)的方法,包括:獲取待存儲(chǔ)文件的文件標(biāo)識(shí)信息;根據(jù)所述文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法從存儲(chǔ)服務(wù)器的磁盤中確定目標(biāo)磁盤;將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤。
可選地,所述文件標(biāo)識(shí)信息包括文件名和文件擴(kuò)展名,所述根據(jù)所述文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法確定目標(biāo)磁盤包括:根據(jù)所述文件名和所述文件擴(kuò)展名獲取所述目標(biāo)磁盤的標(biāo)識(shí)信息;確定所述標(biāo)識(shí)信息對(duì)應(yīng)的磁盤為目標(biāo)磁盤。
可選地,所述根據(jù)所述文件名和所述文件擴(kuò)展名獲取所述目標(biāo)磁盤的標(biāo)識(shí)信息包括:獲取所述文件名的首位數(shù)字以及所述文件擴(kuò)展名的末位數(shù)字;確定所述存儲(chǔ)服務(wù)器中的磁盤的第一數(shù)量;計(jì)算所述首位數(shù)字與所述末位數(shù)字的和,并獲取得到的和與所述磁盤的第一數(shù)量的比值的第一余數(shù);確定所述第一余數(shù)為所述目標(biāo)磁盤的標(biāo)識(shí)信息。
可選地,在所述將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤前,所述方法還包括:確定所述目標(biāo)磁盤是否損壞;所述將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤包括:在所述目標(biāo)磁盤未損壞時(shí),將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤。
可選地,所述方法還包括:在所述目標(biāo)磁盤損壞時(shí),獲取所述存儲(chǔ)服務(wù)器中未損壞磁盤的第二數(shù)量;獲取得到的和與所述磁盤的第一數(shù)量的比值的第二余數(shù);確定所述第二余數(shù)為所述目標(biāo)磁盤的標(biāo)識(shí)信息。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種文件存儲(chǔ)的裝置,包括:第一獲取模塊,用于獲取待存儲(chǔ)文件的文件標(biāo)識(shí)信息;第一確定模塊,用于根據(jù)所述文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法從存儲(chǔ)服務(wù)器的磁盤中確定目標(biāo)磁盤;存儲(chǔ)模塊,用于將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤。
可選地,所述文件標(biāo)識(shí)信息包括文件名和文件擴(kuò)展名,所述第一確定模塊,用于根據(jù)所述文件名和所述文件擴(kuò)展名獲取所述目標(biāo)磁盤的標(biāo)識(shí)信息,并確定所述標(biāo)識(shí)信息對(duì)應(yīng)的磁盤為目標(biāo)磁盤。
可選地,所述第一確定模塊,用于獲取所述文件名的首位數(shù)字以及所述文件擴(kuò)展名的末位數(shù)字;確定所述存儲(chǔ)服務(wù)器中的磁盤的第一數(shù)量;計(jì)算所述首位數(shù)字與所述末位數(shù)字的和,并獲取得到的和與所述磁盤的第一數(shù)量的比值的第一余數(shù);確定所述第一余數(shù)為所述目標(biāo)磁盤的標(biāo)識(shí)信息。
可選地,所述裝置還包括:所述裝置還包括:判斷模塊,用于確定所述目標(biāo)磁盤是否損壞;所述存儲(chǔ)模塊,用于在所述目標(biāo)磁盤未損壞時(shí),將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤。
可選地,所述裝置還包括:第二獲取模塊,用于在所述目標(biāo)磁盤損壞時(shí),獲取所述存儲(chǔ)服務(wù)器中未損壞磁盤的第二數(shù)量;處理模塊,用于獲取得到的和與所述磁盤的第一數(shù)量的比值的第二余數(shù);第二確定模塊,用于確定所述第二余數(shù)為所述目標(biāo)磁盤的標(biāo)識(shí)信息。
在本發(fā)明實(shí)施例中,獲取待存儲(chǔ)文件的文件標(biāo)識(shí)信息;根據(jù)所述文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法從存儲(chǔ)服務(wù)器的磁盤中確定目標(biāo)磁盤;將所述待存儲(chǔ)文件存儲(chǔ)至所述目標(biāo)磁盤。這樣,通過文件標(biāo)識(shí)信息確定存儲(chǔ)的磁盤,無需將索引存儲(chǔ)在數(shù)據(jù)庫或文件中,避免了文件索引導(dǎo)致的單點(diǎn)故障或性能瓶頸,并可以有效的將訪問壓力分布到各個(gè)磁盤,從而提高了文件存儲(chǔ)的效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實(shí)施例的一種可選的文件存儲(chǔ)的方法的流程示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的文件存儲(chǔ)的裝置的結(jié)構(gòu)示意圖;
圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的文件存儲(chǔ)的裝置的結(jié)構(gòu)示意圖;
圖4是根據(jù)本發(fā)明實(shí)施例的一種可選的文件存儲(chǔ)的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本發(fā)明實(shí)施例,提供了一種文件存儲(chǔ)的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實(shí)施例的一種文件存儲(chǔ)的方法,如圖1所示,該方法包括如下步驟:
S101、獲取待存儲(chǔ)文件的文件標(biāo)識(shí)信息。
在本步驟中,該文件標(biāo)識(shí)信息可以包括文件名稱和文件擴(kuò)展名,例如,文件“2015001/11.ts”,其中, “2015001”為文件名稱,“11”為文件擴(kuò)展名,“ts”為文件類型。
S102、根據(jù)該文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法從存儲(chǔ)服務(wù)器的磁盤中確定目標(biāo)磁盤。
其中,存儲(chǔ)服務(wù)器中的磁盤依次設(shè)置有標(biāo)識(shí)信息,該標(biāo)識(shí)可以是編號(hào),例如,服務(wù)器中有5個(gè)磁盤,則該5個(gè)磁盤分別編號(hào)為:磁盤0、磁盤1、磁盤2、磁盤3以及磁盤4。
該預(yù)設(shè)存儲(chǔ)算法可以是哈希算法,或者,文件依次排序法,本發(fā)明對(duì)此不作限定,也可以是其他針對(duì)有規(guī)律文件名進(jìn)行的特殊分布算法等。
在本發(fā)明一種可能的實(shí)現(xiàn)方式中,可以根據(jù)該文件名和該文件擴(kuò)展名獲取該目標(biāo)磁盤的標(biāo)識(shí)信息,并確定該標(biāo)識(shí)信息對(duì)應(yīng)的磁盤為目標(biāo)磁盤。
具體地,可以獲取該文件名的首位數(shù)字以及該文件擴(kuò)展名的末位數(shù)字,確定該存儲(chǔ)服務(wù)器中的磁盤的第一數(shù)量,并計(jì)算該首位數(shù)字與該末位數(shù)字的和,并獲取得到的和與該磁盤的第一數(shù)量的比值的第一余數(shù),并確定該第一余數(shù)為該目標(biāo)磁盤的標(biāo)識(shí)信息。
示例地,以文件“2015001/11.ts”為例進(jìn)行說明,若存儲(chǔ)服務(wù)器中的數(shù)量為5,文件名的首位數(shù)字為2,文件擴(kuò)展名的末位數(shù)字為1,則該首位數(shù)字與該末位數(shù)字的和為3,則第一余數(shù)為3,則確定目標(biāo)磁盤的編號(hào)(即標(biāo)識(shí)信息)為3,從而確定目標(biāo)磁盤為磁盤3。
S103、將該待存儲(chǔ)文件存儲(chǔ)至該目標(biāo)磁盤。
考慮到磁盤可能會(huì)由于損壞而無法存儲(chǔ)文件,因此,在本發(fā)明另一實(shí)施例中,在該步驟S103之前,可以確定該目標(biāo)磁盤是否損壞,若該目標(biāo)磁盤未損壞,則將該待存儲(chǔ)文件存儲(chǔ)至該目標(biāo)磁盤。
若該目標(biāo)磁盤損壞,則需要重新確定目標(biāo)磁盤,具體地,獲取該存儲(chǔ)服務(wù)器中未損壞磁盤的第二數(shù)量,并獲取得到的和與該磁盤的第一數(shù)量的比值的第二余數(shù),并確定該第二余數(shù)為該目標(biāo)磁盤的標(biāo)識(shí)信息。
示例地,仍然以上述文件“2015001/11.ts”為例進(jìn)行說明,若確定的目標(biāo)磁盤為磁盤3,且該磁盤3損壞,則確定為損壞的磁盤數(shù)量為4,則第二余數(shù)為3,此時(shí),由于磁盤3損壞,則確定目標(biāo)磁盤為磁盤3的下一磁盤,即磁盤4。
需要說明的是,在確定目標(biāo)磁盤后,可以將該目標(biāo)磁盤的標(biāo)識(shí)信息標(biāo)記在該文件標(biāo)識(shí)信息上,例如,仍然以上述文件“2015001/11.ts”為例進(jìn)行說明,若目標(biāo)磁盤為磁盤3,則文件標(biāo)識(shí)信息可以是“/3/2015001/11.ts”,其中,“/3/”即為目標(biāo)磁盤的標(biāo)識(shí)信息。
另外,若該目標(biāo)磁盤損壞,并確定新的目標(biāo)磁盤后,保留該損壞的目標(biāo)磁盤的標(biāo)識(shí)信息,并添加新的目標(biāo)磁盤的標(biāo)識(shí)信息,例如,若損壞的目標(biāo)磁盤為磁盤3,則文件標(biāo)識(shí)信息為“/3/2015001/11.ts”,若確定新的目標(biāo)磁盤為磁盤4,則文件標(biāo)識(shí)信息為“/4/3/2015001/11.ts”。
進(jìn)一步地,在損壞的目標(biāo)磁盤正常后,可以將存儲(chǔ)在其他磁盤下且文件標(biāo)識(shí)信息包括損壞的目標(biāo)磁盤的標(biāo)識(shí)信息的文件,移動(dòng)至該目標(biāo)磁盤,并將該目標(biāo)磁盤標(biāo)記為正常,例如,當(dāng)損壞的磁盤3更換為正常磁盤后,將所有其他磁盤中/3/路徑下的文件移動(dòng)到磁盤3下,當(dāng)移動(dòng)完成后,將磁盤3標(biāo)記為正常。
采用上述方法,通過文件標(biāo)識(shí)信息確定存儲(chǔ)的磁盤,無需將索引存儲(chǔ)在數(shù)據(jù)庫或文件中,避免了文件索引導(dǎo)致的單點(diǎn)故障或性能瓶頸,并可以有效的將訪問壓力分布到各個(gè)磁盤,從而提高了文件存儲(chǔ)的效率。
圖2為本發(fā)明實(shí)施例提供的一種文件存儲(chǔ)的裝置,如圖2所示,該裝置包括:
第一獲取模塊201,用于獲取待存儲(chǔ)文件的文件標(biāo)識(shí)信息;
第一確定模塊202,用于根據(jù)該文件標(biāo)識(shí)信息通過預(yù)設(shè)存儲(chǔ)算法從存儲(chǔ)服務(wù)器的磁盤中確定目標(biāo)磁盤;
存儲(chǔ)模塊203,用于將該待存儲(chǔ)文件存儲(chǔ)至該目標(biāo)磁盤。
可選地,該文件標(biāo)識(shí)信息包括文件名和文件擴(kuò)展名,該第一確定模塊202,用于根據(jù)該文件名和該文件擴(kuò)展名獲取該目標(biāo)磁盤的標(biāo)識(shí)信息,并確定該標(biāo)識(shí)信息對(duì)應(yīng)的磁盤為目標(biāo)磁盤。
可選地,該第一確定模塊202,用于獲取該文件名的首位數(shù)字以及該文件擴(kuò)展名的末位數(shù)字;確定該存儲(chǔ)服務(wù)器中的磁盤的第一數(shù)量;計(jì)算該首位數(shù)字與該末位數(shù)字的和,并獲取得到的和與該磁盤的第一數(shù)量的比值的第一余數(shù);確定該第一余數(shù)為該目標(biāo)磁盤的標(biāo)識(shí)信息。
可選地,如圖3所示,該裝置還包括:
判斷模塊204,用于確定該目標(biāo)磁盤是否損壞;
該存儲(chǔ)模塊203,用于在該目標(biāo)磁盤未損壞時(shí),將該待存儲(chǔ)文件存儲(chǔ)至該目標(biāo)磁盤。
可選地,如圖4所示,該裝置還包括:
第二獲取模塊205,用于在該目標(biāo)磁盤損壞時(shí),獲取該存儲(chǔ)服務(wù)器中未損壞磁盤的第二數(shù)量;
處理模塊206,用于獲取得到的和與該磁盤的第一數(shù)量的比值的第二余數(shù);
第二確定模塊207,用于確定該第二余數(shù)為該目標(biāo)磁盤的標(biāo)識(shí)信息。
采用上述裝置,通過文件標(biāo)識(shí)信息確定存儲(chǔ)的磁盤,無需將索引存儲(chǔ)在數(shù)據(jù)庫或文件中,避免了文件索引導(dǎo)致的單點(diǎn)故障或性能瓶頸,并可以有效的將訪問壓力分布到各個(gè)磁盤,從而提高了文件存儲(chǔ)的效率。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。