者根據(jù)所述寫入請求以及所述緩存區(qū)中的請求信息向其存儲區(qū)中寫入數(shù)據(jù)。
[0109]本實(shí)施例提出的所述集群文件系統(tǒng)的數(shù)據(jù)處理裝置,在接收到數(shù)據(jù)操作請求后,會獲取所述數(shù)據(jù)的操作權(quán)限,若所述數(shù)據(jù)需要權(quán)限驗(yàn)證,則獲取用戶輸入的驗(yàn)證信息,在用戶輸入的驗(yàn)證信息與預(yù)存的驗(yàn)證信息匹配時,才執(zhí)行相應(yīng)的數(shù)據(jù)操作,提高集群文件系統(tǒng)數(shù)據(jù)的安全性。
[0110]本發(fā)明進(jìn)一步提供一種集群文件系統(tǒng)的數(shù)據(jù)處理方法。
[0111]參照圖6,所述集群文件系統(tǒng)的數(shù)據(jù)處理方法包括:
[0112]步驟SlO,在存儲節(jié)點(diǎn)接收到文件讀取或?qū)懭胝埱髸r,所述存儲節(jié)點(diǎn)根據(jù)所述讀取請求以及所述緩存區(qū)中的請求信息讀取其存儲區(qū)中的數(shù)據(jù),或者根據(jù)所述寫入請求以及所述緩存區(qū)中的請求信息向其存儲區(qū)中寫入數(shù)據(jù);
[0113]步驟S20,所述存儲節(jié)點(diǎn)將所述讀取或?qū)懭胝埱笾械恼埱笮畔⒋嫒肫渚彺鎱^(qū);
[0114]存儲節(jié)點(diǎn)可在初次啟動時獲取控制節(jié)點(diǎn)上的配置參數(shù),進(jìn)行初始化操作,在存儲節(jié)點(diǎn)創(chuàng)建所述緩存區(qū),可以理解的是,所述配置參數(shù)可由用戶自行設(shè)置,也可在服務(wù)器制造時由廠家錄入。
[0115]在本實(shí)施例中,所述配置參數(shù)包括:
[0116]工作組名稱,用于定義集群文件系統(tǒng)的工作組名稱;
[0117]服務(wù)器名稱,用于定義集群文件系統(tǒng)各個存儲節(jié)點(diǎn)的名稱;
[0118]最大連接數(shù),用于定義最多允許同時訪問集群文件系統(tǒng)的客戶機(jī)數(shù)量;
[0119]統(tǒng)一存儲路徑,用于定義集群文件系統(tǒng)的根目錄,即通過任一節(jié)點(diǎn)地址都能訪問到同一目錄地址或文件;
[0120]冗余網(wǎng)絡(luò)接口,用于定義集群文件系統(tǒng)的各個存儲節(jié)點(diǎn)用做冗余的網(wǎng)絡(luò)接口,SP網(wǎng)卡;
[0121]冗余網(wǎng)絡(luò)地址,用于定義集群文件系統(tǒng)的各個存儲節(jié)點(diǎn)用做冗余網(wǎng)絡(luò)接口的網(wǎng)絡(luò)地址(即該網(wǎng)卡對應(yīng)的IP),可以設(shè)置多個;
[0122]冗余主機(jī)地址,用于定義集群文件系統(tǒng)面向客戶端提供訪問的公共網(wǎng)絡(luò)地址,僅可設(shè)置一個;
[0123]數(shù)據(jù)緩存區(qū)大小,用于定義集群文件系統(tǒng)各個存儲節(jié)點(diǎn)上用于存放緩存數(shù)據(jù)的內(nèi)存大小。
[0124]例如用戶可以設(shè)置存儲節(jié)點(diǎn)的緩存區(qū)占用20GB的存儲空間,所述緩存區(qū)占用的存儲空間不得超過存儲節(jié)點(diǎn)服務(wù)器的內(nèi)存最大存儲空間。
[0125]在本實(shí)施例中,控制節(jié)點(diǎn)在系統(tǒng)啟動初始化時,會向被設(shè)置為主存儲節(jié)點(diǎn)的服務(wù)器發(fā)送消息,控制所述主存儲節(jié)點(diǎn)啟動程序,而其他存儲節(jié)點(diǎn)不會啟動服務(wù)程序,只能接收并存儲主存儲節(jié)點(diǎn)同步的讀取或?qū)懭胝埱蟮恼埱笮畔?,只有主存儲?jié)點(diǎn)在接收到數(shù)據(jù)讀取或?qū)懭胝埱髸r,將所述讀取或?qū)懭胝埱笸街良何募到y(tǒng)中的所有從存儲節(jié)點(diǎn),從存儲節(jié)點(diǎn)僅僅將接收到的所述讀取或?qū)懭胝埱蟮恼埱笮畔⒋嫒肫渚彺鎱^(qū),而不進(jìn)行其他任何操作。
[0126]在主存儲節(jié)點(diǎn)接收到客戶端的數(shù)據(jù)讀取或?qū)懭胝埱蠛螅瑫⑺稣埱蟮恼埱笮畔?如客戶端數(shù)據(jù)讀取或?qū)懭氲倪M(jìn)程號、所述進(jìn)程的I/O偏移量,同步至所有從存儲節(jié)點(diǎn)。
[0127]步驟S30,所述存儲節(jié)點(diǎn)將所述請求信息同步至集群文件系統(tǒng)中的從存儲節(jié)點(diǎn)。
[0128]主存儲節(jié)點(diǎn)在接收到數(shù)據(jù)讀取或?qū)懭胝埱蠛?,會響?yīng)所述請求,根據(jù)所述請求信息,為客戶端提供數(shù)據(jù)讀取或?qū)懭敕?wù)。
[0129]可以理解的是,主存儲節(jié)點(diǎn)不僅僅會接收到數(shù)據(jù)讀取或?qū)懭胝埱?,也有可能會接收到其他類型的服?wù)請求,如配置參數(shù)修改請求,此時直接響應(yīng)所述請求,如對所述請求對應(yīng)的參數(shù)進(jìn)行相應(yīng)的修改,但不會將服務(wù)請求存儲至其緩存區(qū)內(nèi),且不會將服務(wù)請求同步至所有從存儲節(jié)點(diǎn)。
[0130]參照圖7,存儲節(jié)點(diǎn)可在接收到服務(wù)請求時,確定服務(wù)請求的類型,根據(jù)服務(wù)器請求的類型進(jìn)行相應(yīng)的處理,即所述集群文件系統(tǒng)的數(shù)據(jù)處理方法還包括:
[0131]步驟S40,在所述存儲節(jié)點(diǎn)接收服務(wù)請求時,檢測所述服務(wù)請求的類型;
[0132]步驟S50,判斷所述服務(wù)請求是否為讀取或?qū)懭胝埱螅?br>[0133]若所述服務(wù)請求為讀取或?qū)懭胝埱?,則執(zhí)行所述存儲節(jié)點(diǎn)根據(jù)所述讀取請求以及所述緩存區(qū)中的請求信息讀取其存儲區(qū)中的數(shù)據(jù),或者根據(jù)所述寫入請求以及所述緩存區(qū)中的請求信息向其存儲區(qū)中寫入數(shù)據(jù)的步驟;
[0134]所述步驟S50之后,所述集群文件系統(tǒng)的數(shù)據(jù)處理方法還包括:
[0135]步驟S60,若所述服務(wù)請求不是讀取或?qū)懭胝埱?,則響應(yīng)所述服務(wù)請求。
[0136]在主存儲節(jié)點(diǎn)接收到服務(wù)請求后,會檢測所述請求調(diào)用的服務(wù)類型,在所述請求調(diào)用數(shù)據(jù)讀取或?qū)懭敕?wù)時,才將所述請求的請求信息發(fā)送至主存儲節(jié)點(diǎn)網(wǎng)絡(luò)接口,再由主存儲節(jié)點(diǎn)的網(wǎng)絡(luò)接口發(fā)送至從控制節(jié)點(diǎn)獲取到的節(jié)點(diǎn)地址對應(yīng)的從存儲節(jié)點(diǎn),并由從存儲節(jié)點(diǎn)將接收到同步請求存入其緩存區(qū)內(nèi)。
[0137]可以理解的是,在本實(shí)施例中,由于系統(tǒng)升級或維護(hù)等原因,所述主存儲節(jié)點(diǎn)可能無法繼續(xù)為客戶端提供數(shù)據(jù)讀取或?qū)懭敕?wù)時,主存儲節(jié)點(diǎn)會選擇一處于正常工作狀態(tài)的從存儲節(jié)點(diǎn),將被選取的從存儲節(jié)點(diǎn)切換為主存儲節(jié)點(diǎn),接管客戶端的數(shù)據(jù)讀取或?qū)懭脒M(jìn)程。
[0138]本實(shí)施例提出的集群文件系統(tǒng)的數(shù)據(jù)處理方法,主存儲節(jié)點(diǎn)在接收到數(shù)據(jù)操作請求后,將所述請求的信息同步至所有從存儲節(jié)點(diǎn),在需要切換存儲節(jié)點(diǎn)時,任一處于正常工作狀態(tài)的從存儲節(jié)點(diǎn)均可接管客戶端的數(shù)據(jù)操作進(jìn)程,為客戶端提供無間斷的數(shù)據(jù)操作服務(wù),提高集群文件系統(tǒng)的可用性。
[0139]進(jìn)一步地,在主存儲節(jié)點(diǎn)為客戶端提供服務(wù)時,有可能發(fā)生故障,則主存儲節(jié)點(diǎn)需定時檢測其鏈路連接狀態(tài)和服務(wù)程序運(yùn)行狀態(tài),以便及時發(fā)現(xiàn)故障,并作出相應(yīng)處理,則基于第一實(shí)施例提出本發(fā)明集群文件系統(tǒng)的數(shù)據(jù)處理方法第二實(shí)施例,在本實(shí)施例中,參照圖8,所述集群文件系統(tǒng)的數(shù)據(jù)處理方法還包括:
[0140]步驟S70,在所述存儲節(jié)點(diǎn)為主存儲節(jié)點(diǎn)時,所述存儲節(jié)點(diǎn)檢測其鏈路連接狀態(tài)和所述存儲節(jié)點(diǎn)的運(yùn)行狀態(tài);
[0141]參照圖9,所述存儲節(jié)點(diǎn)檢測其鏈路連接狀態(tài)和所述存儲節(jié)點(diǎn)的運(yùn)行狀態(tài)的步驟包括:
[0142]步驟S71,所述存儲節(jié)點(diǎn)定時向所述控制節(jié)點(diǎn)發(fā)送第一檢測數(shù)據(jù)包;
[0143]步驟S72,接收所述控制節(jié)點(diǎn)基于所述檢測數(shù)據(jù)包反饋的第二響應(yīng)數(shù)據(jù)包:
[0144]步驟S73,在預(yù)設(shè)時間間隔內(nèi)接收到所述響應(yīng)數(shù)據(jù)包時,判斷所述存儲節(jié)點(diǎn)的讀取以及寫入是否正常;
[0145]步驟S74,在所述存儲節(jié)點(diǎn)的讀取以及寫入正常時,判定所述存儲節(jié)點(diǎn)運(yùn)行正常;
[0146]步驟S75,在所述存儲節(jié)點(diǎn)的讀取以及寫入異常時,判定所述存儲節(jié)點(diǎn)運(yùn)行故障;
[0147]步驟S76,在預(yù)設(shè)時間間隔內(nèi)未接收到所述響應(yīng)數(shù)據(jù)包時,判定所述存儲節(jié)點(diǎn)的鏈路連接故障。
[0148]在本實(shí)施例中,主存儲節(jié)點(diǎn)檢測到其出現(xiàn)故障,無法繼續(xù)為客戶端提供數(shù)據(jù)讀取或?qū)懭敕?wù)時,主存儲節(jié)點(diǎn)會選擇一處于正常工作狀態(tài)的從存儲節(jié)點(diǎn),將被選取的從存儲節(jié)點(diǎn)切換為主存儲節(jié)點(diǎn),接管客戶端的數(shù)據(jù)讀取或?qū)懭脒M(jìn)程。
[0149]步驟S80,在所述獲取存儲節(jié)點(diǎn)實(shí)時檢測到其鏈路連接故障或所述存儲節(jié)點(diǎn)運(yùn)行故障時,所述存儲節(jié)點(diǎn)在處于正常工作狀態(tài)的從存儲節(jié)點(diǎn)中選取主存儲節(jié)點(diǎn),將選取的所述從存儲節(jié)點(diǎn)的地址標(biāo)記為主存儲節(jié)點(diǎn)地址;
[0150]步驟S90,將標(biāo)記的所述主節(jié)點(diǎn)地址發(fā)送至控制節(jié)點(diǎn)以及選取的所述從存儲節(jié)點(diǎn),其中,所述控制節(jié)點(diǎn)采用接收到的所述主節(jié)點(diǎn)地址更新保存的所述主節(jié)點(diǎn)地址,且選取的所述存儲節(jié)點(diǎn)接收到所述主節(jié)點(diǎn)地址時,將工作狀態(tài)切換為主存儲節(jié)點(diǎn)狀態(tài)。
[0151]在需要切換存儲節(jié)點(diǎn)時,選取一處于正常工作狀態(tài)的從存儲節(jié)點(diǎn),將所述被選取的從服務(wù)節(jié)點(diǎn)的地址標(biāo)記為新的主存儲節(jié)點(diǎn)的地址,將其地址發(fā)送至控制節(jié)點(diǎn),控制節(jié)點(diǎn)將會把之后的客戶端請求轉(zhuǎn)發(fā)至新的主存儲節(jié)點(diǎn),所述被選取的從存儲節(jié)點(diǎn)會切換為主存儲節(jié)點(diǎn)工作狀態(tài),新的主存儲節(jié)點(diǎn)可以讀取其緩存區(qū)內(nèi)的數(shù)據(jù)讀取或?qū)懭脒M(jìn)程信息,直接接管相應(yīng)的進(jìn)程,不會使客戶端的數(shù)據(jù)操作進(jìn)程中斷。
[0152]可以理解的是,從存儲節(jié)點(diǎn)的性能可能大致相同,也可能性能差異較大,所以在主存儲節(jié)點(diǎn)進(jìn)行切換時,若所有從存儲節(jié)點(diǎn)性能相差無幾,則可以隨機(jī)選取一處于正常工作狀態(tài)的從存儲節(jié)點(diǎn)作為主存儲節(jié)點(diǎn),若所有從存儲節(jié)點(diǎn)的性能差異較大,則可按照從存儲節(jié)點(diǎn)的性能高低順序選擇一處于正常工作狀態(tài)的性能較高的節(jié)點(diǎn)作為新的主存儲節(jié)點(diǎn)。
[0153]本實(shí)施例提出的集群文件系統(tǒng)的數(shù)據(jù)處理方法,定時檢測主存儲節(jié)點(diǎn)的鏈路連接狀態(tài)和服務(wù)程序運(yùn)行狀態(tài),及時發(fā)現(xiàn)主存儲節(jié)點(diǎn)的故障,進(jìn)而切換主存儲節(jié)點(diǎn),為客戶端提供無間斷的數(shù)據(jù)讀寫服務(wù),確保集群文件系統(tǒng)數(shù)據(jù)處理服務(wù)的穩(wěn)定性。
[0154]進(jìn)一步地,為提高集群文件系統(tǒng)的安全性性,基于第一或第二實(shí)施例本發(fā)明還提出集群文件系統(tǒng)的數(shù)據(jù)處理方法的第三實(shí)施例,參照圖10,所述步驟SlO之前,所述集群文件系統(tǒng)的數(shù)據(jù)處理方法還包括步驟:
[0155]步驟S100,所述存儲節(jié)點(diǎn)確定所述讀取或?qū)懭胝埱髮?yīng)的數(shù)據(jù)是否需要驗(yàn)證;
[0156]在本實(shí)施例中,主存儲節(jié)點(diǎn)接收到文件讀取或?qū)懭胝埱髸r,會檢測所述被請求訪問的文件的訪問級別,若所述文件為共享文件,即可以被所有用戶訪問時,則不需要對用戶的身份權(quán)限進(jìn)行驗(yàn)證,若所述文件為私有文件,即所述文件僅僅可以被有許可權(quán)限的用戶訪問,則需要對用戶的身份權(quán)限進(jìn)行驗(yàn)證,確定所述文件是否可被發(fā)出訪問請求的客戶端訪問。
[0157]步驟S110,在所述讀取或?qū)懭胝埱髮?yīng)的數(shù)據(jù)需要驗(yàn)證時,所述存儲節(jié)點(diǎn)獲取用戶輸入的驗(yàn)證信息;
[0158]在客戶端請求訪問的文件為私有文件,即需要驗(yàn)證時,主存儲節(jié)點(diǎn)需要獲取用戶輸入的信