理節(jié)點(diǎn)為主管理節(jié)點(diǎn)的管理節(jié)點(diǎn)的個(gè)數(shù)小于所述預(yù)設(shè)數(shù)量時(shí),返回所述第三發(fā)送模塊;
[0050]第一更新模塊,用于當(dāng)接收到的所有所述其他管理節(jié)點(diǎn)的所有第二反饋信息為從管理節(jié)點(diǎn)狀態(tài)信息時(shí),更新自身的狀態(tài)為主管理節(jié)點(diǎn)狀態(tài),結(jié)束;
[0051]第二更新模塊,用于當(dāng)接收到的所述其他管理節(jié)點(diǎn)中第二管理節(jié)點(diǎn)的第二反饋信息為主管理節(jié)點(diǎn)狀態(tài)信息時(shí),更新所述第一管理節(jié)點(diǎn)存儲(chǔ)的主管理節(jié)點(diǎn)信息為所述第二管理節(jié)點(diǎn),結(jié)束。
[0052]其中,還包括獲取元數(shù)據(jù)裝置,所述跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)中所有管理節(jié)點(diǎn)之間采用對(duì)等互聯(lián)網(wǎng)技術(shù),所述獲取元數(shù)據(jù)裝置包括:
[0053]第三接收模塊,用于所述跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)中任一管理節(jié)點(diǎn)接收來(lái)自客戶(hù)端的獲取元數(shù)據(jù)請(qǐng)求,所述獲取元數(shù)據(jù)請(qǐng)求包括元數(shù)據(jù)事物ID號(hào);
[0054]反饋模塊,用于所述任一管理節(jié)點(diǎn)將具有所述事物ID號(hào)的元數(shù)據(jù)反饋至所述客戶(hù)端。
[0055]上述技術(shù)方案具有如下有益效果:當(dāng)需要更新元數(shù)據(jù)信息時(shí),主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)均對(duì)其存儲(chǔ)的元數(shù)據(jù)信息作了更新,所以主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)存儲(chǔ)的元數(shù)據(jù)信息是一樣的,當(dāng)任一管理節(jié)點(diǎn)出現(xiàn)故障時(shí),由于其他管理節(jié)點(diǎn)存儲(chǔ)的元數(shù)據(jù)信息相同,所以不會(huì)出現(xiàn)現(xiàn)有技術(shù)中的空閑時(shí)間,從而有效的提高了跨數(shù)據(jù)中心存儲(chǔ)系統(tǒng)中存儲(chǔ)服務(wù)的可用性。
【附圖說(shuō)明】
[0056]圖1為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的一種實(shí)現(xiàn)方式的方法流程示意圖;
[0057]圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的中步驟C的一種實(shí)現(xiàn)方式的方法流程示意圖;
[0058]圖3為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法中從所述跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)中所有正常運(yùn)行的管理節(jié)點(diǎn)中選取主管理節(jié)點(diǎn)的方法的一種實(shí)現(xiàn)方式的方法流程示意圖;
[0059]圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法中獲取管理節(jié)點(diǎn)中元數(shù)據(jù)的方法的一種實(shí)現(xiàn)方式的方法流程示意圖;
[0060]圖5為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的一種實(shí)現(xiàn)方式的結(jié)構(gòu)示意圖;
[0061]圖6為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置中第一發(fā)送模塊的一種實(shí)現(xiàn)方式的結(jié)構(gòu)示意圖;
[0062]圖7為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置中選取主管理節(jié)點(diǎn)裝置的一種實(shí)現(xiàn)方式的結(jié)構(gòu)示意圖;
[0063]圖8為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置中獲取元數(shù)據(jù)裝置的一種實(shí)現(xiàn)方式的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0064]為了引用和清楚起見(jiàn),下文中使用的技術(shù)名詞的說(shuō)明、簡(jiǎn)寫(xiě)或縮寫(xiě)總結(jié)如下:
[0065]GFS:Google File System,分布式文件系統(tǒng);
[0066]HDFS:Hadoop Distributed File System,Hadoop 分布式文件系統(tǒng);
[0067]CRC:Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)碼;
[0068]NFS:Network File System,網(wǎng)絡(luò)文件系統(tǒng);
[0069]TFS:Taobao FileSystem,面向互聯(lián)網(wǎng)的分布式文件系統(tǒng);
[0070]Namenode:名字節(jié)點(diǎn)。
[0071]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0072]隨著計(jì)算機(jī)技術(shù)的發(fā)展,各領(lǐng)域的數(shù)據(jù)量呈海量的趨勢(shì)增長(zhǎng),對(duì)數(shù)據(jù)存儲(chǔ)的需求越來(lái)越高,對(duì)數(shù)據(jù)的備份要求也隨之提高。例如,衛(wèi)星遙感等應(yīng)用的數(shù)據(jù)正由PB級(jí)向EB級(jí)發(fā)展,如何滿(mǎn)足EB級(jí)數(shù)據(jù)存儲(chǔ)需求已成為大數(shù)據(jù)存儲(chǔ)平臺(tái)亟待解決的問(wèn)題。當(dāng)前多數(shù)據(jù)中心成為解決大數(shù)據(jù)挑戰(zhàn)的主要方法,滿(mǎn)足了數(shù)據(jù)容量擴(kuò)充的需求,例如衛(wèi)星應(yīng)用、Google、Facebook等公司在全球建立了多個(gè)數(shù)據(jù)中心。針對(duì)多數(shù)據(jù)中心對(duì)數(shù)據(jù)的管理不便,提出了跨數(shù)據(jù)中心管理架構(gòu),例如Google的Spanner管理系統(tǒng)??鐢?shù)據(jù)中心管理架構(gòu)的管理節(jié)點(diǎn)的單個(gè)管理節(jié)點(diǎn)故障等瓶頸無(wú)法滿(mǎn)足EB級(jí)數(shù)據(jù)存儲(chǔ)的需求。目前分布式存儲(chǔ)系統(tǒng)和多數(shù)據(jù)中心存儲(chǔ)是滿(mǎn)足EB級(jí)數(shù)據(jù)存儲(chǔ)需求的關(guān)鍵的技術(shù)途徑??鐢?shù)據(jù)中心的統(tǒng)一分布式存儲(chǔ)系統(tǒng)能夠有效解決應(yīng)用環(huán)境中數(shù)據(jù)分布式存儲(chǔ)和管理問(wèn)題,系統(tǒng)通過(guò)廣域網(wǎng)互聯(lián)不同地域的分布式存儲(chǔ)系統(tǒng),提供EB級(jí)存儲(chǔ)架構(gòu)服務(wù)。
[0073]在當(dāng)前的分布式環(huán)境下,系統(tǒng)故障,尤其是針對(duì)于低廉的服務(wù)器來(lái)講,是比較正常的情況,這其中包括軟件、硬件等故障,因此需要系統(tǒng)故障恢復(fù)和保障方法來(lái)保證系統(tǒng)的運(yùn)行正常。典型的分布式文件系統(tǒng)GFS、HDFS采用了具體的報(bào)障措施,比如對(duì)于數(shù)據(jù)塊進(jìn)行做CRC校驗(yàn)和計(jì)算來(lái)保證數(shù)據(jù)塊數(shù)據(jù)的完整和正確,這是針對(duì)于數(shù)據(jù)進(jìn)行的故障保護(hù)機(jī)制;除了數(shù)據(jù)的故障保護(hù)機(jī)制,HDFS采用了 NameNode元數(shù)據(jù)備份、NameNode主備切換的思想來(lái)保障NameNode這個(gè)管理節(jié)點(diǎn)宕機(jī)后系統(tǒng)的正常服務(wù)。正常運(yùn)行的NameNode通過(guò)NFS遠(yuǎn)程掛載目錄保存多個(gè)副本把本地元數(shù)據(jù)信息同步到遠(yuǎn)端的文件服務(wù)器上保證元數(shù)據(jù)信息的多副本正常運(yùn)行,但是主NameNode宕機(jī)后切換至備份的NameNode啟動(dòng)之間有停止服務(wù)時(shí)間間隔。HDFS新的高可用方案借助第三方系統(tǒng)ZooKeeper來(lái)保證HDFS中NameNode的高可用,兩個(gè)NameNode,一個(gè)為激活狀態(tài)(active),一個(gè)用于備份(standby),在正常運(yùn)行情況下standby的NameNode不提供服務(wù),這樣系統(tǒng)standby的NameNode的資源沒(méi)有得到充分的利用。TFS是淘寶針對(duì)于電商需求的網(wǎng)絡(luò)小圖片海量存儲(chǔ)需求的分布式文件系統(tǒng),TFS采用基于Linux的heartbeat機(jī)制來(lái)保證名字節(jié)點(diǎn)的高可用方案,同樣實(shí)現(xiàn)的是主NameNode發(fā)送heartbeat信息給從NameNode,一旦超時(shí)沒(méi)收到主NameNode的heartbeat信息,則從NameNode接管整個(gè)元數(shù)據(jù)管理的服務(wù)。Hadoop生態(tài)圈中的分布式數(shù)據(jù)庫(kù)系統(tǒng)HBase (分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù))采用同樣的也是基于ZooKeeper來(lái)實(shí)現(xiàn)HMaster的高可用方案,在HBase中可以擁有多個(gè)HMaster,但是只能有一個(gè)HMaster作為服務(wù)節(jié)點(diǎn),多個(gè)HMaster同時(shí)競(jìng)爭(zhēng)成為主HMaster。
[0074]采用CRC校驗(yàn)碼,只能保證數(shù)據(jù)塊的有效性,并不能保證管理節(jié)點(diǎn)的有效性。使用NFS進(jìn)行元數(shù)據(jù)的掛載保存多個(gè)副本,然后同步元數(shù)據(jù)到本地重新啟動(dòng)管理節(jié)點(diǎn),這種冷備切換的思路中間有一段服務(wù)停止時(shí)間間隔。新型的基于heartbeat機(jī)制以及基于ZooKeeper機(jī)制實(shí)現(xiàn)的master節(jié)點(diǎn)的熱備切換思路,也具有服務(wù)停止時(shí)間間隔。
[0075]服務(wù)停止時(shí)間間隔即在“將遠(yuǎn)端的文件服務(wù)器上的信息同步到正常運(yùn)行的管理節(jié)點(diǎn)”和“由備份管理節(jié)點(diǎn)替代主管理節(jié)點(diǎn)”過(guò)程中均存在一個(gè)空閑時(shí)間,在該空閑時(shí)間內(nèi)沒(méi)有管理節(jié)點(diǎn)在存儲(chǔ)該段時(shí)間更新或修改的元數(shù)據(jù)信息。
[0076]請(qǐng)參閱圖1,為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的一種實(shí)現(xiàn)方式的方法流程示意圖,該數(shù)據(jù)處理方法應(yīng)用于跨數(shù)據(jù)中心存儲(chǔ)架構(gòu),所述跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)包括至少兩個(gè)管理節(jié)點(diǎn),將所述至少兩個(gè)管理節(jié)點(diǎn)中一個(gè)管理節(jié)點(diǎn)作為主管理節(jié)點(diǎn),其他管理節(jié)點(diǎn)作為從管理節(jié)點(diǎn),所述數(shù)據(jù)處理方法包括:
[0077]步驟A:任一管理節(jié)點(diǎn)接收更新元數(shù)據(jù)的請(qǐng)求。
[0078]更新元數(shù)據(jù)的請(qǐng)求包括待更新的元數(shù)據(jù)信息。上述更新元數(shù)據(jù)信息可以為修改元數(shù)據(jù)信息、增加元數(shù)據(jù)信息、刪除元數(shù)據(jù)信息等等。元數(shù)據(jù)信息又稱(chēng)中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是描述數(shù)據(jù)屬性(property)的信息,用來(lái)支持如指示存儲(chǔ)位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。
[0079]跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)中的任一管理節(jié)點(diǎn)均可以接收更新元數(shù)據(jù)的請(qǐng)求,不論該管理節(jié)點(diǎn)為主管理節(jié)點(diǎn)還是從管理節(jié)點(diǎn)。
[0080]為了實(shí)現(xiàn)主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)均能夠接收更新元數(shù)據(jù)的請(qǐng)求,則可以設(shè)置主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)之間為peer to peer的結(jié)構(gòu)等等,本發(fā)明實(shí)施例并不對(duì)主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)之間的結(jié)構(gòu)進(jìn)行限定,主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)之間的結(jié)構(gòu)關(guān)系可以是能實(shí)現(xiàn)“主管理節(jié)點(diǎn)和從管理節(jié)點(diǎn)均能夠接收更新元數(shù)據(jù)的請(qǐng)求”的任一結(jié)構(gòu)。
[0081]觸發(fā)跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)生成“更新元數(shù)據(jù)信息請(qǐng)求”的可以是檢測(cè)到管理節(jié)點(diǎn)之間具有不同的元數(shù)據(jù)信息的情況,也可以是生成了一個(gè)元數(shù)據(jù)信息、刪除元數(shù)據(jù)信息或修改元數(shù)據(jù)信息,例如新建WORD后,有WORD的建立時(shí)間,該建立時(shí)間為新增加的元數(shù)據(jù)信息。
[0082]步驟B:上述任一管理節(jié)點(diǎn)判斷自身是否為主管理節(jié)點(diǎn),如果是,則進(jìn)入步驟C,如果否,則將所述更新元數(shù)據(jù)的請(qǐng)求發(fā)送給所述主管理節(jié)點(diǎn),進(jìn)入步驟C。
[0083]上述任一管理節(jié)點(diǎn)是指接收到“待更新的元數(shù)據(jù)信息”的管理節(jié)點(diǎn)。
[0084]本發(fā)明實(shí)施例中的管理節(jié)點(diǎn)可以管理著多個(gè)分布式文件系統(tǒng)集群例如HDFS集群,也包括分布式數(shù)據(jù)庫(kù)系統(tǒng)集群,例如HBase集群,這樣管理節(jié)點(diǎn)可以支持分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)nosql的操作請(qǐng)求。由于分布式文件系統(tǒng)集群和分布式數(shù)據(jù)庫(kù)系統(tǒng)集群,都支持集群級(jí)別的擴(kuò)容機(jī)制,所以本發(fā)明實(shí)施例中的跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)可以實(shí)現(xiàn)空間動(dòng)態(tài)的平滑增長(zhǎng)和減小,可以使用多個(gè)集群數(shù)據(jù)服務(wù)器來(lái)進(jìn)行數(shù)據(jù)后端的存儲(chǔ)。
[0085]步驟C:主管理節(jié)點(diǎn)將更新元數(shù)據(jù)的請(qǐng)求發(fā)送至所有所述從管理節(jié)點(diǎn),以便所述跨數(shù)據(jù)中心存儲(chǔ)架構(gòu)中所有管理節(jié)點(diǎn)依據(jù)所述待更新的元數(shù)據(jù)信息進(jìn)行更新。
[0086]主管理節(jié)點(diǎn)可以與從管理節(jié)點(diǎn)同時(shí)更新元數(shù)據(jù)信息,也可以比從管理節(jié)點(diǎn)先一步更新元數(shù)據(jù)信息,對(duì)此本發(fā)明實(shí)施例不做具體限